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.
| Card | Check and when | Command | Healthy | Review | Hard 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 truereport_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 -holdreport_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_routescheck_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_drcsignoff_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_qorreport_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 true | Enables CCD in route_opt. Changes the session; record it. |
set_app_options -name ccd.post_route_buffer_removal -value true | Allows buffer pair removal in route_opt with CCD. Changes the session; record it. |
| Run post-route optimisation | |
route_opt | Postroute optimisation. Changes the design. |
hyper_route_opt | Alternative 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 true | Enables 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_timing | Setup slack of worst captures and launches. |
report_ccd_timing -hold | The same for hold. |
report_clock_balance_point | CCD balance point offsets. |
| Routing integrity | |
check_routes | DRC, open, antenna and voltage-area check. Writes error data. |
check_lvs | Shorts, opens and floating shapes. |
check_legality | Placement legality after sizing and buffering. |
route_eco -nets {<nets>} -reroute modified_nets_only | Reroutes changed nets. Changes the design. |
| Signoff DRC and power | |
signoff_check_drc | Signoff DRC run; writes signoff_check_drc.err. |
signoff_fix_drc | Fixes signoff DRC violations. Changes the design. |
report_clock_qor -type power | Clock power per scenario. |
report_power † | Power report for the block. |