F-Tile Interlaken Intel® FPGA IP User Guide

ID 683622
Date 12/22/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

4.1.1.2. In-Band Calendar Bits on Transmit Side

When you turn on Include in-band flow control functionality,
  • The itx_calendar input signal supports in-band flow control. It is synchronous with tx_usr_clk, but does not align with the packets on the user data interface. The Interlaken IP core reads the itx_calendar bits and encodes them in control words (Burst control words and Idle control words) opportunistically.
  • The Interlaken IP core transmits each page of the itx_calendar bits on the Interlaken link in a separate control word, starting with the most significant page and working through the pages, in order, to the least significant page.
  • The Interlaken IP core fills each flow control bit in each control word with the value of 1.
If you hold all the calendar bits at one, you indicate an XON setting for each channel. You should set the calendar bits to 1 to indicate that the Interlaken link partner does not need to throttle the data it transfers to the Interlaken IP core. Set this value by default if you choose not to use the in-band flow control feature of the Interlaken IP core. If you decide to turn off any channel, you must drive the corresponding bits of itx_calendar with zero (the XOFF setting) for that channel.

Consider an example where the number of calendar pages is four and itx_calendar bits are set to the value 64'h1111_2222_3333_4444. In this example, the Number of calendar pages parameter is set to four, and therefore the width of the itx_calendar signal is 4 x 16 = 64 bits. Each of these bits is a calendar bit. The transmission begins with the page with the value of 16'h1111 and works through the pages in order until the least significant page with the value of 16'h4444.

In this example, four control words are required to send the full set of 64 calendar bits from the itx_calendar signal. The Interlaken IP core automatically sets the Reset Calendar bit[56] of the next available control word to the value of one, to indicate the start of transmission of a new set of calendar pages, and copies the most significant page (16'h1111 in this example) to the In-Band Flow Control bits[55:40] of the control word. It maps the most significant bit of the page to the control word bit[55] and the least significant bit of the page to the control word bit[40].

Table 16.  Value of Reset Calendar Bit and In-band Flow Control Bits in the ExampleThe table shows the value of the Reset Calendar bit and the In-Band Flow Control bits in the four Interlaken link control words that transmit the 64'h1111_2222_3333_4444 value of itx_calendar.
Control Word Reset Calendar Bit (bit [56]) In-Band Flow Control Bits (bits [55:40])
First 1 16'b0001000100010001 (16'h1111)
Second 0 16'b0010001000100010 (16'h2222)
Third 0 16'b0011001100110011 (16'h3333)
Fourth 0 16'b0100010001000100 (16'h4444)

For details of the control word format, refer to the Interlaken Protocol Specification, Revision 1.2.

The IP core supports itx_calendar widths of 1, 2, 4, 8, and 16 16-bit calendar pages. You configure the width in the IP core parameter editor.

By convention, in a standard case, each calendar bit corresponds to a single data channel. However, the IP core assumes no default usage. You must map the calendar bits to channels or link status according to your specific application needs. For example, if your design has 64 physical channels, but only 16 priority groups, you can use a single calendar page and map each calendar bit to four physical channels. As another example, for a different application, you can use additional calendar bits to pass quality-of-service related information to the Interlaken link partner.

If your application flow-controls a channel, you are responsible for dropping the relevant packet. Intel supports the transfer of the itx_calendar values you provide without examining the data that is affected by in-band flow control of the Interlaken link.