Examples - 1.3 English

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

Document ID
PG371
Release Date
2024-01-09
Version
1.3 English

The following examples illustrate segmented AXI4-Stream cycles covering various combinations of SOP, DAT (data in the middle of a packet), EOP, and IDLE (no data on the bus).

In the first two examples below, the segmented AXI4-Stream bus is assumed to be 512 bits wide and each segment is 128 bits wide (16 bytes). The TX direction is illustrated. The RX direction has analogous behavior. Unlike the TX, the RX is able to transfer more packets in one cycle, for example, with two SOP and two EOP, due to the removal of overhead and no requirement to meet BurstShort.

The following tables show many possible TX segmented AXI4-Stream bus cycles. In these examples, BurstMax has been set to 256 and BurstShort to 64. The different shadings represent different bursts from different packets.

The numbers in parenthesis are used to identify the segments that correspond to the same packet.

Table 1. Packet Mode Example for 512-bit AXI4-Stream Bus (BurstMax = 256 and BurstShort = 64)
Clock Cycle 1 2 3 4 5 6 7 8 9 10
seg0 SOP(0) IDLE SOP(1) SOP(2) DAT(2) DAT(3) IDLE DAT(3) SOP(4) IDLE
seg1 DAT(0) IDLE DAT(1) DAT(2) EOP(2) DAT(3) IDLE DAT(3) DAT(4) IDLE
seg2 DAT(0) IDLE DAT(1) DAT(2) SOP(3) DAT(3) IDLE DAT(3) DAT(4) IDLE
seg3 EOP(0) IDLE EOP(1) DAT(2) DAT(3) DAT(3) IDLE EOP(3) DAT(4) IDLE
c0_tx_rdyout 1 1 1 1 1 1 0 1 0 0
c0_tx_ovfout 0 0 0 0 0 0 0 0 0 0
Table 2. Burst Interleaved Mode Example for 512-bit AXI4-Stream Bus (BurstMax = 256 and BurstShort = 64)
Clock Cycle 1 2 3 4 5 6 7 8 9 10
seg0 DAT(0) DAT(0) DAT(0) DAT(0) DAT(1) DAT(1) DAT(1) DAT(0) SOP(2) IDLE
seg1 DAT(0) DAT(0) DAT(0) DAT(1) DAT(1) DAT(1) IDLE DAT(0) DAT(2) IDLE
seg2 DAT(0) DAT(0) DAT(0) DAT(1) DAT(1) DAT(1) IDLE DAT(0) DAT(2) IDLE
seg3 DAT(0) DAT(0) DAT(0) DAT(1) DAT(1) DAT(1) IDLE EOP(0) DAT(2) IDLE
c0_tx_rdyout 1 1 1 1 1 1 0 1 0 0
c0_tx_ovfout 0 0 0 0 0 0 0 0 0 0

The Interlaken Protocol Definition, Revision 1.2, describes an enhanced scheduling algorithm. The previous example is the same as a scheduler with the enhanced algorithm that has a BurstMin of 64-bytes.

Following are examples for a 2048-bit TX AXI4-Stream bus with 16 segments of 16 bytes each.

Table 3. Packet Mode Example for 2048-bit AXI4-Stream Bus (BurstMax = 256 and BurstShort = 64)
Clock Cycle 1 2 3 4 5 6 7 8 9 10
seg0 DAT(0) DAT(2) DAT(4) DAT(5) SOP(6) IDLE DAT(6) DAT(7) SOP(9) IDLE
seg1 DAT(0) EOP(2) DAT(4) DAT(5) DAT(6) IDLE DAT(6) DAT(7) DAT(9) IDLE
seg2 DAT(0) SOPEOP(3) DAT(4) DAT(5) DAT(6) IDLE DAT(6) DAT(7) DAT(9) IDLE
seg3 DAT(0) IDLE DAT(4) DAT(5) DAT(6) IDLE DAT(6) DAT(7) EOP(9) IDLE
seg4 DAT(0) IDLE DAT(4) DAT(5) DAT(6) IDLE DAT(6) DAT(7) SOP(10) IDLE
seg5 DAT(0) IDLE DAT(4) DAT(5) DAT(6) IDLE DAT(6) EOP(7) DAT(10) IDLE
seg6 DAT(0) SOP(4) DAT(4) EOP(5) DAT(6) IDLE DAT(6) SOP(8) EOP(10) IDLE
seg7 DAT(0) DAT(4) DAT(4) IDLE DAT(6) IDLE DAT(6) DAT(8) IDLE IDLE
seg8 DAT(0) DAT(4) EOP(4) IDLE DAT(6) IDLE DAT(6) DAT(8) SOP(11) IDLE
seg9 EOP(0) DAT(4) SOP(5) IDLE DAT(6) IDLE DAT(6) DAT(8) EOP(11) IDLE
seg10 SOP(1) DAT(4) DAT(5) IDLE DAT(6) IDLE EOP(6) DAT(8) IDLE IDLE
seg11 DAT(1) DAT(4) DAT(5) IDLE DAT(6) IDLE SOP(7) DAT(8) IDLE IDLE
seg12 EOP(1) DAT(4) DAT(5) IDLE DAT(6) IDLE DAT(7) DAT(8) SOPEOP(12) IDLE
seg13 IDLE DAT(4) DAT(5) IDLE DAT(6) IDLE DAT(7) EOP(8) IDLE IDLE
seg14 SOP(2) DAT(4) DAT(5) IDLE DAT(6) IDLE DAT(7) IDLE IDLE IDLE
seg15 DAT(2) DAT(4) DAT(5) IDLE DAT(6) IDLE DAT(7) IDLE IDLE IDLE
tx_rdyout 1 1 1 1 1 0 1 1 1 0
tx_ovfout 0 0 0 0 0 0 0 0 0 0
Note: In the previous table:
Cycle 1
Segment 13 is IDLE in order for the 48-byte packet on segments 10-12 to meet the 64-byte BurstShort requirement on the Interlaken interface.
Cycle 2
Segment 2 is a packet ≤ 16 bytes with both start of packet and end of packet; it is followed by three IDLEs to meet the 64-byte BurstShort requirement on the Interlaken interface.
Cycle 4
Segment 7-15 are IDLEs following an EOP segment. Same in cycle 8, starting with segment 14.
Cycle 6
All segments are IDLE in response to TX backpressure signaled on c0_tx_rdyout.
Cycle 9
Four small packets are transferred in one cycle. Depending on how many 16-byte segments they fill, they need to be padded with IDLE segments to the 64-byte BurstShort value.
Table 4. Burst Interleaved Mode Example for 2048-bit AXI4-Stream Bus (BurstMax = 256 and BurstShort = 64)
Clock Cycle 1 2 3 4 5 6 7 8 9 10 11
seg0 SOP(0) SOP(1) DAT(1) DAT(2) DAT(4) DAT(6) DAT(6) SOP(9) DAT(10) DAT(11) IDLE
seg1 DAT(0) DAT(1) DAT(1) DAT(2) DAT(4) DAT(6) DAT(6) EOP(9) DAT(10) EOP(11) IDLE
seg2 DAT(0) DAT(1) DAT(1) DAT(2) EOP(4) DAT(6) DAT(6) IDLE DAT(10) DAT(10) IDLE
seg3 DAT(0) DAT(1) DAT(1) EOP(2) SOPEOP(5) DAT(6) DAT(6) IDLE DAT(10) DAT(10) IDLE
seg4 DAT(0) DAT(1) DAT(1) SOP(3) IDLE DAT(6) DAT(6) SOP(10) SOP(11) DAT(10) IDLE
seg5 DAT(0) DAT(1) DAT(1) DAT(3) IDLE DAT(6) DAT(6) DAT(10) DAT(11) DAT(10) IDLE
seg6 DAT(0) DAT(1) EOP(1) DAT(3) IDLE DAT(6) DAT(6) DAT(10) DAT(11) DAT(10) IDLE
seg7 DAT(0) DAT(1) DAT(0) EOP(3) SOP(6) SOP(7) DAT(6) DAT(10) DAT(11) DAT(10) IDLE
seg8 DAT(0) DAT(1) DAT(0) SOP(4) DAT(6) DAT(7) DAT(6) DAT(10) DAT(11) DAT(10) IDLE
seg9 DAT(0) DAT(1) DAT(0) DAT(4) DAT(6) DAT(7) EOP(6) DAT(10) DAT(11) DAT(10) IDLE
seg10 DAT(0) DAT(1) DAT(0) DAT(4) DAT(6) EOP(7) IDLE DAT(10) DAT(11) DAT(10) IDLE
seg11 DAT(0) DAT(1) DAT(0) DAT(4) DAT(6) SOP(8) IDLE DAT(10) DAT(11) DAT(10) IDLE
seg12 DAT(0) DAT(1) DAT(0) DAT(4) DAT(6) DAT(8) IDLE DAT(10) DAT(11) DAT(10) IDLE
seg13 DAT(0) DAT(1) DAT(0) DAT(4) DAT(6) EOP(8) IDLE DAT(10) DAT(11) DAT(10) IDLE
seg14 DAT(0) DAT(1) EOP(0) DAT(4) DAT(6) IDLE IDLE DAT(10) DAT(11) DAT(10) IDLE
seg15 DAT(0) DAT(1) SOP(2) DAT(4) DAT(6) DAT(6) IDLE DAT(10) DAT(11) DAT(10) IDLE
tx_rdyout 1 1 1 1 1 1 1 1 1 0 0
tx_ovfout 0 0 0 0 0 0 0 0 0 0 0
Note: In the previous table:
Cycle 1
Some of the packets in this example are shown burst-interleaved. For example, the packet started in cycle 1 has a burst of 256 bytes, and an EOP burst of 128 bytes in cycle 3. In between these two bursts, there is another packet transmitted, starting in cycle 2 and ending in segment 6 of cycle 3.
Cycle 2
Even in Burst Interleaved Mode, it is possible to transmit a packet non-interrupted, as seen for the packet started in this cycle.
Cycle 5
The same rules must be observed for packets under 48 bytes to avoid BurstShort violations on the Interlaken interface. In this case, segments 4-6 must be IDLEs.
Cycle 11
The AXI4-Stream TX interface needs to respond to backpressure signaled by c0_tx_rdyout and drive IDLEs on all segments.