Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions library/data_offload/data_offload.v
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,6 @@ module data_offload #(
wire m_axis_reset_int_s;

wire [33:0] src_transfer_length_s;
wire src_wr_last_int_s;
wire [33:0] src_wr_last_beat_s;

wire int_not_full;
Expand All @@ -194,6 +193,7 @@ module data_offload #(

// internal registers

reg src_wr_last_int_s;
reg [33:0] src_data_counter = 0;
reg dst_mem_valid_d = 1'b0;

Expand Down Expand Up @@ -407,9 +407,18 @@ always @(posedge s_axis_aclk) begin
end
end
end

// transfer length is in bytes, but counter monitors the source data beats
assign src_wr_last_beat_s = (src_transfer_length_s == 'h0) ? MEM_SIZE[33:SRC_BEAT_BYTE]-1 : src_transfer_length_s[33:SRC_BEAT_BYTE]-1;
assign src_wr_last_int_s = (src_data_counter == src_wr_last_beat_s) ? 1'b1 : 1'b0;

always @ (posedge src_clk) begin
if (src_data_counter == (src_wr_last_beat_s - 'h1)) begin
src_wr_last_int_s <= 1'b1;
end
else begin
src_wr_last_int_s <= 1'b0;
end
end

endmodule