Example One: Setup=3 / Hold Moved Accordingly - 2023.2 English

Vivado Design Suite User Guide: Using Constraints (UG903)

Document ID
UG903
Release Date
2023-11-01
Version
2023.2 English

For example, assume that only a setup multiplier of three (3) is defined.

set_multicycle_path 3 -setup -from [get_clocks CLK1] -to [get_clocks CLK2]

The consequence of the setup multiplier is to move the edge of the capture clock used for setup check forward by two (2) cycles (that is, 3-1 cycles). Because no hold multiplier has been specified, the hold relationship is derived by the tool from the setup launch and capture edges. The launch clock active edge is not modified by the Multicycle constraint.

The setup and hold relationships after the multicycle are shown in the following figure:

Figure 1. Setup=3, Hold Moved Accordingly

There is no need to hold the data in the launch registers for one cycle of CLK2 for this path to be functional. Doing so adds unnecessary logic, which increases area and consumes power.

Because the receiving registers have a clock enable signal, it is safe to relax the hold requirement without risks of metastability.