Use of tx_bctlin - Use of tx_bctlin - 1.2 English - PG209

Interlaken 600G LogiCORE IP Product Guide (PG209)

Document ID
PG209
Release Date
2025-08-29
Version
1.2 English

The purpose of the tx_bctlin<N> input is to permit the forcing of Burst Control Words that otherwise would not be transmitted. This is a necessary function for an external scheduler that implements the Optional Scheduling Enhancement described in section 5.3.2.1.1 of the Interlaken Protocol Definition, Revision 1.2 . The Interlaken 600G IP core strictly observes the values specified by the ctl_tx_burstmax and ctl_tx_burstshort configuration inputs and injects Burst Control Words and Idle Control Words where required. Consequently, the Interlaken 600G IP core can inject Idle Control Words that otherwise would not be required, which results in reducing the effective bandwidth.

For example, assume the ctl_tx_burstmax indicates BurstMax is set to 256 bytes and ctl_tx_burstshort indicates BurstShort is set to 64 bytes. If a packet of 264 bytes is transferred across the TX LBUS without the use of tx_bctlin<N>, the Interlaken 600G IP core will insert seven undesirable Idle Control Words after the packet in order to satisfy BurstShort. Specifically:
  • 1 Burst Control Word (with start of packet) is sent
  • 32 Data Words are sent
  • 1 Burst Control Word (without start of packet) is sent
  • 1 Data Word is sent
  • 7 Idle Control Words are sent (to satisfy BurstShort)
for a total of 42 Words.
If tx_bctlin<N> is asserted after 128 bytes are sent, the following occurs:
  • 1 Burst Control Word (with start of packet) is sent
  • 16 Data Words are sent
  • 1 Burst Control Word (without start of packet) is sent
  • 17 Data Words are sent
  • 0 Idle Control Words is sent
for a total of 35 Words.
To ensure maximum bandwidth through the Interlaken 600G core, make sure that all rules that govern Interlaken bursts, as defined in the Interlaken Protocol Definition, Revision 1.2 , are followed when using tx_bctlin<N>. In particular, ensure that the LBUS 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 LBUS in its entirety before changing channels or transferring the data that corresponds to the next burst.