Transmitting UFC Messages - Transmitting UFC Messages - 11.1 English - PG046

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

Document ID
PG046
Release Date
2025-12-18
Version
11.1 English

UFC messages can carry an even number of data bytes from 2 to 16. The user application specifies the length of the message by driving a SIZE code on the s_axi_ufc_tx_tdata port. The following table shows the legal SIZE code values for UFC messages.

Table 1. SIZE Encoding
SIZE Field Contents UFC Message Size
000 2 bytes
001 4 bytes
010 6 bytes
011 8 bytes
100 10 bytes
101 12 bytes
110 14 bytes
111 16 bytes

To send a UFC message, the user application asserts s_axi_ufc_tx_tvalid while driving the s_axi_ufc_tx_tdata port with the desired SIZE code. The s_axi_ufc_tx_tvalid signal must be held until the Aurora 8 B/10 B core asserts the s_axi_ufc_tx_tready signal. The data for the UFC message must be placed on the s_axi_tx_tdata port, starting on the first cycle after s_axi_ufc_tx_tready is asserted. The core deasserts s_axi_tx_tready while the s_axi_tx_tdata port is being used for UFC data.

Note: A UFC request should be given only after completion of the current UFC request; back-to-back UFC requests might not honored by IP.

The following figure shows a useful circuit for switching TX_D from sending regular data to UFC data.

Figure 1. Data Switching Circuit

The following table shows the number of cycles required to transmit UFC messages of different sizes based on the width of the AXI4-Stream data interface. UFC messages should never be started until all message data is available. Unlike regular data, UFC messages cannot be interrupted after s_axi_ufc_tx_tready has been asserted until completion of the current UFC message.

Table 2. Number of Data Beats Required to Transmit UFC Messages
UFC Message s_axi_ufc_tx_tdata Value AXI4 Interface Width Number of Data Beats AXI4 Interface Width Number of Data Beats
2 Bytes 0 2 Bytes 1 10 Bytes 1
4 Bytes 1 2
6 Bytes 2 3
8 Bytes 3 4
10 Bytes 4 5
12 Bytes 5 6 2
14 Bytes 6 7
16 Bytes 7 8
2 Bytes 0 4 Bytes 1 12 Bytes 1
4 Bytes 1
6 Bytes 2 2
8 Bytes 3
10 Bytes 4 3
12 Bytes 5
14 Bytes 6 4 2
16 Bytes 7
2 Bytes 0 6 Bytes 1 14 Bytes 1
4 Bytes 1
6 Bytes 2
8 Bytes 3 2
10 Bytes 4
12 Bytes 5
14 Bytes 6 3
16 Bytes 7 2
2 Bytes 0 8 Bytes 1 16 Bytes or more 1
4 Bytes 1
6 Bytes 2
8 Bytes 3
10 Bytes 4 2
12 Bytes 5
14 Bytes 6
16 Bytes 7