Jason
e9705e40b7
feat: 2048-pt FFT upgrade with decimation=4, 512 output bins, 6m spacing
Complete cross-layer upgrade from 1024-pt/64-bin to 2048-pt/512-bin FFT:
FPGA RTL (14+ modules):
- radar_params.vh: FFT_SIZE=2048, RANGE_BINS=512, 9-bit range, 6-bit stream
- fft_engine.v: 2048-pt FFT with XPM BRAM
- chirp_memory_loader_param.v: 2 segments x 2048 (was 4 x 1024)
- matched_filter_multi_segment.v: BRAM inference for overlap_cache, explicit ov_waddr
- mti_canceller.v: BRAM inference for prev_i/q arrays (was fabric FFs)
- doppler_processor.v: 16384-deep memory, 14-bit addressing
- cfar_ca.v: 512 rows, indentation fix
- radar_receiver_final.v: rising-edge detector for frame_complete, 11-bit sample_addr
- range_bin_decimator.v: 512 output bins
- usb_data_interface_ft2232h.v: bulk per-frame with Manhattan magnitude
- radar_mode_controller.v: XOR edge detector for toggle signals
- rx_gain_control.v: updated for new bin count
Python GUI + Protocol (8 files):
- radar_protocol.py: 512-bin bulk frame parser, LSB-first bitmap
- GUI_V65_Tk.py, v7/*.py: updated for 512 bins, 6m range resolution
Golden data + tests:
- All .hex/.csv/.npy golden references regenerated for 2048/512
- fft_twiddle_2048.mem added
- Deleted stale seg2/seg3 chirp mem files
- 9 new bulk frame cross-layer tests, deleted 6 stale per-sample tests
- Deleted stale tb_cross_layer_ft2232h.v and dead contract_parser functions
- Updated validate_mem_files.py for 2048/2-segment config
MCU: RadarSettings.cpp max_distance/map_size 1536->3072
All 4 CI jobs pass: 285 tests, 0 failures, 0 skips
2026-04-16 17:27:55 +05:45
..
2026-04-14 00:08:26 +05:45
2026-04-06 23:15:50 +03:00
2026-04-13 19:24:11 +05:45
2026-04-16 17:27:55 +05:45
2026-03-19 11:31:46 +02:00
2026-04-07 05:17:11 +03:00
2026-03-19 22:59:46 +02:00
2026-04-14 00:08:26 +05:45
2026-03-17 19:38:09 +02:00
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-13 19:24:11 +05:45
2026-03-16 22:24:22 +02:00
2026-04-14 00:08:26 +05:45
2026-03-16 18:14:06 +02:00
2026-04-16 17:27:55 +05:45
2026-03-17 13:48:47 +02:00
2026-04-16 17:27:55 +05:45
2026-03-27 23:05:28 +02:00
2026-03-16 10:25:07 +02:00
2026-04-16 17:27:55 +05:45
2026-04-07 14:45:47 +03:00
2026-04-14 00:08:26 +05:45
2026-03-17 20:11:13 +02:00
2026-03-18 01:28:42 +02:00
2026-03-19 10:31:16 +02:00
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-03-17 23:51:04 +02:00
2026-03-20 01:45:00 +02:00
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-13 19:24:11 +05:45
2026-03-18 03:57:26 +02:00
2026-03-19 16:47:59 +02:00
2026-03-21 20:43:52 +02:00
2026-04-16 17:27:55 +05:45
2026-03-17 19:38:09 +02:00
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-03-16 19:53:40 +02:00
2026-03-16 19:53:40 +02:00
2026-04-16 17:27:55 +05:45
2026-04-16 17:27:55 +05:45
2026-04-07 02:51:48 +03:00