ExpertQuestion 272 of 111Source PDF page undefined

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 Reference DiagramWhat's the actual difference between targeting CCD at the preroute stage versus the postroute stage?
What's the actual difference between targeting CCD at the preroute stage versus the postroute stage?, illustrating the physical design concept.

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

ICC2set_app_options -name ccd.enable_top_wns_optimization -value true

Targets the worst 300 paths at the preroute stage.

ICC2set_app_options -name route_opt.flow.enable_targeted_ccd_wns_optimization -value true

Required separately to enable targeted CCD at postroute.

ICC2set_app_options -name ccd.targeted_ccd_select_optimization_moves -value size_only

Restricts 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

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