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.
| 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.
| 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.