Assigning Multiple Address Ranges for External Segments - 2020.2 English

Vivado Design Suite User Guide: Designing IP Subsystems Using IP Integrator (UG994)

Document ID
UG994
Release Date
2021-01-04
Version
2020.2 English

Multiple address ranges can be assigned to external master port that can connect to several slaves outside of the IP integrator design environment. Consider the following example where a master can connect to several external slaves.

Figure 1. Example of AXI Master Accessing Multiple Slaves Outside IP Integrator

It is represented as a virtual slave segment, M_AXI/Reg, as shown in the following figure, in the address editor. This segment can be mapped into the address spaces of masters in the diagram, in this case master_1 and master_2.

Figure 2. Address Editor View of AXI Master Accessing Multiple Slaves Outside IP Integrator

The offset of this segment is the offset that the master master_1 uses to initiate transactions to slaves that are connected to the To_External_Slaves interface. This interface can also be used to access other slaves that are not necessarily within the same offset and range by creating other segments as described in the following assign_bd_address Tcl command:

assign_bd_address -external -dict {offset 0x00000000 range 64M offset 0x20000000 
range 4M} [get_bd_addr_segs /master_1/Data/SEG_M_AXI_Reg] -target_address_space 
[get_bd_addr_space /jtag_axi_0]

Executing this Tcl command creates two separate address spaces, one at 0x00000000 with a range of 64M, and the second one at 0x20000000 with a range of 4M. Another way to look at this feature is to assume that the master_1 in this case, needs to address other slaves through the same slave interface To_External_Slaves.