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. This Figure and Table: Native Flow Control (NFC) Interface Ports detail the NFC port interface.
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) [Ref 9] .
Note: NFC completion mode is not applicable to streaming designs.
This Figure and This Figure show the NFC message format in big endian (default) and little endian modes.
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.