Ethernet Subsystem Intel® FPGA IP User Guide

ID 773413
Date 4/03/2023
Public
Document Table of Contents

5.1.2. AXI-ST Client Interface

All AXI-ST Tx interface clocks are synchronous to p<n>_app_ss_st_tx_clk while all AXI-ST Rx interface clock is synchronous to p<n>_app_ss_st_rx_clk. The resets for AXI-ST Tx/Rx interfaces are p<n>_app_ss_st_tx_areset_n and p<n>_app_ss_st_rx_areset_n. The interface is compliant to the AXI Standard.

When the DR Extension Subsystem is enabled, both AXI-ST Client and AXI-ST PHY Direct interface are available for same port. This will allow the switching between protocols, for example, 25G Ethernet protocol using 25GbE profile will use AXI-ST Client and when DR for same port happen to CPRI protocol, the datapath will switch to AXI-ST PHY Direct interface.

Note: The AXI-ST Client interface is compliant with AXI-ST Specifications. However, AXI-ST Client interface tvalid signal is not allowed to de-assert in the middle of packet transmission when tready is asserted, else underflow could occur, and the MAC TX inserts an error character |E| into the frame.
Table 29.  AXI-ST TX Client Interface SignalsThe following table shows the AXI4-ST TX interface signals.
Signal Name Direction Description
p<n>_app_ss_st_tx_clk In Clock signal of each enabled port.
p<n>_app_ss_st_tx_areset_n In Asynchronous reset of each enabled port
p<n>_app_ss_st_tx_tvalid In

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; except when tready is deasserted.

p<n>_ss_app_st_tx_tready Out Txready signal.
p<n>_app_ss_st_tx_tdata [PORTX_DATA_WIDTH-1:0] In

Data signals.

400GE Profile:

PORTX_DATA_WIDTH=1024

200GE Profile:

PORTX_DATA_WIDTH=512

100GE Profile:

PORTX_DATA_WIDTH= 256

40GE/50GE Profile:

PORTX_DATA_WIDTH=128

10GE/25GE Profile: PORTX_DATA_WIDTH= 64

p<n>_app_ss_st_tx_tkeep [PORTX_DATA_WIDTH/8-1:0] In 1'b1 for data byte.1'b0 for null byte.
Note: Null byte is not allowed in the beginning or then middle of a transfer. A null byte is only applicable during end of transfer.

400GE Profile:

PORTX_DATA_WIDTH=1024

200GE Profile:

PORTX_DATA_WIDTH=512

100GE Profile:

PORTX_DATA_WIDTH= 256

40GE/50GE Profile: PORTX_DATA_WIDTH= 128

10GE/25GE Profile: PORTX_DATA_WIDTH = 64

p<n>_app_ss_st_tx_tlast In Indicates the end of the transfer.
p<n>_app_ss_st_tx_tuser_client[1:0] - 25GeE, 10GbE

[3:0] - 40GCAUI-4, 50GAUI-2, 50GAUI-1

[7:0] - 100GCAUI-4, 100GAUI-2, 100GAUI-1

[15:0] 200GAUI-4, 200GAUI-2

[31:0] 400GAUI-8, 400GAUI-4

In

TxClient User signal. Segment 0 (Repeated for each available segment based on profile):

[1] - Driving “0” on this port means TX MAC will add CRC and “1” means MAC will not add CRC i.e. no PAD and no source address insertion.Please note i_tx_skip_crc needs to be held to the selected value (1 or 0) for the whole packet. For PTP 1-step packet, i_tx_skip_crc must be 0.

[0] - 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.

p<n>_app_ss_st_tx_tuser_ptp[93:0] In

TxPTP User signal.

Applicable when Ethernet rate is 400G (F-tile only), tie to 0 for other rate:

[93:92] – Clock Mode of incoming PTP Tx packet (i_clock_type).

2'b00: Ordinary Clock

2'b01: Boundary Clock

2'b10: End-to-end Transparent Clock

2'b11: Peer-to-peer Transparent Clock

[91:61] - Fingerprint for current TX Packet (i_ptp_fp[31:0], MSB tie to 0 if fingerprint width is less than 32)

[59:59] - Add peer-to-peer mean path delay to correction field for current TX packet (i_ptp_p2p[1])

[58:58] - Add asymmetry to correction field for current TX packet (i_ptp_asym[1])

[57:57] - Sign of asymmetry delay add to correction field for current TX packet (i_ptp_asym_sign[1])

[56:50] - Index of asymmetry delay and peer-to-peer mean path delay in the configurable lookup table (i_ptp_asym_p2p_idx[13:7])

[49:49] - Insert an Egress Timestamp into the current TX Packet (i_ptp_ins_ets[1]), internally generated when packet classifier instantiated within HSSI SS.

[48:48] - Request a 2-step timestamp for the current TX packet (i_ptp_ts_req[1])

Applicable when Ethernet rate is 10G/25G/50G/100G/200G:

[47:46] – Clock Mode of incoming PTP Tx packet (i_clock_type).

[45:14] - Fingerprint for current TXPacket (i_ptp_fp[31:0], MSB tie to 0 if fingerprint width is less than 32).

[13:13]- Add peer-to-peer mean path delay to correction field for current TX packet (i_ptp_p2p[0], Exist on F-tile only)

[12:12] - Add asymmetry to correction field for current TX packet(i_ptp_asym[0], Exist on F tile only)

[11:11]- Sign of asymmetry delay add to correction field for current TX packet (i_ptp_asym_sign[0], Exist on F-tile only)

[10:4]- Index of asymmetry delay and peer-to-peer mean path delay in the configurable lookup table (i_ptp_asym_p2p_idx[6:0], Exist on F-tile only)

[3:3]- Insert an Egress Timestamp into the current TX Packet (i_ptp_ins_ets[0]),

internally generated when packet classifier instantiated within HSSI SS.

[2:2] - Request a 2-step timestamp for the current TX packet (i_ptp_ts_req[0])

[1:1]- Indicate PTP fields in tx_tuser_ptp[93:48] is valid when Ethernet rate is 400G (F-tile only), used to determine whether to fold the tx_tuser_ptp[93:48] into NOC (No usage within HSSI SS, mainly use for NOC)

[0:0] -

Indicate PTP fields in tx_tuser_ptp[47:2] is valid when Ethernet rate is 10G/25G/40G/50G/100G/200G/400G, used to determine whether to fold the tx_tuser_ptp[47:2] into NOC (No usage within HSSI SS, mainly use for NOC)
p<n>_app_ss_st_tx_tuser_ptp_extended [327:0] In

TxPTP User Extended signal.

Applicable when Ethernet rate is 400G (F-tile only), tie to 0 for other rates:

[327:312] - Timestamp offset, internally generated when packet classifier instantiated within HSSI SS.

[311:296] - Correction Field offset, internally generated when packet classifier instantiated within HSSI SS.

[295:280] - Checksum offset, internally generated when packet classifier instantiated within HSSI SS.

[279:264] - Extended Byte offset, internally generated when packet classifier instantiated within HSSI SS.

[263:263] - Zero Checksum, internally generated when packet classifier instantiated within HSSI SS.

[262:262] - Update Extended Byte, internally generated when packet classifier instantiated within HSSI SS.

[261:261] - Timestamp Format, internally generated when packet classifier instantiated within HSSI SS.

[260:165] - Ingress Timestamp for TX Packet Residence Time Calculation (i_ptp_tx_its[191:96])

[164:164] - Update correction field with residence time in the current TX packet (i_ptp_ins_cf[1]), internally generated when packet classifier instantiated within HSSI SS.

Applicable when Ethernet rate is 10G/25G/50G/100G/200G/400G:

[163:148] - Timestamp offset, internally generated when packet classifier instantiated within the ethernet subsystem.

[147:132] - Correction Field offset, internally generated when packet classifier instantiated within the ethernet subsystem.

[131:116] - Checksum offset, internally generated when packet classifier instantiated within the ethernet subsystem.

[115:100]- Extended Byte offset, internally generated when packet classifier instantiated within the ethernet subsystem.

[99:99] - Zero Checksum, internally generated when packet classifier instantiated within the ethernet subsystem.

[98:98]- Update Extended Byte, internally generated when packet classifier instantiated within the ethernet subsystem.

[97:97] - Timestamp Format, internally generated when packet classifier instantiated within the ethernet subsystem.

[96:1]- Ingress Timestamp for TX Packet Residence Time Calculation.

[0:0]- Update correction field with residence time in the current TX packet, internally generated when packet classifier instantiated within the ethernet subsystem.

Not applicable for 40G variant.

Table 30.  AXI-ST RX Client Interface SignalsThe following table shows the AXI4-ST RX interface signals.
Signal Name Direction Description
p<n>_app_ss_st_rx_clk In Clock signal of each enabled port.
p<n>_app_ss_st_rx_areset_n In Asynchronous reset of each enabled port.
p<n>_ss_app_st_rx_tvalid Out Data valid signal of each enabled port.
p<n>_ss_app_st_rx_tdata [PORTX_DATA_WIDTH-1:0] Out Data bus of each enabled port.
p<n>_ss_app_st_rx_tkeep [PORTX_DATA_WIDTH-1:0] Out
  • 1'b1 for data byte.
  • 1'b0for null byte.
Note: Null byte is not allowed in the beginning or the middle of transfer, it is only applicable during end of transfer.
p<n>_ss_app_st_rx_tlast Out Indicates the end of a transfer.
p<n>_ss_app_st_rx_tuser_client[6:0] - 25GbE, 10GbE

[13:0] 40GCAUI-4, 50GCAUI-2, 50GAUI-1

[20:0] 100GCAUI-4, 100GAUI-2, 100GAUI-1

[27:0] 200GAUI-4, 200GAUI-2

[34:0] 400GAUI-8, 400GAUI-4

Out

Rx Packet Error Status.

Segment 0 (Repeated for each available segment based on profile):

[6]-PHY error.

[5]-CRC error.

[4]- Length error: Frame advertised a payload that was a valid length, but longer than the payload that actually arrived.

[3]-Oversize error.

[2]-Undersized (frame shorter than 64b) or oversized (frame larger than the programmed max_frame_size).

[1]-FCS error.

[0]-Malformed

(terminated with a control block other than Term).

p<n>_ss_app_st_rx_tuser_sts[4:0]-25GbE, 10GbE

[9:0] 40GCAUI-4, 50GCAUI-2, 50GAUI-1

[14:0] 100GCAUI-4, 100GAUI-2, 100GAUI-1

[19:0] 200GAUI-4, 200GAUI-2

[24:0] 400GAUI-8, 400GAUI-4

Out

Rx Packet Status. [4:0]:

Segment 0 (Repeated for each available segment based on profile):

4'b0000- Had a valid length (was a data frame).

4'b0001- Ethernet type that was not FC (not applicable for E-tile).

4'b0010- Broadcast or Multicast frame (not applicable for E-tile).

4'b0011- PTP frame.

(Length/Type= 0x88F7) (not applicable for E-tile).

4'b0100 - SFC/PFC frame.

4'b0101- SVLAN/VLAN frame.

4'b0110- Illegal length type. 4'b0111- FC frame (control frame, but not SFC/PFC/Pause frame).

4'b1000 - reserved

4'b1001- Pause frame (not applicable for E-tile).

p<n>_ss_app_st_rx_tuser_sts_extended[31:0] Out

Rx Packet Extended Status.

  • bits [31:16]: Specifies the frame length from the first byte of the destination address to the last byte of the FCS.
  • bits[15:0]: Specifies the payload length.
p<n>_ss_app_st_rx_tuser_pkt_seg_parity [PORT_DATA_WIDTH/64-1:0] Out

Packet Segment Parity:

Provides odd parity protection for the segments of the packets. This bit is valid on every packet segment transfer. There can be one or more packet segment parity bits per transfer clock, each protecting its own segments for multi-segment packet for that transfer clock.

p<n>_ss_app_st_rx_tuser_last_segment<segment number> Out Packet segmentation boundary indication for higher bandwidth transfer. Last_segment is bit-blasted signal. For example, with NUM_OF_SEG being 2:

p0_ss_app_st_rx_tuser_last_segment0,

p0_ss_app_st_rx_tuser_last_segment1

Exists in F-tile and when MAC segmented interface protocol is enabled.

p<n>_ss_app_st_rx_tuser_last_buf_pkt_truncation<segment number> Out Packet truncation indication: Indicates whether the packet is erroneous and truncated at the end of packet. Available only when Enable SFC/PFC Queue Buffering parameter is enabled.
Figure 8. Overall View of Transactions on the AXI-4 Streaming RX Interface