Native Flow Control Interface - 11.1 English

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

Document ID
PG046
Release Date
2023-10-19
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.

Table: NFC I/O Ports lists the ports for the NFC interface available only in full-duplex Aurora 8B/10B cores.

Table 2-10:      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.

Table: NFC Codes 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-11:      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.