This example assumes that you define the following:
- A setup multiplier of three against the launch clock (
-start). - A hold multiplier of two.
Following is an example:
set_multicycle_path 3 -setup -start -from [get_clocks CLK1] -to [get_clocks CLK2]
set_multicycle_path 2 -hold -from [get_clocks CLK1] -to [get_clocks CLK2]
Defining setup against the launch clock (-start) moves the launch edge for
setup backward by two cycles (3ā1). With -hold
(default -start), the launch edge for hold moves
forward by two cycles. For both setup and hold checks, the capture clock edge does
not change.
Figure 1. Setup=3 (

-start), Hold=2
Important: For FAST-to-SLOW crossings,
set setup to N against the launch clock (
-start). Set hold to
Nā1.Following is an example:
set_multicycle_path N -setup -start -from [get_clocks CLK1] -to [get_clocks CLK2]
set_multicycle_path N-1 -hold -from [get_clocks CLK1] -to [get_clocks CLK2]
The following table summarizes the previous results.
| Scenario | Multicycle Constraints |
|---|---|
| Same domain or synchronous clocks with same period and no phase shift |
|
| Between SLOW-to FAST synchronous clock domains |
|
| Between FAST-to SLOW synchronous clock domains |
|
Note: The
get_clocks command is omitted in the table to simplify
expressions.