diff --git a/rtl/ip_eth_rx_64.v b/rtl/ip_eth_rx_64.v index 781c2146..11bc89c2 100644 --- a/rtl/ip_eth_rx_64.v +++ b/rtl/ip_eth_rx_64.v @@ -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 diff --git a/rtl/ip_eth_tx_64.v b/rtl/ip_eth_tx_64.v index 74276c02..40c3c670 100644 --- a/rtl/ip_eth_tx_64.v +++ b/rtl/ip_eth_tx_64.v @@ -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 diff --git a/rtl/udp_ip_rx_64.v b/rtl/udp_ip_rx_64.v index b51b64cf..a9279ce2 100644 --- a/rtl/udp_ip_rx_64.v +++ b/rtl/udp_ip_rx_64.v @@ -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 diff --git a/rtl/udp_ip_tx_64.v b/rtl/udp_ip_tx_64.v index 967f0a50..bd7f5638 100644 --- a/rtl/udp_ip_tx_64.v +++ b/rtl/udp_ip_tx_64.v @@ -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