IntermediateQuestion 153 of 162Source: Synopsys ICC2 Implementation User Guide: Routing

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 Reference DiagramHow do you make postroute optimization SI-aware?
Flow: enable SI analysis, extract with coupling capacitance, run timing with crosstalk, run route_opt, then re-check timing and noise.

Technical Explanation

  • Signal integrity analysis is controlled by the time.si_enable_analysis application 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_driven or route.track.crosstalk_driven together with time.si_enable_analysis changes that.
  • route_opt extracts parasitics and updates timing first. With SI enabled, that update includes coupling, so the violations it targets include delta delay.
  • route_opt fixes 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 with set_routing_rule followed by route_eco.
  • Run route_opt twice 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_noise shows glitch violations on quiet nets, which route_opt timing 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_analysis is true before extraction and route_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

ICC2set_app_options -name time.si_enable_analysis -value true

Enables crosstalk analysis in timing and optimization.

ICC2route_opt

Runs postroute optimization on SI-aware timing.

ICC2report_qor

Summarizes setup and hold after optimization with crosstalk included.

ICC2report_noise -all_violators

Lists 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

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.

PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out. →