diff --git a/rtl/ip_eth_rx.v b/rtl/ip_eth_rx.v index 5dd99676f209f451d33756981d955aeddd9b9bd4..c8bad790f476213ddfcaf698cc9f720c5d321daa 100644 --- a/rtl/ip_eth_rx.v +++ b/rtl/ip_eth_rx.v @@ -361,13 +361,13 @@ always @* begin s_eth_payload_axis_tready_next = m_ip_payload_axis_tready_int_early; m_ip_payload_axis_tdata_int = s_eth_payload_axis_tdata; - m_ip_payload_axis_tvalid_int = s_eth_payload_axis_tvalid; m_ip_payload_axis_tlast_int = s_eth_payload_axis_tlast; m_ip_payload_axis_tuser_int = s_eth_payload_axis_tuser; if (s_eth_payload_axis_tready && s_eth_payload_axis_tvalid) begin // word transfer through word_count_next = word_count_reg - 16'd1; + m_ip_payload_axis_tvalid_int = 1'b1; if (s_eth_payload_axis_tlast) begin if (word_count_reg > 16'd1) begin // end of frame, but length does not match @@ -395,7 +395,6 @@ always @* begin s_eth_payload_axis_tready_next = m_ip_payload_axis_tready_int_early; m_ip_payload_axis_tdata_int = last_word_data_reg; - m_ip_payload_axis_tvalid_int = s_eth_payload_axis_tvalid && s_eth_payload_axis_tlast; m_ip_payload_axis_tlast_int = s_eth_payload_axis_tlast; m_ip_payload_axis_tuser_int = s_eth_payload_axis_tuser; @@ -403,6 +402,7 @@ always @* begin if (s_eth_payload_axis_tlast) begin s_eth_hdr_ready_next = !m_ip_hdr_valid_next; s_eth_payload_axis_tready_next = 1'b0; + m_ip_payload_axis_tvalid_int = 1'b1; state_next = STATE_IDLE; end else begin state_next = STATE_READ_PAYLOAD_LAST; diff --git a/rtl/ip_eth_rx_64.v b/rtl/ip_eth_rx_64.v index 8f0e334254f1d77f830362ae759f186fd6850c2d..b33dd67d81f9a928da4bf54a57f1fd03c47fe99d 100644 --- a/rtl/ip_eth_rx_64.v +++ b/rtl/ip_eth_rx_64.v @@ -388,7 +388,6 @@ always @* begin m_ip_payload_axis_tdata_int = shift_eth_payload_axis_tdata; m_ip_payload_axis_tkeep_int = shift_eth_payload_axis_tkeep; - m_ip_payload_axis_tvalid_int = shift_eth_payload_axis_tvalid; m_ip_payload_axis_tlast_int = shift_eth_payload_axis_tlast; m_ip_payload_axis_tuser_int = shift_eth_payload_axis_tuser; @@ -398,6 +397,7 @@ always @* begin // word transfer through word_count_next = word_count_reg - 16'd8; transfer_in_save = 1'b1; + m_ip_payload_axis_tvalid_int = 1'b1; if (word_count_reg <= 8) begin // have entire payload m_ip_payload_axis_tkeep_int = shift_eth_payload_axis_tkeep & count2keep(word_count_reg); @@ -462,7 +462,6 @@ always @* begin m_ip_payload_axis_tdata_int = last_word_data_reg; m_ip_payload_axis_tkeep_int = last_word_keep_reg; - m_ip_payload_axis_tvalid_int = shift_eth_payload_axis_tvalid && shift_eth_payload_axis_tlast; m_ip_payload_axis_tlast_int = shift_eth_payload_axis_tlast; m_ip_payload_axis_tuser_int = shift_eth_payload_axis_tuser; @@ -472,6 +471,7 @@ always @* begin s_eth_payload_axis_tready_next = 1'b0; flush_save = 1'b1; s_eth_hdr_ready_next = !m_ip_hdr_valid_next; + m_ip_payload_axis_tvalid_int = 1'b1; state_next = STATE_IDLE; end else begin state_next = STATE_READ_PAYLOAD_LAST; diff --git a/rtl/ip_eth_tx.v b/rtl/ip_eth_tx.v index 4b52dd49e259993f331105e62548216774a41067..bfe0c705c2e5ed8c338737ea189699dbec246a89 100644 --- a/rtl/ip_eth_tx.v +++ b/rtl/ip_eth_tx.v @@ -298,13 +298,13 @@ always @* begin s_ip_payload_axis_tready_next = m_eth_payload_axis_tready_int_early; m_eth_payload_axis_tdata_int = s_ip_payload_axis_tdata; - m_eth_payload_axis_tvalid_int = s_ip_payload_axis_tvalid; m_eth_payload_axis_tlast_int = s_ip_payload_axis_tlast; m_eth_payload_axis_tuser_int = s_ip_payload_axis_tuser; if (s_ip_payload_axis_tready && s_ip_payload_axis_tvalid) begin // word transfer through word_count_next = word_count_reg - 6'd1; + m_eth_payload_axis_tvalid_int = 1'b1; if (s_ip_payload_axis_tlast) begin if (word_count_reg != 16'd1) begin // end of frame, but length does not match @@ -332,7 +332,6 @@ always @* begin s_ip_payload_axis_tready_next = m_eth_payload_axis_tready_int_early; m_eth_payload_axis_tdata_int = last_word_data_reg; - m_eth_payload_axis_tvalid_int = s_ip_payload_axis_tvalid && s_ip_payload_axis_tlast; m_eth_payload_axis_tlast_int = s_ip_payload_axis_tlast; m_eth_payload_axis_tuser_int = s_ip_payload_axis_tuser; @@ -340,6 +339,7 @@ always @* begin if (s_ip_payload_axis_tlast) begin s_ip_hdr_ready_next = !m_eth_hdr_valid_next; s_ip_payload_axis_tready_next = 1'b0; + m_eth_payload_axis_tvalid_int = 1'b1; state_next = STATE_IDLE; end else begin state_next = STATE_WRITE_PAYLOAD_LAST; diff --git a/rtl/ip_eth_tx_64.v b/rtl/ip_eth_tx_64.v index f8caa3b4108976c0544b2d0292034037c3e82496..412447100f75238e0bbec5850010a6f1a1d98067 100644 --- a/rtl/ip_eth_tx_64.v +++ b/rtl/ip_eth_tx_64.v @@ -408,7 +408,6 @@ always @* begin m_eth_payload_axis_tdata_int = shift_ip_payload_axis_tdata; m_eth_payload_axis_tkeep_int = shift_ip_payload_axis_tkeep; - m_eth_payload_axis_tvalid_int = shift_ip_payload_axis_tvalid; m_eth_payload_axis_tlast_int = shift_ip_payload_axis_tlast; m_eth_payload_axis_tuser_int = shift_ip_payload_axis_tuser; @@ -418,6 +417,7 @@ always @* begin // word transfer through word_count_next = word_count_reg - 16'd8; transfer_in_save = 1'b1; + m_eth_payload_axis_tvalid_int = 1'b1; if (word_count_reg <= 8) begin // have entire payload m_eth_payload_axis_tkeep_int = count2keep(word_count_reg); @@ -458,7 +458,6 @@ always @* begin m_eth_payload_axis_tdata_int = last_word_data_reg; m_eth_payload_axis_tkeep_int = last_word_keep_reg; - m_eth_payload_axis_tvalid_int = shift_ip_payload_axis_tvalid && shift_ip_payload_axis_tlast; m_eth_payload_axis_tlast_int = shift_ip_payload_axis_tlast; m_eth_payload_axis_tuser_int = shift_ip_payload_axis_tuser; @@ -467,6 +466,7 @@ always @* begin if (shift_ip_payload_axis_tlast) begin s_ip_hdr_ready_next = !m_eth_hdr_valid_next; s_ip_payload_axis_tready_next = 1'b0; + m_eth_payload_axis_tvalid_int = 1'b1; state_next = STATE_IDLE; end else begin state_next = STATE_WRITE_PAYLOAD_LAST; diff --git a/rtl/udp_ip_rx.v b/rtl/udp_ip_rx.v index 9b1a6846765c4fa7d00151b5bb79e7dbaa72df6b..7096e5d4c87972c3e81f5ca260bc9683822e30c0 100644 --- a/rtl/udp_ip_rx.v +++ b/rtl/udp_ip_rx.v @@ -320,13 +320,13 @@ always @* begin s_ip_payload_axis_tready_next = m_udp_payload_axis_tready_int_early; m_udp_payload_axis_tdata_int = s_ip_payload_axis_tdata; - m_udp_payload_axis_tvalid_int = s_ip_payload_axis_tvalid; m_udp_payload_axis_tlast_int = s_ip_payload_axis_tlast; m_udp_payload_axis_tuser_int = s_ip_payload_axis_tuser; if (s_ip_payload_axis_tready && s_ip_payload_axis_tvalid) begin // word transfer through word_count_next = word_count_reg - 16'd1; + m_udp_payload_axis_tvalid_int = 1'b1; if (s_ip_payload_axis_tlast) begin if (word_count_reg != 16'd1) begin // end of frame, but length does not match @@ -354,7 +354,6 @@ always @* begin s_ip_payload_axis_tready_next = m_udp_payload_axis_tready_int_early; m_udp_payload_axis_tdata_int = last_word_data_reg; - m_udp_payload_axis_tvalid_int = s_ip_payload_axis_tvalid && s_ip_payload_axis_tlast; m_udp_payload_axis_tlast_int = s_ip_payload_axis_tlast; m_udp_payload_axis_tuser_int = s_ip_payload_axis_tuser; @@ -362,6 +361,7 @@ always @* begin if (s_ip_payload_axis_tlast) begin s_ip_hdr_ready_next = !m_udp_hdr_valid_next; s_ip_payload_axis_tready_next = 1'b0; + m_udp_payload_axis_tvalid_int = 1'b1; state_next = STATE_IDLE; end else begin state_next = STATE_READ_PAYLOAD_LAST; diff --git a/rtl/udp_ip_rx_64.v b/rtl/udp_ip_rx_64.v index 65bbc41839a5c0e435e75bb2f8e4321c473cc716..352e91ce79b04b9a0b35ff79bef6d180ab477c0e 100644 --- a/rtl/udp_ip_rx_64.v +++ b/rtl/udp_ip_rx_64.v @@ -328,7 +328,6 @@ always @* begin m_udp_payload_axis_tdata_int = s_ip_payload_axis_tdata; m_udp_payload_axis_tkeep_int = s_ip_payload_axis_tkeep; - m_udp_payload_axis_tvalid_int = s_ip_payload_axis_tvalid; m_udp_payload_axis_tlast_int = s_ip_payload_axis_tlast; m_udp_payload_axis_tuser_int = s_ip_payload_axis_tuser; @@ -337,6 +336,7 @@ always @* begin if (s_ip_payload_axis_tready && s_ip_payload_axis_tvalid) begin // word transfer through word_count_next = word_count_reg - 16'd8; + m_udp_payload_axis_tvalid_int = 1'b1; if (word_count_reg <= 8) begin // have entire payload m_udp_payload_axis_tkeep_int = s_ip_payload_axis_tkeep & count2keep(word_count_reg); @@ -375,7 +375,6 @@ always @* begin m_udp_payload_axis_tdata_int = last_word_data_reg; m_udp_payload_axis_tkeep_int = last_word_keep_reg; - m_udp_payload_axis_tvalid_int = s_ip_payload_axis_tvalid && s_ip_payload_axis_tlast; m_udp_payload_axis_tlast_int = s_ip_payload_axis_tlast; m_udp_payload_axis_tuser_int = s_ip_payload_axis_tuser; @@ -383,6 +382,7 @@ always @* begin if (s_ip_payload_axis_tlast) begin s_ip_hdr_ready_next = !m_udp_hdr_valid_next; s_ip_payload_axis_tready_next = 1'b0; + m_udp_payload_axis_tvalid_int = 1'b1; state_next = STATE_IDLE; end else begin state_next = STATE_READ_PAYLOAD_LAST; diff --git a/rtl/udp_ip_tx.v b/rtl/udp_ip_tx.v index 25398e7c263759899a30e43c3730c8855fc22b92..8224cd831a478d4bebf6771ae01a05e4032e8438 100644 --- a/rtl/udp_ip_tx.v +++ b/rtl/udp_ip_tx.v @@ -289,13 +289,13 @@ always @* begin s_udp_payload_axis_tready_next = m_ip_payload_axis_tready_int_early; m_ip_payload_axis_tdata_int = s_udp_payload_axis_tdata; - m_ip_payload_axis_tvalid_int = s_udp_payload_axis_tvalid; m_ip_payload_axis_tlast_int = s_udp_payload_axis_tlast; m_ip_payload_axis_tuser_int = s_udp_payload_axis_tuser; if (s_udp_payload_axis_tready && s_udp_payload_axis_tvalid) begin // word transfer through word_count_next = word_count_reg - 16'd1; + m_ip_payload_axis_tvalid_int = 1'b1; if (s_udp_payload_axis_tlast) begin if (word_count_reg != 16'd1) begin // end of frame, but length does not match @@ -323,7 +323,6 @@ always @* begin s_udp_payload_axis_tready_next = m_ip_payload_axis_tready_int_early; m_ip_payload_axis_tdata_int = last_word_data_reg; - m_ip_payload_axis_tvalid_int = s_udp_payload_axis_tvalid && s_udp_payload_axis_tlast; m_ip_payload_axis_tlast_int = s_udp_payload_axis_tlast; m_ip_payload_axis_tuser_int = s_udp_payload_axis_tuser; @@ -331,6 +330,7 @@ always @* begin if (s_udp_payload_axis_tlast) begin s_udp_hdr_ready_next = !m_ip_hdr_valid_next; s_udp_payload_axis_tready_next = 1'b0; + m_ip_payload_axis_tvalid_int = 1'b1; state_next = STATE_IDLE; end else begin state_next = STATE_WRITE_PAYLOAD_LAST; diff --git a/rtl/udp_ip_tx_64.v b/rtl/udp_ip_tx_64.v index b027e3e7cfbb2c455bb74334bade1e89c4adaa5d..c3faa1c07e752034bbd49ec54aa6b51971b53efa 100644 --- a/rtl/udp_ip_tx_64.v +++ b/rtl/udp_ip_tx_64.v @@ -325,7 +325,6 @@ always @* begin m_ip_payload_axis_tdata_int = s_udp_payload_axis_tdata; m_ip_payload_axis_tkeep_int = s_udp_payload_axis_tkeep; - m_ip_payload_axis_tvalid_int = s_udp_payload_axis_tvalid; m_ip_payload_axis_tlast_int = s_udp_payload_axis_tlast; m_ip_payload_axis_tuser_int = s_udp_payload_axis_tuser; @@ -334,6 +333,7 @@ always @* begin if (m_ip_payload_axis_tready_int_reg && s_udp_payload_axis_tvalid) begin // word transfer through word_count_next = word_count_reg - 16'd8; + m_ip_payload_axis_tvalid_int = 1'b1; if (word_count_reg <= 8) begin // have entire payload m_ip_payload_axis_tkeep_int = count2keep(word_count_reg); @@ -372,7 +372,6 @@ always @* begin m_ip_payload_axis_tdata_int = last_word_data_reg; m_ip_payload_axis_tkeep_int = last_word_keep_reg; - m_ip_payload_axis_tvalid_int = s_udp_payload_axis_tvalid && s_udp_payload_axis_tlast; m_ip_payload_axis_tlast_int = s_udp_payload_axis_tlast; m_ip_payload_axis_tuser_int = s_udp_payload_axis_tuser; @@ -380,6 +379,7 @@ always @* begin if (s_udp_payload_axis_tlast) begin s_udp_hdr_ready_next = !m_ip_hdr_valid_next; s_udp_payload_axis_tready_next = 1'b0; + m_ip_payload_axis_tvalid_int = 1'b1; state_next = STATE_IDLE; end else begin state_next = STATE_WRITE_PAYLOAD_LAST;