Example One: Setup=5 / Hold Moved Accordingly - Example One: Setup=5 / Hold Moved Accordingly - 2026.1 English - UG903

Vivado Design Suite User Guide: Using Constraints (UG903)

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

Assume that the setup path multiplier is set to five (5). Because the hold path multiplier is not specified, the hold relationship is derived from the setup launch and capture edges:

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

By default, the setup multiplier is applied to the capture clock. This moves the capture edge forward. The setup capture edge occurs after five clock periods instead of one. Because no hold multiplier is specified, the hold check uses the capture clock edge that arrives one cycle before the setup capture edge.

The launch clock edges do not change for either the setup or hold relationships.

Figure 1. Setup=5, Hold Moved Accordingly

With a four-cycle hold requirement, implementation tools often add significant delay in the datapath to meet hold timing in both slow and fast corners. This increases area and power consumption unnecessarily. To avoid this, relax the hold requirement when possible.

In this example design, the clock enable signal ensures that holding data in data0_reg for four cycles is not required to prevent metastability. Example Two: Setup=5 / Hold=4 explains how to relax the hold requirement in this case.