Constraining NMU/NSU Locations - Constraining NMU/NSU Locations - 1.1 English - PG313

Versal Adaptive SoC Programmable Network on Chip and Integrated Memory Controller 1.1 LogiCORE IP Product Guide (PG313)

Document ID
PG313
Release Date
2026-06-23
Version
1.1 English

For complex designs, you can guide the NoC compiler by floorplanning the NoC and constraining the NMU/NSU endpoints to specific physical locations. There are several ways to constrain NMU/NSU endpoints including using the IP integrator. You can use the GUI as shown in the following figures.

  1. Select the NMU/NSU on the NoC Objects pane.
  2. In the NoC Cell Properties pane, click the ellipses (…) to the right of NoC Site Constraint. A Choose NoC Sites window appears.
  3. Select the sites to constrain to in the Choose NoC Sites window.
    Note: You can choose a subset of sites by choosing more than one.
Figure 1. NoC Objects/Cell Properties Generated by Your Tool

This operation is equivalent to using the following Tcl command:

set_property -dict [list CONFIG.PHYSICAL_LOC {NOC2_NMU512_X4Y8}] [get_bd_intf_pins /axi_noc2_2/S00_AXI]]

Running validate_bd_design takes constraining sites this way into account.

When using the modular NoC flow, use the following Tcl command to set a location constraint:

set_property LOCATION NOC_NMU512_X1Y1 <instance>

The NoC compiler picks up these location constraints when running validate_noc. For additional context on setting constraints when using the Modular NoC flow, refer to the basic and advanced tutorials on the subject.

Setting constraints using the above methods allows the impact of these constraints to inform the NoC compiler and feed into simulation. Additionally, the tools translate these constraints into LOC constraints, for use by the placer.

Use the following Tcl command to explicitly add location constraints for the placer, or to override the constraints provided during design entry.

set_property LOC NOC2_NMU512_X0Y2  [get_cells  design_1_i/axi_noc2_1/inst/S00_AXI_nmu/bd_6f26_S00_AXI_nmu_0_top_INST/NOC2_NMU512_INST]

You can place these constraints into an XDC. To change the constraints only requires implementation (placement) to be re-run.

It is possible to extract the LOC constraints from an existing implemented design or a placed/routed checkpoint. The following example Tcl script provides the locations of all the NoC NMU and NSU ports in the design.

set NOC [get_cells -quiet -hierarchical -filter { PRIMITIVE_TYPE =~ ADVANCED.NOC.*}]
foreach i $NOC {
    set LOC [get_property LOC [get_cells "$i"]]
    puts "Location of NoC port $i is $LOC"
}

You can use the list generated by this script as a basis to create LOC constraints to place into an XDC. This is another way of locking down the NoC placement to ensure repeatability of the solution.