RapidIO II Intel® FPGA IP User Guide

ID 683444
Date 9/28/2020
Public
Document Table of Contents

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

The RapidIO II IP core converts Avalon® -MM transactions to RapidIO packets. The IP translates the Avalon® -MM burst count, byteenable, and address bit 3 values to the RapidIO packet read size, write size, and word pointer fields.
Table 19.  I/O Logical Layer Slave Read or Write Request Size EncodingFollowing are the allowed Avalon® -MM ios_rd_wr_byteenable values if ios_rd_wr_burstcount has the value of 1, and the corresponding encoding in the packet header fields of a RapidIO read or write request packet.
Avalon® -MM Signal Values19 RapidIO Header Field Values
burstcount (5'dx, 128-bit units) byteenable (16'bxxxx_xxxx_xxxx_xxxx) wdptr (1'bx) rdsize or wrsize (4'bxxxx) address[0] (rio_addr[3])
1 0000_0000_0000_0001 1 0011 0
1 0000_0000_0000_0010 1 0010 0
1 0000_0000_0000_0100 1 0001 0
1 0000_0000_0000_1000 1 0000 0
1 0000_0000_0001_0000 0 0011 0
1 0000_0000_0010_0000 0 0010 0
1 0000_0000_0100_0000 0 0001 0
1 0000_0000_1000_0000 0 0000 0
1 0000_0001_0000_0000 1 0011 1
1 0000_0010_0000_0000 1 0010 1
1 0000_0100_0000_0000 1 0001 1
1 0000_1000_0000_0000 1 0000 1
1 0001_0000_0000_0000 0 0011 1
1 0010_0000_0000_0000 0 0010 1
1 0100_0000_0000_0000 0 0001 1
1 1000_0000_0000_0000 0 0000 1
1 0000_0000_0000_0011 1 0110 0
1 0000_0000_0000_1100 1 0100 0
1 0000_0000_0011_0000 0 0110 0
1 0000_0000_1100_0000 0 0100 0
1 0000_0011_0000_0000 1 0110 1
1 0000_1100_0000_0000 1 0100 1
1 0011_0000_0000_0000 0 0110 1
1 1100_0000_0000_0000 0 0100 1
1 0000_0000_0000_1111 1 1000 0
1 0000_0000_1111_0000 0 1000 0
1 0000_1111_0000_0000 1 1000 1
1 1111_0000_0000_0000 0 1000 1
1 0000_0000_1111_1111 0 1011 0
1 1111_1111_0000_0000 0 1011 1
1 1111_1111_1111_1111 1 1011 0
Table 20.  I/O Logical Layer Slave Read Request Size EncodingFor read requests, if ios_rd_wr_burstcount has a value greater than 1, the only valid value for ios_rd_wr_byteenable is the value of 16’xFFFF. Following are the encoding in the packet header fields of a RapidIO read or write request packet when ios_rd_wr_burstcount has a value greater than 1.
Avalon® -MM Signal Values20 RapidIO Header Field Values
burstcount (5'dx, 128-bit units) 21 byteenable (16'hxxxx) wdptr (1'bx) rdsize (4'bxxxx)21 address[0] (rio_addr[3])
2 FFFF 0 1100 0
3 FFFF 1 1100 0
4 FFFF 1 1100 0
5 FFFF 0 1101 0
6 FFFF 0 1101 0
7 FFFF 1 1101 0
8 FFFF 1 1101 0
9 FFFF 0 1110 0
10 FFFF 0 1110 0
11 FFFF 1 1110 0
12 FFFF 1 1110 0
13 FFFF 0 1111 0
14 FFFF 0 1111 0
15 FFFF 1 1111 0
16 FFFF 1 1111 0
Table 21.  I/O Logical Layer Slave Write Request Size EncodingFor write requests, if ios_rd_wr_burstcount has a value greater than 1, the value of ios_rd_wr_byteenable can be different in the first, intermediate, and final clock cycles of the same request. In all intermediate clock cycles (when ios_rd_wr_burstcount has a value greater than 2), ios_rd_wr_byteenable must have the value of 16’xFFFF. Following are the allowed Avalon® -MM ios_rd_wr_burstcount and initial and final clock cycle ios_rd_wr_byteenable value combinations if the value of ios_rd_wr_burstcount is greater than 1, and their encoding in the packet header fields of a RapidIO write request packet.
Avalon® -MM Signal Values22 RapidIO Header Field Values
burstcount (Decimal, 128-bit units) byteenable (16'hxxxx) wdptr (1'bx) wrsize (4'bxxxx) address[0] (rio_addr[3])
Initial Final
2 FF00 00FF 1 1011 1
FF00 FFFF 0 1100 1
FFFF 00FF 0 1100 0
FFFF FFFF 0 1100 0
3 FF00 00FF 0 1100 1
FF00 FFFF 1 1100 1
FFFF 00FF 1 1100 0
FFFF FFFF 1 1100 0
4 FF00 00FF 1 1100 1
FF00 FFFF 1 1100 1
FFFF 00FF 1 1100 0
FFFF FFFF 1 1100 0
5 FF00 00FF 1 1100 1
FF00 FFFF 1 1101 1
FFFF 00FF 1 1101 0
FFFF FFFF 1 1101 0
6 FF00 00FF 1 1101 1
FF00 FFFF 1 1101 1
FFFF 00FF 1 1101 0
FFFF FFFF 1 1101 0
7 FF00 00FF 1 1101 1
FF00 FFFF 1 1101 1
FFFF 00FF 1 1101 0
FFFF FFFF 1 1101 0
8 FF00 00FF 1 1101 1
FF00 FFFF 1 1101 1
FFFF 00FF 1 1101 0
FFFF FFFF 1 1101 0
9 FF00 00FF 1 1101 1
FF00 FFFF 1 1111 1
FFFF 00FF 1 1111 0
FFFF FFFF 1 1111 0
10, 11, ..., 16 FF00 00FF 1 1111 1
FF00 FFFF 1 1111 1
FFFF 00FF 1 1111 0
FFFF FFFF 1 1111 0
17 FF00 00FF 1 1111 1
19 For read transfers, the I/O Logical layer slave module does not handle byteenable values and byteenable-burstcount combinations that the Avalon® -MM interface does not allow. In case of an invalid combination, the RapidIO II IP core asserts the ios_rd_wr_readresponse signal when it asserts the ios_rd_wr_readdatavalid signal, and sets the INVALID_READ_BYTEENABLE bit of the I/O Slave Interrupt register if this interrupt is enabled in the I/O Slave Interrupt Enable register.
20 The I/O Logical layer slave module does not handle byteenable values and byteenable-burstcount combinations that the Avalon® -MM interface does not allow. In case of an invalid byteenable or burstcount value, the RapidIO II IP core asserts the ios_rd_wr_readresponse signal when it asserts the ios_rd_wr_readdatavalid signal, and sets the INVALID_READ_BYTEENABLE bit or the INVALID_READ_BURSTCOUNT bit (or both) of the I/O Slave Interrupt register if this interrupt is enabled in the I/O Slave Interrupt Enable register.
21 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.
22 The I/O Logical layer slave module does not handle byteenable values and byteenable-burstcount combinations that the Avalon® -MM interface does not allow. In case of an invalid byteenable or burstcount value, the RapidIO II IP core sets the INVALID_WRITE_BYTEENABLE bit or the INVALID_WRITE_BURSTCOUNT bit (or both) of the I/O Slave Interrupt register if this interrupt is enabled in the I/O Slave Interrupt Enable register.