7.2. TX MAC Avalon ST Client Interface
The F-Tile Ethernet Intel® FPGA Hard IP TX client interface in MAC+PCS variations employs the Avalon® -ST protocol. The Avalon® ST 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 backpressure 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 considered to be ready for data transfer.
The client acts as a source and the TX MAC acts as a sink in the transmit direction.
512 bits (100GE)
128 bits (50GE/40GE)
64 bits (25GE/10GE)
|Input data to the MAC when the rate is 10GE/25/40GE/50GE/100GE. Bit 0 is the LSB.
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.
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.
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.
6 bits (100GE)
4 bits (50GE/40GE)
3 bits (10GE/25GE)
Indicates the number of empty bytes on the TX data when the EOP signal is asserted.
The ready signal indicates the MAC is ready to receive data in normal operational mode.
Writes the preamble value of a TX frame. This signal is valid when the i_tx_valid and the i_tx_startofpacket signals are asserted.
This signal is available only available when you turn on Preamble Passthrough in the parameter editor for 40GE/50GE channels.
|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.
|Specifies how the TX MAC should process the current TX MAC client interface packet. Use this signal to temporarily turn off source 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, directs the TX MAC to overwrite the source address. The MAC copies the new source address from the TXMAC_SADDR register.
If this signal is not asserted, whether or not source address insertion is enabled, the TX MAC inserts padding bytes if needed and inserts CRC in the packet.
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).
The figure above shows how to transmit data using the TX MAC Avalon ST client interface. The interface complies with the Avalon® streaming 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 in i_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.