
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:
- Load Preset Options: Loads options from an existing preset file.
- Save Preset Options: Saves the preset options to file.
Enhanced NetClass, DiffPair, and Symmetry Constraints
A new field Same Mask has been added to the NetClass, DiffPair 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.
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:
- apCreateDeviceRowRegion: Creates a new row region.
- apDeleteDeviceRowRegions: Deletes all automatically created rows and row regions.
- apInsertFill: Inserts fill in the given layout.
- apDeleteFill: Deletes fill from the given layout.
- apInsertTrims: Inserts trims to fix shorts.
- apDeleteTrims: Deletes trims.
- apValidateTrims: Validates trim insertions.
- apRunCreateGR: Creates guard rings.
- apRunDeleteGR: Deletes guard rings.
- apAdjustBoundary: Resizes the PR boundary to cover the devices that were earlier placed outside the PR boundary.
- apCapturePlacement: Captures placement data from the current (source) layout and stores it in a migration directory.
- apRunDeviceGeneration: Generates the selected object types from the source.
- apFixColors: Swaps colors of flipped rows.
- apRunBackannotate: Runs back annotation on the given design.
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.
- apIPRegisterCustomMenuItem: Registers a custom context menu item in the interactive placer context menu.
- apIPUnregisterCustomMenuItem: Removes the specified custom menu item from the interactive placer context menu.
- apIPUnregisterCustomMenuItems: Removes all custom 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 placement: Devices 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 Routing: technology 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 Routing: technology 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:
- Comprehensive pre-routing data to double-check each net in the design using Pre-Route Browser.
- Graphical routing result analysis using Routing Results Browser to check the quality of results.
- Graphical constraint management through Routing Constraint Manager.
- Automated constraint checker for verifying constraint adherence in the router result.
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.
- Automated Device Placement and Routing Flow Environment Variables
- Standard Cell Placement and Routing Environment Variables
- Chip Assembly Routing Flow 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:
- vgFillSpaceSpecifyUnit specifies the units in which fill extensions are to be specified —
Poly pitchesorUser Units. - vgFillSpacePitchesOrUserUnit specifies the number of poly pitches or user units in which fill devices are to be extended.
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.
