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

1


Introduction to OpenAccess Adoption

The Virtuoso® Studio Design Environment Adoption provides the information needed to move an IC development environment, including C and SKILL code, from the CDB database to the Virtuoso Studio design environment on OpenAccess database.

With the help of this guide, you should be able to translate your data, convert your SKILL and C code, and successfully adopt OpenAccess.

In past releases, the Virtuoso Studio design environment was called the Design Framework II (DFII) environment. As of IC6.1, the DFII name has changed to the Virtuoso Studio design environment to reflect the new environment and platform changes.

This guide includes information about the following areas:

This user guide is aimed at developers and designers of integrated circuits and assumes that you are familiar with:

This chapter describes the relationships among the Virtuoso® Studio Design Environment on OpenAccess database components and how to convert data to Virtuoso Studio design environment.

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

Finding the Build and Release Number

Finding the Database Type for a Virtuoso Executable

Finding the OpenAccess Version

Using Shareable OpenAccess Libraries

Translators

Virtuoso Studio Design Environment Specific Translators

Application

Encounter

Acronyms and Terminology

API

Application Programming Interface

CDBA

Cadence DataBase API. The C and SKILL API layer that is used to access the OpenAccess and CDB databases.

CDB

Cadence proprietary database

DFII

Design Framework II. The set of tools in this design environment include the Virtuoso physical design tools and the analog design/mixed signal tools. Customers customize the environment using the Cadence SKILL language.

As of IC23.1, the Virtuoso Design Environment name has changed to Virtuoso Studio Design Environment to reflect the new environment and platform changes.

DDPI

Design Data Procedural Interface.

The API layer that supports a variety of functionality including support of the 5.x library structure, file locking, data registry, library categories, limited design management capabilities (GDM), and startup file searching functionality.

OpenAccess

Application programming interface and reference database created as an interoperability platform for complex digital, analog and mixed-signal IC design.

Property Bag

Database files at the library, cell, and view levels that contain property information. OpenAccess is replacing property bags. Access to property information is currently made through CDBA dd functions.

Virtuoso Studio Design Environment on OpenAccess

System comprising the Virtuoso software tools, built on the OpenAccess database using the CDBA procedural interface.

What Is OpenAccess?

OpenAccess is an application programming interface (API) and reference database created as an interoperability platform for complex digital, analog, and mixed signal IC design. It is uniquely offered through a secure, open-community source program.

Both the suppliers and integrators of design automation tools benefit from the innovations in OpenAccess. OpenAccess provides electronic design suppliers with a versatile, high performance, high capacity database engineered for fast development. By using OpenAccess, electronic design suppliers can better focus on innovation while lowering development costs. When used as a common API and unified database, OpenAccess offers flow integrators an unprecedented ability to tailor distinctive flows using electronic design applications from multiple sources. Flows are integrated quickly and perform with greater efficiency.

OpenAccess is composed of various subsystems. The subsystems pertinent to the Virtuoso Studio design environment development are briefly described in the following sections. The infrastructure packages are designed with as few external dependencies as possible to minimize the number of packages that have to be published with OpenAccess.

For more information about OpenAccess, go to the following URLs.

http://www.si2.org

http://openeda.si2.org

Sponsored by Silicon Integration Initiative, Inc [Si2], OpenEDA.Si2.org is a restricted access site for the distribution of files from Si2 development groups (councils, projects, boards, or workgroups). Login accounts are required for file downloads and many site features.

Release notes are available which describe the product changes for each release of OpenAccess APIs.

The Database Infrastructure

The following diagram shows the relationships between the Virtuoso Studio design environment on OpenAccess components and the OpenAccess database components.

Virtuoso Studio Design Environment on OpenAccess

The Virtuoso Studio design environment on OpenAccess is a system comprising the Virtuoso software tools, with access to the OpenAccess database through C and SKILL APIs.

The acronym CDB (Cadence Database) refers to the physical Cadence proprietary database, which previously was the only database that was supported for use with Virtuoso applications. The acronym CDBA (Cadence Database API) refers to the C and SKILL procedural interface extended to work on both CDB and OpenAccess. Previously implemented on Cadence proprietary technology, CDBA is now implemented on top of the OpenAccess database and has been significantly expanded to offer direct access to many new native OpenAccess objects.

Configuring OpenAccess

If the Cadence product you are using requires OpenAccess DM4, it will automatically install OpenAccess in the following directory:

<cadence_install_dir>/oa_v22.04.<xxx>

where xxx denotes the build number such as 001.

You can override the default OpenAccess installation by using the OA_HOME environment variable. You can also specify a different default OpenAccess installation by using the Configure utility available though InstallScape. For information about both these options, see the OpenAccess Configuration Guide.

How Programmers Can Access Data

Examples of accessing the OpenAccess database.

Access using SKILL:

techGetSpacingRules(
d_techFileID
)

Access using C on OpenAccess:

techGetSpacingRule(
techFileId techfile,
String ruleName,
techLayerNum layer1Num,
techPurpose purpose1,
techLayerNum layer2Num,
techPurpose purpose2,
techPropType *pType,
techPropValue *pValue,
);

Access using OpenAccess C++:

const oaString & oaLayerConstraintType::getName ( ) const [inline] 

New, Changed, and Removed Functions

For information about new, changed, and obsolete C functions, see the Cadence Integrator's Toolkit Database What’s New documentation.

For information about new, changed, and obsolete SKILL functions, see the Virtuoso Design Environment SKILL Reference.

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

Using Shareable OpenAccess Libraries

Determining the Database Type

Use the C function dbGetDatabaseType to determine the database type. The function returns either dbcCDBADbType or dbcOpenAccessDbType, depending on the build hierarchy against which the code was compiled.

The SKILL function dbGetDatabaseType returns a string that is either "CDBA" or "OpenAccess" depending on the database being supported.

Because the dbGetDatabaseType SKILL function is relatively new for both CDB and OpenAccess, you can include a test for its availability in your database-specific code. For example, the following SKILL code conditionally handles a database-specific variation in database unit access:

if( ! getd('dbGetDatabaseType) || dbGetDatabaseType() == "CDBA" then 
    bag = dbOpenBag( lib "a" )
    lib~>DBUPerUU~>maskLayout = 2000.0              ; CDB code
dbSaveBag()
dbCloseBag()
else ; OpenAccess     techSetDBUPerUU(techGetTechFile(lib) "maskLayout" 2000.0)     ; OpenAccess code
)

This code works both on CDB and on OpenAccess.

Finding the Build and Release Number

Use the following functions to check the build information and release number of the current database:

Finding the Database Type for a Virtuoso Executable

You can determine the database type that a Virtuoso executable will read or write by typing the -dbType option in a terminal window, as follows:

name_of_executable -dbType

This option returns either OPENACCESS or CDB.

For example, to find the database type for the virtuoso executable, type the following command in a terminal window:

virtuoso -dbType

Finding the OpenAccess Version

The installDir/tools/bin/cdsGetOAVersion script can be used to display the OpenAccess database component versions. The following is an example of the return value of cdsGetOAVersion.

Library:    oaBase      22.04-005    Tue Sep 11 00:00:17 2007 
Library: oaDM 22.04-005 Tue Sep 11 00:00:17 2007
Library: oaDesign 22.04-005 Tue Sep 11 00:00:17 2007
Library: oaTech 22.04-005 Tue Sep 11 00:00:17 2007
Library: oaWafer 22.04-005 Tue Sep 11 00:00:17 2007

Finding the OpenAccess Data Model Version

You can run the standalone cdsPrintOAFeatures utility on a design or technology database to find its OpenAccess data model level and the associated features.

Syntax

cdsPrintOAFeatures -lib <t_libName> <options>

-lib <t_libName>

Specifies the name of the OpenAccess library whose data model level is to be queried.

If cellview is specified, the command returns the data model level of the specified cellview.

If no cellview is specified, the command returns the data model level of the technology database of the specified library.

<options> include,

-cell <t_cellName>

Specifies the name of the cell to be queried. Use wildcard character (*) to match all cells.

-view <t_viewName>

Specifies the name of the view to be queried. Use wildcard character (*) to match all views.

Use a string quote or an escape character to prevent UNIX shell from expanding the wildcard character in your command arguments. For example, use -cell “*” or -cell \*.

-level <n_dmLevel>[+]

Specifies the level of the data model whose features are to be printed. Use the plus sign (+) optionally to print features of the specified and above levels. By default, features for all levels are printed.

-V

Returns the Cadence release version.

-W

Returns the Cadence release sub-version.

-help

Displays this list of options and their descriptions.

Examples

Using Shareable OpenAccess Libraries

Shareable OpenAccess libraries are supplied in your_install_dir/tools/lib directory of the Cadence software. The .so extension applies to the Solaris operating system.

Translators

Converting CDB Data

Support for the cdb2oa translator was removed from IC6.1.8 ISR13. If you still require to migrate design data from CDB to OpenAccess, contact Cadence Customer Support to discuss how to proceed.

Virtuoso Studio Design Environment Specific Translators

The following translators are the Virtuoso on OpenAccess custom translators which provide the required technology file information and physical data for Virtuoso specific flows. These translators are the customized applications for the Virtuoso translators created by extending the base C++ classes, APIs, and the infrastructure supplied by OpenAccess libraries.

LEFDEF: lefin, defin, lefout, defout

XStream: strmin, strmout, strminui, strmoutui

The following translators are the OpenAccess translators that are released as part of OpenAccess tarkits and can be found in the your_inst_dir/tools/bin of the respective hierarchies. These translators accomplish only the basic Stream In/Out and LEF/DEF In/Out functionality and do not create Virtuoso specific data needed for display.

LEFDEF: lef2oa, def2oa, oa2lef, oa2def

XStream: oaStrmIn, oaStrmOut, oaStrmInUI, oaStrmOutUI

XStream Translator Replaces PIPO

XStream, a high-performance Stream for OpenAccess, replaces the Stream translator PIPO. XStream has been developed using the native OpenAccess APIs.

For information about how stream translation rules are mapped between CDB and OpenAccess, see Conversion of Technology File devices Class.

For information about the differences in the functionality and use model of PIPO and XStream, see Migrating from PIPO to XStream.

For information about the XStream and LEF/DEF translators, see the Design Data Translator’s Reference.

Application

Virtuoso Chip Assembly Router

The Virtuoso Chip Assembly Router reads and writes OpenAccess 2.2 designs. The router operates primarily on a single, top-level cellview in the OpenAccess database. Routing rules for the Virtuoso Chip Assembly Router can be stored in the CDB technology file or in a separate ASCII file.

Encounter

The Encounter 4.2.1 software supports OpenAccess 2.2. For information about saving, importing, and restoring OpenAccess designs in the Encounter software, see Encounter User Guide version 4.2.1. Encounter 4.2 release requires OpenAccess version 2.2.4 or later.


Return to top
 ⠀
X