Visible to Intel only — GUID: dsu1455754493878
Ixiasoft
Visible to Intel only — GUID: dsu1455754493878
Ixiasoft
4.3.2.2.3. Defining the Input/Output Avalon-MM Slave Address Mapping Windows
When you specify the value for Number of Tx address translation windows in the RapidIO II parameter editor, you determine the number of address translation windows available for translating incoming Avalon-MM read and write transactions to RapidIO read and write requests.
You must program the Input/Output Slave Mapping Window registers to support the address ranges you wish to distinguish. You can disable an address translation window that is available in your configuration, but the maximum number of windows you can program is the number you specify in the RapidIO II parameter editor with the Number of Tx address translation windows value.
- A base register: Input/Output Slave Mapping Window n Base
- A mask register: Input/Output Slave Mapping Window n Mask
- An offset register: Input/Output Slave Mapping Window n Offset
- A control register: Input/Output Slave Mapping Window n Control
You can change the values of the window defining registers at any time, even after sending a request packet and before receiving its response packet. However, you should disable a window before changing its window defining registers.
To enable a window, set the window enable (WEN) bit of the window’s Input/Output Slave Mapping Window n Mask register to the value of 1. To disable it, set the WEN bit to the value of zero.
For each defined and enabled window, the RapidIO II IP core masks out the RapidIO address's least significant bits with the window mask and compares the resulting address to the window base.
(ios_rd_wr_addr[31:4] & mask[31:4]) == (base[31:4] & mask[31:4])where:
- ios_rd_wr_addr[31:0] is the I/O Logical layer Avalon-MM slave address bus. If the field has fewer than 32 bits, the IP core pads the actual bus value with leading zeroes for the matching comparison.
- mask[31:4] is the MASK field of the Input/Output Slave Mapping Window n Mask register.
- base[31:4] is the BASE field of the Input/Output Slave Mapping Window n Base register.
rio_addr [33:4] = {xamo, ((offset [31:4] & mask [31:4]) | ios_rd_wr_address[31:4])}where:
- rio_addr[33:0] is the 34-bit RapidIO address composed of {xamsbs[1:0],address[28:0],3b’000} for RapidIO header fields xamsbs and address.
- xamo[1:0] is the XAMO field of the Input/Output Slave Mapping Window n Offset register.
- offset[31:4] is the OFFSET field of the Input/Output Slave Mapping Window n Offset register.
- The definitions of all other terms in the equation appear in the definition of the matching window.
- Sets the WRITE_OUT_OF_BOUNDS or READ_OUT_OF_BOUNDS interrupt bit in the Input/Output Slave Interrupt register.
- Asserts the interrupt signal io_s_mnt_irq if this interrupt is enabled by the corresponding bit in the Input/Output Slave Interrupt Enable register.
- Increments the COMPLETED_OR_CANCELLED_WRITES field of the Input/Output Slave RapidIO Write Requests register if the transaction is a write request.
The Avalon-MM slave interface burstcount and byteenable signals determine the values of the RapidIO packet header fields wdptr and rdsize or wrsize.
The RapidIO II IP core copies the values you program in the PRIORITY and DESTINATION_ID fields of the control register for the matching window, to the RapidIO packet header fields prio and destinationID, respectively.