Why would you need copy_useful_skew instead of just trusting CCD ran the same everywhere?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
copy_useful_skew copies CCD offsets to new scenarios for consistent timing/QoR reporting when CTS balance-point offsets were derived in only a subset of active scenarios. It also ensures set_clock_latency constraints are set on all pins/scenarios by computing the average offset across active scenarios and scaling it back per corner -- without it, scenarios that never got their own CCD run would report inconsistent, incomparable timing.
Technical Explanation
- copy_useful_skew copies CCD offsets to new scenarios for consistent timing/QoR reporting, specifically when CTS balance-point offsets were derived in only a subset of active scenarios.
- It also ensures
set_clock_latencyconstraints are set on all pins across all scenarios -- computing the average offset across active scenarios and scaling it back per corner. - Without this, scenarios that never had their own CCD run would report timing that isn't directly comparable to scenarios that did -- an apples-to-oranges QoR comparison.
copy_useful_skewis the real command this page names repeatedly -- verify its exact source/destination scenario flag names against the ICC2 Implementation User Guide before publishing a specific invocation.
Common Mistake
The Trap: Assuming CCD offsets automatically apply consistently across every active scenario, when they were actually only derived in the subset that ran CCD -- copy_useful_skew is what makes cross-scenario QoR comparison valid.
Follow-up Question & Model Response
"What would a cross-scenario QoR comparison look like if you skipped copy_useful_skew when it was needed?"
Candidate Model Response: The scenarios that never ran CCD would report timing based on unadjusted clock latencies, while the scenarios that did run CCD would show the benefit of useful-skew offsets -- making a cross-scenario WNS/TNS comparison misleading, since it wouldn't be comparing like-for-like optimization effort.
Practical Example
Debug Scenario: A design reports very different WNS between two scenarios that should behave similarly. Checking whether CCD ran in both, one scenario never got a CCD pass -- running copy_useful_skew to bring its offsets in line with the scenario that did resolves the apparent discrepancy.
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