Product Documentation
Virtuoso Studio Design Environment Adoption Guide
Product Version IC23.1, September 2023


Contents

1

Introduction to OpenAccess Adoption

Acronyms and Terminology

What Is OpenAccess?

The Database Infrastructure
Virtuoso Studio Design Environment on OpenAccess
Configuring OpenAccess
How Programmers Can Access Data

New, Changed, and Removed Functions

Finding the Database, Build, and Release Number

Determining the Database Type
Finding the Build and Release Number
Finding the Database Type for a Virtuoso Executable
Finding the OpenAccess Version
Finding the OpenAccess Data Model Version
Using Shareable OpenAccess Libraries

Translators

Converting CDB Data
Virtuoso Studio Design Environment Specific Translators

Application

Virtuoso Chip Assembly Router
Encounter

2

OpenAccess Adoption with CDBA

Development Environment

Conditionally Compiling Code
Using OpenAccess Code and Extensions
Structuring Your Code

3

CDB/OpenAccess Database Differences

General Differences

Using Function Calls on Standard Vias
Calls to dbRefreshCellView
Using the Schematic Bus Range Order Option
Calls to dbReplaceProp for Abutment Groups
Mark Net Command
Enhancements in the Design Summary Form
Calls to the cdsInit and dbInit Functions
Defragmentation in OpenAccess
Maximum Cellview Bounding Box
Name Space Differences
Database Size Differences Using Paths Versus PathSegs
Escape Sequences in Names
Backquote Character in Names
Using Instance Parameters
Instance Magnification Differences
ITK Read-in Triggers
Instance Masters on OpenAccess
Order of Generating Objects
Undo/Redo
techFindViaDefByName vs leIsContactName SKILL API

Files

Set-up Files New in the Virtuoso Studio design environment
Files that Have Changed
Files that No Longer Exist
Files that Are the Same

Pins

Complex Pin Modeling
Symbolic Device Masters
Instance Pin (instPin) Objects

InstTerms and Terminals

Iterated Instances
Net Width and Terminal Width
Terminal Required on Instances
Terminal Ordering

Bus and Bundle Nets

Bus Nets, Bundle Net, and Bus Net Bit
Bus Definitions
Nets with Equivalent Names
SKILL Access for Nets/Signals
Net Status Attribute

Embedded Module Hierarchy (EMH)

Inherited Connections

Mosaics

Naming of Mosaic Instances
Binding of Mosaic Instances
Rotation of Mosaics

Design Management

Differences in Storage and Data Models

Region Query Functions

Placement Status

Virtuoso Studio design environment Libraries

Determining the Library Structure
Using Nested Libraries
Library Definition Files
Combining CDB and OpenAccess Libraries

Cellviews

Creating Cellviews
Saving Cellviews Using SKILL
Panic Cellviews
Scratch Cellviews
Standard Via Masters
Behavior in Read-Only Mode
Using dbWriteCellView and dbCopyCellview
Opening a Cellview with dbGetAnyInstSwitchMaster
Maximum Number of Open Files
Cellview Reference Count
CellViewType Attribute
Mapping of Cellview Types from CDB to OpenAccess
Custom Virtuoso Studio design environment View Types

Properties of Libraries, Cells, and Views

Calls to dbBag SKILL Functions
Property Type dbcFileNameType
Properties versus Parameterized Cell Parameters

Command Interpreter Window (CIW)

Objects

Changing Object Types
Changing the Name of an Object
Changing an Instance Name to the Same Name

Timestamps

How CDB Uses Timestamp Properties
How the Virtuoso Studio design environment Uses Counters
Counters Provide Finer Resolution
Instance Time Stamps
Currency of an Instance and Its Master
Both Counters and Timestamps Needed in Some Applications

4

OpenAccess Technology Data Changes

OpenAccess Data Models

Virtuoso Support for OpenAccess Data Models

Support for Incremental Technology Database
Constraint Support for 45/65 nm Process Rules
Constraint Support for 32 nm Process Rules
Support for Using Group Definitions
ConstraintGroupDef
Support for Predefined Via Parameters
Purpose-Aware Constraints
Reserved Purposes
Support for New ITDB Constructs
Constraint Parameters
Huge String/Name Data
oaPartitions
Huge oaPointArray Data
Huge oaAppProp Data
Moving Your Data to OpenAccess Data Model 4
Opening an IC6.1.1 Database

Virtuoso Support of Technology File Constraints

Types of Constraint Groups
Hard and Soft Constraints
Coincident Allowed Parameter
Constraint Group Properties
Constraint Group Semantics
Technology Database File Name
Technology File Updates Using Merge and Replace
Changes to Table Spacing Syntax
Translation of the resistancePerCut Property

Conversion of Technology File controls Class

DBUPerUU Stored in the Technology File
Manufacturing Grid

Conversion of Technology File layerDefinitions Class

Technology File Changes for Layer Purposes
Changing the Number of Characters for LSW Purpose Abbreviation
LEF In Changes for Valid Layer Purposes
OpenAccess Constants for Reserved Purposes
Different Purpose and Layer Numbers Values
For C and C++ Code, Use Cadence-Defined Constants and typedefs
Location of Cadence-defined Constants and typedefs
Technology File Changes for Layers
Virtuoso Environment Layer Purpose Pairs Support
Technology File and LPP SKILL Attribute Changes
Derived Layers
Characterization Rules Stored as Layer Properties

Conversion of Technology File layerRules Class

Via Layers
Equivalent Layers
Translation of Technology File Stream Rules
Differences Between PIPO and XStream
Mask/Layer Functions
Manufacturing Resolution (layer)
Layer Routing Grids
Preferred Routing Direction
Current Density Rules

Conversion of Technology File physicalRules Class

Translation Processes
Mapping CDB Physical Technology File Rules to OpenAccess Constraints
Supported Constraints
Mapping Table Conventions
Single Layer Spacing Constraints
Gate Orientation
Minimum Gate Extension Constraint
Minimum Perimeter Constraint
Minimum Area Constraint
Minimum Area Edge Length Constraint
Minimum Size Constraint
Minimum Enclosed Area (Hole) Constraint
Minimum Enclosed Area (Hole) Width Constraint
Minimum Cut Class Spacing
Minimum Cut Class Clearance
Minimum Density Constraint
Maximum Density Constraint
Minimum Step Edge Length Constraint
Minimum Diagonal Edge Length Constraint
Manhattan Corner Enclosure or Spacing Constraint
Minimum Spacing Constraint
Minimum Center Spacing Constraint
Minimum Diagonal Spacing Constraint
Minimum Diagonal Width Constraint
Minimum Different Potential Spacing Constraint
Minimum Space between Fill Pattern and Real Design Object Constraint
Minimum Proximity (Influence) Spacing Constraint
Minimum Proximity (Influence) Spacing Constraint for Protruding Wires or Stubs
Minimum Spacing Constraint (sameNet)
Minimum Adjacent Via Spacing Constraint
Minimum Via Spacing Constraint
Merge Allowed Spacing Constraint
Minimum Width Constraint
Minimum Protrusion Width Constraint
Maximum Width Constraint
Minimum Length Constraint
Maximum Length Constraint
Minimum Number of Cuts Constraint
Minimum Number of Cuts on Protrusion Constraint
Allowed Shape Angles Constraint
Diagonal Shapes Allowed Constraint
Maximum Tap Spacing Constraint
Minimum Notch Spacing
Minimum End of Notch Spacing
Minimum Wire Extension Constraint
Minimum Boundary Extension Constraint
Keep prBoundary Shared Edges Constraint
Minimum Boundary Interior Halo Constraint
Maximum Diagonal Edge Length Constraint
Redundant Via Setback Constraint
Maximum Routing Distance Constraint
Minimum Parallel Via Spacing Constraint
Minimum Parallel Within Via Spacing Constraint
Minimum Parallel Span Spacing Constraint
Minimum Same Metal Shared Edge Via Spacing Constraint
Minimum End of Line Spacing Constraint
Minimum End of Line Perpendicular Spacing Constraint
Minimum Large Via Array Spacing Constraint
Minimum Large Via Array Cut Spacing Constraint
Maximum Number of Edges with Minimum Edge Length Constraint
Minimum Distance Between Adjacent Sets of Edges with Minimum Edge Length Constraint
Minimum Length of Sets of Edges Adjacent to a Short Edge Constraint
Minimum Rectangle Area Constraint
Minimum Corner to Corner Distance Constraint
Allowed Spacing Range Constraint
Taper Halo Constraint
Corner Constraints
Minimum Outside Corner Edge Length Constraint
Minimum Inside Corner Edge Length Constraint
Minimum Inside Corner Overlap Constraint
Minimum Inside Corner Extension Constraint
Single Layer Routing Grids
Horizontal Routing Grid Pitch Constraint
Horizontal Routing Grid Offset Constraint
Vertical Routing Grid Pitch Constraint
Vertical Routing Grid Offset Constraint
Left Diagonal Routing Grid Pitch Constraint
Left Diagonal Routing Grid Offset Constraint
Right Diagonal Routing Grid Pitch Constraint
Right Diagonal Routing Grid Offset Constraint
Default Horizontal Routing Grid Pitch Constraint
Default Horizontal Routing Grid Offset Constraint
Default Vertical Routing Grid Pitch Constraint
Default Vertical Routing Grid Offset Constraint
Default Left Diagonal Routing Grid Pitch Constraint
Default Left Diagonal Routing Grid Offset Constraint
Default Right Diagonal Routing Grid Pitch Constraint
Default Right Diagonal Routing Grid Offset Constraint
Placement Grid Constraints
Horizontal Placement Grid Pitch Constraint
Horizontal Placement Grid Offset Constraint
Vertical Placement Grid Pitch Constraint
Vertical Placement Grid Offset Constraint
Antenna Models
Antenna Oxide1 Model Constraint
Antenna Oxide2 Model Constraint
Antenna Oxide3 Model Constraint
Antenna Oxide4 Model Constraint
Two Layer Constraints
Minimum Clearance Constraint
Maximum Spacing Constraint
Minimum Clearance Constraint (sameNet)
Minimum Extension Constraint
Minimum Opposite Extension Constraint
Minimum Extension Edge Constraint
Minimum Orthogonal Via Spacing Constraint
Coincident Extension Allowed Constraint
Minimum Overlap Constraint
Minimum Parallel Via Clearance Constraint
Via Stacking Rule Constraint
Minimum Enclosure Constraint
Maximum Enclosure Constraint
Minimum End of Line Extension Constraint
Keep Shared Edges Constraint
Allowed Clearance Range Constraint
Minimum Via Clearance Constraint
Three Layers Spacing Constraints
Minimum Enclosure in Direction of Touching Layer Constraint
Minimum Spacing in Direction of Touching Layer Constraint
Minimum Spacing Over Layer Constraint
Dummy Poly Extension Constraint
Constraints Associated with the Technology Database
Maximum Number of Via Stacking Constraint
Valid Routing Layers Constraint
Valid Routing Vias Constraint
Global Distance Measure

Conversion of Technology File electricalRules Class

Characterization Rules
Current Density Rules
Mapping User Defined Electrical Rules

Conversion of Technology File prRules Class

prRule Masterslice Layers
prRule Overlap Layers
prRule Routing Layers
prRule Routing Grids
prRule Routing Pitch
prRule Routing Grids Offset
prRule Stack Vias
prRule Max Stack Vias
prViaTypes
prViaTypes Default
prVia Rules
prGenViaRules
prNonDefaultRules

Conversion of Technology File leRules Class

Conversion of Technology File lxRules Class

Layer Purpose Based lxRules
Extract Layers
No Overlap Layers
Multipart Paths

Conversion of Technology File devices Class

Create Contact Command Obsolete
Vias as First Class Objects - Updating C and SKILL Code
Differences Between CDB and the Virtuoso Studio design environment Vias
Mapping of CDB Devices
cdsViaDevice to standardViaDefs Mapping
syContact to standardViaDefs Mapping
Mapping CDB Symbolic Device Masters

Technology File Via Definitions and Via Specifications

Standard Via
Standard Via Variant
Custom Via
Custom Via Variant
Via Specifications

Technology File Site Definitions

5

Changes to Environment Objects and Shapes

Differences Between CDB and Virtuoso Studio Design EVirtuoso Studio design environmentnvironment Objects

Virtuoso Studio design environment Objects

Interconnect Objects
Rows
Sites
Blockages
Boundaries
Mapping Shape Based Boundaries
Clusters
Track Patterns
Markers
Steiner
Layer Headers

CDB and Preview Conventions for Identifying Objects

Controlling Display and Selection of Objects

Required Technology File Layers and Purposes for OpenAccess Objects
Unplaced Instances

Shapes

Paths with Extensions
Objects with Points
Zero-Area Rectangles

Text Display Visibility

Bounding box for Net Expression Text Display Incorrect in OpenAccess

Arcs

Converting Start and Stop Angles for an Arc
Selection of an Arcs
Querying an Arc for Its Bounding Box
Querying an Arc for Its Start and Stop Angles

Bounding Boxes of Labels and Text Displays

6

Migrating from PIPO to XStream

Overview

PIPO-XStream Template File Differences

Stream In Template File Mapping
Stream Out Template File Mapping

Using the PIPO-XStream Template Conversion Utility

Using the PIPO-XStream Utility

A

prRules Conversion Messages


Return to top
 ⠀
X