F-Tile 25G Ethernet Intel® FPGA IP User Guide

ID 750198
Date 11/04/2024
Public
Document Table of Contents

7.1. TX MAC Interface to User Logic

The TX MAC provides an Avalon® streaming interface to the FPGA fabric. The minimum packet size is nine bytes.
Table 13.   Avalon® Streaming TX DatapathAll interface signals are clocked by the clk_txmac clock. The value you specify for Ready Latency in the F-Tile 25G Ethernet Intel FPGA IP parameter editor is the Avalon® streaming readyLatency value on this interface.

Signal

Direction

Description

clk_txmac Output Clock for the TX logic. Derived from o_clk_tx_div and is an output from the F-Tile 25G Ethernet Intel FPGA IP core. clk_txmac is guaranteed to be stable when tx_lanes_stable is asserted. The frequency of this clock is 390.625 MHz. All TX MAC interface signals are synchronous to clk_txmac .
l1_tx_data[63:0] Input

Data input to MAC. Bit 63 is the MSB and bit 0 is the LSB. Bytes are read in the usual left to right order.

The F-Tile 25G Ethernet Intel FPGA IP core does not process incoming frames of less than nine bytes correctly. You must ensure such frames do not reach the TX client interface.

You must send each TX data packet without intermediate idle cycles. Therefore, you must ensure your application can provide the data for a single packet in consecutive clock cycles. If data might not be available otherwise, you must buffer the data in your design and wait to assert l1_tx_startofpacket when you are assured the packet data to send on l1_tx_data[63:0] is available or will be available on time.

If readyLatency = 0, ensure that no data transition at the l1_tx_data bus at the same clock cycle l1_tx_ready is deasserted. You can transition the data at the l1_tx_data bus at the same clock cycle l1_tx_ready is asserted.

If readyLatency = 3, ensure that no data transition at the l1_tx_data bus at the third clock cycle after l1_tx_ready is deasserted. You can transition the data at the l1_tx_data bus at the third clock cycles after l1_tx_ready is asserted.

l1_tx_valid Input When asserted, indicates valid data is available on l1_tx_data[63:0]. You must assert this signal continuously between the assertions of l1_tx_startofpacket and l1_tx_endofpacket for the same packet regardless of the l1_tx_ready status.
l1_tx_startofpacket Input When asserted, indicates the first byte of a frame. When l1_tx_startofpacket is asserted, the MSB of l1_tx_data drives the start of packet.

Packets that drive l1_tx_startofpacket and l1_tx_endofpacket in the same cycle are ignored.

l1_tx_endofpacket Input When asserted, indicates the end of a packet.

Packets that drive l1_tx_startofpacket and l1_tx_endofpacket in the same cycle are ignored.

l1_tx_empty[2:0] Input Specifies the number of empty bytes on l1_tx_data when l1_tx_endofpacket is asserted.
l1_tx_error Input

When asserted in the same cycle as l1_tx_endofpacket, indicates the current packet should be treated as an error packet. Assertion at any other position in the packet is ignored.

The TX statistics counters do not reflect errors the IP core creates in response to this signal.

l1_tx_ready Output When asserted, indicates that the MAC can accept the data. When the readyLatency = 0, the IP core accepts valid data in the same clock cycle in which it asserts l1_tx_ready. When the readyLatency = 3, the IP core accepts valid data 3 clock cycles after it asserts l1_tx_ready.
l1_txstatus_valid Output When asserted, indicates that l1_txstatus_data[39:0] is driving valid data.
l1_txstatus_data[39:0] Output

Specifies information about the transmit frame. The following fields are defined:

  • Bit[39]: When asserted, indicates a PFC frame
  • Bit[38]: When asserted, indicates a unicast frame
  • Bit[37]: When asserted, indicates a multicast frame
  • Bit[36]: When asserted, indicates a broadcast frame
  • Bit[35]: When asserted, indicates a pause frame
  • Bit[34]: When asserted, indicates a control frame
  • Bit[33]: When asserted, indicates a VLAN frame
  • Bit[32]: When asserted, indicates a stacked VLAN frame
  • Bits[31:16]: Specifies the frame length from the first byte of the destination address to the last bye of the FCS
  • Bits[15:0]: Specifies the payload length
l1_txstatus_error[6:0] Output Specifies the error type in the transmit frame. The following fields are defined:
  • Bits[6:3]: Reserved
  • Bit[2]: Payload length error
  • Bit[1]: Oversized frame
  • Bit[0]: Reserved
pause_insert_tx0[FCQN-1:0]

pause_insert_tx1[FCQN-1:0]

Input

Available if you turn on Enable flow control in the parameter editor. Indicates to the MAC if an XON, XOFF, Pause or PFC frame should be sent. FCQN equals 1 for Pause and 1-8 for PFC.

In 1-bit programming mode, the IP core ignores pause_insert_tx1[FCQN-1:0]. In 2-bit programming mode, the higher-order bit is in pause_insert_tx1[FCQN-1:0] and the lower-order bit is in pause_insert_tx0[FCQN-1:0].

The following encodings are defined for 1-bit programming mode:

  • 0 = No request
  • 0 to 1 = Generate XOFF request
  • 1 = Continue to generate XOFF request
  • 1 to 0 = Generate XON request

The following encodings are defined for the 2-bit programming model:

  • 2'b00: No further XON/XOFF request. If there is a XON/XOFF flow control frame in progress, it is sent
  • 2'b01: Generate XON flow control frame
  • 2'b10: Generate XOFF request
  • 2'b11: Invalid
Figure 21. Client to F-Tile 25G Ethernet Intel FPGA IP MAC Avalon® streaming interface