Constraints Processing Order and Invalid Constraints - 2023.2 English

Vivado Design Suite User Guide: Using Constraints (UG903)

Document ID
Release Date
2023.2 English

The Timing Constraints Wizard recommends missing constraints that define clocks or refer to clocks, that are saved either at the end of the target XDC file in project mode, or at the end of all constraints in other modes. For this reason, you must understand the following rules:

Project mode
Specify a target XDC file with its processing order set to NORMAL before launching the Timing Constraints wizard. The target XDC file must belong to the Constraints Set of the design open in memory and currently selected. The position of the target XDC file among the other XDC files matters because it specifies where the recommended constraints are applied and saved later. Also, the wizard tries to re-apply any invalid constraint that belongs to XDC files parsed after the target XDC file to provide the most complete and accurate recommendations.

For example, consider the netlist from synth_1 run open in memory with the Constraints Set constr_1. This Constraints Set contains three XDC files in the sequence a.xdc, b.xdc, and c.xdc. If you choose b.xdc as the target XDC file and each file contains an invalid constraint, the Timing Constraints wizard applies the recommended clocks, then re-applies the invalid constraints from c.xdc before proceeding to the next step and discovering other missing constraints.

Non-project or Design Check Point (DCP) modes
You cannot specify a target XDC file in these modes, so the Timing Constraints wizard recommends and applies new constraints at the last position of the constraints sequence. This is equivalent to entering new constraints in the Tcl Console or via the Timing Constraints window. In these modes, the wizard does not attempt to re-apply invalid constraints. If the new constraints need to be applied earlier in the overall constraints sequence to resolve constraints dependencies or precedence issues, edit the constraints sequence manually.

Here is an example of how to manually edit constraints.

  1. Create new constraints using the Vivado Design Suite.
  2. Run one of the following commands:
    write_xdc -exclude_physical timing_constraints.xdc write_xdc -type timing timing_constraints.xdc
  3. Edit timing_constraints.xdc to move the new constraints higher in the XDC file.
  4. Save the file.
  5. Run the following command:
  6. Read the edited timing constraints file by typing:
    read_xdc timing_constraints.xdc

Review the updated timing constraints sequence using the Timing Constraints window. After reviewing the new constraints, save the sequence into the DCP.