Why does timing change after routing even if placement didn't change?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Before routing, net delays come from estimates: virtual routes or global routes and estimated parasitics. After routing, every net has its real length, layers and vias, and real neighbours that add coupling. Those differences change delay, and crosstalk appears for the first time, so slack moves even though no cell moved.
Technical Explanation
- Preroute timing uses estimated wire lengths, often close to the shortest possible path. Real routes detour around blockages, macros and congestion, so they are almost always longer.
- Layer assignment changes resistance. The estimate may assume an average layer mix; a critical net that ends up mostly on M2 and M3 is much more resistive than one on M6.
- Every via on the real route adds resistance that the estimate may not have fully counted.
- Real neighbours set real coupling capacitance. A net that runs next to a busy bus picks up capacitance and, with signal integrity analysis on, crosstalk delta delay.
- Clock nets change too. Real clock routing can shift latency by a few picoseconds per branch, which changes skew and moves both setup and hold slack.
- Hold can get worse as well as setup. Crosstalk that speeds up a net in the same direction makes data arrive earlier, and a clock branch that got slower delays capture.
- Tools reduce the surprise by using global route based estimates and good RC correlation, but routing always adds information that was not available earlier. Postroute optimization exists to handle it.
- Extraction corners matter here too. Preroute timing may have used one estimated corner; postroute signoff checks each RC corner separately, so a path can pass in the corner you looked at before routing and fail in RCworst after. Hold paths are checked in the fast corners, which need their own routed extraction too.
Common Mistake
The Trap: Blaming the router when slack drops after routing and trying to "fix" it with routing options. Usually the drop comes from the real wiring: longer routes, more resistive layers and coupling to neighbours. The right response is to find which nets changed most and fix those with sizing, buffering, layer promotion or spacing in postroute optimization. More router effort does not shorten a detour caused by a macro in the way.
Follow-up Question & Model Response
"How would you find which nets caused most of the slack change?"
Candidate Model Response: Compare the same path before and after routing, net by net. Look for nets whose capacitance or delay grew most, then check whether that came from extra length, lower layers, more vias or coupling. report_timing with net and capacitance columns shows this per stage, and adding the crosstalk delta column shows how much came from coupling. Usually a small number of nets explain most of the change, and they tell you whether the cause is detours, layers or neighbours. Save the preroute timing report for the critical paths before routing starts, so the comparison is possible.
Practical Example
Tapeout Scenario: A path shows +12 ps slack on estimated parasitics (illustrative). After routing and extraction, it shows -9 ps. Stage by stage, most of the change sits on two nets: one detoured 85 um around a macro and landed mostly on M3, adding 11 ps, and one runs beside a data bus and picks up 8 ps of crosstalk delta delay. The other ten stages together added about 2 ps. Postroute optimization upsizes the first net's driver and the second net gets a spacing rule and is rerouted with route_eco; the path finishes at +3 ps. The same comparison in the fast corner shows short paths moving the other way: same-direction crosstalk can take 2 to 3 ps off a hold margin, so hold is rechecked with signal integrity on as well (illustrative).
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