Late in the flow, how do you stop the router from disturbing already-clean nets?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Late in the flow, you decide which nets the router is allowed to move. In ICC2 the physical_status attribute on a net sets its rerouting mode: locked freezes it, minor_change allows only small changes, and unrestricted is the default. Combine that with ECO routing limited to modified nets, and clean routing stays as it was.
Technical Explanation
- By default Zroute can reroute any net it needs to. Late in the flow that is risky, because timing and signal integrity were closed on the existing wires.
- Setting
physical_statustolockedfreezes a net: routing will not touch it. A frozen net is also skipped bycheck_routesby default, so check it explicitly. - Setting it to
minor_changeallows only small adjustments, enough to fix a nearby violation while keeping the existing route largely in place.unrestrictedrestores the default. route_eco -reroute modified_nets_onlyrestricts ECO routing to the nets that actually changed, which is meant for very small ECOs. The alternatives,modified_nets_first_then_othersandany_nets, allow progressively more disturbance.- In
route_opt, size-only modes such asroute_opt.flow.size_only_modeset totrue_footprintavoid legalization and ECO routing entirely for the final fixes. - Freezing has a price. Every locked net is an obstacle the router cannot move, so if too much of an area is frozen, an ECO net may have no legal path and DRCs will not converge.
What To Check
- How many nets are locked or minor-change, and where.
- Nets rerouted by the last ECO, compared with the nets you meant to change.
- DRCs on locked nets, checked explicitly since the default check skips them.
- Convergence of ECO routing near frozen areas.
Command Checks & Actions
set_attribute -objects [get_nets crit_*] -name physical_status -value lockedFreezes the critical nets so later routing will not touch them.
set_attribute -objects [get_nets bus_*] -name physical_status -value minor_changeAllows only small changes on the bus nets.
route_eco -nets [get_nets eco_*] -reroute modified_nets_onlyRoutes only the changed nets.
check_routesChecks DRCs and opens after the ECO; add frozen shapes explicitly if locked nets must be covered.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): ECO changes confined to the modified nets, frozen nets unchanged and clean, and no new DRCs.
- Suspicious (illustrative): ECO routing taking many iterations near a frozen area, which means the freeze is too tight.
- Hard stop: Locked nets carrying DRCs no one sees, or a broad freeze that leaves an ECO net unroutable.
Common Mistake
The Trap: Locking every net in the block before a small ECO "to be safe". The ECO net has no legal path through the frozen routing, so it stays open, and check_routes also skips all the locked nets. The safe version locks only the timing-critical and clock nets and sets the rest to minor change.
What The Interviewer Is Testing
- Whether you know how rerouting is controlled in ICC2, and at what granularity.
- Do you understand the trade-off between protection and routability?
- A strong answer shows you remember that frozen nets drop out of default checks.
Follow-up Question & Model Response
"How would you choose between locking a net and marking it minor change?"
Candidate Model Response: Lock nets whose exact geometry matters, for example clock trunks, matched-length buses or nets closed at the edge of timing, where any movement risks a failure. Use minor change for nets that should keep their path but can tolerate small adjustments, which gives the router room to fix a nearby DRC. Everything else stays unrestricted. The fewer nets you lock, the easier the ECO will converge.
Practical Example
Tapeout Scenario: A late functional ECO changes 8 nets in a block where 2,400 nets were closed with under 5 ps of slack (illustrative). The engineer locks the 160 clock nets and the 240 tightest data nets, sets 2,000 nets near the ECO to minor change, and runs route_eco -reroute modified_nets_only on the 8. ECO routing converges in 6 iterations and 3 minor-change nets get small jogs to clear spacing. A check including frozen shapes shows the locked nets untouched and clean, and timing moves by under 1 ps outside the ECO paths.
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.

Continue practising