set_multicycle_path Syntax - set_multicycle_path Syntax - 2026.1 English - UG903

Vivado Design Suite User Guide: Using Constraints (UG903)

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

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>]
  1. Specify the <path_multiplier>. The timer defaults are as follows:
    • 1 for setup analysis (recovery)
    • 0 for hold analysis (removal)
  2. Tie the hold relationship to the setup relationship. Use this formula for common cases:
    Hold cycles = <setup path multiplier> – 1 – <hold path multiplier>
  3. Set the setup reference. By default, setup references the destination clock. Use -start to reference the source clock.
  4. Set the hold reference. By default, hold references the source clock. Use -end to 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.

Table 1. 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.