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).
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)
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.