IntermediateQuestion 9 of 20Source PDF page 43

Why does a multicycle path need a matching -hold exception, and what happens if you forget it?

From PDVerse STA Mentor Guide · pdVerse Mentor Guide

Explanation

set_multicycle_path relaxes the setup check to allow data more than one clock cycle to arrive, but it does not automatically move the hold check's reference edge. Without an explicit -hold exception, the hold check still defaults to checking against the very next edge (cycle 1), which is now the wrong edge relative to the relaxed setup capture edge.

Timing-path Walkthrough

In the worked example, set_multicycle_path 2 -setup -to [get_pins slow_reg/D] relaxes the setup capture edge to cycle 2. But leaving the hold check unspecified means it still checks against the default edge (cycle 1) — the notes state this produces a false hold violation. The essential partner is set_multicycle_path 1 -hold -to [get_pins slow_reg/D], which re-anchors the hold check to the correct edge consistent with the relaxed setup timing.

Command

set_multicycle_path 2 -setup -to [get_pins slow_reg/D] set_multicycle_path 1 -hold -to [get_pins slow_reg/D]

Switch-by-switch

-setup N: relaxes the setup check to allow N cycles for data arrival. -hold N: re-anchors the hold check's reference edge to be consistent with the relaxed setup edge. -to: targets the exception at a specific endpoint pin.

Expected Report Behavior

With single-cycle analysis: required~1000, arrival~1400 gives slack~−460 (FAIL). Applying set_multicycle_path 2 -setup moves required to ~2000 against the same arrival~1400, giving slack~+540 (PASS) — but omitting the paired -hold 1 leaves a false hold violation showing up elsewhere in the report.

Mentor Note — Common Mistake

Specifying -setup 2 alone and forgetting the paired -hold 1, described in the notes as one of the most common and dangerous SDC mistakes.

How To Debug

After adding any multicycle setup exception, check the hold report at the same endpoint for a newly introduced false violation, and confirm a matching -hold exception is present; also verify a huge positive slack isn't itself an erroneous exception rather than a correct one.

Visual explanationSTA context: Why does a multicycle path need a matching -hold exception, and what…
STA context: Why does a multicycle path need a matching -hold exception, and what…A three-step concept map summarizes the focus, core answer, and practical verification for Why does a multicycle path need a matching -hold exception, and what happens if you forget it?Question focusWhy does a multicyclepath need a matching-hold exception, andwhat…Core answerset_multicycle_pathrelaxes the setup checkto allow data more thanone clock…Verify in practiceset_multicycle_path 2-setup -to [get_pinsslow_reg/D]set_multicycle_path 1…Understand → explain the mechanism → verify the assumptions

Continue learning free

Get a practical low-power chapter

Receive the existing “Low Power and Multivoltage Fundamentals” PDF chapter and its download link by email.