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

Vivado Design Suite User Guide: Using Constraints (UG903)

Document ID
UG903
Release Date
2026-07-01
Version
2026.1 English

Assume you define only a setup multiplier of three (3).

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

The setup multiplier moves the capture clock edge used for setup forward by two cycles (3−1). Because you did not specify a hold multiplier, the tool derives the hold relationship from the setup launch and capture edges. The launch clock active edge does not change under the multicycle constraint.

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

Figure 1. Setup=3, Hold Moved Accordingly

Holding data in the launch registers for one CLK2 cycle is unnecessary for this path. Doing so adds logic, increases area, and consumes power. Because the receiving registers use a clock enable, you can safely relax the hold requirement without metastability risk.