store_last_word timing optimization

This commit is contained in:
Alex Forencich 2019-06-16 20:01:08 -07:00
parent 55bf44117b
commit b17966f73d
4 changed files with 8 additions and 4 deletions

View File

@ -396,6 +396,8 @@ always @* begin
m_ip_payload_axis_tlast_int = shift_eth_payload_axis_tlast;
m_ip_payload_axis_tuser_int = shift_eth_payload_axis_tuser;
store_last_word = 1'b1;
if (m_ip_payload_axis_tready_int_reg && shift_eth_payload_axis_tvalid) begin
// word transfer through
frame_ptr_next = frame_ptr_reg+keep2count(shift_eth_payload_axis_tkeep);
@ -410,7 +412,6 @@ always @* begin
s_eth_hdr_ready_next = !m_ip_hdr_valid_reg && !check_hdr_reg;
state_next = STATE_IDLE;
end else begin
store_last_word = 1'b1;
m_ip_payload_axis_tvalid_int = 1'b0;
state_next = STATE_READ_PAYLOAD_LAST;
end

View File

@ -407,6 +407,8 @@ always @* begin
m_eth_payload_axis_tlast_int = shift_ip_payload_axis_tlast;
m_eth_payload_axis_tuser_int = shift_ip_payload_axis_tuser;
store_last_word = 1'b1;
if (m_eth_payload_axis_tready_int_reg && shift_ip_payload_axis_tvalid) begin
// word transfer through
frame_ptr_next = frame_ptr_reg+keep2count(shift_ip_payload_axis_tkeep);
@ -421,7 +423,6 @@ always @* begin
s_ip_hdr_ready_next = !m_eth_hdr_valid_next;
state_next = STATE_IDLE;
end else begin
store_last_word = 1'b1;
m_eth_payload_axis_tvalid_int = 1'b0;
state_next = STATE_WRITE_PAYLOAD_LAST;
end

View File

@ -334,6 +334,8 @@ always @* begin
m_udp_payload_axis_tlast_int = s_ip_payload_axis_tlast;
m_udp_payload_axis_tuser_int = s_ip_payload_axis_tuser;
store_last_word = 1'b1;
if (s_ip_payload_axis_tready && s_ip_payload_axis_tvalid) begin
// word transfer through
frame_ptr_next = frame_ptr_reg+keep2count(s_ip_payload_axis_tkeep);
@ -346,7 +348,6 @@ always @* begin
s_ip_hdr_ready_next = !m_udp_hdr_valid_next;
state_next = STATE_IDLE;
end else begin
store_last_word = 1'b1;
m_udp_payload_axis_tvalid_int = 1'b0;
state_next = STATE_READ_PAYLOAD_LAST;
end

View File

@ -334,6 +334,8 @@ always @* begin
m_ip_payload_axis_tlast_int = s_udp_payload_axis_tlast;
m_ip_payload_axis_tuser_int = s_udp_payload_axis_tuser;
store_last_word = 1'b1;
if (m_ip_payload_axis_tready_int_reg && s_udp_payload_axis_tvalid) begin
// word transfer through
frame_ptr_next = frame_ptr_reg+keep2count(s_udp_payload_axis_tkeep);
@ -346,7 +348,6 @@ always @* begin
s_udp_hdr_ready_next = !m_ip_hdr_valid_next;
state_next = STATE_IDLE;
end else begin
store_last_word = 1'b1;
m_ip_payload_axis_tvalid_int = 1'b0;
state_next = STATE_WRITE_PAYLOAD_LAST;
end