diff --git a/9_Firmware/9_2_FPGA/plfm_chirp_controller.v b/9_Firmware/9_2_FPGA/plfm_chirp_controller.v index 884a0f4..4b70ebb 100644 --- a/9_Firmware/9_2_FPGA/plfm_chirp_controller.v +++ b/9_Firmware/9_2_FPGA/plfm_chirp_controller.v @@ -1,5 +1,7 @@ `timescale 1ns / 1ps +`include "radar_params.vh" + module plfm_chirp_controller_enhanced ( input wire clk_120m, input wire clk_100m, @@ -45,7 +47,7 @@ parameter T2_RADAR_LISTENING = 20940; //174.5us at 120MHz parameter GUARD_SAMPLES = 21048; // 175.4us at 120MHz // Chirp and beam parameters -parameter CHIRP_MAX = 32; +parameter CHIRP_MAX = `RP_CHIRPS_PER_FRAME; parameter ELEVATION_MAX = 31; parameter AZIMUTH_MAX = 50; @@ -320,6 +322,11 @@ always @(posedge clk_120m or negedge reset_n) begin end DONE: begin + // Reset chirp_counter so the next frame restarts at chirp 0. + // Without this, frame 2+ starts at chirp_counter == CHIRP_MAX + // and the LONG_LISTEN transition guard (== CHIRP_MAX/2-1) + // never matches on the correct chirp. + chirp_counter <= 0; chirp_done <= 1'b1; chirp_data <= 8'd128; end diff --git a/9_Firmware/9_2_FPGA/tb/tb_system_e2e.v b/9_Firmware/9_2_FPGA/tb/tb_system_e2e.v index 51b35f0..87de989 100644 --- a/9_Firmware/9_2_FPGA/tb/tb_system_e2e.v +++ b/9_Firmware/9_2_FPGA/tb/tb_system_e2e.v @@ -1161,20 +1161,20 @@ initial begin // The registers were re-loaded in G9. Send fresh values to verify write path. // --- Range Mode Register (0x20, Fix 7) --- - // G14.1: Set range_mode to short-range (0x01) + // G14.1: Set range_mode to long-range (0x01) bfm_send_cmd(8'h20, 8'h00, 16'h0001); check(dut.host_range_mode == 2'b01, - "G14.1: Opcode 0x20 -> host_range_mode = 2'b01 (short)"); + "G14.1: Opcode 0x20 -> host_range_mode = 2'b01 (long-range)"); - // G14.2: Set range_mode to long-range (0x02) + // G14.2: Set range_mode to reserved value 0x02 (permissive: stored as-is) bfm_send_cmd(8'h20, 8'h00, 16'h0002); check(dut.host_range_mode == 2'b10, - "G14.2: Opcode 0x20 -> host_range_mode = 2'b10 (long)"); + "G14.2: Opcode 0x20 -> host_range_mode = 2'b10 (reserved)"); - // G14.3: Restore range_mode to auto (0x00) + // G14.3: Restore range_mode to 3 km (0x00) bfm_send_cmd(8'h20, 8'h00, 16'h0000); check(dut.host_range_mode == 2'b00, - "G14.3: Opcode 0x20 -> host_range_mode = 2'b00 (auto)"); + "G14.3: Opcode 0x20 -> host_range_mode = 2'b00 (3 km)"); // --- CFAR Guard Cells (0x21) --- // G14.4: Set guard cells to 4