Wire self-test results (0x31) to USB status readback path, add fpga_self_test to regression
- usb_data_interface.v: Add 3 self-test status inputs, expand status packet
from 7 words (header + 5 data + footer) to 8 words (header + 6 data + footer).
New status_words[5] carries {busy, detail[7:0], flags[4:0]}.
- radar_system_top.v: Wire self_test_flags_latched, self_test_detail_latched,
self_test_busy to usb_data_interface ports. Add opcode 0x31 as status
readback alias so host can read self-test results.
- tb_usb_data_interface.v: Add self-test port connections, verify word 5 in
Group 16, add Group 18 (busy flag + partial failure variant). 81 checks pass.
- run_regression.sh: Add fpga_self_test.v to PROD_RTL lint list and system-
level compile lists. Add tb_fpga_self_test as Phase 1 unit test.
- 24/24 regression tests pass, lint clean (0 errors, 4 advisory warnings).
This commit is contained in:
@@ -75,6 +75,7 @@ PROD_RTL=(
|
||||
rx_gain_control.v
|
||||
cfar_ca.v
|
||||
mti_canceller.v
|
||||
fpga_self_test.v
|
||||
)
|
||||
|
||||
# Source-only RTL (not instantiated at top level, but should still be lint-clean)
|
||||
@@ -386,6 +387,10 @@ run_test "CFAR CA Detector" \
|
||||
tb/tb_cfar_ca.vvp \
|
||||
tb/tb_cfar_ca.v cfar_ca.v
|
||||
|
||||
run_test "FPGA Self-Test" \
|
||||
tb/tb_fpga_self_test.vvp \
|
||||
tb/tb_fpga_self_test.v fpga_self_test.v
|
||||
|
||||
echo ""
|
||||
|
||||
# ===========================================================================
|
||||
@@ -436,7 +441,7 @@ if [[ "$QUICK" -eq 0 ]]; then
|
||||
matched_filter_multi_segment.v matched_filter_processing_chain.v \
|
||||
range_bin_decimator.v doppler_processor.v xfft_32.v fft_engine.v \
|
||||
usb_data_interface.v edge_detector.v radar_mode_controller.v \
|
||||
rx_gain_control.v cfar_ca.v mti_canceller.v
|
||||
rx_gain_control.v cfar_ca.v mti_canceller.v fpga_self_test.v
|
||||
|
||||
# E2E integration (46 strict checks: TX, RX, USB R/W, CDC, safety, reset)
|
||||
run_test "System E2E (tb_system_e2e)" \
|
||||
@@ -450,7 +455,7 @@ if [[ "$QUICK" -eq 0 ]]; then
|
||||
matched_filter_multi_segment.v matched_filter_processing_chain.v \
|
||||
range_bin_decimator.v doppler_processor.v xfft_32.v fft_engine.v \
|
||||
usb_data_interface.v edge_detector.v radar_mode_controller.v \
|
||||
rx_gain_control.v cfar_ca.v mti_canceller.v
|
||||
rx_gain_control.v cfar_ca.v mti_canceller.v fpga_self_test.v
|
||||
else
|
||||
echo " (skipped receiver golden + system top + E2E — use without --quick)"
|
||||
SKIP=$((SKIP + 4))
|
||||
|
||||
Reference in New Issue
Block a user