From 7a35f42e6106512c718711f86d44fe6bfa40eeb5 Mon Sep 17 00:00:00 2001 From: Jason <83615043+JJassonn69@users.noreply.github.com> Date: Thu, 16 Apr 2026 17:07:01 +0545 Subject: [PATCH] refactor(fpga): deduplicate RTL file lists in run_regression.sh Extract RECEIVER_RTL and SYSTEM_RTL shared arrays to replace 6 near-identical file lists. New modules now only need adding once. --- 9_Firmware/9_2_FPGA/run_regression.sh | 89 ++++++++++----------------- 1 file changed, 33 insertions(+), 56 deletions(-) diff --git a/9_Firmware/9_2_FPGA/run_regression.sh b/9_Firmware/9_2_FPGA/run_regression.sh index 9d45878..7ae9822 100755 --- a/9_Firmware/9_2_FPGA/run_regression.sh +++ b/9_Firmware/9_2_FPGA/run_regression.sh @@ -87,6 +87,33 @@ EXTRA_RTL=( frequency_matched_filter.v ) +# --------------------------------------------------------------------------- +# Shared RTL file lists for integration / system tests +# Centralised here so a new module only needs adding once. +# --------------------------------------------------------------------------- + +# Receiver chain (used by golden generate/compare tests) +RECEIVER_RTL=( + radar_receiver_final.v + radar_mode_controller.v + tb/ad9484_interface_400m_stub.v + ddc_400m.v nco_400m_enhanced.v cic_decimator_4x_enhanced.v + cdc_modules.v fir_lowpass.v ddc_input_interface.v + chirp_memory_loader_param.v latency_buffer.v + matched_filter_multi_segment.v matched_filter_processing_chain.v + range_bin_decimator.v doppler_processor.v xfft_16.v fft_engine.v + rx_gain_control.v mti_canceller.v +) + +# Full system top (receiver chain + TX + USB + detection + self-test) +SYSTEM_RTL=( + radar_system_top.v + radar_transmitter.v dac_interface_single.v plfm_chirp_controller.v + "${RECEIVER_RTL[@]}" + usb_data_interface.v usb_data_interface_ft2232h.v edge_detector.v + cfar_ca.v fpga_self_test.v +) + # ---- Layer A: iverilog -Wall compilation ---- run_lint_iverilog() { local label="$1" @@ -404,83 +431,33 @@ if [[ "$QUICK" -eq 0 ]]; then run_test "Receiver (golden generate)" \ tb/tb_rx_golden_reg.vvp \ -DGOLDEN_GENERATE \ - tb/tb_radar_receiver_final.v radar_receiver_final.v \ - radar_mode_controller.v tb/ad9484_interface_400m_stub.v \ - ddc_400m.v nco_400m_enhanced.v cic_decimator_4x_enhanced.v \ - cdc_modules.v fir_lowpass.v ddc_input_interface.v \ - chirp_memory_loader_param.v latency_buffer.v \ - matched_filter_multi_segment.v matched_filter_processing_chain.v \ - range_bin_decimator.v doppler_processor.v xfft_16.v fft_engine.v \ - rx_gain_control.v mti_canceller.v + tb/tb_radar_receiver_final.v "${RECEIVER_RTL[@]}" # Golden compare run_test "Receiver (golden compare)" \ tb/tb_rx_compare_reg.vvp \ - tb/tb_radar_receiver_final.v radar_receiver_final.v \ - radar_mode_controller.v tb/ad9484_interface_400m_stub.v \ - ddc_400m.v nco_400m_enhanced.v cic_decimator_4x_enhanced.v \ - cdc_modules.v fir_lowpass.v ddc_input_interface.v \ - chirp_memory_loader_param.v latency_buffer.v \ - matched_filter_multi_segment.v matched_filter_processing_chain.v \ - range_bin_decimator.v doppler_processor.v xfft_16.v fft_engine.v \ - rx_gain_control.v mti_canceller.v + tb/tb_radar_receiver_final.v "${RECEIVER_RTL[@]}" # Full system top (monitoring-only, legacy) run_test "System Top (radar_system_tb)" \ tb/tb_system_reg.vvp \ - tb/radar_system_tb.v radar_system_top.v \ - radar_transmitter.v dac_interface_single.v plfm_chirp_controller.v \ - radar_receiver_final.v tb/ad9484_interface_400m_stub.v \ - ddc_400m.v nco_400m_enhanced.v cic_decimator_4x_enhanced.v \ - cdc_modules.v fir_lowpass.v ddc_input_interface.v \ - chirp_memory_loader_param.v latency_buffer.v \ - matched_filter_multi_segment.v matched_filter_processing_chain.v \ - range_bin_decimator.v doppler_processor.v xfft_16.v fft_engine.v \ - usb_data_interface.v usb_data_interface_ft2232h.v edge_detector.v radar_mode_controller.v \ - rx_gain_control.v cfar_ca.v mti_canceller.v fpga_self_test.v + 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 radar_system_top.v \ - radar_transmitter.v dac_interface_single.v plfm_chirp_controller.v \ - radar_receiver_final.v tb/ad9484_interface_400m_stub.v \ - ddc_400m.v nco_400m_enhanced.v cic_decimator_4x_enhanced.v \ - cdc_modules.v fir_lowpass.v ddc_input_interface.v \ - chirp_memory_loader_param.v latency_buffer.v \ - matched_filter_multi_segment.v matched_filter_processing_chain.v \ - range_bin_decimator.v doppler_processor.v xfft_16.v fft_engine.v \ - usb_data_interface.v usb_data_interface_ft2232h.v edge_detector.v radar_mode_controller.v \ - rx_gain_control.v cfar_ca.v mti_canceller.v fpga_self_test.v + tb/tb_system_e2e.v "${SYSTEM_RTL[@]}" # USB_MODE=1 (FT2232H production) variants of system tests run_test "System Top USB_MODE=1 (FT2232H)" \ tb/tb_system_ft2232h_reg.vvp \ -DUSB_MODE_1 \ - tb/radar_system_tb.v radar_system_top.v \ - radar_transmitter.v dac_interface_single.v plfm_chirp_controller.v \ - radar_receiver_final.v tb/ad9484_interface_400m_stub.v \ - ddc_400m.v nco_400m_enhanced.v cic_decimator_4x_enhanced.v \ - cdc_modules.v fir_lowpass.v ddc_input_interface.v \ - chirp_memory_loader_param.v latency_buffer.v \ - matched_filter_multi_segment.v matched_filter_processing_chain.v \ - range_bin_decimator.v doppler_processor.v xfft_16.v fft_engine.v \ - usb_data_interface.v usb_data_interface_ft2232h.v edge_detector.v radar_mode_controller.v \ - rx_gain_control.v cfar_ca.v mti_canceller.v fpga_self_test.v + 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 radar_system_top.v \ - radar_transmitter.v dac_interface_single.v plfm_chirp_controller.v \ - radar_receiver_final.v tb/ad9484_interface_400m_stub.v \ - ddc_400m.v nco_400m_enhanced.v cic_decimator_4x_enhanced.v \ - cdc_modules.v fir_lowpass.v ddc_input_interface.v \ - chirp_memory_loader_param.v latency_buffer.v \ - matched_filter_multi_segment.v matched_filter_processing_chain.v \ - range_bin_decimator.v doppler_processor.v xfft_16.v fft_engine.v \ - usb_data_interface.v usb_data_interface_ft2232h.v edge_detector.v radar_mode_controller.v \ - rx_gain_control.v cfar_ca.v mti_canceller.v fpga_self_test.v + tb/tb_system_e2e.v "${SYSTEM_RTL[@]}" else echo " (skipped receiver golden + system top + E2E — use without --quick)" SKIP=$((SKIP + 6))