Transmitter flow-control inputs – Achronix Speedster22i Interlaken User Manual
Page 35

Transmitter Flow-Control Inputs
The IIPC implements the Interlaken in-band flow control mechanism. This mechanism
communicates XON/XOFF for different channels using the In-Band Flow Control bits of Control
words. Additionally, the Multiple-Use bits of Control Words may be used in a similar manner as
described in the
Transmitter Multiple-Use Bits
and
Receiver Multiple-Use Bits
sections.
Inside each Interlaken Control Word are 16 bits of In-Band Flow Control information, bits[55:40],
and a Reset Calendar bit, bit[56]. These bits are shared over the calendar length as described
below. The Interlaken Core has a calendar length of 256 and provides one transmit bit and one
receive bit for each calendar entry.
By definition, XON is represented by 1, and XOFF is represented by 0 for both the Transmitter
and the Receiver. All signals are synchronous with the rising-edge of clk and a detailed
description of each signal follows.
ctl_tx_fc_stat[255:0]
The user is given full flexibility to implement any mechanism to handle system wide flow
control. The IIPC Transmitter simply inputs the user supplied calendar information and packs it
into the Interlaken Control words and transmits it over the link. This mechanism allows the user
to take into account system wide parameters and optimize the buffering by implementing the
most optimum flow control mechanism.
The operation is as described in the Interlaken Protocol Definition. The first calendar entry,
ctl_tx_fc_stat[0], is sent in bit[55] of a Control Word with the Reset Calendar bit, bit[56], set to a
value of 1. The next calendar entry, ctl_tx_fc_stat[1], is sent in bit[54] of the same Control Word
and so on. The 17th calendar entry, ctl_tx_fc_stat[16], is sent in bit[55] the next Control Word that
has the Reset Calendar bit, bit[56], set to a value of 0, and so forth.
ctl_tx_fc_callen[3:0]
The flow control calendar length can be shorter than the maximum calendar length supported by
the IIPCwith the help of ctl_tx_fc_callen parameter. When ctl_tx_fc_callen is a value of 0, the
calendar length become 16 and only ctl_tx_fc_stat[15:0] are used. When ctl_tx_fc_callen is a value
of 1, the calendar length become 32 only ctl_tx_fc_stat[31:0] are used. And so forth. The valid
settings for calendar length are as follows:
•
0x0 = 16 entries
•
0x1 = 32 entries
•
0x3 = 64 entries
•
0x7 = 128 entries
•
0xF = 256 entries
All other values are reserved.
Note: This input should be static and must only be changed during reset.
UG032, May 15, 2014
35