IntermediateQuestion 252 of 142Source PDF page undefined

What does report_ccd_timing actually show you by default, and how do you dig deeper into one specific decision?

From PDVerse PnR Interview Handbook · pdVerse Mentor Guide

Short Answer

By default, report_ccd_timing reports setup/hold slack of the worst capture (D-slack) and launch (Q-slack) paths for the 5 most critical endpoint registers. -type stage shows previous/current/next stage info for a specific pin; -type chain shows the full previous/current/next chain (multiple stages back and forward); -prepone/-postpone with -pins lets you analyze the effect of shifting clock arrival at a specific endpoint before committing to it.

Technical Reference DiagramWhat does report_ccd_timing actually show you by default, and how do you dig deeper into one specific decision?
What does report_ccd_timing actually show you by default, and how do you dig deeper into one specific decision?, illustrating the physical design concept.

Technical Explanation

  • By default, report_ccd_timing reports D-slack (worst capture path) and Q-slack (worst launch path) for the 5 most critical endpoint registers -- not the whole design.
  • -type stage shows previous/current/next stage info for a specific pin; -type chain extends that to the full multi-stage chain, both back and forward from the point of interest.
  • -prepone/-postpone with -pins lets you analyze the effect of shifting clock arrival at a specific endpoint before actually committing to that change -- a what-if, not a commit.
  • -annotate_cell_delay/-annotate_net_delay go further: they analyze hypothetical delay changes for debug purposes only, without saving them.

What To Check

  • Warning sign: CCD claims a useful-skew fix helped a path, but the endpoint isn't in the default top-5 report and you can't see what actually changed.
  • Inspect: use -pins to target that specific endpoint directly rather than relying on the default top-5 view.
  • Correct: use -type chain on that pin to see the full sequence of stages CCD's offset decision actually touched.

Command Checks & Actions

ICC2report_ccd_timing

Reports D-slack/Q-slack for the 5 most critical endpoints by default.

ICC2report_ccd_timing -pins <pin> -type chain

Traces the full stage chain for one specific endpoint.

ICC2report_ccd_timing -prepone <value> -pins <pin>

Previews the effect of shifting clock arrival before committing.

Healthy, Suspicious & Hard-stop Results

  • Expected: the top-5 report and a targeted -pins report on a specific endpoint agree on direction and magnitude of the CCD offset.
  • Investigate: a targeted -pins report shows a much larger or smaller offset than the top-5 summary implied -- check whether that endpoint's real criticality was underrepresented in the default view.
  • Stop: a -prepone/-postpone preview is being treated as already-applied without actually re-running the real optimization -- it's analysis-only and doesn't change the design.

Common Mistake

The Trap: Only ever reading the default top-5 report_ccd_timing output and assuming it covers every endpoint CCD actually touched.

What The Interviewer Is Testing

Whether you know report_ccd_timing's default scope (5 worst endpoints only) and how to target a specific pin or trace a full stage chain when the default view isn't enough.

Practical Example

Debug Scenario: A specific endpoint's slack changed after a CCD run, but it isn't in the default top-5 report_ccd_timing output. Running report_ccd_timing -pins <that_pin> -type chain shows exactly which upstream stage's offset decision affected it.

Physical Design & Planning Handbook

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