diff --git a/radar_alinx_kintex.srcs/sources_1/hdl/pulse_generator.v b/radar_alinx_kintex.srcs/sources_1/hdl/pulse_generator.v
index d69782b..8d01d05 100755
--- a/radar_alinx_kintex.srcs/sources_1/hdl/pulse_generator.v
+++ b/radar_alinx_kintex.srcs/sources_1/hdl/pulse_generator.v
@@ -10,7 +10,7 @@ module pulse_generator #
input wire clk,
input wire rst,
input wire [COUNTER_BITS-1:0] pulse_length,
- output wire start_of_pulse,
+ input wire start_of_pulse,
output wire pulse_out
);
@@ -22,9 +22,11 @@ assign pulse_out = pulse_active;
always @ (posedge clk) begin
if (rst == 1'b1) begin
pulse_cnt <= 0;
+ pulse_active <= 0;
end else begin
if (start_of_pulse) begin
pulse_active <= 1;
+ pulse_cnt <= pulse_length;
end
if (pulse_active) begin
@@ -38,7 +40,6 @@ always @ (posedge clk) begin
end
-
endmodule
diff --git a/radar_alinx_kintex.srcs/sources_1/hdl/timing_engine.sv b/radar_alinx_kintex.srcs/sources_1/hdl/timing_engine.sv
index 757124b..cf7284b 100755
--- a/radar_alinx_kintex.srcs/sources_1/hdl/timing_engine.sv
+++ b/radar_alinx_kintex.srcs/sources_1/hdl/timing_engine.sv
@@ -403,7 +403,7 @@ genvar j;
generate
for (j = 0; j < NUM_TIMING_PULSES; j = j + 1) begin
- assign timing_pulses[j] = timing_pulses_i | reg_pulse_start[j][28];
+ assign timing_pulses[j] = timing_pulses_i[j] | reg_pulse_start[j][28];
always @ (posedge clk) begin
if (pri_cnt == reg_pulse_start[j][27:0]) begin
@@ -413,7 +413,7 @@ generate
end
end
- pulse_generator (
+ pulse_generator pulse_generator_i(
.clk(clk),
.rst(rst),
.pulse_length(reg_pulse_width[j]),
diff --git a/radar_alinx_kintex.srcs/sources_1/sim/tb_timing_engine.sv b/radar_alinx_kintex.srcs/sources_1/sim/tb_timing_engine.sv
new file mode 100644
index 0000000..f697096
--- /dev/null
+++ b/radar_alinx_kintex.srcs/sources_1/sim/tb_timing_engine.sv
@@ -0,0 +1,111 @@
+`timescale 1ns / 1ps
+
+import axi_vip_pkg::*;
+import axi_vip_0_pkg::*;
+
+module testbench();
+
+
+reg clk;
+reg reset;
+reg resetn;
+
+assign resetn = ~reset;
+
+localparam T = 4;
+always #(T/2) clk=~clk;
+
+axi4l_intf # (
+ .AXI_ADDR_WIDTH(32),
+ .AXI_DATA_WIDTH(32)
+)
+ctrl_if (
+ .clk(clk),
+ .resetn(resetn)
+);
+
+axi_vip_0_mst_t vip_mst;
+xil_axi_resp_t resp;
+
+axi_vip_0 axi_vip_inst (
+ .aclk(clk),
+ .aresetn(resetn),
+ .m_axi_awaddr( ctrl_if.awaddr ),
+ .m_axi_awprot( ctrl_if.awprot ),
+ .m_axi_awvalid( ctrl_if.awvalid ),
+ .m_axi_awready( ctrl_if.awready ),
+ .m_axi_wdata( ctrl_if.wdata ),
+ .m_axi_wstrb( ctrl_if.wstrb ),
+ .m_axi_wvalid( ctrl_if.wvalid ),
+ .m_axi_wready( ctrl_if.wready ),
+ .m_axi_bresp( ctrl_if.bresp ),
+ .m_axi_bvalid( ctrl_if.bvalid ),
+ .m_axi_bready( ctrl_if.bready ),
+ .m_axi_araddr( ctrl_if.araddr ),
+ .m_axi_arprot( ctrl_if.arprot ),
+ .m_axi_arvalid( ctrl_if.arvalid ),
+ .m_axi_arready( ctrl_if.arready ),
+ .m_axi_rdata( ctrl_if.rdata ),
+ .m_axi_rresp( ctrl_if.rresp ),
+ .m_axi_rvalid( ctrl_if.rvalid ),
+ .m_axi_rready( ctrl_if.rready )
+
+);
+
+initial begin
+ vip_mst = new("vip_mst", axi_vip_inst.inst.IF);
+ vip_mst.start_master();
+end
+
+axi4s_intf # (
+ .AXI_DATA_WIDTH(64),
+ .AXI_USER_WIDTH(16)
+)
+hdr_out[2] ();
+
+timing_engine dut (
+ .clk(clk),
+ .pps(1'b0),
+
+ .ctrl_if(ctrl_if),
+ .start_of_cpi(),
+ .start_of_pulse(),
+ .timing_pulses(),
+ .hdr_out(hdr_out)
+);
+
+int fid_out;
+
+initial begin
+ reset = 1'b1;
+ clk = 1'b0;
+ $display($time, " << Starting the Simulation >>");
+
+ // Release Reset
+ repeat(25) @(posedge clk);
+ reset = 1'b0;
+ repeat(25) @(posedge clk);
+
+ // Set Control Regs
+ vip_mst.AXI4LITE_WRITE_BURST(16'h0000, 0, 1, resp);
+
+ vip_mst.AXI4LITE_WRITE_BURST(16'h0004, 0, 16, resp);
+ vip_mst.AXI4LITE_WRITE_BURST(16'h0008, 0, 4, resp);
+ vip_mst.AXI4LITE_WRITE_BURST(16'h0010, 0, 10, resp);
+
+ vip_mst.AXI4LITE_WRITE_BURST(16'h0080, 0, 3, resp);
+ vip_mst.AXI4LITE_WRITE_BURST(16'h0084, 0, 4, resp);
+
+ vip_mst.AXI4LITE_WRITE_BURST(16'h0088, 0, 8, resp);
+ vip_mst.AXI4LITE_WRITE_BURST(16'h008C, 0, 5, resp);
+
+ vip_mst.AXI4LITE_WRITE_BURST(16'h0000, 0, 0, resp);
+
+ repeat(10000) @(posedge clk);
+ $display($time, " << Ending the Simulation >>");
+ $stop;
+
+end
+
+endmodule
+`resetall
diff --git a/radar_alinx_kintex.xpr b/radar_alinx_kintex.xpr
index e8bc643..833456e 100755
--- a/radar_alinx_kintex.xpr
+++ b/radar_alinx_kintex.xpr
@@ -56,7 +56,7 @@
-
+
@@ -561,8 +561,16 @@
+
+
+
+
+
+
+
+