By default, the Vivado IDE uses all XDC files and
Tcl scripts in a constraint set for both synthesis and implementation. Set the USED_IN_SYNTHESIS and USED_IN_IMPLEMENTATION properties on an XDC file or Tcl script to change
this behavior. Assign each property a value of TRUE or
FALSE.
DONT_TOUCH attribute does not follow the USED_IN_SYNTHESIS and USED_IN_IMPLEMENTATION properties. If you apply DONT_TOUCH properties in the synthesis XDC, they propagate to
implementation, regardless of the value assigned to USED_IN_IMPLEMENTATION. Refer to RTL Attributes for more information about the DONT_TOUCH attribute.USED_IN_SYNTHESIS=TRUE and USED_IN_IMPLEMENTATION=FALSE. Create another XDC file for implementation
with USED_IN_SYNTHESIS=FALSE and USED_IN_IMPLEMENTATION=TRUE. No such limitation exists
during implementation because netlists from OOC module DCPs are linked with the netlist
generated from top-level design synthesis. Vivado Design Suite resolves black boxes during implementation, applying
XDC output products and user constraints.read_xdc
or open_checkpoint. However, when applying constraints through the Tcl
Console or unmanaged XDC files, use the protected, obfuscated names for design elements
in those constraints. For example, follow these instructions to use a constraint file for implementation only.
- Select the constraint file in the Sources window.
- In the Source File
Properties window:
- Clear Synthesis.
- Select Implementation.
The equivalent Tcl commands are as follows:
set_property USED_IN_SYNTHESIS false [get_files wave_gen_pins.xdc]
set_property USED_IN_IMPLEMENTATION true [get_files wave_gen_pins.xdc]
When running Vivado in non-project mode, you can
read in the constraints directly between any steps of the flow. In this mode, the
properties USED_IN_SYNTHESIS and
USED_IN_IMPLEMENTATION do not apply.
The following compilation Tcl script demonstrates how to read two XDC files for different steps of the flow:
read_verilog [glob src/*.v]
read_xdc wave_gen_timing.xdc
synth_design -top wave_gen -part xc7k325tffg900-2
read_xdc wave_gen_pins.xdc
opt_design
place_design
route_design
| File Name | File Placement | Used For |
|---|---|---|
| wave_gen_timing.xdc | Before synthesis |
|
| wave_gen_pins.xdc | After synthesis | Implementation |