What's the actual difference between targeting CCD at the preroute stage versus the postroute stage?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
At the preroute stage (place_opt/clock_opt), ccd.targeted_ccd_path_groups plus ccd.targeted_ccd_end_points_file target specific path groups and endpoints, with ccd.enable_top_wns_optimization targeting the worst 300 paths specifically. At the postroute stage (route_opt), route_opt.flow.enable_targeted_ccd_wns_optimization is a separate flag, and ccd.targeted_ccd_select_optimization_moves controls which move types are allowed (auto includes buffering; size_only/equal_or_smaller_sizing/footprint_sizing restrict to sizing only).
Technical Explanation
- Preroute (place_opt/clock_opt): ccd.targeted_ccd_path_groups and ccd.targeted_ccd_end_points_file target specific path groups and endpoints; ccd.enable_top_wns_optimization specifically targets the worst 300 paths.
- Postroute (route_opt): a separate flag, route_opt.flow.enable_targeted_ccd_wns_optimization, is required -- preroute targeting settings don't automatically carry over.
- At postroute, ccd.targeted_ccd_select_optimization_moves controls which fix types are allowed: auto (default, includes buffering and all moves), size_only, equal_or_smaller_sizing, or footprint_sizing -- a real constraint on how aggressive the postroute fix can be, since buffering is more disruptive after routing exists.
- A path group listed in BOTH ccd.targeted_ccd_path_groups and ccd.skip_path_groups is skipped -- the skip list always wins over the targeted-inclusion list.
Formula Or Decision Rule
A path group listed in BOTH ccd.targeted_ccd_path_groups and ccd.skip_path_groups is skipped -- skip always wins over targeted inclusion.
What To Check
- Warning sign: a path group was added to ccd.targeted_ccd_path_groups for postroute optimization, but no improvement shows up after route_opt.
- Inspect: confirm route_opt.flow.enable_targeted_ccd_wns_optimization was actually set -- preroute-only targeting settings don't apply at postroute without it.
- Correct: also check the path group isn't simultaneously listed in ccd.skip_path_groups, since skip silently wins.
Command Checks & Actions
set_app_options -name ccd.enable_top_wns_optimization -value trueTargets the worst 300 paths at the preroute stage.
set_app_options -name route_opt.flow.enable_targeted_ccd_wns_optimization -value trueRequired separately to enable targeted CCD at postroute.
set_app_options -name ccd.targeted_ccd_select_optimization_moves -value size_onlyRestricts postroute fixes to sizing only, no buffering.
Healthy, Suspicious & Hard-stop Results
- Expected: targeted path groups show measurable WNS improvement at whichever stage (preroute or postroute) was actually configured with the matching enable flag.
- Investigate: a targeted path group shows no improvement at postroute despite being listed in ccd.targeted_ccd_path_groups -- check whether route_opt.flow.enable_targeted_ccd_wns_optimization was set, since the preroute flag alone doesn't apply there.
- Stop: a path group appears in both the targeted list and the skip list -- resolve that conflict explicitly rather than let the (undocumented-to-the-user) skip-wins behavior silently decide.
Common Mistake
The Trap: Assuming preroute targeted-CCD settings automatically apply at the postroute stage too -- route_opt needs its own separate enable flag.
What The Interviewer Is Testing
Whether you know targeted CCD is configured independently at preroute versus postroute, with a different move-restriction mechanism at postroute specifically.
Practical Example
Debug Scenario: ccd.targeted_ccd_path_groups is set for a critical path group, and preroute WNS improves as expected. After routing, the same path group shows no further improvement from route_opt -- because route_opt.flow.enable_targeted_ccd_wns_optimization, the separate postroute flag, was never set.
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