The UFC interface is created when the core is generated with UFC enabled (This 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.
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.
Table: UFC I/O Ports describes the ports for the UFC interface.
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 Table: SIZE Encoding. |
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). |