test(integration): PR-I.4 — wire new TBs into regression, retire tb_system_e2e

run_regression.sh replaces "System E2E (tb_system_e2e)" + "System E2E
USB_MODE=1 (FT2232H)" with the three PR-I subsuites (tb_system_opcodes,
tb_system_mechanics, tb_system_dataflow). SKIP count for --quick mode
bumped 5 -> 6 to match. "System Top USB_MODE=1 (FT2232H)" via
radar_system_tb.v is kept as a structural smoke test.

Dataflow gets --timeout=600 (vs 300 default). Its 18 ms sim takes
~430-450 s wall on this host; the 300 s default killed it at ~12.4 ms,
before the test logic block ran, yielding UNKNOWN. With 600 s, the TB
finishes cleanly and G2.2/G4.1/G4.2 all pass (3/3). The
matched_filter_multi_segment ST_WAIT_FFT hang documented in the TB
header still affects deeper coverage (G4.4 doppler, G5.x USB egress,
G9.x reset recovery), which remain deferred to PR-J.

tb_system_e2e.v removed (1294 lines) — coverage is fully replaced by
the focused subsuites; its USB_MODE=1 BFM was structurally broken
(wired only the FT601 ports, leaving the FT2232H DUT ports dangling),
which is why a USB_MODE=1 variant could "pass" without exercising the
production FT2232H path.

tb_usb_protocol_v2.v comment updated to point at tb_system_opcodes
for opcode-dispatch integration coverage.
This commit is contained in:
Jason
2026-05-01 13:37:16 +05:45
parent f4fbee5dac
commit 81d6f210cb
3 changed files with 23 additions and 1307 deletions

View File

@@ -621,24 +621,34 @@ if [[ "$QUICK" -eq 0 ]]; then
tb/tb_system_reg.vvp \
tb/radar_system_tb.v "${SYSTEM_RTL[@]}"
# E2E integration (46 strict checks: TX, RX, USB R/W, CDC, safety, reset)
run_test "System E2E (tb_system_e2e)" \
tb/tb_system_e2e_reg.vvp \
tb/tb_system_e2e.v "${SYSTEM_RTL[@]}"
# PR-I subsuites (replace tb_system_e2e). Each TB instantiates
# radar_system_top with USB_MODE=1 (production FT2232H path) and
# carves a focused slice of what the legacy tb_system_e2e tried to
# cover all at once:
# tb_system_opcodes - opcode dispatch via FT2232H send_cmd (fast)
# tb_system_mechanics - reset/RF/safety/CDC mechanics (fast)
# tb_system_dataflow - shallow TX + range-pipeline integration
# (slow; 18 ms sim, ~430-450 s wall on this host).
run_test "System Opcodes (tb_system_opcodes)" \
tb/tb_system_opcodes_reg.vvp \
tb/tb_system_opcodes.v "${SYSTEM_RTL[@]}"
# USB_MODE=1 (FT2232H production) variants of system tests
run_test "System Mechanics (tb_system_mechanics)" \
tb/tb_system_mechanics_reg.vvp \
tb/tb_system_mechanics.v "${SYSTEM_RTL[@]}"
run_test --timeout=600 "System Dataflow (tb_system_dataflow)" \
tb/tb_system_dataflow_reg.vvp \
tb/tb_system_dataflow.v "${SYSTEM_RTL[@]}"
# USB_MODE=1 system top — different TB, kept as a structural smoke test.
run_test "System Top USB_MODE=1 (FT2232H)" \
tb/tb_system_ft2232h_reg.vvp \
-DUSB_MODE_1 \
tb/radar_system_tb.v "${SYSTEM_RTL[@]}"
run_test "System E2E USB_MODE=1 (FT2232H)" \
tb/tb_system_e2e_ft2232h_reg.vvp \
-DUSB_MODE_1 \
tb/tb_system_e2e.v "${SYSTEM_RTL[@]}"
else
echo " (skipped receiver integration + system top + E2E + USB_MODE=1 variants — use without --quick)"
SKIP=$((SKIP + 5))
echo " (skipped receiver integration + system top + opcodes/mechanics/dataflow + USB_MODE=1 — use without --quick)"
SKIP=$((SKIP + 6))
fi
echo ""

File diff suppressed because it is too large Load Diff

View File

@@ -17,7 +17,7 @@
// Catches future header-vs-body drift and confirms padding is skipped.
// 5. PR-G G2 MEDIUM ladder timing opcodes (0x17, 0x18) round-trip via
// cmd_opcode/cmd_value (the host_medium_*_cycles registers live in
// radar_system_top, exercised at integration level by tb_system_e2e).
// radar_system_top, exercised at integration level by tb_system_opcodes).
// ============================================================================
module tb_usb_protocol_v2;