Jason
b4d1869582
fix: 9 bugs from code review — RTL sign-ext & snapshot, thread safety, protocol fixes
- rx_gain_control.v: sign-extension fix ({agc_gain[3],agc_gain} not {1'b0,agc_gain})
+ inclusive frame_boundary snapshot via combinational helpers (Bug #7)
- v7/dashboard.py: Qt thread-safe logging via pyqtSignal bridge (Bug #1)
+ table headers corrected to 'Range (m)' / 'Velocity (m/s)' (Bug #2)
- main.cpp: guard outerAgc.applyGain() with if(outerAgc.enabled) (Bug #3)
- radar_protocol.py: replay L1 threshold detection when CFAR disabled (Bug #4)
+ IndexError guard in replay open (Bug #5) + AGC opcodes in _HARDWARE_ONLY_OPCODES
- radar_dashboard.py: AGC monitor attribute name fixes (3 labels)
- tb_rx_gain_control.v: Tests 17-19 (sign-ext, simultaneous valid+boundary, enable toggle)
- tb_cross_layer_ft2232h.v: AGC opcode vectors 0x28-0x2C in Exercise A (Bug #6)
Vivado 50T build verified: WNS=+0.002ns, WHS=+0.028ns — all timing constraints met.
All tests pass: MCU 21/21, GUI 120/120, cross-layer 29/29, FPGA 25/25 (68 checks).
2026-04-13 23:35:10 +05:45
..
2026-04-13 19:24:11 +05:45
2026-04-06 23:15:50 +03:00
2026-04-13 19:24:11 +05:45
2026-04-13 23:35:10 +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-03-19 22:59:46 +02:00
2026-03-17 19:38:09 +02:00
2026-03-20 05:24:08 +02:00
2026-03-20 01:45:00 +02:00
2026-04-13 19:24:11 +05:45
2026-03-16 22:24:22 +02:00
2026-04-07 19:22:16 +03:00
2026-03-16 18:14:06 +02:00
2026-03-27 23:05:28 +02:00
2026-03-17 13:48:47 +02:00
2026-03-20 00:20:59 +02:00
2026-03-27 23:05:28 +02:00
2026-03-16 10:25:07 +02:00
2026-04-07 14:45:47 +03:00
2026-03-20 19:02:06 +02:00
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-03-16 19:53:40 +02:00
2026-03-16 19:53:40 +02:00
2026-03-16 19:53:40 +02:00
2026-03-16 19:53:40 +02:00
2026-03-16 19:53:40 +02:00
2026-03-16 19:53:40 +02:00
2026-03-16 19:53:40 +02:00
2026-03-16 19:53:40 +02:00
2026-03-19 20:53:29 +02:00
2026-03-16 10:25:07 +02:00
2026-03-20 16:39:17 +02:00
2026-03-17 23:51:04 +02:00
2026-03-20 01:45:00 +02:00
2026-03-19 23:54:48 +02:00
2026-04-13 19:24:11 +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-13 19:24:11 +05:45
2026-03-17 19:38:09 +02:00
2026-03-20 04:38:35 +02:00
2026-04-09 02:36:14 +03:00
2026-04-13 23:35:10 +05:45
2026-03-16 19:53:40 +02:00
2026-03-16 19:53:40 +02:00
2026-04-13 19:24:11 +05:45
2026-04-13 19:24:11 +05:45
2026-04-07 02:51:48 +03:00