BeginnerQuestion 35 of 187

What does check_timing check at this stage?

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

Short Answer

check_timing is not a timing-quality check (it doesn't report slack) โ€” it's a setup/coverage health check that runs before you should trust any slack numbers at all. It looks specifically for missing or inconsistent timing intent: clock pins with no clock reaching them ("no-clock" points), output/register endpoints that never got constrained (unconstrained endpoints), timing loops (combinational cycles that break static analysis), and generated-clock definition problems (a derived clock missing its source or divide-by relationship).

Technical Reference DiagramWhat does check_timing check at this stage?

Technical Explanation

  • " โ€” those are two completely different questions, and skipping this one means any slack report you look at afterward could be silently wrong or incomplete.
  • A common trap: a design can report zero violations in a timing summary simply because huge chunks of it were never actually constrained โ€” check_timing is what catches that, a slack report by itself won't.
  • Practically, review every category check_timing flags (there are several selectable categories beyond the four above) before you start trusting or optimizing against any timing numbers โ€” celebrating "clean timing" without running this first is a classic beginner mistake.

Visual Verification

Visual Verificationcheck_timing Diagnostic: Unconstrained Paths & Missing Clocks

The check_timing utility audits the design for missing clock definitions, unconstrained endpoints, timing loops, and unexpanded generated clocks before running timing optimization.

What To Check

  • Warning sign: Ordinary timing reports look clean because problematic paths never entered analysis.
  • Inspect: Start with one named object in the report and trace it to the netlist, library, or SDC statement that created it.
  • Correct: Run defaults first, add relevant named checks deliberately, classify every finding, and rerun after correction.

Command Checks & Actions

  • check_timing: finds missing or inconsistent timing setup
  • check_timing -include {no_clock unconstrained_endpoints loops}: finds missing or inconsistent timing setup

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

Healthy, Suspicious & Hard-stop Results

  • Expected: It diagnoses missing or inconsistent timing setup such as no-clock points, unconstrained endpoints, loops, generated-clock issues, and other selected categories.
  • 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.

PnR Flow Mentor Guide

Read the complete 8-chapter PnR Flow Mentor Guide free on the web โ€” library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.

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
PnR Flow Physical Design Mentor Guide โ€” eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out.