Movatterモバイル変換


[0]ホーム

URL:


Skip to main content
Ctrl+K

OpenROAD documentation

Detailed Routing#

The Detailed Routing (drt) module in OpenROAD is based on the open-sourcedetailed router, TritonRoute. TritonRoute consists of several mainbuilding blocks, including pin access analysis, track assignment,initial detailed routing, search and repair, and a DRC engine.The initial development of therouteris inspired by theISPD-2018 initial detailed routingcontest. However, the current frameworkdiffers and is built from scratch, aiming for an industrial-oriented scalableand flexible flow.

TritonRoute provides industry-standard LEF/DEF interface withsupport ofISPD-2018 andISPD-2019 contest-compatible routeguide format.

Commands#

Note

  • Parameters in square brackets[-paramparam] are optional.

  • Parameters without square brackets-param2param2 are required.

Detailed Route#

This command performs detailed routing.

Developer arguments

  • -or_seed,-or_k

Distributed arguments

  • -distributed ,-remote_host,-remote_port,-shared_volume,-cloud_size

Pin Access arguments

  • -via_in_pin_bottom_layer,-via_in_pin_top_layer,-via_access_layer,-min_access_points

detailed_route[-output_mazefilename][-output_drcfilename][-output_cmapfilename][-output_guide_coveragefilename][-drc_report_iter_stepstep][-db_process_nodename][-disable_via_gen][-droute_end_iteriter][-via_in_pin_bottom_layerlayer][-via_in_pin_top_layerlayer][-via_access_layerlayer][-or_seedseed][-or_kk][-bottom_routing_layerlayer][-top_routing_layerlayer][-verboselevel][-distributed][-remote_hostrhost][-remote_portrport][-shared_volumevol][-cloud_sizesz][-clean_patches][-no_pin_access][-min_access_pointscount][-save_guide_updates][-repair_pdn_viaslayer][-single_step_dr]

Options#

Switch Name

Description

-output_maze

Path to output maze log file (e.g.output_maze.log).

-output_drc

Path to output DRC report file (e.g.output_drc.rpt).

-output_cmap

Path to output congestion map file (e.g.output.cmap).

-output_guide_coverage

Path to output guide coverage file (e.g.sample_coverage.csv).

-drc_report_iter_step

Report DRC on each iteration which is a multiple of this step. The default value is0, and the allowed values are integers[0,MAX_INT].

-db_process_node

Specify the process node.

-disable_via_gen

Option to diable via generation with bottom and top routing layer. The default value is disabled.

-droute_end_iter

Number of detailed routing iterations. The default value is-1, and the allowed values are integers[1,64].

-via_in_pin_bottom_layer

Refer to pin access argumentshere.

-via_in_pin_top_layer

Refer to pin access argumentshere.

-via_access_layer

Refer to pin access argumentshere.

-min_access_points

Refer to pin access argumentshere.

-or_seed

Refer to developer argumentshere.

-or_k

Refer to developer argumentshere.

-bottom_routing_layer

Deprecated. Use theset_routing_layers command instead.

-top_routing_layer

Deprecated. Use theset_routing_layers command instead.

-verbose

Sets verbose mode if the value is greater than 1, else non-verbose mode (must be integer, or error will be triggered.)

-distributed

Refer to distributed argumentshere.

-remote_host

Refer to distributed argumentshere.

-remote_port

Refer to distributed argumentshere.

-shared_volume

Refer to distributed argumentshere.

-cloud_size

Refer to distributed argumentshere.

-clean_patches

Clean unneeded patches during detailed routing.

-no_pin_access

Disables pin access for routing.

-save_guide_updates

Flag to save guides updates.

-repair_pdn_vias

This option is used for PDKs where M1 and M2 power rails run in parallel.

Developer arguments#

Some arguments that are helpful for developers are listed here.

Switch Name

Description

-or_seed

Random seed for the order of nets to reroute. The default value is-1, and the allowed values are integers[0,MAX_INT].

-or_k

Number of swaps is given by\(k * sizeof(rerouteNets)\). The default value is0, and the allowed values are integers[0,MAX_INT].

Detailed Route Debugging#

The following command and arguments are useful when debugging errormessages fromdrt and to understand its behavior.

detailed_route_debug[-pa][-ta][-dr][-maze][-netname][-pinname][-boxx1y1x2y2][-iteriter][-pa_markers][-dump_dr][-dump_dirdir][-snapshot_dirdir][-dump_last_worker][-pa_edge][-pa_commit][-write_net_tracks]

Options#

Switch Name

Description

-pa

Enable debug for pin access.

-ta

Enable debug for track assignment.

-dr

Enable debug for detailed routing.

-maze

Enable debug for maze routing.

-net

Enable debug for net name.

-pin

Enable debug for pin name.

-box

Set the box for debugging given by lower left/upper right coordinates.

-worker

Debugs routes that pass through the point{x,y}.

-iter

Specifies the number of debug iterations. The default value is0, and the accepted values are integers[0,MAX_INT.

-pa_markers

Enable pin access markers.

-dump_dr

Filename for detailed routing dump.

-dump_dir

Directory for detailed routing dump.

-snapshot_dir

Directory for snapshots produced if the debug level ofDRTsnapshot is set to 1.

-pa_edge

Enable visibility of pin access edges.

-pa_commit

Enable visibility of pin access commits.

-write_net_tracks

Enable writing of net track assigments.

Check Pin Access#

This function checks pin access.

pin_access[-db_process_nodename][-bottom_routing_layerlayer][-top_routing_layerlayer][-via_access_layerlayer][-via_in_pin_bottom_layerlayer][-via_in_pin_top_layerlayer][-min_access_pointscount][-verboselevel][-distributed][-remote_hostrhost][-remote_portrport][-shared_volumevol][-cloud_sizesz]

Options#

Switch Name

Description

-db_process_node

Specify process node.

-bottom_routing_layer

Deprecated. Use theset_routing_layers command instead.

-top_routing_layer

Deprecated. Use theset_routing_layers command instead.

-via_access_layer

Refer to pin access argumentshere.

-via_in_pin_bottom_layer

Refer to pin access argumentshere.

-via_in_pin_top_layer

Refer to pin access argumentshere.

-min_access_points

Refer to pin access argumentshere.

-verbose

Sets verbose mode if the value is greater than 1, else non-verbose mode (must be integer, or error will be triggered.)

-distributed

Refer to distributed argumentshere.

-remote_host

Refer to distributed argumentshere.

-remote_port

Refer to distributed argumentshere.

-shared_volume

Refer to distributed argumentshere.

-cloud_size

Refer to distributed argumentshere.

Pin Access Arguments#

We have compiled all pin access related arguments in this section.

Switch Name

Description

-via_access_layer

Top via access layer name. Any pin on this layer or below can only be accessed through a via, disallowing planar access.

-via_in_pin_bottom_layer

Via-in pin bottom layer name. Used in conjunction with via_in_pin_top_layer to specify the layer range for via-in-pin rules.

-via_in_pin_top_layer

Via-in pin top layer name. Used in conjunction with via_in_pin_bottom_layer to specify the layer range for via-in-pin rules. For pins within this layer range, any via enclosure must be fully contained within the pin boundary and cannot extend beyond the pin edges.

-min_access_points

Minimum number of access points per pin.

Distributed Arguments#

We have compiled all distributed arguments in this section.

Note

Additional setup is required. Please refer to thisguide.

Switch Name

Description

-distributed

Enable distributed mode with Kubernetes and Google Cloud.

-remote_host

The host IP.

-remote_port

The value of the port to access from.

-shared_volume

The mount path of the nfs shared folder.

-cloud_size

The number of workers.

Useful Developer Commands#

If you are a developer, you might find these useful. More details can be found in thesource file or theswig file.

Command Name

Description

detailed_route_set_default_via

Set default via.

detailed_route_set_unidirectional_layer

Set unidirectional layer.

step_dr

Refer to functiondetailed_route_step_drt.

check_drc

Refer to functioncheck_drc_cmd.

Example scripts#

Example script demonstrating how to run TritonRoute on a sample design ofgcdin the Nangate45 technology node.

# single machine example./test/gcd_nangate45.tcl# distributed example./test/gcd_nangate45_distributed.tcl

Regression tests#

There are a set of regression tests in./test. For more information, refer to thissection.

Simply run the following script:

./test/regression

Limitations#

FAQs#

Check outGitHub discussionabout this tool.

References#

Please cite the following paper(s) for publication:

  1. A. B. Kahng, L. Wang and B. Xu, “TritonRoute: The Open Source DetailedRouter”, IEEE Transactions on Computer-Aided Design of Integrated Circuitsand Systems (2020), doi:10.1109/TCAD.2020.3003234.(.pdf)

  2. A. B. Kahng, L. Wang and B. Xu, “The Tao of PAO: Anatomy of a Pin AccessOracle for Detailed Routing”, Proc. ACM/IEEE Design Automation Conf., 2020,pp. 1-6.(.pdf)

Authors#

TritonRoute was developed by graduate students Lutong Wang andBangqi Xu from UC San Diego, and serves as the detailed router in theOpenROAD project.

License#

BSD 3-Clause License. SeeLICENSE file.


[8]ページ先頭

©2009-2025 Movatter.jp