Files
overwatch/9_Firmware/9_2_FPGA/tb/cic_sine_passband.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

7.3 KiB

1input_ndata_inoutput_ndata_out
2647000
31078210
414109020
518139430
622169340
726198550
830226960
934254576
10382810899
114230649354
1246330610664
1350353511974
14543750121279
15583950131580
16624135141875
17664303152161
18704455162440
19744588172709
20784704182967
21824801193214
22864879203448
23904938213668
24944977223874
25984997234064
261024997244238
271064977254396
281104938264536
291144879274659
301184801284763
311224704294848
321264588304914
331304455314960
341344303324988
351384135334995
361423950344983
371463750354951
381503535364899
391543306374828
401583064384738
411622810394630
421662545404503
431702269414358
441741985424196
451781693434018
461821394443824
471861090453614
48190782463390
49194470473154
50198157482904
51202-157492643
52206-470502371
53210-782512091
54214-1090521802
55218-1394531506
56222-1693541203
57226-198555896
58230-226956586
59234-254557274
60238-281058-40
61242-306459-353
62246-330660-665
63250-353561-975
64254-375062-1280
65258-395063-1581
66262-413564-1876
67266-430365-2162
68270-445566-2441
69274-458867-2710
70278-470468-2968
71282-480169-3215
72286-487970-3449
73290-493871-3669
74294-497772-3875
75298-499773-4065
76302-499774-4239
77306-497775-4397
78310-493876-4537
79314-487977-4660
80318-480178-4764
81322-470479-4849
82326-458880-4915
83330-445581-4961
84334-430382-4989
85338-413583-4996
86342-395084-4984
87346-375085-4952
88350-353586-4900
89354-330687-4829
90358-306488-4739
91362-281089-4631
92366-254590-4504
93370-226991-4359
94374-198592-4197
95378-169393-4019
96382-139494-3825
97386-109095-3615
98390-78296-3391
99394-47097-3155
100398-15798-2905
10140215799-2644
102406470100-2372
103410782101-2091
1044141090102-1803
1054181394103-1507
1064221693104-1204
1074261985105-897
1084302269106-587
1094342545107-275
110438281010839
1114423064109352
1124463306110664
1134503535111974
11445437501121279
11545839501131580
11646241351141875
11746643031152161
11847044551162440
11947445881172709
12047847041182967
12148248011193214
12248648791203448
12349049381213668
12449449771223874
12549849971234064
12650249971244238
12750649771254396
12851049381264536
12951448791274659
13051848011284763
13152247041294848
13252645881304914
13353044551314960
13453443031324988
13553841351334995
13654239501344983
13754637501354951
13855035351364899
13955433061374828
14055830641384738
14156228101394630
14256625451404503
14357022691414358
14457419851424196
14557816931434018
14658213941443824
14758610901453614
1485907821463390
1495944701473154
1505981571482904
151602-1571492643
152606-4701502371
153610-7821512091
154614-10901521802
155618-13941531506
156622-16931541203
157626-1985155896
158630-2269156586
159634-2545157274
160638-2810158-40
161642-3064159-353
162646-3306160-665
163650-3535161-975
164654-3750162-1280
165658-3950163-1581
166662-4135164-1876
167666-4303165-2162
168670-4455166-2441
169674-4588167-2710
170678-4704168-2968
171682-4801169-3215
172686-4879170-3449
173690-4938171-3669
174694-4977172-3875
175698-4997173-4065
176702-4997174-4239
177706-4977175-4397
178710-4938176-4537
179714-4879177-4660
180718-4801178-4764
181722-4704179-4849
182726-4588180-4915
183730-4455181-4961
184734-4303182-4989
185738-4135183-4996
186742-3950184-4984
187746-3750185-4952
188750-3535186-4900
189754-3306187-4829
190758-3064188-4739
191762-2810189-4631
192766-2545190-4504
193770-2269191-4359
194774-1985192-4197
195778-1693193-4019
196782-1394194-3825
197786-1090195-3615
198790-782196-3391
199794-470197-3155
200798-157198-2905
201802157199-2644
202806470200-2372
203810782201-2091
2048141090202-1803
2058181394203-1507
2068221693204-1204
2078261985205-897
2088302269206-587
2098342545207-275
210838281020839
2118423064209352
2128463306210664
2138503535211974
21485437502121279
21585839502131580
21686241352141875
21786643032152161
21887044552162440
21987445882172709
22087847042182967
22188248012193214
22288648792203448
22389049382213668
22489449772223874
22589849972234064
22690249972244238
22790649772254396
22891049382264536
22991448792274659
23091848012284763
23192247042294848
23292645882304914
23393044552314960
23493443032324988
23593841352334995
23694239502344983
23794637502354951
23895035352364899
23995433062374828
24095830642384738
24196228102394630
24296625452404503
24397022692414358
24497419852424196
24597816932434018
24698213942443824
24798610902453614
2489907822463390
2499944702473154
2509981572482904
2511002-1572492643
2521006-4702502371
2531010-7822512091
2541014-10902521802
2551018-13942531506
2561022-16932541203
2571026-1985255896
2581030-2269256586
2591034-2545257274
2601038-2810258-40
2611042-3064259-353
2621046-3306260-665
2631050-3535261-975
2641054-3750262-1280
2651058-3950263-1581
2661062-4135264-1876
2671066-4303265-2162
2681070-4455266-2441
2691074-4588267-2710
2701078-4704268-2968
2711082-4801269-3215
2721086-4879270-3449
2731090-4938271-3669
2741094-4977272-3875
2751098-4997273-4065
2761102-4997274-4239
2771106-4977275-4397
2781110-4938276-4537
2791114-4879277-4660
2801118-4801278-4764
2811122-4704279-4849
2821126-4588280-4915
2831130-4455281-4961
2841134-4303282-4989
2851138-4135283-4996
2861142-3950284-4984
2871146-3750285-4952
2881150-3535286-4900
2891154-3306287-4829
2901158-3064288-4739
2911162-2810289-4631
2921166-2545290-4504
2931170-2269291-4359
2941174-1985292-4197
2951178-1693293-4019
2961182-1394294-3825
2971186-1090295-3615
2981190-782296-3391
2991194-470297-3155
3001198-157298-2905
3011202157299-2644
3021206470300-2372
3031210782301-2091
30412141090302-1803
30512181394303-1507
30612221693304-1204
30712261985305-897
30812302269306-587
30912342545307-275
3101238281030839
31112423064309352
31212463306310664
31312503535311974
314125437503121279
315125839503131580
316126241353141875
317126643033152161
318127044553162440
319127445883172709
320127847043182967
321128248013193214
322128648793203448
323129049383213668
324129449773223874
325129849973234064
326130249973244238
327130649773254396
328131049383264536
329131448793274659
330131848013284763
331132247043294848
332132645883304914
333133044553314960
334133443033324988
335133841353334995
336134239503344983
337134637503354951
338135035353364899
339135433063374828
340135830643384738
341136228103394630
342136625453404503
343137022693414358
344137419853424196
345137816933434018
346138213943443824
347138610903453614
34813907823463390
34913944703473154
35013981573482904
3511402-1573492643
3521406-4703502371
3531410-7823512091
3541414-10903521802
3551418-13943531506
3561422-16933541203
3571426-1985355896
3581430-2269356586
3591434-2545357274
3601438-2810358-40
3611442-3064359-353
3621446-3306360-665
3631450-3535361-975
3641454-3750362-1280
3651458-3950363-1581
3661462-4135364-1876
3671466-4303365-2162
3681470-4455366-2441
3691474-4588367-2710
3701478-4704368-2968
3711482-4801369-3215
3721486-4879370-3449
3731490-4938371-3669
3741494-4977372-3875
3751498-4997373-4065
3761502-4997374-4239
3771506-4977375-4397
3781510-4938376-4537
3791514-4879377-4660
3801518-4801378-4764
3811522-4704379-4849
3821526-4588380-4915
3831530-4455381-4961
3841534-4303382-4989
3851538-4135383-4996
3861542-3950384-4984
3871546-3750385-4952
3881550-3535386-4900
3891554-3306387-4829
3901558-3064388-4739
3911562-2810389-4631
3921566-2545390-4504
3931570-2269391-4359
3941574-1985392-4197
3951578-1693393-4019
3961582-1394394-3825
3971586-1090395-3615
3981590-782396-3391
3991594-470397-3155
4001598-157398-2905