PLFM_RADAR/9_Firmware/9_2_FPGA/tx_medium_lut.mem
Jason f5b8e7a20b chirp-v2 PR-B: 3-waveform mem generator + 11 new .mem files
Rewrite gen_chirp_mem.py to emit the SHORT (1 µs), MEDIUM (5 µs), and LONG
(30 µs) waveform set on both TX and RX paths. The script is now the single
source for every chirp .mem file; the legacy 6-file set on disk
(long_chirp_lut.mem, long_chirp_seg{0,1}_{i,q}.mem, short_chirp_{i,q}.mem)
is no longer regenerated and gets deleted in PR-C/PR-E when its consumer
modules are removed.

Generated artifacts (committed):
  TX (8-bit unsigned offset-binary, fs_dac = 120 MHz):
    tx_short_lut.mem    120  lines
    tx_medium_lut.mem   600  lines
    tx_long_lut.mem     3600 lines
  RX (Q15 I/Q hex, fs_sys = 100 MHz, all 2048 lines for uniform BRAM sizing):
    rx_short_i.mem  / rx_short_q.mem    100  active + 1948 zero-pad
    rx_medium_i.mem / rx_medium_q.mem   500  active + 1548 zero-pad
    rx_long_seg0_i.mem  / rx_long_seg0_q.mem   2048 (samples [0..2047])
    rx_long_seg1_i.mem  / rx_long_seg1_q.mem   952 active + 1096 zero-pad

Phase model unchanged from chirp-v1: phi(n) = 2π·F_BASEBAND_LOW·t +
π·(BW/T)·t² with F_BASEBAND_LOW=10 MHz and BW=20 MHz. The same formula now
runs three durations and two sample rates from one helper.
rx_long_seg0_i.mem is bit-exact to the legacy long_chirp_seg0_i.mem on disk
(diff -q reports identical) — proves the SHORT/MEDIUM additions did not
perturb the LONG path.

Verification:
  - all 11 files have correct line counts (above)
  - script is idempotent (re-run produces byte-identical output)
  - ruff clean (one E501 line-length + two RUF046 redundant-int casts fixed)
  - phase regression at long-seg0 against pre-chirp-v2 reference: bit-exact

No RTL or testbench changes. The legacy .mem files remain on disk for the
existing chirp_memory_loader_param.v / plfm_chirp_controller.v consumers
until PR-C and PR-E delete those modules. No module references the new
files yet.
2026-04-30 17:46:08 +05:45

601 lines
1.8 KiB
Plaintext

F2
E3
B9
7F
45
1C
0E
20
4C
88
C2
E8
F1
DA
A7
6A
32
12
12
34
6C
AB
DD
F2
E4
B7
78
3C
15
10
2F
68
A9
DD
F2
E2
B1
6F
33
11
15
3D
7C
BD
E9
F0
D0
93
4F
1D
0E
29
63
A8
DF
F2
DC
A2
5C
23
0E
24
5D
A4
DD
F2
DA
9F
57
1F
0E
2B
6B
B3
E7
F0
CB
87
40
13
15
44
8C
D0
F1
E2
A7
5C
20
0E
2F
74
BF
ED
EA
B7
6B
28
0E
29
6C
B9
EC
EB
B8
6A
26
0E
2D
74
C2
EF
E6
AA
59
1C
11
3E
8C
D5
F2
D5
8C
3C
10
1E
60
B3
EB
EA
B0
5D
1C
11
43
96
DD
F1
C6
74
28
0E
34
85
D3
F2
D0
7F
2F
0E
2F
80
D1
F2
D0
7E
2D
0E
34
88
D8
F2
C6
6F
23
10
43
9D
E4
ED
B0
55
15
1A
60
BB
F0
DC
8C
33
0E
34
8C
DD
EF
B7
59
16
1A
64
C2
F2
D3
7B
26
10
48
A8
EC
E3
94
36
0E
37
95
E4
EA
A2
41
0E
2F
8C
E0
EC
A7
45
0F
2E
8C
E1
EB
A3
40
0E
35
96
E7
E6
95
33
0E
44
A9
EE
DA
7E
23
14
5D
C3
F2
C3
5C
13
24
82
DF
EB
9D
36
0E
47
B1
F1
D0
6A
17
20
7C
DD
EB
9C
33
0F
4F
BB
F2
C2
57
10
2F
98
EB
DC
78
1C
1C
79
DD
EA
94
2B
12
61
CE
F0
A7
39
0F
52
C2
F2
B4
43
0E
49
BB
F2
B9
47
0E
47
B9
F2
B8
45
0E
4B
BF
F2
B0
3D
0F
56
C9
F0
A2
30
12
68
D8
EA
8C
21
1C
82
E7
DC
6E
13
2F
A3
F1
C2
4B
0E
4F
C7
F0
9C
28
18
7C
E5
DC
6A
11
37
B1
F2
B0
36
12
6D
DF
E2
72
13
34
AF
F2
AE
33
14
76
E4
DA
63
0F
44
C2
F0
95
21
21
96
F0
BF
40
10
6C
E1
DC
63
0F
49
C9
EC
86
18
2F
AF
F2
A2
26
1E
95
F1
B9
36
15
80
EC
C9
45
10
70
E5
D3
51
0E
64
E0
DA
59
0E
5E
DD
DC
5D
0E
5D
DD
DC
5B
0E
60
DF
D9
55
0E
68
E4
D2
4B
10
76
EA
C6
3D
15
88
F0
B5
2D
1E
9F
F2
9D
1D
2F
B9
EE
7F
11
49
D3
E0
5C
0E
6C
E8
C6
39
18
96
F2
9F
1C
34
C2
EA
6E
0E
60
E4
CB
3C
18
98
F2
98
17
3E
CE
E2
59
0F
7A
EF
B0
23
2D
BD
EA
6A
0E
6D
EC
B9
28
29
B9
EB
6B
0E
70
ED
B4
23
2F
C3
E6
5C
0F
82
F1
9F
17
44
D8
D5
40
1A
A5
F0
78
0E
6B
ED
B0
1F
38
D0
DA
45
18
A4
F0
74
0E
74
F0
A2
17
49
DF
C9
2F
29
C2
E3
4F
15
9F
F0
72
0E
7C
F2
94
11
5D
EA
B1
1C
43
DD
C8
2B
2F
CD
D9
3C
21
BB
E4
4D
18
AB
EB
5D
12
9D
EF
6A
0F
91
F1
74
0E
88
F2
7B
0E
82
F2
7F
0E
80