This stage covers detailed routing: confirming route readiness, running route_auto, checking DRC, antenna and connectivity, repairing remaining violations, adding redundant vias, reviewing routing statistics and shape clean-up, and signoff DRC.
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 |
|---|---|---|---|---|---|
| D-01 | Route readiness Before route_auto |
check_routabilitycheck_legality |
Both checks are clean, and the global route congestion is within budget. | Optional checks not run, or findings on cells that cannot move. | Illegal placement, blocked pins on many instances, or unrouted power nets. |
| D-02 | Route run and log After D-01 |
route_auto |
The run ends with no errors, and DRC violation counts fall over the iterations. | A few violations remain, or warnings about nets skipped or frozen. | Any error message, or a violation count that stops falling. |
| D-03 | DRC, open and antenna check After D-02 |
check_routescheck_routes -antenna true |
No spacing, area, width, open net or antenna violations remain. | A few violations on frozen nets or layers beyond the default report cap. | Open nets, shorts, or violations beyond what your signoff will accept. |
| D-04 | Connectivity and shorts After D-02 |
check_lvscheck_lvs -checks open |
No shorts, opens or floating shapes on signal, clock and power nets. | Power terminals treated as unconnected sources, which inflates open counts. | Any short, or an open on a net that must connect. |
| D-05 | Repair remaining violations After D-03 |
route_detail -incremental true -initial_drc_from_input trueroute_eco -nets {<nets>} -reroute modified_nets_only |
The count falls to zero and check_routes is rerun clean. | Count falls but moves to new nets or layers, which suggests a congestion cause. | A count that rises after repair, or open nets left (incremental routing does not fix opens). |
| D-06 | Redundant vias After D-03 |
add_redundant_viasadd_redundant_vias -list_only true |
The conversion rate meets the project target and DRC is still clean afterwards. | Rate below target on a few layers where the mapping table has no entry. | New DRC violations from insertion, or timing lost on nets that were to be preserved. |
| D-07 | Routing statistics After D-02 |
report_design -routingreport_wirelength |
Wire length and via counts per layer match the plan and earlier runs. | Wire length or via count well above the global route estimate on some layers. | Wire on layers outside the planned range. |
| D-08 | Shape clean-up After D-03 |
remove_redundant_shapesoptimize_routes |
Dangling and floating shapes are removed, and check_routes is rerun clean. | Nets skipped because they are open or have violations. | Clean-up run while open nets or violations remain unexplained. |
| D-09 | Signoff DRC After D-03 |
signoff_check_drcsignoff_fix_drc |
Signoff DRC reports no violations, or only waived ones, in the final run. | Rules above the per-rule fix limit, or fixing limited to top-level violations. | Violations remaining after the repair loops, or new ones introduced by fixing. |
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.
| Route | |
|---|---|
route_auto | Automatic full routing. Changes the design. |
route_detail | Detail routing step. Changes the design. |
route_detail -incremental true -initial_drc_from_input true | Incremental detail route that starts from stored check_routes results. Changes the design. |
route_eco -nets {<nets>} -reroute modified_nets_only | ECO routing for chosen nets. Changes the design. |
route_track | Track assignment step. Changes the design. |
| Verify routing | |
check_routes | DRC, open net, antenna and voltage-area checks on routed signal nets. Writes zroute.err. |
check_routes -antenna true | Includes the antenna check. |
check_routes -nets {<nets>} | Restricts the check to chosen nets. |
check_lvs | Shorted nets, open nets and floating shapes. |
check_lvs -checks open | Only the open net check. |
| Error data | |
write_drc_error_data -error_data <name> -file_name <file> | Exports DRC error data to a file. Writes a file. |
open_drc_error_data -file_name <file> | Opens saved error data for review. |
get_drc_errors -error_data <name> | The errors in an error data set. |
get_drc_error_types -error_data <name> | The violation types in an error data set. |
| Vias and clean-up | |
add_redundant_vias | Postroute redundant via insertion. Changes the design. |
add_redundant_vias -list_only true | Shows the via mapping table without inserting. |
report_via_mapping | The via mapping table. |
remove_redundant_shapes | Removes dangling and floating shapes. Changes the design. |
optimize_routes | Wire length and via count optimisation after routing. Changes the design. |
| Signoff DRC and statistics | |
signoff_check_drc | Runs signoff DRC and writes signoff_check_drc.err. |
signoff_fix_drc | Fixes signoff DRC violations and writes a summary report. Changes the design. |
report_design -routing | Wiring and via statistics. |
report_wirelength | Wire length per layer and direction. |