The syntax of the set_multicycle_path command
with the basic options is as follows:
set_multicycle_path <path_multiplier> [-setup|-hold] [-start|-end]
[-from <startpoints>] [-to <endpoints>] [-through <pins|cells|nets>]
- Specify the
<path_multiplier>. The timer defaults are as follows:- 1 for setup analysis (recovery)
- 0 for hold analysis (removal)
- Tie the hold relationship to the setup relationship. Use this
formula for common cases:Hold cycles = <setup path multiplier> – 1 – <hold path multiplier>
- Set the setup reference. By default, setup references the
destination clock. Use
-startto reference the source clock. - Set the hold reference. By default, hold references the source
clock. Use
-endto reference the destination clock.
Note: For a definition of the
relevant terms, refer to Timing Analysis in the
Vivado
Design Suite User Guide: Design Analysis and Closure
Techniques (UG906).
Important: Each setup relationship
implies two hold checks. The first ensures the launch edge is not captured by the
earlier capture edge. The second ensures the next launch edge is not captured by the
active capture edge. The tool calculates both and keeps the most restrictive for
analysis and reporting, as shown in the following figure.
Figure 1. Example of Setup and Hold Relationships for a Path

Important:
-start and -end have no visible
effect when paths use the same clock or two identical clocks. Identical means same
waveform, with or without phase shift.The following table summarizes how -start and -end affect the active
launch and capture edges.
Source Clock (-start) Moves the Launch Edge |
Destination Clock (-end) Moves the Capture Edge |
|
|---|---|---|
| Setup | <---- (backward) | ----> (forward) (default) |
| Hold | ----> (forward) (default) | <---- (backward) |
Important: The
-setup option affects hold because hold ties to setup. To restore the
original hold relationship, add another set_multicycle_path with -hold.Note: Apply a multicycle constraint to
a single path, multiple paths, or between two clocks.
The next sections cover common scenarios and show how multipliers and
-start/-end
change the requirement.