This stage covers the checks around global and early routing: layer constraints, clock NDR and shield readiness, route readiness and pin access, the global_route run itself, congestion review and relief, and wire length and layer use.
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 |
|---|---|---|---|---|---|
| G-01 | Layer constraints record Before route_global |
report_ignored_layersreport_routing_guides |
Ignored layers and guides match the technology and routing plan, and are recorded with each run. | Layer limits set for one run and not recorded, so congestion numbers cannot be compared. | A layer range that differs from the plan, so capacity is wrong before any net is routed. |
| G-02 | Clock NDR and shield readiness Before route_global |
check_routability -check_shield truecheck_routability -via_ladder true |
Shield and via ladder findings are empty, or each finding is understood. | Findings on nets that are frozen or intended to stay unshielded. | Clock nets with shield or ladder requirements the check reports as unmet. |
| G-03 | Route readiness and pin access Before route_global |
check_routabilitycheck_legality |
No blocked ports, no out-of-boundary pins, no grid violations, and placement is legal. | Blocked ports on cells you can still move, or optional checks not enabled. | Unplaced or illegal cells, blocked pins on many instances, or incorrect via definitions. |
| G-04 | Global route run After G-03 |
route_global |
Net count matches the design, the layer range is the planned one, and the log has no errors. | Warnings about ignored or frozen nets that you have not explained. | Any error, or a run that routed only part of the nets by mistake. |
| G-05 | Overflow and congestion After G-04 |
report_congestion |
Overflow in both directions is within the project budget on every layer. | Overflow in one direction only, or a few layers dominating the total. | Overflow beyond a macro channel or pin cluster budget. |
| G-06 | Congestion in a region After G-05 |
report_congestion -rerun_global_router -boundary {<box>} -layers {<layers>} |
The region shows overflow within budget, on layers you expected. | Blocked bins with zero routing resources, which point at blockages rather than demand. | A hot region over a macro channel or pin cluster where no routing change can help. |
| G-07 | Congestion map without routing Any time after placement |
route_global -congestion_map_only truereport_congestion |
A map is stored, and report_congestion reads it on the next call. | Soft congestion data is absent because it was not enabled before the run. | A map made with layer limits that differ from the record. |
| G-08 | Relief and rerun After G-05 |
create_routing_guide -boundary {{<llx> <lly>} {<urx> <ury>}} -horizontal_track_utilization <pct> -vertical_track_utilization <pct>create_routing_blockage -boundary {{<llx> <lly>} {<urx> <ury>}} -net_types signal -layers <layer> |
Overflow falls after the change and no new hotspot appears. | The hotspot moves to a neighbouring area instead of disappearing. | Overflow stays beyond budget, or a guide or blockage is left with no record of why. |
| G-09 | Wire length and layer use After G-04 |
report_wirelengthreport_design -routing |
Wire and vias sit on the planned layers, and totals match earlier runs within expectation. | One layer carrying most of the wire while layers above it are lightly used. | Wire on layers outside the planned range. |
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.
| Routing resources and layers | |
|---|---|
report_ignored_layers | The ignored layer settings in force. |
set_ignored_layers -min_routing_layer <layer> -max_routing_layer <layer> | Sets the layer range for RC estimation and routing. Changes the session; record it. |
remove_ignored_layers -all | Clears the ignored layer settings. Changes the session; record it. |
set_routing_rule <nets> -min_routing_layer <layer> -max_routing_layer <layer> | Layer limits for chosen nets. Changes the session; record it. |
| Clock and net rules | |
create_routing_rule <rule> -widths {<layer> <width>} | Defines a non-default rule with chosen widths. Changes the session; record it. |
set_routing_rule -rule <rule> <nets> | Assigns the rule to signal nets. Changes the session; record it. |
set_clock_routing_rules -rules <rule> | Assigns the rule to clock nets. Changes the session; record it. |
set_routing_rule -clear <nets> | Clears rules on those nets, including assigned NDRs. Changes the session; record it. |
| Route readiness | |
check_routability | Default pin access, boundary, grid and via definition checks. Writes check_routability.err. |
check_routability -check_shield true | Adds the shield checks to the default set. |
check_legality | Placement legality check, run before routing. |
check_routing_corridors <corridor> | Checks that a corridor is contiguous and covers its pins. |
| Run and report global route | |
route_global | Global routing. Changes the design. |
route_global -congestion_map_only true | Congestion map only, with no routes created. |
report_congestion | Overflow per layer, in both the horizontal and vertical directions. |
report_wirelength | Wire length per layer, and by direction. |
report_design -routing | Wiring and via statistics. |
| Guides, blockages and corridors | |
create_routing_guide -boundary {{<llx> <lly>} {<urx> <ury>}} -preferred_direction_only | A guide forcing preferred-direction routing. Changes the design. |
create_routing_blockage -boundary {{<llx> <lly>} {<urx> <ury>}} -net_types signal -layers <layer> | A hard routing blockage. Changes the design. |
report_routing_guides | The guides defined. |
remove_routing_guides -all | Removes every guide. Changes the design. |
report_routing_corridors | The corridors defined. |