Product Documentation
Virtuoso Space-based Router User Guide
Product Version IC23.1, August 2023

6


Routing Your Design

This chapter describes the various routing options made available by Virtuoso Space-based Router.

It includes the following sections:

Using the Virtuoso Space-based Router Options Form

Choose Route – Design Setup or click the Design Setup icon on the Virtuoso Space-based Router toolbar.

The Virtuoso Space-based Router Options form is displayed, as shown in the following figure.

Alternatively, you can click the Options menu item. The Options menu item is available either in the drop-down menu when you click the icons on Virtuoso Space-based Router toolbar or when you place the mouse pointer on a menu item in the Route menu.

The Virtuoso Space-based Router Options form is divided into two panes, the left pane and the right pane. The left pane contains a hierarchically arranged collection of routing commands. When you select a command in the left pane, all options for that command are displayed in the right pane. The Defaults button can be used to reset the options that are currently displayed in the right pane of the Virtuoso Space-based Router Options form to their default values.

Using the Virtuoso Space-based Router Options form, you can specify the following top-level routing features:

Specifying Design Setup Options

Click the Design Setup icon on the toolbar or choose RouteDesign Setup to display the Design Setup subform in the Virtuoso Space-based Router Options form, as shown in the following figure.

Using the Design Setup subform, you can specify the following options:

Extraction

Opening Virtuoso does not extract your design by default. You must set extractor depth (Options – Layout XL) and extract your design (Connectivity – Extract Layout).

The extraction options in the Virtuoso Space-based Router Options form lets you control the instances that are extracted using router specific extraction. The router specific extraction does not modify the OpenAccess database in any way. It modifies an internal data model used by the router. Therefore, it is recommended that your OpenAccess data follow the Virtuoso XL connectivity data model. If you are XL compliant then there is no need to run the router specific extraction, running the XL extractor is sufficient enough. However, there are some complex cases, such as Pcells that get automatically created when the Virtuoso XL extractor cannot fix non-compliant data. If the Pcells do not automatically create Virtuoso XL compliant data then you need to run the router-specific extraction on at least the Pcells (the default action). If you have Pcells in the lower levels of design hierarchy (for example, some Chip Assembly designs) you may want router-specific extraction on non-Pcells instances by selecting the All option.

Design Style

The design style determines which steps in the Wire Assistant flow will run and also affects the heuristics of global and detail routes. Therefore, the value of design style needs to reflect the style of design you are routing. By default, the design style that was last specified is selected in the drop-down list.

If the design style is set to a value other than Automatic in the Design Style drop-down list then the specified value is used to route the layout. For example, if the design style is Chip Assembly, then the router uses the Chip Assembly style to route the layout. If the design style is now selected as ASIC, then the router uses the ASIC style to route the layout.

The following four design styles are available:

Blockage Treatment

These options let you alter the treatment of the blockages.

User Scripts

An existing routing flow can be captured in the form of Tcl routing commands in a Tcl script. You can run the Tcl scripts to view routing results.

Specifying Routing Flow Options

Click Auto Route Styles. This displays the hyperlinks that let you quickly navigate to the available routing flows. The router supports three routing flows:

Custom / Digital (MST)

The Custom/ Digital (MST) routing style results in a connection with the shortest overall length. This routing style is usually used for congestion-driven designs. If there is no trunk, the Custom / Digital (MST) router routes the nets. However, if one or more trunks exist, the following steps are performed in the routing flow:

In the Custom/ Digital (MST) routing flow, power, ground, and clock nets are not routed when the Route All option is selected. To route these nets, you need to select them  in the Navigator Assistant and then select the Route Selected option.

On a 7nm ASIC design style, an extended segment can be added at one end of a pin to repair the minArea and minEndOfLineSpacing violations. Pin extensions are generated for all the nets regardless of the nets that are selected for routing.

The following figure shows a layout design using the Custom / Digital (MST) routing flow.

The following figure shows the options that are available for the Custom/ Digital (MST) routing flow.

Pin to Aligned Pin

The Pin to Aligned Pin routing style is used to connect only the aligned pins on the same layer of net. The pins that are not aligned are not routed. This routing style is usually used when devices are placed in rows to connect pins that are aligned. The following figure shows a layout design using the Pin to Aligned Pin routing style.

Similarly, the following figure displays the options that are available for the Pin to Aligned Pin routing flow.

For more information about Pin to Aligned Pin options, see Custom / Digital (MST).

Pin to Trunk

The Pin to Trunk routing style is used to connect an individual pin to a trunk. Only the connections that are within the scope of a trunk are routed. The remaining opens are completed by using the Custom / Digital (MST) routing style or manually. This routing style is usually used when a spine structure is required.

The following figure displays the options that are available for Pin to Trunk routing flow.

For more information about Pin to Trunk routing and its options, see Using the Pin to Trunk Routing.

Tree Route (ICADVM 18.1 Only)

The Tree Route flow lets you automatically route advanced node device-level designs with a minimum set of options.

The following figure displays the options that are available for the Tree Route flow.

For more information about Tree Route and its options, see Using the Tree Route Flow (ICADVM20.1 EXL Only).

Related Topics

Using Tree Routing

Tree Route

Specifying Automatic Flow Options

Click Automatic. This displays the hyperlinks that let you quickly navigate to other automatic routing flow subforms. The following routing flows are available in the Automatic subform.

All options available in the subforms listed above are also available in the Automatic section of the Wire Assistant.

Routability Check

The Routability Check feature is used to debug the design and determine potential routing issues that can prevent the router from achieving optimal results.

Using the Routability Check options that are available in Routability Check subform, you can check the width, spacing, and accessibility of pins, and other issues that may affect routing.

To perform routability checks on a design, click Routability Check from the Automatic tree in Routing Preferences. The following routability check options are displayed in the Routability Check subform:

Scope

Lets you choose the nets in the design on which routability checks can be performed.

Pin Checks (including Floating Pins)

Lets you perform specific pin checks on the nets in the design. It also flags the pins without any connectivity information.

Other Checks

You can also perform the following additional checks before you route a design.

The same routability checks are also available in the Batch Checker form. This allows you to run routability checks along with various other checks. To open the Batch Checker form, choose VerifyDesign.

Congestion Analysis

Click Congestion Analysis from the Automatic tree under Routing Preferences. The following congestion analysis options are displayed in the Congestion Analysis subform.

Global Route Settings

Display Settings

Optimization

Click Optimize from the Automatic tree under Routing Preferences. To optimize routing in the design, select any of the options from the subform.

Wires

Vias

Fix Violations

Using the Fix Violations flow, you can perform all spacing-related checks including merged shapes and fix the violation operations, for all nets, selected nets, or a selected area.

Click Fix Violations from the Automatic tree under Routing Preferences. You can choose to fix any of the routing violations.

Tie Shield

The Tie Shield command is used for tying the shielding wires together and to bring the connected shielding wires to the nearest power source, which can be part of a power pin, power ring, or trunk. The Tie Shield command is not used for routing the entire shielding net. It is recommended that before tying the shielding wires together to the routed power net, power routing is performed.

While running the Tie Shield command, 12 tokens of Virtuoso Layout Suite GXL license are checked out.

Deleting Routing

Delete Routing is an interactive command where you explicitly ask for the routing to be deleted. Clicking Delete Routing from the Automatic tree under Routing Preferences option deletes all the routing in FIXED constraints. However, the routes in the LOCKED constraint are not deleted.

Click Delete Routing from the Automatic tree under Routing Preferences. The Delete Routing subform displays the options to be considered when deleting routing from the design.

You can select any of the following Delete Routing options:

Deleting Partial Routing

When certain instances or devices are changed in the schematic, you can delete only the routes that are connected to those devices, while ensuring that trunks and any fixed preroutes on that net are preserved, swapped, and rerouted. To do this:

  1. Select an instance in the Navigator assistant or layout canvas.
  2. Right-click the selected instance. The Instance shortcut menu appears.
  3. Choose Delete Associated Routing in the shortcut menu.
    The routing on the selected instance is deleted. The trunk and fixed preroutes are preserved.

Support for Multiple Forms

The Virtuoso Space-based Router Options form allows you to display multiple subforms in a single pane. To display multiple subforms, select any option from the Routing Preferences tree in the left pane, and then hold down the Ctrl key and select other options from the left pane. All subforms corresponding to the options that you selected in the left pane are listed in the right pane in the order in which they are listed in the left pane, as shown below.

A vertical scroll bar is automatically added to the right pane if the pane cannot accommodate all the forms. To remove the subform from the right pane, hold down the Ctrl key and deselect the required option from the left pane. You can use the Defaults button to reset all options in the subforms displayed in the right pane to their default values.

Inserting Colored TrimMetal Layers in Automatic Routing

Advanced node processes (SADP) with trim shapes might not have DRC clean instance pins (minArea) and post placement violations between other instance pins (minEndOfLineSpacing). This causes problems for automatic routing to access pins because of the violations generated during routing (pin are required to be DRC clean before routing).

To resolve this problem, automatic routing inserts wires (pathSegments) to fix minArea violation and trim shapes to fix minEndOfLineSpacing violation, while routing pins with connectivity. Automatic routing supports automatic insertion of trim shapes when the trimShape and trimMinSpacing constraints are defined in the technology file. In such cases, the trimShape and trimMinSpacing constraints are honored and the trim shapes are inserted.

The automatic routing provides two methods of adding a trim shape.

In automatic routing, the width of the bridge is determined by the exactEolWidth parameter of the minEndOfLineSpacing constraint and not by the width of the pin.

Two IO pins should not have a minEndOfLineSpacing violation between each other because that is considered as a valid violation when routing is performed.

You can also assign color to a trim layer and specify that a trim layer with a given color should cut a routing layer with that color. As a result, trim shapes are automatically assigned the correct color when they are added during automatic routing. For more information, see trimShape.

Interrupting Routing for Unresolvable Errors

While routing a design, there are some errors that can occur due to data or technology setup issues, which could not be recognized by the routability checker. If the router is taking too long to complete, you can stop the current run using Ctrl + C and investigate what the issues might be.

To prevent the router from running further, do the following

  1. Select nets from the Navigator assistant.
  2. From the Wire Assistant, select the Auto Route command.
  3. Click the All or the Selected button next to Route Net.
    The routing for the nets selected in the Navigator assistant starts.
    Alternatively, choose RouteAutomatic Routing.
    Select the All Nets or Selected Nets option from the Automatic Routing sub menu.
  4. To interrupt routing, press Ctrl + C.
    The User Interrupt Detected form is displayed.
  5. Select the Display Router Engine Statistics check box to collect and display statistics from the routing engine.
  6. Select the Display Full Statistics check box to display all the violation statistics. By default, the Display Full Statistics check box is disabled and only the most relevant statistics are displayed. The Display Full Statistics check box is enabled only when the Display Router Engine Statistics check box is selected.
  7. In the form, click an option to discontinue the router from running. You can select one of the following options.
    • Exit Quickly with Partial Results
      Completes the current routing step as quickly as possible. The results are saved and routing exits without any further routing steps. You can view and edit the routing results that are saved. By viewing the routing results, you are able to identify the types of issues that are encountered by the router at the time of interruption.
      The Quickly Exit with Partial Results button is enabled only when detailed routing step has already started.
    • Exit Immediately
      Exits the current routing immediately without saving any routing results. The design is unmodified and left in its pre-routing state.
    • Continue Routing
      Cancels the user interrupt and continues routing.

    The Current Command section provides information about the command that was running at the time of interruption.
  8. To view the router statistics, again click the Continue Routing button.
  9. Again, press Ctrl + C.
    The following figure shows the routing engine statistics that get displayed in a tabular format.
    Subsequently, clicking the Continue Routing button and then pressing Ctrl + C provides the routing statistics that have been completed between the two actions.
    The Violation Activity table shows the router statistics, if they exist. The following table provides the description of various columns in the Violation Activity table.

    Layer

    Provides the layer name

    Problematic Ratio

    Provides the relative error ratio compared to a uniform distribution of equal violations on across all layers (1X is equal number of violations across all layers in a uniform distribution).

    Constraints

    Provides the constraint name and the percentage of the type of violation on that layer.


    The Violation Constraint table shows the foundry constraint group rule violations. The following table provides the description of various columns in the Violation Constraint table.

    Constraint Group

    Excludes foundry CG for incomplete statistics and includes foundry violations if Display Full Statistics is selected.

    percentage (excluding foundry)

    Shows the percentage of violations based on the constraint group it is in.


Return to top
 ⠀
X