What's the difference between route_opt and hyper_route_opt, and what does Targeted Endpoint Optimization actually let you do?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
route_opt is the standard post-route optimization command -- up/down-sizing drive strength along failing paths without disturbing other placement. hyper_route_opt is a distinct, more intensive variant. Targeted Endpoint Optimization (set_route_opt_target_endpoints) lets you work on a specific SUBSET of endpoints rather than optimizing the whole design -- useful when only a known set of endpoints are actually violating and you want to avoid disturbing everything else's already-closed timing.
Technical Explanation
- route_opt is the standard post-route optimization command -- up/down-sizing standard cell drive strength along failing paths, without disturbing other instances' placement.
- hyper_route_opt is a distinct, more intensive optimization variant, used when standard route_opt isn't recovering enough.
- set_route_opt_target_endpoints (Targeted Endpoint Optimization, TEP) lets you scope optimization to a specific subset of endpoints, rather than the whole design.
- This matters because post-route optimization is a LOCAL operation -- it may not fully resolve timing if constraints are badly violated, in which case you have to go back to placement/CTS decisions rather than keep pushing route_opt harder.
- Targeted Endpoint Optimization is invoked with
set_route_opt_target_endpoints -endpoints {<endpoint_list>}, lettingroute_optfocus effort on a specific subset of endpoints rather than the whole design.
Common Mistake
The Trap: Running full-design route_opt repeatedly when only a small, known subset of endpoints are actually violating -- risking disturbance to already-closed timing elsewhere when Targeted Endpoint Optimization could have scoped the work down.
Follow-up Question & Model Response
"Why would post-route optimization being described as "local" mean it sometimes can't fully resolve a violation, forcing a return to placement/CTS?"
Candidate Model Response: Because post-route optimization only has cell sizing and limited buffer insertion to work with, constrained to not disturb existing placement -- if the underlying problem is a structural placement or clock-tree issue (not just an undersized cell), no amount of local sizing at the route stage can fix it; the fix has to happen upstream.
Practical Example
Debug Scenario: A handful of known-critical endpoints remain marginally violating after routing. Using set_route_opt_target_endpoints to scope route_opt to just those endpoints avoids re-touching the rest of the design's already-clean timing while focusing optimization effort where it's actually needed.
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