Transmitting UFC Messages - 11.1 English

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

Document ID
PG046
Release Date
2023-10-19
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. Table: SIZE Encoding shows the legal SIZE code values for UFC messages.

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

This Figure shows a useful circuit for switching TX_D from sending regular data to UFC data.

Figure 2-17:      Data Switching Circuit

X-Ref Target - Figure 2-17

X12996-pg046_data_switching_circuit_x12996.jpg

Table: Number of Data Beats Required to Transmit UFC Messages 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-9:      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