Interlaken (2nd Generation) Intel® FPGA IP User Guide

ID 683396
Date 12/04/2023
Public
Document Table of Contents

4.5.4.1. Multi-Segment Interface Example

The following example illustrates how to use the Interlaken IP core TX and RX multi-segment interface:

TX Multi-Segment

This example illustrates the expected behavior of multi-segment mode Interlaken IP core at the TX user interface during a 65 byte packet transfer in four-segment interleave mode.
Figure 28. TX Multi-Segment User Interface Example

Even though there are 4-bit allocated to the sob and sop bus, only a maximum of two segment chunks are supported in any given cycle. Because of this reason, you need only two-bit eob, two sets of eopbits and channel numbers.

In this example, in cycle 0, the second segment starts at segment 0 while the first segment data occupies segment 3, 2, and 1. In cycle 1, the first segment of data occupies segment 3 and 2 while the second segment of data occupies the segment 0 and 1.

There are two burst starting in cycle 0. In sob= 4'b1001, the sob[3] refers to the start of a burst at word 15. The sob[0] refers to another start of a burst at word 3. The packet ends in cycle 0. Hence, eopbits=4'b1000 indicates the last word containing eight bytes. eob=1'b1 is for the first segment chunk. The eopbits1 indicates no end of packet since eopbits1[3]=0. The two channel numbers are h'AB and h'CD, respectively.

There is one burst ends and one burst starts in cycle 1. In sob= 4'b0010, the burst in the first segment continues the second segment of the last cycle. There is no sob[3] set in this cycle. The sob[1]=1 of the second segment refers to the start of a burst at word 7. The packet (first segment chunk) ends in this cycle, hence eopbits=4'b1010 indicating the last word contains two bytes. The eob=1'b1 is for the first segment chunk. The eopbits1 indicates no EOP since eopbits1[3]=0. Only the channel number for the second segment chunk is valid, which is 'h02. This channel number corresponds to the burst indicated by sob[1]=1'b1. A channel number is always associated to a start of a burst.

There is one burst ends and one burst starts in cycle 2. In sob= 4'b0100, the burst in the first segment continues the second segment of the last cycle. There is no sob[3] set in this cycle. The packet ends in this cycle, hence, eopbits=4'h1000, indicates the last word containing eight bytes. The eob=1'b1 is for the first segment chunk. The sob[2]=1 of the second segment chunk refers to the start of burst at word 11. The packet ends in this cycle, hence eopbits1=4'b1011 indicates the last word containing three bytes. Also, eob1=1'b1 is the EOB for the second segment chunk. Only the channel number for the second segment chunk is valid here, which is 'h34. This channel number corresponds to the burst indicated by sob[2]=1'b1.

RX Multi-Segment

Below example illustrates behavior of multi-segment mode of the Interlaken IP core at the RX user interface.
Figure 29. RX Multi-Segment User Interface Example