Native Flow Control Interface - 12.0 English

Aurora 64B/66B LogiCORE IP Product Guide (PG074)

Document ID
PG074
Release Date
2023-11-17
Version
12.0 English

The Aurora 64B/66B protocol includes Native Flow Control (NFC) allowing receivers to control the rate at which data is sent by specifying the number of cycles during which the channel partner cannot send data. The data flow can even be turned off completely (XOFF) by requesting the transmitter to temporarily send only idles. NFC is typically used to prevent FIFO overflow conditions. The following figure and table detail the NFC port interface.

Figure 1. NFC Port Interface
Table 1. Native Flow Control (NFC) Interface Ports
Name Direction Clock Domain Description
NFC_S_AXIS_TX
s_axi_nfc_tx_tvalid Input user_clk Asserted (High) to request sending an NFC message to the channel partner. Must be held until s_axi_nfc_tx_tready is asserted.
s_axi_nfc_tx_tready Output user_clk Asserted (High) when an Aurora 64B/66B core accepts an NFC request.
s_axi_nfc_tx_tdata[0:15] or s_axi_nfc_tx_tdata[15:0] Input user_clk Incoming NFC message data from the channel partner.

For a detailed explanation of NFC operation, see the Aurora 64B/66B Protocol Specification (SP011).

Note: NFC completion mode is not applicable to streaming designs.

The following two figures show the NFC message format in big endian (default) and little endian modes.

Figure 2. NFC Message in Default Big Endian Mode

Figure 3. NFC Message in Little Endian Mode

Note:
  1. [n:0] bus format is used when the Little Endian support option is selected. [0:n] bus format is used when the Big Endian support option is selected. The core has the option to configure the AXI4-Stream User I/O as little endian from the Vivado IDE. The default is big endian.
  2. Ports are active-High unless specified otherwise.