UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 66717

Vivado IP Integrator - Is it possible to assign an address range that is not a multiple of 2 with the Address Editor

Description

Is it possible to assign an address range that is not a multiple of 2 with the Address Editor?

The AXI interconnect IP has generics that allow you to assign multiple address ranges to get a non-power of 2. However, in the Vivado IP Integrator (IPI) Address Editor it appears that I am only able to assign a power of 2 (2^n).

Solution

It is possible to have an offset that is not a power of 2 but ranges MUST be powers of 2. This is because ranges are defined as ( 2 ^ of the number of bits required to address that range)

The addressable range for a given offset is defined by the number of zero bits available to "flip" from 0 to 1 in the LSB of that offset, which by definition means it must be a power of 2, (i.e. 2 ^ that number of bits)

For Example:

Take for example an offset of 0xF000 (1111_0000_0000_0000 binary)

The maximum high address that can be addressed (without needing more bits) is 0xFFFF or 1111_1111_1111_1111.

The 12 initial zero bits in the LSB define the addressable "range" for this offset ( 2 ^ 12), so you can only address a range of 4K (2 * 2) * (2 ^ 10)

If you assign a range greater that 4K to this offset, it is considered misaligned. When the interconnect is configured with this offset, even if the range you assign is less than 4K, it is still going to allocate the number of address bits required to address that range. That is 2 ^ the number of those bits, so it can only be a power of 2.

AR# 66717
Date Created 02/25/2016
Last Updated 04/06/2016
Status Active
Type General Article
Tools
  • Vivado Design Suite