692b6a3bfa
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.
260 lines
1.4 KiB
Plaintext
260 lines
1.4 KiB
Plaintext
// 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
|