Burst Control Word Injection - 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 tx_axis_tuser_bctl<M> input operates in a similar manner to tx_axis_tuser_sop<M> or a change in tx_axis_tuser_chan<M>; they cause a Burst Control Word to be injected into the data stream before the data on segment <M> is presented on the Interlaken interface. This allows you to implement your own scheduling mechanism in cases where you do not want to rely on the built-in mechanism.

To help better understand the enhanced scheduling behavior, consider the following example. Assume that the c0_ctl_tx_burstmax register field of the CFG_C0_TX_MAIN_REG register indicates BurstMax and is set to 256 bytes and the c0_ctl_tx_burstshort register field of the CFG_C0_TX_MAIN_REG register indicates BurstShort and is set to 64 bytes. Without the use of enhanced scheduling or without the use of tx_axis_tuser_bctl<M>, a packet of 264 bytes written into the TX ILKNF subsystem would appear on the Interlaken side with seven undesirable IDLE Control Words after the packet in order to satisfy BurstShort. Specifically:

  • One Burst Control Word (with start of packet) is sent
  • 32 Data Words are sent
  • One Burst Control Word (without start of packet) is sent
  • One Data Word is sent
  • Seven IDLE Control Words are sent (to satisfy BurstShort)

For a total of 42 Words.

To minimize the loss of bandwidth due to the injection of the extra IDLEs required to meet the BurstShort requirements, the ILKNF subsystem has a built-in mechanism to automatically implement the enhanced scheduling algorithm. The size of the second to last burst is Burstmax-64. The 264 byte packet will be split into two bursts of 192 bytes and 72 bytes, respectively.

  • One Burst Control Word (with start of packet) is sent
  • 24 Data Words are sent
  • One Burst Control Word (without start of packet) is sent
  • Nine Data Words are sent
  • Zero IDLE Control Words are sent

For a total of 35 words.

You can avoid using the built-in enhanced scheduling mechanism and use the corresponding tx_axis_tuser_bctl<M> signal to control when a Burst Control Word should be injected. For the same 264 byte packet, if tx_axis_tuser_bctl<M> is asserted after 128 bytes are sent, the following occurs:

  • One Burst Control Word (with start of packet) is sent
  • 16 Data Words are sent
  • One Burst Control Word (without start of packet) is sent
  • 17 Data Words are sent
  • Zero IDLE Control Words are sent

For a total of 35 Words.

To ensure maximum bandwidth through the ILKNF subsystem, ensure that all rules that govern Interlaken bursts, as defined in the Interlaken Protocol Definition, Revision 1.2, are followed when using tx_axis_tuser_bctl<M>. In particular, ensure that the AXI data corresponding to each Interlaken burst (which is not EOP or EOP-1) on a given channel equals BurstMax bytes. In other words, the data corresponding to all Interlaken bursts, except the last two for a given packet, should equal BurstMax. Furthermore, the data corresponding to a given Interlaken burst should be written to the AXI4-Stream bus in its entirety before changing channels or transferring the data that corresponds to the next burst.