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