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 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
report_ccd_timingReports D-slack/Q-slack for the 5 most critical endpoints by default.
report_ccd_timing -pins <pin> -type chainTraces the full stage chain for one specific endpoint.
report_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
Master ASIC Physical Design Planning & Floorplanning
Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.
Continue practising