Native Flow Control Interface - 11.1 English - PG046

Aurora 8B/10B LogiCORE IP Product Guide (PG046)

Document ID
PG046
Release Date
2025-05-29
Version
11.1 English

The NFC interface is created when the core is generated with the NFC option enabled. This interface includes a request (s_axi_nfc_tx_tvalid ) and an acknowledge (s_axi_nfc_tx_tready ) port that are used to send NFC messages, and a 4-bit s_axi_nfc_tx_tdata port to specify the number of idle cycles requested.

The following table lists the ports for the NFC interface available only in full-duplex Aurora 8B/10B cores.

Table 1. NFC I/O Ports
Name Direction Clock Domain Description
NFC_S_AXIS_TX
s_axi_nfc_tx_tready Output user_clk Asserted when the core accepts an NFC request.

s_axi_nfc_tx_tdata[0:3] or

s_axi_nfc_tx_tdata[3:0]

Input user_clk Indicates the number of PAUSE idles the channel partner must send when it receives the NFC message. Must be held until s_axi_nfc_tx_tready is asserted.
s_axi_nfc_tx_tvalid Input user_clk Asserted to request an NFC message be sent to the channel partner. Must be held until s_axi_nfc_tx_tready is asserted.
NFC_M_AXIS_RX
m_axi_nfc_tx_tvalid Output user_clk Indicates an NFC message is received from the partner.

m_axi_nfc_tx_tdata[0:3] or

m_axi_nfc_tx_tdata[3:0]

Output user_clk Indicates the PAUSE value of the received NFC message. This port should be sampled with m_axi_nfc_tx_tvalid.

The following table shows the codes for native flow control (NFC). These values are driven on bits [0:3] for big endian format and [3:0] for little endian format.

Table 2. NFC Codes
s_axi_nfc_tx_tdata Idle Cycles Requested
0000 0 (XON)
0001 2
0010 4
0011 8
0100 16
0101 32
0110 64
0111 128
1000 256
1001 to 1110 Reserved
1111 Infinite (XOFF)

The user application asserts s_axi_nfc_tx_tvalid and writes an NFC code to s_axi_nfc_tx_tdata . The NFC code indicates the minimum number of idle cycles the channel partner should insert in its TX data stream. The user application must hold s_axi_nfc_tx_tvalid and s_axi_nfc_tx_tdata until s_axi_nfc_tx_tready is asserted. Aurora 8B/10B cores cannot transmit data while sending NFC messages. s_axi_tx_tready is always deasserted on the cycle following an s_axi_nfc_tx_tready assertion.