IntermediateQuestion 41 of 222

How do you prove clocks reach sequential clock pins?

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

Short Answer

" The standard tool for this is a no_clock check โ€” most STA/PD tools flag any register whose clock pin has no active clock propagating to it, which usually means either a genuine connectivity bug (a broken net, an unintended tie-off) or a legitimate case like a register that's intentionally clocked by a gated/disabled clock in the current mode.

Technical Reference DiagramHow do you prove clocks reach sequential clock pins?

Technical Explanation

  • "
  • The standard tool for this is a no_clock check โ€” most STA/PD tools flag any register whose clock pin has no active clock propagating to it, which usually means either a genuine connectivity bug (a broken net, an unintended tie-off) or a legitimate case like a register that's intentionally clocked by a gated/disabled clock in the current mode.
  • Run targeted report_clock / all_registers -clock_pins style reports and cross-reference against the expected register groups from your design spec โ€” if a block is supposed to have, say, 200 registers on clk_core, verify that count actually shows up, not just that some registers do.
  • Trace a few representative paths with report_timing -from <clock source> -to <register CP> to confirm the logical arc is actually intact end-to-end, not just that a clock object exists somewhere in the hierarchy.
  • Treat the whole exercise as a readiness gate: the output should be a list of named clocks, named register groups, and a clean no_clock report โ€” something a reviewing engineer could rerun from the same handoff data and get the identical result, not something that depended on you eyeballing a schematic.
  • Catching a missing clock connection here, before CTS and routing, is dramatically cheaper than discovering a functionally dead register bank during silicon bring-up.

What To Check

  • Warning sign: A primary clock is reported, yet a gated branch or generated domain never reaches its registers.
  • Inspect: Compare one named object across the related reports; the same object should tell a consistent story.
  • Correct: Repair clock/gating/generated-clock intent or netlist connectivity, then compare affected register groups.

Command Checks & Actions

  • check_timing -include {no_clock gated_clock}: finds missing or inconsistent timing setup
  • report_timing -to <register_clock_pin>: 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: Use no_clock checks and targeted timing reports to correlate expected register groups with clock propagation through logical arcs.
  • 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.