Product Documentation
Virtuoso Automated Device Placement and Routing Flow Guide
Product Version IC23.1, November 2023

Routing Assistant User Interface for Device-Level Routing

The Routing assistant is a simplified, consistent, flow-based assistant for all design types. It has the same look and feel for device, standard cell and chip assembly routing with a common toolbar for all routing types. The Routing assistant is a dockable assistant pane that provides various options to let you perform tasks related to advanced routing technology.

The Routing assistant lets you:

The Routing Assistant has the following components:

Routing Assistant Toolbar

Lets you access the buttons to complete the steps of the routing flow.

Routing Assistant Tabs

Lets you specify the options for running the selected routing type.

Routing Assistant Command Buttons

Lets you access the buttons on each tab to compete a routing task.

Routing Assistant Toolbar

The following table lists the functions of the different buttons on the Routing assistant toolbar:

Icon Command Description

Change routing mode

Selects the routing mode. The two routing modes are Automatic and Interactive.

Change routing type

Changes the type of routing you want to run on the design. The three routing types are: Device, StdCell, Chip Assembly.

Raise the pre-routing browser

Opens the pre-routing browser and provides net information prior to routing.

Set router constraints

Opens the Routing Constraint Manager

Load preset options

Lets you load options from an existing preset file.

Save preset options

Lets you save the preset options to a file.

Delete preset options

Lets you delete any existing preset options.

Routing Assistant Tabs

The following table lists the functions of the different tabs in the Routing assistant:

Tab Description

Setup

Lets you specify the settings and generate or import WSPs for running the router.

Check

Lets you select the checks that you want to run before routing the design.

Supply

Lets you run the power router. You need to have power and ground wireType tracks in your width spacing patterns. Usually, you run this routing before placement.

Route

Lets you specify the scope and run routing on signal nets.

Results

Lets you select the scope and the results columns that should be displayed in Routing Results Browser.

The options in the Routing Assistant depend on the routing type in which the design is open. These routing types are:

Setup

The following table describes the fields available on the Setup tab of the Routing assistant for device-level routing type.

Field Description

Options

Insert trim to fix DRCs

Inserts trim shapes in the design to fix DRC errors.

Environment variable: setup_insertTrim

Check DRCs after routing

Controls whether to automatically runs DRD design rule checks after routing.

Environment variable: setup_checkDRCsAfterRouting

Lock Colors after routing

Controls whether to automatically lock colored shapes after routing. This option is currently grayed and unavailable for use.

Environment variable: setup_lockColorsAfterRouting

Extraction Options

Lets you specify the layers for which to generate WSPs.

Extracted Pin Style

Lets you specify the pin extraction style before routing. The available options are:

  • Labeled shapes only
  • Connected shapes on same layer
  • Whole net on routing layers

Layer Settings

Lets you specify the layers for which to generate WSPs.

Wire CG

Specifies the constraint group used to supply a default set of constraints for routing modes. The default constraint group is virtuosoDefaultSetup.

Routing Layers

Specifies valid bottom and top layers for routing.

Wire Types Map

Opens a form with a table that maps the wireType to the symbol to be used in the pattern specification in the table.

Wire Types Assign to nets

Opens a form with a table that assigns wireTypes to nets.

Layer table

Provides a list of layers on which WSPs are generated.

Layer

The name of the layer.

Pattern

Generates the pattern of WSP as per your requirement. For example, gs3ns2g3 where g stands for ground, s for signal, n for Null, and p for power.

Dir

The routing direction of the layer. The supported routing directions include Horizontal, Vertical, Orthogonal, and Forbid. Forbid implies that no direction is considered.

W

The width specified for the layer.

S

The spacing specified for the layer.

WSP

The width spacing patterns defined for the layer.

All available WSPs are displayed in the WSP drop-down list. If any WSP pattern for a layer is not available in the Track Pattern Assistant, then the WSP drop-down appears blank.

When you select a WSP from the drop-down list in the Setup tab of the Routing assistant, the WSP is active in the Track Pattern Assistant.

If you make any WSP pattern active in the Track Pattern Assistant, it is displayed as an active option in the WSP drop-down list in the Setup tab of the Routing assistant.

Check

The following table describes the fields available on the Check tab of the Routing assistant for device-level routing type.

Field Description

Check

Provides a list of checks that can be run for the routing type.

Select

Lets you specify the checks to be run. Click All or None to select or deselect all checks with a single click.

Routing Track Availability

Checks for the availability of routing tracks on a metal layer.

Pin WSP Conformance

Checks for the misalignment between metal layer pins and WSP tracks in terms of color, width, and alignment.

Track Spacing

Checks if the track spacing is DRC correct.

Via Availability & Density

Checks for congestion or limitations for via placement and track density.

Device Trims

Checks for insufficient space for DRC clean trim insertion.

Net Pin Symmetry

Checks the symmetrical nets pin placement.

Normal Pin Access

Checks if the metal layer pins are accessible and not dead or blocked.

Gate Pin Access

Checks for misalignment between WSP tracks and gate pins.

S/D Pin Overlaps

Checks for the misalignment of WSP tracks with source and drain pins.

Diffusion Pin Nets

Checks the mismatch between diffusion pin nets on device and top-level nets.

Trim Insertion Validity

Reruns the trim engine deleting and replacing the existing trims such that there are no trim related violations.

This option is available only in certain advanced node flows.

Existing DRCs

Specifies whether to run design rule checks for DRD.

Environment variable: check_existingDRCs

Output

Settings to display the output of routing checks.

Display Log

Controls the display of the checker log in the CIW once the checks are run.

Environment variable: check_displayLog

Overwrite last log

Controls the overwriting of the last log file. When the option is deselected, the existing log file is retained.

Environment variable: check_overwriteLog

Markers

Controls the generation of markers for errors. These error markers can be viewed in the Misc tab of the Annotation Browser.

Environment variable: check_generateMarkers

Supply

The following table describes the fields available on the Supply tab of the Routing assistant for device-level routing type.

Field Description

Scope

Defines the scope of supply routing.

Supply Nets

Specifies whether to route all or selected supply nets.

Environment variable: supply_nets

Within

Specifies whether to route everything inside the PR boundary or only within a guard ring or figGroup, or specify an area. You can also create supply stripes inside a row region or wsp region.

The available options are: PR boundary, Guardring/FigGroup, Area, and WSP/Row.

Environment variable: supply_netsWithin

Options

Only use layers with WSP P/G tracks

Restricts supply routing to layers with existing power or ground tracks. However, when unselected, allows all routing layers to be used.

Supply stripes

Lets you select the bottom and the top metal layers for routing.

Environment variable: supply_deleteStripes

Generate supply stripes

Generates stripes when supply routing is run.

Environment variable: supply_genSupplyStripes

Insert vias for supply stripes

Inserts the vias between the intersection of the layer above and below the via.

Environment variable: supply_insertVias

Connect to overlapped terminals and guardrings

Specifies whether or not the supply router should connect to instance terminal pins and guard rings.

Environment variable: supply_connectToTermAndGR

Share tracks for supply nets

Determines whether or not the supply nets should share power and ground tracks as needed in the appropriate P and N regions.

Environment variable: supply_shareTracks

Create only on P/N regions

Determines whether or not to only route inside Pch or Nch region or not under shared track mode.

Environment variable: supply_createOnPNRegions

Create supply grid as a group

Specifies to create the supply grid as a figGroup.

Environment variable: supply_createGridAsGroup

Ignore boundary tracks

Creates power stripes on tracks that are coincident with the PR boundary. When set to t, no power stripes (or power vias) are created coincident to the PR Boundary edge.

Ignore boundary vias

Creates power vias on tracks that are coincident with the PR boundary. When set to t, no power stripes (or power vias) are created coincident to the PR Boundary edge.

Assign to nets

Opens a form with a table that assigns wireTypes to nets.

Pull-back

Controls the spacing of power nets per layer from the PR boundary to avoid any DRC.

Pins

Lets you specify the pin related options for routing.

Create

Specifies to create a pin instead of a pathSeg for the stripe.

Environment variable: supply_createPins

Create label

Creates labels on the pins.

Use all supply stripes layer

Creates pins on all supply stripe layers.

Use selected layers

Creates pins on selected supply stripe layers.

Create on ends

Creates pins only on the ends of the supply stripes.

Create on pin purpose

Enables to use pin as the layer purpose for the created pin.

Environment variable: supply_createPinsOnPinPurpose

Update

Delete Supply stripes

Deletes the stripes generated by the supply router before power routing.

Environment variable: supply_deleteStripes

Delete Supply vias

Deletes the vias generated by the supply router before power routing.

Environment variable: supply_deleteVias

Output

Display log

Controls the display of the log in the CIW when supply routing is run.

Environment variable: supply_displayLog

Overwrite last log

Specifies whether to overwrite the last log file or keep the existing one. When the option is selected, the existing log is overwritten.

Environment variable: supply_overwriteLog

Current cellview

Write the output of the supply routing to the current cellview.

Environment variable: supply_routedLoc

Other cellview

Lets you select a view name to write the output of the supply routing to another cellview. You can also specify a non-database existing name.

The name of the cell is $cell_proute with _proute as the postfix to the cell name. The view name is always layout.

Environment variable: supply_defaultRoutedView, supply_routedLoc, supply_defaultRoutedCellExpression

Save routing only

Specifies whether to copy only the supply grid or all initial data and the supply grid to the new cellview.

Environment variable: supply_saveRoutingOnly

Route

The following table describes the fields available on the Route tab of the Routing assistant for device-level routing type.

Field Description

Scope

Defines the scope of signal routing.

Nets

Specifies whether you want to route all nets, selected nets, or only nets with opens or shorts when the routing option is selected as Auto. When the routing options is selected as Assisted, the scope is Selected only, which allows routing of a single net at a time.

Environment variable: route_nets

Include supply nets

Includes the power and ground nets for routing. This option is only available when the routing option is selected as Auto.

Within

Specifies whether to route everything inside the PR boundary, within a specified area, or within a device array or figGroup.

Environment variable: route_netsWithin

Routing Options

Lets you specify the routing options for automatic and assisted routing.

Auto

When selected, lets you specify the options for automatic routing.

Optimize Wire length

Optimizes the wire length during routing.

Optimize Vias

Optimizes the via count during routing.

Connect on both sides of gate

Connects to both vias if there are two poly connections (vias).

Prefer finishing over constraints

Routes the larger sized nets first over constraint nets so that convergence is given preference over constraints.

Prefer finishing over DRC clean

Preferred Range

Lets you specify the preferred bottom and top layers to be routed.

Update pins for optimized routing

Assisted

Lets you specify the routing options for assisted routing.

Enable hierarchical trims

Enables trim insertion in hierarchical designs.

This option is available only in certain advanced node flows.

Environment variable: route_enableHierarchicalTrims

Minimize M0 on nets

Minimizes the capacitance on M0 nets in addition to the regular trim insertion.

This option is available only in certain advanced node flows.

Environment variable: route_minimizeM0OnNets

Insert M0 trims

Inserts M0 trim shapes to fix shorts.

This option is available only in certain advanced node flows.

Delete M0 trims

Deletes all M0 trim shapes.

This option is available only in certain advanced node flows.

General

Preferred range

Lets you specify the bottom and top layers to be routed.

Finish routing

Lets you run finish routing on the preferred range of layers.

Mesh

Mesh layers

Lets you specify the bottom and top layers to be routed in the mesh.

Extend preroutes for mesh

Lets you select whether or not to extend pre-routes to active meshing layer.

Environment variable: route_meshExtendPreroutes

Generate mesh routing

Lets you create mesh on the specified layers of the selected nets within the specified scope.

P2T

Trunk layer

Lets you specify the bottom and top layers to be routed in pin to trunk routing.

Create trunks

Creates trunks for the selected or all nets in the design.

Environment variable: route_createTrunks

Connect instances to trunks

Connects pins of devices and macro instances to existing trunks.

Environment variable: route_connectInstsToTrunks

Generate P2T routing

Lets you run the Pin to Trunk routing on the specified scope either on all the nets or selected nets.

Update

Delete Select

Lets you select either all or no options for deletion. You can also select specific options.

Wires and vias

Deletes the wires and vias created by the router.

Environment variable: route_deleteWiresAndVias

Trunks

Deletes the routed trunks.

Environment variable: route_deleteTrunks

Manual routing

Deletes the manually routed wires and vias.

Environment variable: route_deleteManualRouting

Output

Display log

Controls the display of the log in the CIW when signal routing is run.

Environment variable: route_displayLog

Overview last log

Specifies whether to overwrite the last log file or keep the existing one. When the option is selected, the existing log is overwritten.

Environment variable: route_overwriteLog

Current cellview

Writes the output of the supply routing to the current cellview.

Environment variable: route_defaultRoutedView

Other cellview

Lets you specify a view name to write the output of the signal routing to another cellview.

Environment variable: route_defaultRoutedView

Save routing only

Specifies whether to copy only the supply grid or all initial data and the supply grid to the new cellview.

Environment variable: route_saveRoutingOnly

Create routing as a group

Specifies whether or not to create routing as a figGroup.

Environment variable: route_createRoutingAsAGroup

Results

The following table describes the fields available on the Results tab of the Routing assistant for device-level routing type.

Field Description

Scope

Defines the scope of the routing results.

Nets

Specifies whether you want to show the routing result of all nets, selected nets, or only nets with opens.

Environment variable: results_nets

Supply Nets

Shows the routing result of power and ground nets.

Environment variable: results_supplyNets

Within

Specifies whether you want to show the routing result of nets inside the PR boundary or within a device array or figGroup.

Environment variable: route_netsWithin

Summary of latest run

Displays the summary of the routing results for various parameters, such as Time, Instances, Nets, DRCs, Opens, Shorts, Wire Length, Vias.

Output

Specifies the output columns to be displayed in the Routing Results Browser

Select

Lets you select either all or none parameters for which output should be displayed. The parameters are: Rule Violations, Symmetry Violations, Matched Length Violations, Shield Violations, Opens, Shorts, DRCs, Wirelength, Vias, Ratio, Pin count, Manhattan X, and Manhattan Y.

Routing Assistant Command Buttons

The following table lists the functions of the different command buttons in the Routing assistant:

Icon Command Description

Snap pins to WSPs

Snaps IO pins to width spacing patterns.

Show WSP Manager

Displays WSP Manager.

Import WSPs

Imports width spacing patterns to the current cellview.

Auto-generate WSPs

Generates width spacing patterns automatically on the selected layers.

Run pre-route checks

Runs pre-routing checks and saves the result to a log file.

Run Power route

Runs power routing.

Run Signal router/Finish Routing

Runs signal routing.

Generate mesh routing

Runs mesh routing to let you create mesh on the specified layers.

Generate P2T routing

Runs signal routing.

Show results browser

Displays the Virtuoso Routing Results Browser.

Related Topics

Mesh Layer Setup Form

Accessing the Routing Assistant

Routing Assistant

Virtuoso Pre-Route Browser

Virtuoso Routing Results Browser

Virtuoso Routing Constraint Manager

Routing Constraint Manager User Interface


Return to top
 ⠀
X