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
andc0_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