RapidIO Intel FPGA IP User Guide

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

4.5.3.1.1. Input/Output Avalon® -MM Master Address Mapping Windows

Address mapping or translation windows are used to map windows of 34-bit RapidIO addresses into windows of 32-bit Avalon® -MM addresses.

Table 20.  Address Translation Registers
Registers Location
Input/Output master base address 0x10300, 0x10310, 0x10320, 0x10330, 0x10340,0x10350, 0x10360, 0x10370, 0x10380, 0x10390, 0x103A0, 0x103B0, 0x103C0, 0x103D0, 0x103E0, 0x103F0
Input/Output master address mask 0x10304, 0x10314, 0x10324, 0x10334, 0x10344,0x10354, 0x10364, 0x10374, 0x10384, 0x10394, 0x103A4, 0x103B4, 0x103C4, 0x103D4, 0x103E4, 0x103F4
Input/Output master address offset 0x10308, 0x10318, 0x10328, 0x10338, 0x103480x10358, 0x10368, 0x10378, 0x10388, 0x10398, 0x103A8, 0x103B8, 0x103C8, 0x103D8, 0x103E8, 0x103F8

Your variation must have at least one translation window. Intel® Arria® 10 and Intel® Cyclone® 10 GX variations have 16 address translation windows. You can change the values of the window defining registers at any time. You should disable a window before changing its window defining registers.

A window is enabled if the window enable (WEN) bit of the I/O Master Mapping Window n Mask register is set.

The number of mapping windows is defined by the Number of receive address translation windows parameter, which supports up to 16 sets of registers. Each set of registers supports one address mapping window.

For each window that is defined and enabled, the least significant bits of the incoming RapidIO address are masked out by the window mask and the resulting address is compared to the window base. If the addresses match, the Avalon® -MM address is made of the least significant bits of the RapidIO address and the window offset using the following equation:

Let rio_addr[33:0] be the 34-bit RapidIO address, and address[31:0] the local Avalon® -MM address.

Let base[31:0], mask[31:0] and offset[31:0] be the three window-defining registers. The least significant three bits of these registers are always 3’b000.

Starting from window 0, for the first window in which 
((rio_addr & {xamm, mask}) == ({xamb, base} & {xamm, mask}), 

where xamm and xamb are the Extended Address MSB fields of the I/O Master Mapping Window n Mask and the I/O Master Mapping Window n Base registers, respectively, 

let address[31:3] = (offset[31:3] & mask[31:3]) |
 (rio_addr[31:3] & ~mask[31:3])

The value of address[2] is zero for variations with 64-bit wide datapath Avalon® -MM interfaces.

The value of address[2] is determined by the values of wdptr and rdsize or wrsize for variations with 32-bit wide datapath Avalon® -MM interfaces.

The value of address[1:0] is always zero.

For each received NREAD or NWRITE_R request packet that does not match any enabled window, an ERROR response packet is returned.

Figure 25. I/O Master Window Translation

RapidIO Packet Data wdptr and Data Size Encoding in Avalon® -MM Transactions

The RapidIO IP core converts RapidIO packets to Avalon® -MM transactions. The RapidIO packets’ read size, write size, and word pointer fields are translated to the Avalon® -MM burst count and byteenable values.

Table 21.   Avalon® -MM I/O Master Read Transaction Burstcount (32-bit or 64-bit datapath)
RapidIO Values Avalon® -MM Burstcount Value
rdsize

(4'bxxxx)

wdptr

(1'bx)

in 32-Bit Datapath In 64-Bit Datapath
0000 0 1 1
1 1 1
0001 0 1 1
1 1 1
0010 0 1 1
1 1 1
0011 0 1 1
1 1 1
0100 0 1 1
1 1 1
0101 0 1 1
1 1 1
0110 0 1 1
1 1 1
0111 0 2 1
1 2 1
1000 0 1 1
1 1 1
1001 0 2 1
1 2 1
1010 0 2 1
1 2 1
1011 0 2 1
1 4 2
1100 0 8 4
1 16 8
1101 0 24 12
1 32 16
1110 0 40 20
1 48 24
1111 0 56 28
1 64 32
Table 22.  RapidIO Master Write Transaction Burstcount and Byteenable (32-Bit Datapath)
RapidIO Values Avalon® -MM Values
wrsize

(4'bxxxx)

wdptr

(1'bx)

Maximum Burstcount Byteenable (8’b0000xxxx)
First Cycle or All Cycles Second Cycle (If Different)
0000 0 1 1000
1 1 1000
0001 0 1 0100
1 1 0100
0010 0 1 0010
1 1 0010
0011 0 1 0001
1 1 0001
0100 0 1 1100
1 1 1100
0101 0 22 1 1110
122 1 0111
0110 0 1 0011
1 1 0011
0111 0 2 1000 1111
1 2 1111 0001
1000 0 1 1111
1 1 1111
1001 0 2 1100 1111
1 2 1111 0011
1010 022 2 1110 1111
122 2 1111 0111
1011 0 2 1111 1111
1 4 1111
1100 0 8 1111
1 16 1111
1101 0 23
1 32 1111
1110 023
123
1111 023
1 64 1111
Table 23.  RapidIO Master Write Transaction Burstcount and Byteenable (64-Bit Datapath) for 2x and 4x Variations
RapidIO Values Avalon® -MM Values
wrsize

(4'bxxxx)

wdptr

(1'bx)

Maximum Burstcount Byteenable (8’bxxxxxxxx)
0000 0 1 1000_0000
1 1 0000_1000
0001 0 1 0100_0000
1 1 0000_0100
0010 0 1 0010_0000
1 1 0000_0010
0011 0 1 0001_0000
1 1 0000_0001
0100 0 1 1100_0000
1 1 0000_1100
0101 022 1 1110_0000
122 1 0000_0111
0110 0 1 0011_0000
1 1 0000_0011
0111 022 1 1111_1000
122 1 0001_1111
1000 0 1 1111_0000
1 1 0000_1111
1001 022 1 1111_1100
122 1 0011_1111
1010 022 1 1111_1110
122 1 0111_1111
1011 0 1 1111_1111
1 2 1111_1111
1100 0 4 1111_1111
1 8 1111_1111
1101 023
1 16 1111_1111
1110 023
123
1111 023
1 32 1111_1111
22

This combination of wdptr and wrsize values should be avoided, because the resulting byteenable value is not allowed by the Avalon® -MM specification.

23 This combination of wdptr and wrsize value is reserved. If this combination is received, the RapidIO IP core declares an error.