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]