Synopsys IC Compiler II (ICC2) · stage 12 of 16

12. Post-route optimisation

Sanity checks and ICC2 commands for scenario setup, baseline timing, route_opt runs, CCD, hold, routing integrity, signoff DRC and clock power.

5 min read · Free, no login

Get Innovus + ICC2 Cheat Sheets at ₹199

This stage covers post-route optimisation: activating scenarios, capturing a baseline before route_opt, running route_opt with CCD and hold control, checking routing integrity and legality, signoff DRC, and the clock QoR and power effect of optimisation.

Sanity check cheat sheet

One row per command card. Read left to right: the check, the command that answers it, then what a healthy result, a result to review and a hard stop look like.

CardCheck and whenCommandHealthyReviewHard stop
O-01 Scenarios in force
Before route_opt
set_scenario_status -active true [all_scenarios]
current_scenario
Every scenario needed for closure is active, and the list is recorded with the run. A scenario defined but inactive, or a different set from the CTS run. A closure scenario inactive, so the optimiser never sees its violations.
O-02 Baseline timing
Before route_opt
report_timing †
report_qor †
Setup and hold numbers per scenario are captured as the baseline for comparison. Numbers captured in only some scenarios, or without detail routing parasitics. No baseline saved, so later changes cannot be judged.
O-03 route_opt run
After O-02
route_opt The run ends with no errors, and setup and DRC violations improve against the baseline. Violations fall but timing worsens in a scenario that was not in the baseline. Any error, or setup worse than the baseline in a closure scenario.
O-04 CCD in route_opt
Before O-03
set_app_options -name route_opt.flow.enable_ccd -value true
report_ccd_timing
The setting is recorded, and worst capture slack improves after the run. CCD enabled without recording, so results differ between runs. Offsets that break clock balance targets or fixed sink rules.
O-05 Hold after route_opt
After O-03
report_ccd_timing -hold
report_timing †
Hold meets the budget in every scenario, with setup no worse than before. A few hold violations left for signoff ECO, or small setup loss from hold control. Setup worse after hold fixing, or large hold violations with no fix path.
O-06 Routing integrity after optimisation
After O-03
check_routes
check_lvs
No DRC, open, short or antenna violations were introduced. New violations only on nets changed by optimisation, which a local repair may fix. New opens or shorts, or DRC beyond what signoff accepts.
O-07 Legality
After O-03
check_legality No overlaps, spacing or site violations after sizing and buffering. A few spacing findings on filler or physical-only cells. Overlapping or off-site cells.
O-08 Signoff DRC after optimisation
After O-06
signoff_check_drc
signoff_fix_drc
Signoff DRC is clean, and timing is rechecked after any fix. Fixing changes parasitics, so timing needs a fresh look. Violations remaining after repair loops.
O-09 Clock and power effect
After O-03
report_clock_qor
report_power †
Clock QoR and power stay within the project budget after optimisation. Power growth that the timing gain justifies, but that needs sign-off from the owner. Clock skew or power beyond budget after post-route changes.

Command cheat sheet

ICC2 commands. Angle brackets are placeholders, and values shown are examples, not project limits. A dagger (†) marks a command the notes behind this book do not fully cover; it is shown without options, so confirm it with man or help in your release.

Set-up and scenarios
set_scenario_status -active true [all_scenarios]Activates every scenario. Changes the session; record it.
current_scenario <scenario>Selects the scenario for later commands. Changes the session; record it.
set_app_options -name route_opt.flow.enable_ccd -value trueEnables CCD in route_opt. Changes the session; record it.
set_app_options -name ccd.post_route_buffer_removal -value trueAllows buffer pair removal in route_opt with CCD. Changes the session; record it.
Run post-route optimisation
route_optPostroute optimisation. Changes the design.
hyper_route_optAlternative postroute optimisation flow. Changes the design.
set_route_opt_target_endpoints <endpoints>Limits route_opt to a subset of endpoints. Changes the session; record it.
set_app_options -name route_opt.flow.enable_targeted_ccd_wns_optimization -value trueEnables targeted WNS CCD. Changes the session; record it.
Timing and CCD reports
report_timing †Path timing report; run per scenario for setup and hold.
report_qor †Timing and area QoR summary.
report_ccd_timingSetup slack of worst captures and launches.
report_ccd_timing -holdThe same for hold.
report_clock_balance_pointCCD balance point offsets.
Routing integrity
check_routesDRC, open, antenna and voltage-area check. Writes error data.
check_lvsShorts, opens and floating shapes.
check_legalityPlacement legality after sizing and buffering.
route_eco -nets {<nets>} -reroute modified_nets_onlyReroutes changed nets. Changes the design.
Signoff DRC and power
signoff_check_drcSignoff DRC run; writes signoff_check_drc.err.
signoff_fix_drcFixes signoff DRC violations. Changes the design.
report_clock_qor -type powerClock power per scenario.
report_power †Power report for the block.