Files
overwatch/9_Firmware/9_2_FPGA/tb/nco_freq_switch.csv
Jason c983a3c705 Achieve timing closure: DSP48E1 pipelines, 4-stage NCO, 28-bit CIC, ASYNC_REG
Phase 0+ timing optimization (attempts #13-22 + implementation):

NCO (nco_400m_enhanced.v):
- 4-stage pipeline: DSP48E1 accumulate -> LUT read -> negate -> quadrant MUX
- DSP48E1 phase accumulator in P=P+C mode (eliminates 8-stage CARRY4 chain)
- Registered phase_inc_dithered to break cascaded 32-bit add path

DDC (ddc_400m.v):
- Direct DSP48E1 instantiation for I/Q mixers (AREG=1, BREG=1, MREG=1, PREG=1)
- CEP=1, RSTP=!reset_n for proper pipeline control
- 3-stage dsp_valid_pipe for PREG=1 latency
- Behavioral sim model under ifdef SIMULATION for Icarus compatibility

CIC (cic_decimator_4x_enhanced.v):
- 28-bit accumulators (was 36) per CIC width formula: 18 + 5*log2(4) = 28
- Removed integrator/comb saturation (CIC uses wrapping arithmetic by design)
- Pipelined output saturation comparison

CDC/ASYNC_REG:
- ASYNC_REG attribute on all CDC synchronizer registers (cdc_modules.v,
  radar_system_top.v, usb_data_interface.v)
- Sync reset in generate blocks (cdc_modules.v)

Results: Vivado post-implementation WNS=+1.196ns, 0 failing endpoints,
850 LUTs (1.34%), 466 FFs (0.37%), 2 DSP48E1 (0.83%) on xc7a100t.
All testbenches pass: 241/244 (3 known stub failures).
2026-03-16 01:02:07 +02:00

3.1 KiB

1samplesin_outcos_out
202200523731
312259423170
422259423170
532631918868
642889814732
75311139512
86322854808
97327570
10832285-4808
11931113-9512
121028898-14732
131126319-18868
141223170-22594
151318868-26319
161414732-28898
17159512-31113
18164808-32285
19170-32757
2018-32285-4808
2119-31113-9512
2220-28898-14732
2321-26319-18868
2422-23170-22594
2523-18868-26319
2624-14732-28898
2725-9512-31113
2826-4808-32285
29270-32757
3028-480832285
3129-951231113
3230-1473228898
3331-1886826319
3432-2259423170
3533-2631918868
3634-2889814732
3735-311139512
3836-322854808
3937-327570
4038480832285
4139951231113
42401473228898
43411886826319
44422259423170
45432631918868
46442889814732
4745311139512
4846322854808
4947327570
504832285-4808
514931113-9512
525028898-14732
535126319-18868
545223170-22594
555318868-26319
565414732-28898
57559512-31113
58564808-32285
59570-32757
6058-32285-4808
6159-31113-9512
6260-28898-14732
6361-26319-18868
6462-23170-22594
6563-18868-26319
6664-14732-28898
6765-9512-31113
6866-4808-32285
69670-32757
7068-480832285
7169-951231113
7270-1473228898
7371-1886826319
7472-2259423170
7573-2631918868
7674-2889814732
7775-311139512
7876-322854808
7977-327570
8078480832285
8179951231113
82801473228898
83811886826319
84822259423170
85832631918868
86842889814732
8785311139512
8886322854808
8987327570
908832285-4808
918931113-9512
929028898-14732
939126319-18868
949223170-22594
959318868-26319
969414732-28898
97959512-31113
98964808-32285
99970-32757
10098-32285-4808
10199-31113-9512
102100-28898-14732
103101-26319-18868
104102-23170-22594
105103-18868-26319
106104-14732-28898
107105-9512-31113
108106-4808-32285
1091070-32757
110108-480832285
111109-951231113
112110-1473228898
113111-1886826319
114112-2259423170
115113-2631918868
116114-2889814732
117115-311139512
118116-322854808
119117-327570
120118480832285
121119951231113
1221201473228898
1231211886826319
1241222259423170
1251232631918868
1261242889814732
127125311139512
128126322854808
129127327570
13012832285-4808
13112931113-9512
13213028898-14732
13313126319-18868
13413223170-22594
13513318868-26319
13613414732-28898
1371359512-31113
1381364808-32285
1391370-32757
140138-32285-4808
141139-31113-9512
142140-28898-14732
143141-26319-18868
144142-23170-22594
145143-18868-26319
146144-14732-28898
147145-9512-31113
148146-4808-32285
1491470-32757
150148-480832285
151149-951231113
152150-1473228898
153151-1886826319
154152-2259423170
155153-2631918868
156154-2889814732
157155-311139512
158156-322854808
159157-327570
160158480832285
161159951231113
1621601473228898
1631611886826319
1641622259423170
1651632631918868
1661642889814732
167165311139512
168166322854808
169167327570
17016832285-4808
17116931113-9512
17217028898-14732
17317126319-18868
17417223170-22594
17517318868-26319
17617414732-28898
1771759512-31113
1781764808-32285
1791770-32757
180178-32285-4808
181179-31113-9512
182180-28898-14732
183181-26319-18868
184182-23170-22594
185183-18868-26319
186184-14732-28898
187185-9512-31113
188186-4808-32285
1891870-32757
190188-480832285
191189-951231113
192190-1473228898
193191-1886826319
194192-2259423170
195193-2631918868
196194-2889814732
197195-311139512
198196-322854808
199197-327570
200198480832285
201199951231113