Product Documentation
Virtuoso Studio What's New
Product Version IC23.1, November 2023

12

What’s New in Virtuoso Automated Placement and Routing Flow


This topic provides a high-level overview of the new features in the IC23.1 base release and subsequent ISR releases.

IC23.1 ISR3


Loading Settings From a File to the Auto P&R Assistant

You can now load settings from an options file into the Auto P&R assistant. You use the apLoadOptions SKILL API to define the cellview for which the settings are to be loaded, the file that contains the settings, and the placement style for which the values are applicable. 


Switching Placement Style in SKILL

Instead of using the UI options, you can now use the apSwitchPlacerType SKILL function to switch between the placement styles.


Applying Transition Spacing While Inserting Fill

In the automated placement and routing flow, transition spacing is specified as part of the placement step. When you move to the next step and insert device fill, you can now use the fillRegionHonorTransitionSpacing environment variable to specify the direction along which the transition spacing value is to be applied.


Setting the PDK Flow to Primitive or Analog Cell

You can identify a PDK as an analog cell PDK or a primitive PDK. The isOnlyAnalogCellFlow  environment variable lets you specify the flow that the current PDK supports.




IC23.1 ISR2


Using Preset Files to Reuse Device Settings  

You can now use preset files to save your device-level Auto P&R assistant settings. You can then re-apply these settings to another design. To support this feature in the device mode, the Auto P&R assistant toolbar now includes the following buttons:


Enhanced NetClass, DiffPair, and Symmetry Constraints

A new field Same Mask has been added to the NetClassDiffPair and Symmetry forms. The Same Mask field also appears as a column in the table in the NetClass, DiffPair, and Symmetry tabs of Routing Constraint Manager.


Loading a Pullback File

The Load option has been introduced in the Pullback and Offset Values form to load the pull back values from a text file.


Creating Pins on Pin Purpose

A new option Create on pin purpose has been added to the Pins section of the Supply tab in the Routing Assistant. This option lets you create routing pins on pin purpose instead of drawing purpose. You can also use the supply_createPinsOnPinPurpose environment variable to create routing pins on pin purpose instead of drawing purpose. The new option and the environment variable has been added for both device-level and standard cell routing types. 


Preroutes Renamed to Manual Routing

The Preroutes option in the Delete section of the Route tab in the Routing Assistant has been renamed to Manual Routing for standard cell routing. This change has been made to have the same delete options for standard cell and device-level routing types.


Loading Presets

A new SKILL API vreLoadPreset has been introduced to load a router preset file.


Selecting Row or WSP Region

A new option WSP/Row has been added to the Scope section of the Supply tab in the Routing Assistant to let you create supply stripes inside a row region or WSP region. This new option has been added for both device-level and standard cell routing types. 


Assigning Wire Type to Nets Enhancements

The use model for assigning wire type to nets has been enhanced to pre-populate with existing power and ground nets. Also, all signal nets are now allowed to be set.


Specifying Routed Cellview

Rather than selecting a cell name to which you want to save the routing results, you can now specify a new cell name to save the routing results. The cell is created as an instance in the design library. You can search for the cell name in the design library with <cellname>_proute. By default, the view name is always layout. You can also use the supply_defaultRoutedCellExpression environment variable.


Automated Placement and Routing Environment Variables

The following new environment variables are now available for the Automated Placement and Routing flow.


Automated Placement and Routing API-based Flow

As an alternative to using the UI options in the Auto P&R assistant, you can now use the following new SKILL APIs to run various placement-related tasks:


Customizing the Interactive Placer Context Menu

You can now use the following SKILL APIs to add or remove menu items from the interactive placer context menu.





IC23.1 ISR1


Enhanced DiffPair and Symmetry Constraints Forms 

To include creating msTolerance, a new field Tolerance has been added to the DiffPair and Symmetry Process Rule Override Editor forms. 


Enhancements in Routing Constraint Manager

  • The Process Rule Overrides and Group Process Overrides column has been added to the Nets tab of the Routing Constraint Manager.
  • The Tolerance column has been added to the Symmetry and DiffPair tabs of the Routing Constraint Manager.


Enhancements in Routing Results Browser

New columns for each individual constraint check have been added to the Routing Results Browser to show the count of violations reported from Routing Constraint Manager constraint checks.


Enabling All Constraint Checks

To enable all constraint checks at the same time, a new Checks option has been added to the Constraint Checker form.


Removing Shorts

A new SKILL API vcrRemoveShorts has been introduced to remove shorts on a net or nets from the layout design.


Grouping the Supply Grid Per Metal Layer

A new environment variable prouteGroupByLayer is available to create a child figGroup for grouping path and via by layer for the supply routing result.


Remastering Instances

A new environment variable remasterLayoutLibs is available to specify a library that contains layout views, which is used to remaster instances.


Usability Enhancement in Supply Tab

The Pins section has been rearranged and moved out of the Options section of the Supply tab of the Routing Assistant.


Loading and Saving Constraint Order from a Preset File

The Constraints tab of the Auto P&R assistant now includes the following buttons that let you save and reuse the constraint order:

  • Load : Loads the constraint order from a preset file.
  • Save : Saves the current constraint order to a preset file.


Layout Migration Using the Auto P&R Assistant

The Auto P&R assistant now supports the assisted flow of the Virtuoso® Custom Design Migration solution. In Layout MXL, the following tabs of the Auto P&R assistant include an additional Migration Options section:

  • Initialize tab: Captures design placement data, for example, the PR boundary, pins, instances, and routing shapes, from a source layout and applies the captured data to a target layout.
  • Constraints tab: Captures groupings from a source layout and applies the captured data to a target layout.


Running the Placer on Mature Nodes Designs

In addition to advanced node designs, you can now run the Virtuoso device-level automatic placer on mature nodes designs. Set the matureOrAdvancedNode environment to mature to switch the process node. You can then use the options on the Placer tab of the Auto P&R assistant to run the placer on mature node designs.


Using Multi-Fingered Analog Stack Gate Cells as Transition Fill

You can now use multi-fingered analog stack gate cells as transition fill in the Fill step of the automated device placement and routing flow. The following environment variables are available to support this feature:

  • multiFingerTransFill: Specifies whether multi-fingered stack gate analog cells are to be used as transition fill.
  • transitionFillFingerCount: Specifies the number of fingers to be included in the stack gate transition fill cells.


Removed Features

The following device fill-related SKILL functions are no longer supported:

  • lobRegUserProc
  • lobUnRegisterTransitionFillDefsProc
  • lobUnRegisterTapFillDefsProc
  • lobUnRegisterAdjacentFillDefsProc
  • lobRegisterTransitionFillDefsProc
  • lobRegisterTapFillDefsProc
  • lobRegisterAdjacentFillDefsProc
  • lobGetRegisteredTransitionFillDefsProc
  • lobGetRegisteredTapFillDefsProc
  • lobGetRegisteredAdjacentFillDefsProc
  • lobBaseLayerDummyFillWrapperCB
  • lobBaseLayerDummyFillCB


The following device fill-related environmental variables are no longer supported:

  • lobAdjacentFillGen
  • lobAdjacentFillDef
  • lobAdjacentFillSpacing
  • lobAdjacentFillMargin
  • lobTransitionFillGen
  • lobTransitionFillDef
  • lobTransitionFillNFins
  • lobTransitionFillFingerLength
  • lobTransitionFillMargin
  • lobTapFillLib
  • lobTapFillCell
  • lobTapFillView
  • lobDummyFillLib
  • lobDummyFillCell
  • lobDummyFillView
  • lobTapFillMargin
  • lobTapFillDef
  • lobDevFillPhysOnly
  • lobFillAsMosaic
  • lobPolyFillGen
  • lobPolyFillMaxPolyWidth
  • lobChannelCutPolyGen
  • lobTransitionCutPolyGen
  • lobPolyLPP
  • lobPolyWidth
  • lobCutPolyLPP
  • lobCutPolyWidth


IC23.1 Base


Introducing the Virtuoso Automated Placement and Routing Solution

Virtuoso® Studio integrates a comprehensive Automated Placement and Routing solution to meet the placement and routing requirements for different custom IC design styles. This placement and routing solution leverages existing technologies and new developments for improved quality of results, scalability, and user experience. The placement and routing solution focuses on the increasing requirement for layout automation. It lets you configure a placer and a router, specify their setup, and manage placement and routing results.

The Virtuoso automated placement and routing flow supports the following placement modes:

  • Automatic Placement:  Uses the options in the Auto P&R assistant to customize placement settings and run the Virtuoso automatic placer. The following placement types are supported: 
    • Device placementDevices are placed by running the Virtuoso device-level automatic placer. For automated device placement, use the Auto P&R assistant available in the Layout EXL and higher tiers.
    • Standard cell placement: Seamlessly integrates the Innovus GigaPlaceā„¢ placer in the Virtuoso environment. For standard cell placement, use the Auto P&R assistant available in the Layout MXL cockpit.
  • Interactive Placement:  Devices are placed semi-automatically. Depending on the placement needs and the complexity of the design, you can first run the Virtuoso device-level automatic placer and then use the interactive placement options to refine the placement.

This flow supports the following routing modes:

  • Automatic Routing: Enables high-speed shape-based routing, allowing gridded or grid-less, and track-based routing of regular and power signals for physical designs. The following automatic routing types are supported:
    • Device Routing: technology integrates a grid (WSP) based routing solution that helps you route device level designs in Virtuoso MXL tier with a focus on advanced nodes.
    • Standard Cell Routingtechnology seamlessly integrates the NanoRouteā„¢ router in the Virtuoso environment. It provides different ways for you to generate WSPs as well as route without them, relying on Innovus-created tracks.
    • Chip Assembly Routingtechnology targets top-level designs that have macro instances, I/O pads, and can also contain standard cell areas. It also addresses memory type designs using spine routing.

For all automatic routing types, use the Routing assistant available in the Layout MXL cockpit.

  • Interactive Routing Enables you to route connections interactively within the Virtuoso environment. These capabilities provide efficient ways to route connections in order to meet critical design constraints and rules. The interactive routing capabilities are fully enabled on all process nodes including the most advanced process technologies. For interactive routing, use the Routing assistant available in the Layout EXL and higher tiers.

The Virtuoso Automated Placement and Routing Flow also provides:

SKILL Functions

To manage various tasks in the Virtuoso Automated Placement and Routing flow, you can use SKILL functions. The Virtuoso Automated Placement and Routing SKILL Functions have been broadly classified into the following categories:

  • Virtuoso Device Placement SKILL Functions
  • Virtuoso Standard Cell Placement SKILL Functions
  • Virtuoso Routing Environment SKILL Functions
  • Virtuoso Routing Technology SKILL Functions

Environment Variables

To set default values for various placement and routing options in the Auto P&R assistant and Routing assistant, you can also use the related placement and routing environment variables. 


Invoking Virtuoso Analog Placer in the Virtuoso Automated Placement Flow

You can now use the apPlaceAutoMatureNode SKILL API to invoke the Virtuoso Analog Placer, which is available at mature nodes. 


Controlling the Display of Tabs in the Array Assistant

You can now use the adaDisableTab environment variable to control the display of tabs in the Array Assistant. For example, when the environment variable is set to "GuardRing" and "Routing", these two tabs are not available in the Array Assistant. This new environment variable replaces adaDisableRoute, which is no longer available.


The Row/Grid Tab Renamed to the Setup Tab in the Auto P&R Assistant 

Earlier, the Row/Grid tab of the Auto P&R assistant included options to create rows and grids. Gradually, other design set up-related options were added. Therefore, the Row/Grid tab is now renamed to Setup.


Specifying the Fill Extension Values

The Fill tab of the Auto P&R assistant already includes the Extend Fill option to specify whether the cell fill can be extended in all directions to cover the gaps within the PR boundary. This feature has now been further enhanced to let you specify the units by which the cell fill are to be extended. Two new environment variables have been introduced: 


Preview Constraints by Arranging them Based on Virtual Groups

The Constraints tab of the Auto P&R assistant now includes the Arrange By Virtual Groups option, which lets you preview the placement of Modgen groups before running the placer. With this option selected, when constraints are generated, they are automatically arranged in columns according to their virtual groups.


Managing the Display of Constraint Groups

The Constraints tab of the Auto P&R assistant now includes the following icons to manage the display of constraint groups:

  • : Expands and collapses all constraint group trees
  • : Hides or shows unused, empty constraint groups.
  • : Highlights or unhighlights all instances of the selected constraint groups in the layout and schematic views.


Diffusion Grid-Based Placement of Multi-Height Devices

The Virtuoso automated device placement and routing flow now supports diffusion grid-based placement, which is a new technology for rowless placement of mixed height devices. This technology creates specialized grids based on the heights of the diffusion layers of different devices in the design. These devices are snapped to the grid according to the height of their diffusion layers.

To support this flow, the Create Diffusion Grid check box is added to the Setup tab of the Auto P&R assistant. This option is displayed only when the  enablePlaceWithWsp environment variable is set to t


Filling Gaps Between Modgens During Placement

The Placer tab now features a new Fill Modgen Dummies option, which fills the gaps between Modgens selected on the layout canvas with Modgen dummies.


Differentiating Between Active Devices and Dummies

In previous releases, the constraints, placement, and fill steps of the Virtuoso automated device placement and routing flow were enhanced to support virtual groups in non-uniform designs. As an extension to this enhancement, the Fill tab of the Auto P&R assistant now includes the Highlight Dummy Fills option, which highlights all dummy devices in the layout. Click Highlight Dummy Fills after inserting fill devices to differentiate between active devices and dummies. 


Support for a Single Instance of Multi-Fingered Fill

Earlier, the Fill tab of the Auto P&R assistant included a Create As option to specify whether a single instance or multiple instance dummy fill were to be created. The default behavior has now changed. The fill command automatically adds a single instance of multi-fingered fill in gaps between active devices. The Create As option is no longer available.









 ⠀
X