By default, the IP core-level constraints lock block RAMs, UltraRAMs,
transceivers, and the integrated block
to the recommended location. To relocate these blocks, you must override the constraints
for these blocks in the XDC constraint file. To do so:
- Copy the constraints for the block that needs to be overwritten from the core-level XDC constraint file.
- Place the constraints in the user XDC constraint file.
- Update the constraints with the new location.
The user XDC constraints are usually scoped to the top-level of the design; therefore, ensure that the cells referred by the constraints are still valid after copying and pasting them. Typically, you need to update the module path with the full hierarchy name.
Note: If there are locations that need to be swapped (that is, the new location is currently
being occupied by another module), there are two ways to do this.
- If there is a temporary location available, move the first module out of the way to a new temporary location first. Move the second module to the location that was occupied by the first module. Next, move the first module to the location of the second module. These steps can be done in XDC constraint file.
- If there is no other location available to be used as a temporary location, use
the
reset_property
command from Tcl command window on the first module before relocating the second module to this location. Thereset_property
command cannot be done in XDC constraint file and must be called from the Tcl command file or typed directly into the Tcl Console.