User 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 UFC interface is created when the core is generated with UFC enabled (see the following figure). UFC s_axi_ufc_tx_tvalid and s_axi_ufc_tx_tready ports on the TX side start the UFC message and a 3-bit s_axi_ufc_tx_tdata port specifies the length of the message. With s_axi_ufc_tx_tready asserted, the UFC message can be supplied to the data port.

Figure 1. Aurora 8B/10B Core UFC Interface

The RX side of the UFC interface consists of a set of AXI4-Stream ports that allows the UFC message to be read as a frame. Simplex modules retain only the interface needed to send data in the supported direction.

The following table describes the ports for the UFC interface.

Table 1. UFC I/O Ports
Name Direction Clock Domain Description
UFC_S_AXIS_TX
s_axi_ufc_tx_tvalid Input user_clk Asserted to request a UFC message be sent to the channel partner. Must be held until s_axi_ufc_tx_tready is asserted. Do not assert this signal unless the entire UFC message is ready to be sent; a UFC message cannot be interrupted after it has started.
s_axi_ufc_tx_tdata[0:2] or s_axi_ufc_tx_tdata[2:0] Input user_clk Specifies the size of the UFC message that is sent. The SIZE encoding is a value between 0 and 7. See the following table.
s_axi_ufc_tx_tready Output user_clk Asserted when an Aurora 8B/10B core is ready to read the contents of the UFC message. On the cycle after the s_axi_ufc_tx_tready signal is asserted, data on the s_axi_tx_tdata port is treated as UFC data. s_axi_tx_tdata data continues to be used to fill the UFC message until enough cycles have passed to send the complete message. Unused bytes from a UFC cycle are discarded.
UFC_M_AXIS_RX
m_axi_ufc_rx_tdata[0:(8n–1)] or m_axi_ufc_rx_tdata[(8n–1):0] Output user_clk Incoming UFC message data from the channel partner (n = 16 bytes maximum).
m_axi_ufc_rx_tvalid Output user_clk Asserted when the values on the m_axi_ufc_rx_tdata ports are valid.
m_axi_ufc_rx_tlast Output user_clk Signals the end of the incoming UFC message.
m_axi_ufc_rx_tkeep[0:(n–1)] or m_axi_ufc_rx_tkeep[(n–1):0] Output user_clk Specifies the number of valid bytes of data presented on the m_axi_ufc_rx_tdata port on the last word of a UFC message. Valid only when m_axi_ufc_rx_tlast is asserted (n = 16 bytes maximum).