By default, the IP core-level constraints lock block RAMs, transceivers, and the PCIe 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, you must 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. Then, move the second module to the location that was occupied by the first module. Then, 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.