Visible to Intel only — GUID: gqo1697543939642
Ixiasoft
Visible to Intel only — GUID: gqo1697543939642
Ixiasoft
4.3.1. TX MAC Avalon Streaming Client Interface
The GTS Ethernet Intel® FPGA Hard IP TX client interface in MAC+PCS variations employs the Avalon® Streaming Interface protocol. The TX MAC Avalon Streaming Client Interface protocol is a synchronous point-to- point, unidirectional interface that connects the producer of a data stream (source) to a consumer of data (sink). The key properties of this interface include:
- Start of packet (SOP) and end of packet (EOP) signals delimit frame transfers.
- The SOP must always be in the MSB, simplifying the interpretation and processing of incoming data.
- A valid signal qualifies signals from source to sink.
- The sink applies back pressure to the source by using the ready signal. The source typically responds to the deassertion of the ready signal from the sink by driving the same data until the sink can accept it. The Ready latency defines the relationship between assertion and deassertion of the ready signal, and cycles which are ready for data transfer.
The client acts as a source and the TX MAC acts as a sink in the transmits direction.
Signal Name | Width | Description |
---|---|---|
Input Signals | ||
i_tx_data[63:0] | 64 bits | Input data to the MAC when the rate is 10 GE/25 GE. Bit 0 is the LSB. |
i_tx_valid | 1 bit | When asserted, the TX data signal is valid. This signal must be continuously asserted between the assertions of the start of packet and end of packet signals for the same packet. |
i_tx_startofpacket | 1 bit | Start of Packet (SOP). When asserted, indicates that the TX data holds the first clock cycle of data in a packet (start of packet). Assert for only a single clock cycle for each packet. When the SOP signal is asserted, the MSB of the TX data drives the start of packet. |
i_tx_endofpacket | 1 bit | End of Packet (EOP). When asserted, indicates that the TX data holds the final clock cycle of data in a packet (end of packet). Assert for only a single clock cycle for each packet. For some legitimate packets, the SOP and EOP signals are asserted on the same clock cycle. |
i_tx_empty[2:0] | 3 bits | Indicates the number of empty bytes on the TX data when the EOP signal is asserted. |
i_tx_error | 1 bit | When asserted in an EOP cycle (while the EOP signal is asserted), directs the IP core to insert an error in the packet before sending it on the Ethernet link. |
i_tx_skip_crc | 1 bit | Specifies how the TX MAC should process the current TX MAC client interface packet. Use this signal to temporarily turn off CRC insertion for a specific packet and to override the default behaviors of padding to minimum packet size and inserting CRC. If this signal is asserted, directs the TX MAC to not insert CRC, not add padding bytes, and not implement source address insertion. You can use this signal to indicate the data on the TX data signal includes CRC, padding bytes (if relevant), and the correct source address.
If this signal is not asserted, and source address insertion is enabled,
The client must maintain the same value on this signal for the duration of the packet (from the cycle in which it asserts the SOP signal through the cycle in which it asserts the EOP signal, inclusive). |
Output Signals | ||
o_tx_ready | 1 bit | The ready signal indicates that the IP is ready to accept data. The cadence of this signal carries the backpressure from MAC. Based on the Ready Latency settings in the IP GUI, thei_tx_valid has a strict link with the o_tx_ready signal. |
The figure above shows how to transmit data using the TX MAC Avalon ST client interface. The interface complies with the TX MAC Avalon Streaming Client Interface specification.
- Data valid (i_tx_valid) must be held high from the start to end of a packet, and must be low outside of a packet.
- Packets always start on the MSB of the byte of i_tx_data (SOP aligned).
- You can set the Ready latency through the parameter editor.
- When o_tx_ready deasserts, i_tx_data must be paused for as many cycles as o_tx_ready is deasserted, starting Ready latency cycles later. In this example, Ready latency is 1. So the cycle after o_tx_ready deasserts for 1 cycle, i_tx_data is paused for 1 cycle.
- When the frame ends, i_tx_empty is set to the number of unused bytes ini_tx_data, starting from the LSB (byte 0).
- In this example, i_tx_data on the last cycle of the packet has 3 empty bytes.
- The minimum number of bytes on the last cycle is 1.