From ed24acbb029a15213b628101f59c3e05d22c86c0 Mon Sep 17 00:00:00 2001 From: David Mapstone <david@mapstone.me> Date: Thu, 16 Mar 2023 11:52:13 +0000 Subject: [PATCH] SOC1-141: Fixed bug on in packet constructor where empty packet pushed out after reset --- hdl/src/wrapper_packet_construct.sv | 5 +++-- socsim | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/hdl/src/wrapper_packet_construct.sv b/hdl/src/wrapper_packet_construct.sv index f556605..792b7c5 100644 --- a/hdl/src/wrapper_packet_construct.sv +++ b/hdl/src/wrapper_packet_construct.sv @@ -62,7 +62,7 @@ assign packet_last_word = &addr [PACKETBYTEWIDTH-1:REGDBYTEWIDTH]; assign prev_packet_last_word = &prev_wr_addr [PACKETBYTEWIDTH-1:REGDBYTEWIDTH]; // Packet Address - Address of Packet -logic [ADDRWIDTH-1:PACKETBYTEWIDTH] packet_addr, prev_packet_addr; +logic [ADDRWIDTH-PACKETBYTEWIDTH-1:0] packet_addr, prev_packet_addr; assign packet_addr = addr [ADDRWIDTH-1:PACKETBYTEWIDTH]; assign prev_packet_addr = prev_wr_addr [ADDRWIDTH-1:PACKETBYTEWIDTH]; @@ -97,7 +97,8 @@ always_ff @(posedge hclk or negedge hresetn) begin // If Packet Address Changed - write out value in construction buffer // - The output will get overwritten if the current address also causes generation of packet - if (packet_addr != prev_packet_addr) begin + // - Check that previous address isn't 0 (just out of reset and no packet actually in buffer) + if (packet_addr != prev_packet_addr && (prev_wr_addr != {ADDRWIDTH{1'b0}})) begin // Produce Data Output packet_data <= const_buffer; // Write out Previous value of construction buffer // Calculate Last Flag on previous address diff --git a/socsim b/socsim index 27329d3..55fae46 160000 --- a/socsim +++ b/socsim @@ -1 +1 @@ -Subproject commit 27329d3afac51fbf2762428e12f2635d1137c549 +Subproject commit 55fae46b24cd1ec6e93347e553ad3d5e88fc0064 -- GitLab