RapidIO Intel FPGA IP User Guide

ID 683884
Date 9/15/2021
Public
Document Table of Contents

4.5.3.4. Avalon® -MM Burstcount and Byteenable Encoding in RapidIO Packets

The RapidIO IP core converts Avalon® -MM transactions to RapidIO packets. The Avalon® -MM burst count, byteenable, and, in 32-bit variations, address bit 2 values are translated to the RapidIO packets' read size, write size, and word pointer fields.

Table 25.  Read Request Size Encoding (32-bit datapath)
Avalon® -MM Values RapidIO Values
burstcount 24 address[0]

(1'bx) 25

wdptr

(1'bx)

rdsize

(4'bxxxx)25

1 1 0 1000
1 0 1 1000
2 0 0 1011
3–4 0 1 1011
5–8 0 0 1100
9–16 0 1 1100
17–24 0 0 1101
25–32 0 1 1101
33–40 0 0 1110
41–48 0 1 1110
49–56 0 0 1111
57–64 0 1 1111
Table 26.  Write Request Size Encoding (32-bit datapath)
Avalon® -MM Values RapidIO Values
burstcount26 byteenable

(4'bxxxx)

address [0]

(1'bx)27

wdptr

(1'bx)

wrsize

(4'bxxxx)

1 1000 1 0 0000
1 0100 1 0 0001
1 0010 1 0 0010
1 0001 1 0 0011
1 1000 0 1 0000
1 0100 0 1 0001
1 0010 0 1 0010
1 0001 0 1 0011
1 1100 1 0 0100
1 1110 28 1 0 0101
1 0011 1 0 0110
1 1100 0 1 0100
1 011128 0 1 0101
1 0011 0 1 0110
1 1111 1 0 1000
1 1111 0 1 1000
2 111129 0 0 1011
4 1 1011
6 or 8 0 1100
10, 12, 14, 16 1 1100
18, 20, 22, 24 1 1101
26, 28, 30, 32 1 1101
34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64 1 1111
Table 27.  Allowed Read Request Size Encoding (64-bit datapath variations)
Avalon® -MM Values RapidIO

Values

burstcount24 wdptr

(1'bx)

rdsize

(4'bxxxx)24

1 1'b0 4'b1011
2 1'b1 4'b1011
3–4 1'b0 4'b1100
5–8 1'b1 4'b1100
9–12 1'b0 4'b1101
13–16 1'b1
17–20 1'b0 4'b1110
21–24 1'b1
25–28 1'b0 4'b1111
29–32 1'b1

The following table lists the allowed burst count and byteenable combinations for RapidIO IP core variations with a 64-bit Avalon® -MM interface. Avalon® -MM value combinations not listed flag interrupts in the RapidIO IP core.

Table 28.  Write Request Size Encoding (64-bit datapath)
Avalon® -MM Values RapidIO Values
burstcount byteenable

(8'bxxxx_xxxx)

wdptr

(1'bx)

wrsize

(4'bx)

1 1000_0000 0 0000
1 0100_0000 0 0001
1 0010_0000 0 0010
1 0001_0000 0 0011
1 0000_1000 1 0000
1 0000_0100 1 0001
1 0000_0010 1 0010
1 0000_0001 1 0011
1 1100_0000 0 0101
1 1110_000028 0 0110
1 0011_0000 0 0111
1 1111_100028 0 1000
1 0000_1100 1 1000
1 0000_011128 1 1001
1 0000_0011 1 1001
1 0001_111128 1 1010
1 1111_0000 0 1000
1 0000_1111 1 1000
1 1111_1100 0 1001
1 0011_1111 1 1001
1 1111_111028 0 1010
1 0111_111128 1 1010
1 1111_1111 0 1011
2 1111_111130 1 1011
3–4 0 1100
5–8 1 1100
9–12 1 1101
13–16
17–20 1 1111
21–24
25–28
29–32
24 For read transfers, the read size of the request packet is rounded up to the next supported size, but only the number of words corresponding to the requested read burst size is returned.
25 Burst transfers of more than one Avalon® -MM word must start on a double-word aligned Avalon® -MM address. If the slave read burst count is larger than one and io_s_rd_address[0] is not zero, the transfer completes in the same manner as a failed mapping: the READ_OUT_OF_BOUNDS bit in the Input/Output Slave Interrupt register is set, sys_mnt_s_irq is asserted if enabled, and the transfer is marked as errored by asserting io_s_rd_readerror for the duration of the burst.
26 For write transfers in variations with 32-bit wide datapaths, odd burst sizes other than 1 are not supported. If one occurs, the INVALID_WRITE_BURSTCOUNT bit in the Input/Output Slave Interrupt register is set, causing sys_mnt_s_irq to be asserted if enabled.
27 Burst transfers of more than one Avalon® -MM word must start on a double-word aligned Avalon® -MM address. If io_s_wr_burstcount is larger than one and io_s_wr_address[0] is not zero, the transfer completes in the same manner as a failed mapping; the WRITE_OUT_OF_BOUNDS bit in the Input/Output Slave Interrupt register is set and sys_mnt_s_irq is asserted if enabled.
28 This is not a legal Avalon® -MM byteenable pattern, but the RapidIO IP core supports it if user logic generates it.
29 For all Avalon® -MM write transfers with burstcount larger than 1, io_s_wr_byteenable must be set to 4’b1111. If it is not, the transfer fails: the INVALID_WRITE_BYTEENABLE bit in the Input/Output Slave Interrupt register is set and io_s_mnt_irq is asserted if enabled.
30 For all Avalon® -MM write transfers with burstcount larger than 1, io_s_wr_byteenable must be set to 8’b1111_1111. If it is not, the transfer fails: the INVALID_WRITE_BYTEENABLE bit in the Input/Output Slave Interrupt register is set and io_s_mnt_irq is asserted if enabled.