How do you make postroute optimization SI-aware?
From PDVerse PnR Interview Handbook · pdVerse Mentor Guide
Short Answer
Turn on signal integrity analysis in the timer before postroute optimization, so extraction keeps coupling capacitance and timing includes crosstalk delta delay. route_opt then fixes the paths that actually fail with crosstalk instead of the ones that only look bad without it. You then re-check timing and noise with SI still enabled.
Technical Explanation
- Signal integrity analysis is controlled by the
time.si_enable_analysisapplication option. With it off, timing ignores crosstalk and optimization cannot see delta delay. - Routing can be made crosstalk-aware too. Global routing and track assignment are not crosstalk-driven by default; setting
route.global.crosstalk_drivenorroute.track.crosstalk_driventogether withtime.si_enable_analysischanges that. route_optextracts parasitics and updates timing first. With SI enabled, that update includes coupling, so the violations it targets include delta delay.route_optfixes with its usual tools, sizing and buffering, then ECO routes the changed nets. Upsizing a victim driver reduces delta delay; moving a net away from its aggressor is a separate step, a spacing rule withset_routing_rulefollowed byroute_eco.- Run
route_opttwice as documented, and keep SI on for both passes. Turning it on only for the final check turns every crosstalk failure into late work. - Noise is a separate check from delay.
report_noiseshows glitch violations on quiet nets, whichroute_opttiming fixes may not cover. - Signoff correlation depends on this too. If PrimeTime runs with SI and ICC2 optimized without it, the two tools disagree on the paths that matter most, and the numbers cannot be reconciled until the settings match.
What To Check
- That
time.si_enable_analysisis true before extraction androute_opt. - Crosstalk delta delay on the worst setup and hold paths.
- Noise violations from
report_noise. - Timing change between SI-off and SI-on runs, to see how much crosstalk costs.
Command Checks & Actions
set_app_options -name time.si_enable_analysis -value trueEnables crosstalk analysis in timing and optimization.
route_optRuns postroute optimization on SI-aware timing.
report_qorSummarizes setup and hold after optimization with crosstalk included.
report_noise -all_violatorsLists noise violations that timing fixes alone may not address.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): SI enabled throughout postroute, timing clean with crosstalk, and no noise violations.
- Suspicious (illustrative): A large gap between SI-off and SI-on slack, meaning crosstalk dominates a few nets that need spacing or shielding.
- Hard stop: Signoff done with SI but postroute optimization run without it, so the tool never saw the violations it was supposed to fix.
Common Mistake
The Trap: Leaving SI off during route_opt for speed and turning it on only for signoff. route_opt closes timing to +2 ps without crosstalk, signoff shows -15 ps with it, and the team has to rerun postroute optimization anyway.
What The Interviewer Is Testing
- Whether you know the option that turns SI on in ICC2.
- Do you separate delay effects from noise violations?
- A strong answer shows you keep optimization and signoff on the same analysis settings.
Follow-up Question & Model Response
"Can routing itself reduce crosstalk before optimization?"
Candidate Model Response: Yes. Crosstalk-driven global routing and track assignment use timing and coupling information to keep sensitive nets away from aggressors while choosing routes and tracks. It costs runtime and is off by default. It reduces how much route_opt has to fix, but it does not replace SI-aware optimization, because the final neighbours are only known after detail routing.
Practical Example
Tapeout Scenario: A block closes to +3 ps setup with SI off (illustrative). With time.si_enable_analysis set to true, the same database shows -14 ps, with most of the loss on 11 nets beside a wide data bus. Running route_opt twice with SI on upsizes 7 victim drivers; 4 more nets get a spacing rule with set_routing_rule and are rerouted with route_eco. Final timing is +1 ps with crosstalk included, and report_noise -all_violators shows two glitch violations on a reset net, which are fixed by upsizing its driver. Because SI was on before the first route_opt, every fix targeted a real, crosstalk-inclusive violation.
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