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

Vivado Design Suite User Guide: Using Constraints (UG903)

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

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.

Table 1. Defining a Multicycle Path with a Setup of N
Scenario Multicycle Constraints
Same domain or synchronous clocks with same period and no phase shift
set_multicycle_path N -setup -from CLK1 -to CLK2 
set_multicycle_path N-1 -hold -from CLK1 -to CLK2
Between SLOW-to FAST synchronous clock domains
set_multicycle_path N -setup -from CLK1 -to CLK2 
set_multicycle_path N-1 -hold -end -from CLK1 -to CLK2
Between FAST-to SLOW synchronous clock domains
set_multicycle_path N -setup -start -from CLK1 -to CLK2 
set_multicycle_path N-1 -hold -from CLK1 -to CLK2
Note: The get_clocks command is omitted in the table to simplify expressions.