Files
overwatch/9_Firmware/9_2_FPGA/tb/fir_dc_output.csv
Jason baa24fd01e Add Phase 0.5 DDC co-simulation suite: bit-accurate Python model, scene generator, and 5/5 scenario validation
Bit-accurate Python model (fpga_model.py) mirrors full DDC RTL chain:
NCO -> mixer -> CIC -> FIR with exact fixed-point arithmetic matching
RTL DSP48E1 pipeline behavior including CREG=1 delay on CIC int_0.

Synthetic radar scene generator (radar_scene.py) produces ADC test
vectors for 5 scenarios: DC, single target (500m), multi-target (5),
noise-only, and 1 MHz sine wave.

DDC co-sim testbench (tb_ddc_cosim.v) feeds hex vectors through RTL
DDC and exports baseband I/Q to CSV. All 5 scenarios compile and run
with Icarus Verilog (iverilog -g2001 -DSIMULATION).

Comparison framework (compare.py) validates Python vs RTL using
statistical metrics (RMS ratio, DC offset, peak ratio) rather than
exact sample match due to RTL LFSR phase dithering. Results: 5/5 PASS.
2026-03-16 16:01:40 +02:00

748 B

1sampledata_out
206
3114
42-10
5316
6424
75-47
8654
9729
108-120
119160
1210-12
1311-245
1412460
1513-289
1614-576
17154423
18169423
19179136
20188387
21199092
22208859
23218687
24228967
25238818
26248793
27258894
28268823
29278831
30288857
31298833
32308841
33318847
34328847
35338847
36348847
37358847
38368847
39378847
40388847
41398847
42408847
43418847
44428847
45438847
46448847
47458847
48468847
49478847
50488847
51498847
52508847
53518847
54528847
55538847
56548847
57558847
58568847
59578847
60588847
61598847
62608847
63618847
64628847
65638847
66648847
67658847
68668847
69678847
70688847
71698847
72708847
73718847
74728847
75738847
76748847
77758847
78768847
79778847
80788847
81798847
82808847
83818847
84828847
85838847
86848847
87858847
88868847
89878847
90888847
91898847
92908847
93918847
94928847
95938847
96948847