mirror of
https://github.com/NawfalMotii79/PLFM_RADAR.git
synced 2026-05-14 11:51:47 +00:00
Tier-1 had only one explicit per-field assertion (radar_mode at lsb=22). The Tier-2 round-trip uses the same Python parser as oracle for status word decoding, so a coupled Verilog+Python bit-position shift in status_words[0]/[3]/[4]/[5] passes Tier-2 silently — only [1] and [2] have an independent raw-byte check in tb_cross_layer_ft2232h.v. Add an independent static check that walks each Verilog status_words[N] concatenation MSB->LSB via count_concat_bits, computes (word_idx, lsb, width) for every named payload fragment, drops literal padding, and compares against every field parse_status_packet() extracts. Name match is status_<python_name> (current convention has zero exceptions). Mismatches accumulate into a single failure message so one run surfaces all drift at once. Parametrized over both usb_data_interface_ft2232h.v and usb_data_interface.v since both are live post PR #89.