Example Two: Setup=5 / Hold=4 - Example Two: Setup=5 / Hold=4 - 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 the following are defined:

  • A setup multiplier of five (5)
  • A hold multiplier of four (4) (that is, 5–1)

This corresponds to a transfer between two sequential cells when a new data is launched and captured every five cycles.

set_multicycle_path 5 -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D] 
set_multicycle_path 4 -hold -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]

By default, the setup multiplier references the destination clock, moving the capture edge to the fifth cycle instead of the first.

By default, the hold check follows the setup check.

The hold multiplier references the source clock, moving the launch edge to the fourth cycle.

Figure 1. Setup=5, Hold=4

Because the clocks share identical, phase-aligned waveforms, Figure 1 is equivalent to Figure 2.

Figure 2. Setup=5, Hold=4

Important: In one domain or identical clocks, set hold to Nāˆ’1 when you set setup to N. This is the most common case.
set_multicycle_path N -setup -from [get_pins data0_reg/C] -to [get_pins data1_reg/D] 
set_multicycle_path N-1 -hold -from [get_pins data0_reg/C] -to [get_pins data1_reg/D]