ExpertQuestion 9 of 161

Setup improves after a multicycle exception but hold becomes strange. Why?

From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide

Short Answer

This is one of the classic SDC traps: declaring a multicycle path fixes the setup check you were chasing, but if you don't also derive the matching hold relationship, hold checking silently goes wrong on the same path. A multicycle path is one that's functionally allowed more than one clock cycle to complete โ€” but set_multicycle_path by default only shifts the setup check; the hold check still assumes the original single-cycle relationship unless you explicitly tell it otherwise with the hold-side multicycle specification.

Technical Reference DiagramSetup improves after a multicycle exception but hold becomes strange. Why?

Technical Explanation

  • The root cause is treating setup and hold as independent knobs when they're actually two views of the same launch/capture edge relationship โ€” shift one without deriving the other from the real protocol, and you get an internally inconsistent set of checks.
  • "
  • This is a good example of why SDC exceptions need to be justified from real functional intent, not tuned reactively against whatever violation is currently showing.

What To Check

  • Warning sign: A copied multicycle number changes min timing unexpectedly.
  • Inspect: Keep at least two possible causes open, then use one named object and the active mode or scenario to separate them.
  • Correct: Re-derive setup and hold intent from the protocol, correct both constraints, and inspect full clock-expanded min and max paths.

Command Checks & Actions

  • report_exceptions: shows timing exceptions and their scope
  • report_timing -delay_type max -path_type full_clock_expanded: shows a path and its timing calculation
  • report_timing -delay_type min -path_type full_clock_expanded: shows a path and its timing calculation

Run the commands in order. Each line answers a separate part of the check.

Healthy, Suspicious & Hard-stop Results

  • Expected: The functional setup-cycle shift and corresponding hold relationship were not derived consistently from launch/capture edges.
  • Stop before floorplanning when required logic or timing coverage is missing or unexplained.

Common Mistake

The Trap: Do not assume the check passed just because ICC2 continued. Fix or narrowly justify the named objects, then rerun the same command.

What The Interviewer Is Testing

Be ready to explain why this matters before floorplanning.

Follow-up Question & Model Response

Model response: โ€œI would save the report, inspect one affected object in the correct block and scenario, and make or request this correction. โ€

Physical Design & Planning Handbook

Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.

Offline PDF Bundle

Want all 1109 questions offline?

Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

See what's inside the bundle
Timing Constraints (SDC) Handbook โ€” nine chaptersSDC ConstraintsNine chapters on clocks, exceptions, and constraint linting.