GTS Interlaken Intel® FPGA IP User Guide

ID 819200
Date 7/08/2024
Public
Document Table of Contents

4.1.2.3.1. Example With Errors and In-Band Calendar Bits

This example illustrates the expected behavior of the Interlaken IP application interface receive signals during a packet transfer with CRC or other errors. In the example, the errored packet transfer is followed by two idle cycles and a non-errored packet transfer.
Figure 8. Interlaken IP Receiver Side With irx_err ErrorsThis figure shows the attempted transfer of a 179-byte packet on the RX user data transfer interface to channel 2, after the Interlaken IP receives the packet on the Interlaken link and detects corruption. Following the errored packet, the IP transfers an uncorrupted packet to channel 3.

In cycle 1, the Interlaken IP asserts irx_sop[1] when data is ready on irx_dout_words. When the Interlaken IP asserts irx_sop[1], it also asserts the correct value on irx_chan to tell the application the data channel destination of the data. In this example, the value 2 on irx_chan tells the application that the data should be sent to channel number 2.

During the SOP cycle (labeled with data value d1) and the cycle that follows the SOP cycle (labeled with data value d2), the Interlaken IP holds the value of irx_num_valid[7:4] at 4'b1000. In the following clock cycle, labeled with data value d3, the Interlaken IP holds the following values on critical output signals:
  • irx_num_valid[7:4] at the value of 4'b0111 to indicate the current data symbol contains seven 64-bit words of valid data.
  • irx_eopbits[3] high to indicate the current cycle is an EOP cycle.
  • irx_eopbits[2:0] at the value of 3'b011 to indicate that only three bytes of the final valid data word are valid data bytes.
This signal behavior, in the absence of the irx_err flag, correctly transfers a data packet with the total packet length of 179 bytes from the Interlaken IP core. However, the Interlaken IP marks the burst as errored by asserting the irx_err signal, even though the irx_eopbits signal appears to indicate the packet is valid.

The application discards the errored packet when it detects that the IP asserts the irx_err signal. Following the corrupted packet, the IP waits two idle cycles and then transfers a valid 139-byte packet.