What specific failure mode does the nworst skew framework in multithreaded CTS fix, and why does it happen in the first place?
From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide
Short Answer
MTCTO (multithreaded CTS) minimizes global skew -- the gap between the longest and shortest clock path. If optimization stalls on the shortest path specifically, other paths remain under-optimized, because the algorithm's attention is consumed trying to fix the one extreme rather than distributing improvement across the whole distribution. cts.optimize.enable_nworst_skew_optimization addresses this by considering more than just the single worst-case pair.
Technical Explanation
- MTCTO minimizes global skew, defined as the gap between the longest and shortest clock path in the tree.
- The failure mode: if optimization stalls trying to fix the shortest path specifically, other paths remain under-optimized, because the algorithm's effort is consumed on one extreme case.
- This happens because global-skew optimization, by definition, is driven by the worst-case pair -- and if that pair is hard to improve further, the optimizer can get stuck there while genuinely fixable paths elsewhere go untouched.
- cts.optimize.enable_nworst_skew_optimization addresses this by considering multiple worst paths rather than fixating on the single extreme pair.
Formula Or Decision Rule
Default global-skew optimization can stall on the single shortest path; nworst skew optimization considers multiple worst paths instead of fixating on one extreme.
What To Check
- Warning sign: MTCTO reports skew optimization has converged, but several individual leaf-to-leaf skew values still look worse than expected.
- Inspect: check whether the reported global skew is being driven by a single stubborn worst-case pair that's masking under-optimization elsewhere.
- Correct: enable cts.optimize.enable_nworst_skew_optimization and re-run to see whether previously-stalled paths improve.
Command Checks & Actions
set_app_options -name cts.optimize.enable_nworst_skew_optimization -value trueConsiders multiple worst paths instead of the single global worst pair.
report_clock_qor -type local_skewReports worst local skew per group, useful for spotting paths the global-skew view alone would hide.
Healthy, Suspicious & Hard-stop Results
- Expected: local skew improves broadly across the tree after enabling nworst skew optimization, not just at the single previously-worst pair.
- Investigate: global skew looks converged, but report_clock_qor -type local_skew shows several paths still far from optimal -- a sign the optimizer may have stalled on one extreme.
- Stop: nworst skew optimization is enabled and runtime increases substantially with no measurable local-skew improvement -- re-evaluate whether this specific design actually has the stall pattern this option addresses.
Common Mistake
The Trap: Assuming a stalled global-skew optimization means the whole tree is near-optimal, when it may actually mean the optimizer is stuck on one hard-to-fix extreme path while other, genuinely improvable paths are left alone.
What The Interviewer Is Testing
Whether you understand WHY global-skew optimization can stall (fixation on one extreme pair) and what nworst skew optimization specifically changes about that.
Practical Example
Debug Scenario: A large clock tree's global skew metric looks converged, but report_clock_qor -type local_skew shows a cluster of paths with meaningfully worse skew than the rest. Enabling cts.optimize.enable_nworst_skew_optimization and re-running lets the optimizer address that cluster instead of continuing to fixate on the single global worst-case pair.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
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.

Continue practising