User Error Indication - 9.0 English

Tri-Mode Ethernet MAC LogiCORE IP Product Guide (PG051)

Document ID
PG051
Release Date
2023-11-07
Version
9.0 English

The following figure shows an example of the timing for an aborted transfer. This can occur, for example, if a FIFO connected to the AXI4-Stream TX interface empties before a frame is completed. When you assert tx_axis_mac_tuser during a frame transmission, the MAC core inserts an error code to corrupt the current frame and then falls back to idle transmission. It is your responsibility to re-queue the aborted frame for transmission. It is also possible to abort a frame by de-asserting tx_axis_mac_tvalid before the final byte of the frame. It is classed by the MAC as a frame underrun because it does not buffer the data and any gap is passed directly to the PHY. To avoid incorrect data being output, this is classed as an implicit error condition and the frame is aborted.

The tx_axis_mac_tuser signal can be asserted at any time during active frame transmission. If it occurs prior to the MAC accepting the third byte of the frame, indicating it is actively transmitting to the PHY, it is possible to provide new frame data to the MAC and avoid the transmission of the aborted frame entirely. If this new data is not provided or arrives too late, a minimum sized errored frame is output. There is a possibility of MAC locking up if you present a stream of very short length errored frames on the TX AXI4-Stream interface. In such cases, ensure that a minimum of four bytes frame data has been accepted by the MAC before asserting tuser .

If the very first byte of the transfer is aborted, the MAC will not assert tready because there is no input for the MAC to perform the task. Ensure that your designs do not present such inputs to the MAC.

Figure 1. Frame Transmission with Underrun

When tuser is asserted before the third byte, the frame is aborted and the next frame can be sent out. When tuser is asserted in between the packet transition, the PHY error signal is asserted for the corresponding frame. If a collision occurs and the retransmission signal is asserted, tvalid must be asserted within 6 clk cycles from the retransmission assert signal to resend the packet. Otherwise, the retransmit count is reset.