Replace FFT stubs with synthesizable radix-2 DIT engine, fix BRAM inference
Implement iterative single-butterfly FFT engine (fft_engine.v) supporting 1024-pt and 32-pt transforms with quarter-wave twiddle ROM, XPM_MEMORY_TDPRAM for guaranteed BRAM mapping in Vivado, and behavioral model for simulation. Add xfft_32.v AXI-Stream wrapper for doppler_processor integration and dual-branch matched_filter_processing_chain.v (behavioral + synthesis paths). Fix placement failure caused by 68K+ registers from dissolved memory arrays: - doppler_processor.v: extract mem writes to sync-only always block for BRAM - xfft_32.v: extract buffer writes to sync-only always block for LUTRAM Post-implementation: 37K regs (29%), 23K LUTs (37%), 10 BRAM (7%), fully routed. All testbenches pass: fft_engine 12/12, xfft_32 10/10, mf_chain 27/27.
This commit is contained in:
@@ -0,0 +1,259 @@
|
||||
// Quarter-wave cosine ROM for 1024-point FFT
|
||||
// 256 entries, 16-bit signed Q15 ($readmemh format)
|
||||
// cos(2*pi*k/1024) for k = 0..255
|
||||
7FFF
|
||||
7FFE
|
||||
7FFD
|
||||
7FF9
|
||||
7FF5
|
||||
7FF0
|
||||
7FE9
|
||||
7FE1
|
||||
7FD8
|
||||
7FCD
|
||||
7FC1
|
||||
7FB4
|
||||
7FA6
|
||||
7F97
|
||||
7F86
|
||||
7F74
|
||||
7F61
|
||||
7F4D
|
||||
7F37
|
||||
7F21
|
||||
7F09
|
||||
7EEF
|
||||
7ED5
|
||||
7EB9
|
||||
7E9C
|
||||
7E7E
|
||||
7E5F
|
||||
7E3E
|
||||
7E1D
|
||||
7DFA
|
||||
7DD5
|
||||
7DB0
|
||||
7D89
|
||||
7D62
|
||||
7D39
|
||||
7D0E
|
||||
7CE3
|
||||
7CB6
|
||||
7C88
|
||||
7C59
|
||||
7C29
|
||||
7BF8
|
||||
7BC5
|
||||
7B91
|
||||
7B5C
|
||||
7B26
|
||||
7AEE
|
||||
7AB6
|
||||
7A7C
|
||||
7A41
|
||||
7A05
|
||||
79C8
|
||||
7989
|
||||
794A
|
||||
7909
|
||||
78C7
|
||||
7884
|
||||
783F
|
||||
77FA
|
||||
77B3
|
||||
776B
|
||||
7722
|
||||
76D8
|
||||
768D
|
||||
7641
|
||||
75F3
|
||||
75A5
|
||||
7555
|
||||
7504
|
||||
74B2
|
||||
745F
|
||||
740A
|
||||
73B5
|
||||
735E
|
||||
7307
|
||||
72AE
|
||||
7254
|
||||
71F9
|
||||
719D
|
||||
7140
|
||||
70E2
|
||||
7083
|
||||
7022
|
||||
6FC1
|
||||
6F5E
|
||||
6EFB
|
||||
6E96
|
||||
6E30
|
||||
6DC9
|
||||
6D61
|
||||
6CF8
|
||||
6C8E
|
||||
6C23
|
||||
6BB7
|
||||
6B4A
|
||||
6ADC
|
||||
6A6D
|
||||
69FD
|
||||
698B
|
||||
6919
|
||||
68A6
|
||||
6832
|
||||
67BC
|
||||
6746
|
||||
66CF
|
||||
6656
|
||||
65DD
|
||||
6563
|
||||
64E8
|
||||
646C
|
||||
63EE
|
||||
6370
|
||||
62F1
|
||||
6271
|
||||
61F0
|
||||
616E
|
||||
60EB
|
||||
6068
|
||||
5FE3
|
||||
5F5D
|
||||
5ED7
|
||||
5E4F
|
||||
5DC7
|
||||
5D3E
|
||||
5CB3
|
||||
5C28
|
||||
5B9C
|
||||
5B0F
|
||||
5A82
|
||||
59F3
|
||||
5964
|
||||
58D3
|
||||
5842
|
||||
57B0
|
||||
571D
|
||||
568A
|
||||
55F5
|
||||
5560
|
||||
54C9
|
||||
5432
|
||||
539B
|
||||
5302
|
||||
5268
|
||||
51CE
|
||||
5133
|
||||
5097
|
||||
4FFB
|
||||
4F5D
|
||||
4EBF
|
||||
4E20
|
||||
4D81
|
||||
4CE0
|
||||
4C3F
|
||||
4B9D
|
||||
4AFB
|
||||
4A58
|
||||
49B4
|
||||
490F
|
||||
4869
|
||||
47C3
|
||||
471C
|
||||
4675
|
||||
45CD
|
||||
4524
|
||||
447A
|
||||
43D0
|
||||
4325
|
||||
427A
|
||||
41CE
|
||||
4121
|
||||
4073
|
||||
3FC5
|
||||
3F17
|
||||
3E68
|
||||
3DB8
|
||||
3D07
|
||||
3C56
|
||||
3BA5
|
||||
3AF2
|
||||
3A40
|
||||
398C
|
||||
38D9
|
||||
3824
|
||||
376F
|
||||
36BA
|
||||
3604
|
||||
354D
|
||||
3496
|
||||
33DF
|
||||
3326
|
||||
326E
|
||||
31B5
|
||||
30FB
|
||||
3041
|
||||
2F87
|
||||
2ECC
|
||||
2E11
|
||||
2D55
|
||||
2C99
|
||||
2BDC
|
||||
2B1F
|
||||
2A61
|
||||
29A3
|
||||
28E5
|
||||
2826
|
||||
2767
|
||||
26A8
|
||||
25E8
|
||||
2528
|
||||
2467
|
||||
23A6
|
||||
22E5
|
||||
2223
|
||||
2161
|
||||
209F
|
||||
1FDD
|
||||
1F1A
|
||||
1E57
|
||||
1D93
|
||||
1CCF
|
||||
1C0B
|
||||
1B47
|
||||
1A82
|
||||
19BE
|
||||
18F9
|
||||
1833
|
||||
176E
|
||||
16A8
|
||||
15E2
|
||||
151C
|
||||
1455
|
||||
138F
|
||||
12C8
|
||||
1201
|
||||
113A
|
||||
1072
|
||||
0FAB
|
||||
0EE3
|
||||
0E1C
|
||||
0D54
|
||||
0C8C
|
||||
0BC4
|
||||
0AFB
|
||||
0A33
|
||||
096A
|
||||
08A2
|
||||
07D9
|
||||
0711
|
||||
0648
|
||||
057F
|
||||
04B6
|
||||
03ED
|
||||
0324
|
||||
025B
|
||||
0192
|
||||
00C9
|
||||
Reference in New Issue
Block a user