test(fpga): wire 4 orphan TBs; add nightly DDC fuzz CI job

Regression coverage additions in run_regression.sh:
  - Phase 2: tb_ddc_400m (standalone DDC unit, 7 checks)
  - Phase 3: tb_freq_matched_filter (14 checks)
  - Phase 4: tb_ddc_input_interface (26 checks), tb_latency_buffer
    (13 checks)

All four existed in tb/ but had no regression runner entry; now gate
every push/PR. Deletes tb/tb_multiseg_cosim.v — stale against the
current RP_FFT_SIZE=2048 / RP_LONG_SEGMENTS_3KM=2 (TB hardcoded 1024/4,
15/32 checks fail on current RTL). Re-add when the multi-segment TB
is reworked for the 2048-point pipeline.

CI: new fpga-fuzz job running test_ddc_cosim_fuzz.py -m slow
(100-seed sweep). Gated to schedule (07:00 UTC daily) +
workflow_dispatch so PRs stay fast.
This commit is contained in:
Jason
2026-04-23 06:31:26 +05:45
parent 72a897f4fc
commit ae61cf5dc5
3 changed files with 51 additions and 666 deletions
+34
View File
@@ -5,6 +5,9 @@ on:
branches: [main, develop]
push:
branches: [main, develop]
schedule:
- cron: "0 7 * * *" # Nightly 07:00 UTC — slow-path fuzz
workflow_dispatch:
jobs:
# ===========================================================================
@@ -114,3 +117,34 @@ jobs:
uv run pytest
9_Firmware/tests/cross_layer/test_cross_layer_contract.py
-v --tb=short
# ===========================================================================
# DDC Co-Sim Fuzz (slow, nightly + manual dispatch only)
# 100 random seeds through the full DDC pipeline vs Python radar_scene model.
# Gated on schedule/workflow_dispatch to keep PRs fast; skipped on push/PR.
# ===========================================================================
fpga-fuzz:
name: FPGA DDC Fuzz (slow)
runs-on: ubuntu-latest
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: astral-sh/setup-uv@v5
- name: Install dependencies
run: uv sync --group dev
- name: Install Icarus Verilog
run: sudo apt-get update && sudo apt-get install -y iverilog
- name: Run DDC fuzz (100-seed sweep)
run: >
uv run pytest -m slow
9_Firmware/tests/cross_layer/test_ddc_cosim_fuzz.py
-v --tb=short