Example Two: Setup=3 / Hold=2 (-end) - Example Two: Setup=3 / Hold=2 (-end) - 2026.1 English - UG903

Vivado Design Suite User Guide: Using Constraints (UG903)

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

To relax the hold requirement for the previous example, move the capture clock edge for hold backward by two cycles. Use the -end option with the hold constraint:

set_multicycle_path 3 -setup -from [get_clocks CLK1] -to [get_clocks CLK2] 
set_multicycle_path 2 -hold -end -from [get_clocks CLK1] -to [get_clocks CLK2]
Tip: Without -end on set_multicycle_path -hold, the tool moves the launch edge forward instead. That does not match the intended hold requirement.

As in Example One: Setup=3 / Hold Moved Accordingly, the setup multiplier moves the capture edge used for setup forward by two cycles (3āˆ’1). The setup and hold relationships after both multicycle constraints appear in the following figure.

Figure 1. Setup=3, Hold=2 (-end)

Important: For a SLOW-to-FAST crossing, when setup uses N, set hold to Nāˆ’1 against the capture clock (-end) in the common case.
set_multicycle_path N -setup -from [get_clocks CLK1] -to [get_clocks CLK2] 
set_multicycle_path N-1 -hold -end -from [get_clocks CLK1] -to [get_clocks CLK2]