Data Formatting - 1.1 English

Versal ACAP Integrated 600G Interlaken with FEC Subsystem Product Guide (PG371)

Document ID
PG371
Release Date
2022-07-21
Version
1.1 English

The transmit logic of the ILKNF subsystem breaks inbound packets into bursts as described in the Interlaken Protocol Definition, Revision 1.2 specification document. On the Interlaken interface, a burst is a sequence of 64-bit Data Words between two 64-bit Control Words. The first of those two Control Words must be a Burst Control Word and it indicates the channel number associated with the burst and whether the burst is the SOP. The size of the bursts generated by the ILKNF subsystem is controlled by the following factors:

  • The c0_ctl_tx_burstmax and c0_ctl_tx_burstshort register fields of the CFG_C0_TX_MAIN_REG register.
  • How packets are written to the TX AXI4-Stream bus.

You can explicitly force Burst Control Words on the TX Interlaken interface at the TX AXI4-Stream interface either by assertion of tx_axis_tuser_sop<M> or tx_axis_tuser_bctl<M>, or through a change of channel on tx_axis_tuser_chan<M>. Furthermore, a Burst Control Word is implied by the transmit logic in the ILKNF subsystem when it reaches a value of BurstMax data bytes transmitted after it last sent a Burst Control Word. The ILKNF subsystem imposes a limit on the number of Burst Control Words, implied or forced, that can be associated with the data present on the AXI4-Stream in a given clock cycle. Specifically, the core requires that there be at most AXI4-Stream bus width/512 Burst Control Words per clock cycle. Consequently, for a 2,048-bit AXI4-Stream bus, at most four Burst Control Words (implied or forced) can occur in the same cycle. Similarly, for a 1,536-bit AXI4-Stream bus, at most three Burst Control Words (implied or forced) can occur in the same cycle. If this requirement is violated, the signal stat_tx_burst_err is asserted and data loss can occur.

Unless tx_axis_tuser_bctl<M> is asserted (see Burst Control Word Injection) the size of all bursts (except the last) on the Interlaken interface will match the value specified by the c0_ctl_tx_burstmax register field of the CFG_C0_TX_MAIN_REG register. The last burst containing data for a given packet will have a size that is between the range of values specified by the c0_ctl_tx_burstshort and c0_ctl_tx_burstmax register fields of the CFG_C0_TX_MAIN_REG register. In the cases where the bytes remaining to be transmitted in the last EOP burst are less than 64 bytes (the value of c0_ctl_tx_burst_short), the ILKNF subsystem will employ its automatic mechanism of enhanced scheduling and will adjust the sizes of the EOP-1 and EOP bursts to be between c0_ctl_tx_burstshort and c0_ctl_tx_burstmax.

The ILKNF subsystem operates in one of two modes, depending on how the data is written to the TX:

  • Packet Mode
  • Burst-Interleaved Mode