Cdboa
Cdboa
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Licensing Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Related Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
What’s New and KPNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Installation, Environment, and Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Technology Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Additional Learning Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Video Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Virtuoso Videos Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Rapid Adoption Kits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Help and Support Facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Feedback about Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Typographic and Syntax Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1
Getting Started with CDB to OpenAccess Translation . . . . . . . 17
Database Versions and Design Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Text Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Graphical User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Running the Translator in 64-bit Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
CDB to OpenAccess Translator Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Command Line Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Library Scan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Library Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Log File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Reporting Progress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Disk Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Using the CDB to OpenAccess Translator in the Virtuoso Design Environment . . . . . . . 25
2
How CDB Data is Converted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Application Infrastructure Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Library Definitions File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
System Information File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Technology Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Technology File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Attached Technology Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Setting Units Values in the OpenAccess Technology File . . . . . . . . . . . . . . . . . . . . . 34
Validating Technology Information in OpenAccess . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Display Resource File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Symbolic Device Masters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Via Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Cellviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Master Cellviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Illegal Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Empty Cellviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Directories in Cellviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Parent-Child Database File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
View Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Mosaics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Parameterized Cellviews . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Referencing SKILL Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Instance Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
keepCDBInstParams Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Magnification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Bounding Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Text Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Visibility Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Bounding Boxes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Property Bags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Filename Type Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Net, Pin, and Terminal Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Net Criticality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Unplaced Instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Timestamps and Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Virtuoso XL Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Pins and Pin Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
CDB Pin Subnet Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
OpenAccess Pin Group Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Mapping Connectivity Status from CDB to OpenAccess . . . . . . . . . . . . . . . . . . . . . . 55
Instance Pins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Paths with Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Boundaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Rows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
CDBOA SKILL Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3
Using the CDB to OpenAccess Translator from the Command
Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Before You Start with CDB to OpenAccess Translation . . . . . . . . . . . . . . . . . . . . . . . . . 63
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
UNIX Environment Variables in cdboa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Converting a Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Converting into the Current Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Converting into a Specified Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Converting a Cellview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Converting a Single Cellview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Converting a Hierarchical Cellview within a Single Library . . . . . . . . . . . . . . . . . . . . 82
Converting a Hierarchical Cellview over Multiple Libraries . . . . . . . . . . . . . . . . . . . . 84
Converting Multiple Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Setting up the Structure for the OpenAccess Version of the Library . . . . . . . . . . . . . 86
Determining the Sequence of Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4
Using the CDB to OpenAccess Translator GUI . . . . . . . . . . . . . . . 91
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Choosing a Run Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Starting the Translator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Running the Translator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Converting a Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Converting into the Current Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Converting into a Specified Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Converting a Cellview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Converting a Single Cellview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Converting an Hierarchical Cellview within a Single Library . . . . . . . . . . . . . . . . . . 100
Converting an Hierarchical Cellview over Multiple Libraries . . . . . . . . . . . . . . . . . . 103
Converting Multiple Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Setting up the Structure for the OpenAccess Version of the Library . . . . . . . . . . . . 105
Converting Multiple Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Resolving Circular Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Customizing the Translation Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Copying the cdb2oa .cdsenv File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Editing the cdb2oa .cdsenv File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
5
Post-Processing of the Translated Data . . . . . . . . . . . . . . . . . . . . . . 111
The Mapper Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Mapping Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
LPP-to-LPP Color Mapping (Advanced Nodes Only) . . . . . . . . . . . . . . . . . . . . . . . . 115
Object Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
A
CDB to OpenAccess Translator Form Descriptions . . . . . . . . . 119
CDB to OpenAccess Translator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Preface
The CDB to OpenAccess translator allows you to translate designs and reference data from
CDB format to OpenAccess format.
This user guide describes the CDB to OpenAccess database translator, cdb2oa. It is aimed
at CAD developers and designers migrating data from CDB (IC 5141) to OpenAccess
(Virtuoso IC6.1) and assumes that you are familiar with:
■ The Virtuoso design environment and application infrastructure mechanisms designed
to support consistent operations between all Cadence tools.
■ The applications used to design and develop integrated circuits in the Virtuoso design
environment.
■ The design and conversion of technology data as well as other types of Pcell and IP
libraries.
■ Virtuoso technology data.
■ Component description format (CDF).
■ The conversion process for blocks and designs.
Note: All the functionality described in this guide is available IC6.1.6 and ICADV12.1 onward
unless otherwise noted.
Scope
The functionality described in this guide can be used only in mature nodes, such as IC6.1.7.
Licensing Requirements
The cdboa translator requires the 111 license for the tool to run. If 111 license is not available,
then the translator will not run and an error message is displayed.
For information on licensing in the Virtuoso design environment, see Virtuoso Software
Licensing and Configuration User Guide.
Related Documentation
This user guide is part of a set of documents to support the Virtuoso design environment on
OpenAccess releases. Other useful Virtuoso design environment on OpenAccess are
covered in dedicated user guides. Where this is the case, reference has been made to the
respective book containing detailed information.
Technology Information
■ Virtuoso Technology Data User Guide
Video Library
The Video Library on the Cadence Online Support website provides a comprehensive list of
videos on various Cadence products.
To view a list of videos related to a specific product, you can use the Filter Results feature
available in the pane on the left. For example, click the Virtuoso Layout Suite product link
to view a list of videos available for the product.
You can also save your product preferences in the Product Selection form, which opens when
you click the Edit icon located next to My Products.
To explore the full range of training courses provided by Cadence in your region, visit
Cadence Training or write to [email protected].
Note: The links in this section open in a separate web browser window when clicked in
Cadence Help.
■ The Virtuoso Help menu provides consistent help system access across Virtuoso tools
and applications. The standard Virtuoso Help menu lets you access the most useful help
and support resources from the Cadence support and corporate websites directly from
the CIW or any Virtuoso application.
■ The Virtuoso Welcome Page is a self-help launch pad offering access to a host of useful
knowledge resources, including quick links to content available within the Virtuoso
installation as well as to other popular online content.
The Welcome Page is displayed by default when you open Cadence Help in standalone
mode from a Virtuoso installation. You can also access it at any time by selecting Help
– Virtuoso Documentation Library from any application window, or by clicking the
Home button on the Cadence Help toolbar (provided you have not set a custom home
page).
For more information, see Getting Help in Virtuoso Design Environment User Guide.
Customer Support
For assistance with Cadence products:
■ Contact Cadence Customer Support
Cadence is committed to keeping your design teams productive by providing answers to
technical questions and to any queries about the latest software updates and training
needs. For more information, visit https://www.cadence.com/support.
■ Log on to Cadence Online Support
Customers with a maintenance contract with Cadence can obtain the latest information
about various tools at https://support.cadence.com.
■ On the Cadence Online Support Product Manuals page, select the required product
and submit your feedback by using the Provide Feedback box.
If a command-line or SKILL expression is too long to fit within the paragraph margins of this
document, the remainder of the expression is moved to the next line and indented. In code
excerpts, a backslash ( \ ) indicates that the current line continues on to the next line.
1
Getting Started with CDB to OpenAccess
Translation
OpenAccess version 2.2 is the application programming interface and reference database
used by tools in the Virtuoso design environment.
Data in these two databases is stored in different formats. The cdb2oa translator lets you
perform the following tasks:
■ Translate an entire design or technology library
■ Translate a specified cellview, including all the views for each of the cell masters
referenced by that cellview
■ Translate selected cells, cellviews, and view types
■ Produce a report on what would happen in a selected translation without performing that
translation
The translator consumes and creates libraries that are consistent with the 5.X library
structure used in the Virtuoso design environment.
Tip
For more information on design management in OpenAccess, see “Design
Management” in the Virtuoso Design Environment Adoption Guide.
Text Command
The cdb2oa UNIX text command is available only in the Virtuoso design environment. This
is because it relies on a second executable, cdb2oail, to postprocess text objects contained
in the library.
The cdb2oa and cdb2oail executables are at the following location in the hierarchy.
your_install_dir/tools/dfII/bin/
For example, if your design contains large cellviews (typically over 800Mb in size) and the
translator aborts unexpectedly or fails with an internal error while translating one of these
cellviews, use the UNIX commands ps or top to monitor virtual memory usage during the
translation. If virtual memory usage approaches 4 Gb, you need to use the 64-bit version.
If the sub-version contains the string 64b, you are using the 64-bit version. If it does not,
you are using the 32-bit version.
For more information on running applications in 64-bit mode, see “Running 64-Bit Versions of
Applications” in the Virtuoso Software Licensing and Configuration Guide.
For information on the command line arguments, type cdb2oa -help in the terminal window
or see Chapter 3, “Using the CDB to OpenAccess Translator from the Command Line.”
Library Scan
After validating the command line, the translator prepares the library for conversion in the
sequence outlined below.
1. Sets up the OpenAccess versions of the library definitions file, cds.lib.
The translator calls OpenAccess functions to create the cds.lib and file if it does not
already exist in the current working directory and update them with the path to the
OpenAccess version of the library being translated.
For information on these files, see “Application Infrastructure Files” on page 29.
2. Identifies any directories in cellviews, which are illegal in CDB, and cells and cellviews
with illegal CDB names
Illegal CDB data cannot be translated. Instead it is marked to be copied to the
OpenAccess version of the library.
Tip
When used from the command line, the translator is able to identify dependencies
only within the library being translated. To identify dependencies between different
libraries automatically, you need to use the GUI.
Library Conversion
The translator converts library data from the top down, working from the library directory
through the cell directories to the individual cellviews. Data that is locked is not converted
unless you specify the -ignorelocks argument. Data that already exists in the
OpenAccess version of the library is overwritten unless you specify the -nooverwrite
argument.
Important
The translator does not translate or copy any data located outside the library
directories specified in the CDB cds.lib file.
order. The translator also copies empty files and files that contain only comments, but
not files that it can identify as backup files; for example, those that end with the
characters ~ and %.
When the translator encounters a CDB technology file, techfile.cds, it translates it
into an OpenAccess technology file, tech.db. If the technology file contains stream
translation rules, they are moved into a separate file called libname.layermap, which
is stored in the same directory as the technology file from which it was derived.
For information on the translation of technology information, see “Technology
Information” on page 31.
2. Data in the cell and cellview directories
The translator copies all non-database files in the cell and cellview directories, along with
any “dot” directories in the cell directory.
3. Cellviews
After the technology information is converted and all relevant data has been copied, the
translator converts the cellview database files, mapping properties, nets, shapes,
instances, terminals, parent-child relationships, groups, inherited connections, signals,
rod purposes, and timestamps to their OpenAccess equivalents.
The cellviews within each cell are translated in chronological order based on the
timestamp of the CDB version of the cellview. This preserves the relative order of
cellviews in the OpenAccess version of the library, meaning that applications which use
timestamps to check the validity of a particular cellview produce consistent results in
CDB and OpenAccess.
The translator cannot translate illegal CDB data, such as directories at cellview level or
cells and cellviews with illegal CDB names. This data is copied to the OpenAccess
version of the library.
When a cellview has been translated, the translator checks that there is no CDB data in
the OpenAccess version and ensures that the permissions set for the OpenAccess
version are the same as those set for the CDB version.
For more information on the translation of cellviews, see “Cellviews” on page 38.
Log File
All the errors and warnings issued during a translation run are recorded in the log file, $HOME/
cdb2oa.log. Log file is created in $HOME/cdb2oa.log.X when CDS_LOG_PATH does
not contain any valid directory or is not defined.
You can specify a different location and filename using the -log argument in the command
line. For more information on the -log argument, see “Using the CDB to OpenAccess
Translator from the Command Line” on page 63.
The translator also respects the Cadence global environment variables CDS_LOG_VERSION
and CDS_LOG_PATH.
■ CDS_LOG_VERSION lets you specify a naming convention for your log files. It accepts the
following values:
❑ sequential, which appends a sequential number to the name of the log file; for
example, cdb2oa.log.1, cdb2oa.log.2, and so on
❑ pid, which appends the UNIX process number to the name of the log file; for
example, cdb2oa.log.1719, cdb2oa.log.2250, and so on
■ CDS_LOG_PATH lets you specify a colon-separated list of directories. The log file is saved
to the first valid directory in the list.
Note: Using the -log argument in the command line overrides both of these settings.
Structure
The translator’s log file is divided into three sections:
■ Start
■ Messages
■ Summary
Start Section
The Start section provides information on the version of the translator being used and the
options that you set for the translation run.
Example:
********************************************************************************
Program: @(#)$CDS: cdb2oa version 6.1.2 08/16/2007 09:03
(machine) $ sub-version IC6.1.2.119
Started at: Aug 17th 9:30am 2007
Hierarchy: /grid/cic/cds/IC6.1.2/red
User Name: user
Host Name: host1
Options: -lib design -cdslibpath ../cdb/
Directory: /user/oa/
Log File: ./cdb2oa.log.2
Copyright (C) 2001-2005 Cadence Design Systems, Inc. All Rights Reserved worldwide
*********************************************************************************
Note: The log file does not include any of the command line validation errors because these
are generated and directed to standard error output (typically the terminal window) before the
log file is created. Nor does it include any messages generated by external subsystems.
These are also directed to standard error output.
Summary Section
The Summary section provides information on the numbers of cells and cellviews that were
translated.
■ A cell is classed as any directory under the library directory that contains a translated
database cellview.
■ A cellview is any directory under a cell that contains either a master.tag or a .cdb file.
Any directory that does not meet these criteria is copied to the OpenAccess version of the
library. The number of such directories at cell and cellview level are also listed.
Note: The statistics do not include data that was copied to OpenAccess because it is illegally
named in CDB. For more information on name spaces and how the translator handles illegal
CDB names, see “Illegal CDB Names” on page 27.
If the library contains only technology information, the summary section tells you whether it
was translated successfully or not.
The summary also lists the messages that were generated by the translator, with specific
variables replaced by variable types, the number of times each message occurred, a
description for each message, and hints on how to recover from specific errors.
Example:
********************************************************************************
Finished at: Dec 12 11:49:21 2002
74 cells and 137 cellviews were translated from library “libName” in times.
In addition:
1 cell level directory was copied to the OpenAccess library.
2 cellview level directories were copied to the OpenAccess library.
Message Summary:
Generated 27 times. This may mean that there are stale lock
files present in your database. Use the -ignorelocks argument
to have cdb2oa ignore these lock files or remove the lock
files manually.
WARNING (CDBOA-700): There may not be enough disk space to complete the
translation.
********************************************************************************
Reporting Progress
If you specify the -report argument, for each cellview, the translator issues a message
listing the cellview being translated and how many of the total number of cellviews have been
processed.
INFO (CDBOA-800): Translating cellview “path/name” (value/value) ...
Disk Space
Throughout the translation run, cdb2oa estimates the amount of disk space required for the
current cellview and compares it with the space available on disk. If it appears that there is
insufficient disk space to accommodate the OpenAccess library, the translator prints a
warning to the log file indicating that it might not be able to complete the conversion. If your
disk space runs out part way through a translation, it is safe to assume that the last translated
cellview is not complete.
Caution
If you use a quota system to allocate disk space between users, the
amount of disk space available to you is likely to be less than that
estimated by the translator.
The .cdsinit file is used to configure menus, bindkeys and mouse buttons, colors, and
fonts in your Cadence applications. Because these settings are not relevant for cdb2oa, the
translator never loads the .cdsinit file.
Important
Do not use the .cdsinit file to load SKILL code required for parameterized cells
or other design features. Use the libInit.il file instead.
The .cdsenv file lets you configure environment settings for your Design Framework II
applications.
The translator needs to look at this file to check whether it is being used to set the DBUPerUU
(database units per user units) value for the library and, if so, whether the value is consistent
with the value set in the OpenAccess technology file. If the values are different, the translator
issues a warning.
There might be different versions of this file in different locations to capture site, project, and
user-specified settings. The sequence in which the different .cdsenv files are loaded is
significant because the values in each file overwrite those previously loaded. The translator
loads .cdsenv files in the following sequence:
1. your_install_dir/tools/dfII/etc/tools/toolname/.cdsenv
2. your_install_dir/tools/dfII/local/.cdsenv
3. $HOME/.cdsenv
4. $CWD/.cdsenv
The translator loads any .cdsenv file it finds in the current working directory, unless the
CDS_LOAD_ENV environment variable specifies something different.
For information on the .cdsenv file and the CDS_LOAD_ENV environment variable, see
the Virtuoso Design Environment User Guide.
Name Spaces
Virtuoso design environment tools on both CDB and OpenAccess use the CDB name space.
When a Virtuoso design environment application writes an object to disk, the names are
mapped from the CDB name space to the LibraryUnix name space, which is used by
Cadence tools for library names in the cds.lib file and for library, cell, and cellview directory
names in libraries that are stored on UNIX file systems.
The CDB name space includes certain characters that are reserved for special purposes.
When a Virtuoso design environment application encounters a name containing one of these
characters, it substitutes the escaped hexadecimal code for that character when converting
it to the LibraryUnix name space.
The table below lists the reserved characters in the CDB name space, their purposes, and
their equivalents in the LibraryUnix name space. If there is no LibraryUnix equivalent,
the character is regarded as illegal in the CDB name space.
CDB LibraryUnix
Purpose
Name Space Name Space
Hierarchy delimiter backquote ( ‘ ) #60
Bit delimiter colon ( : ) #3a
Repeat asterisk ( * ) #2a
Open bus left bracket ( < ) none
Close bus right bracket ( > ) none
Name delimiter comma ( , ) none
Additionally, several other characters commonly found in CDB object names, including the
period ( . ) and the hyphen ( - ), are illegal in the LibraryUnix name space. Again,
CDB LibraryUnix
Purpose
Name Space Name Space
none period ( . ) #2e
none hyphen ( - ) #2d
When using the translator, specify all library, cell, and cellview names in the CDB name space.
The translator maps the CDB name to its LibraryUnix equivalent in order to locate the
object on disk and performs the translation correctly.
Note: The translator also recognizes object names that are correctly specified in the
LibraryUnix name space.
If any of the special characters listed above appears unencoded in the LibraryUnix name
space, the translator is unable to map the name to the CDB name space and therefore regards
it as illegal. This scenario is most likely to be caused by a user changing the name of a
directory in the file system.
For an object to be translated it must have a name that is legal in the CDB name space.
■ If you specify an illegal library name, the translator issues an error and stops the
translation. You must assign the library a name that is legal in the CDB name space.
■ If the translator encounters an illegal cell or cellview name, it copies the contents of the
cell or cellview to OpenAccess but does not translate them. This means that you could
end up with CDB data in the OpenAccess version of your library.
■ If a cellview contains an object (for example, a net or a pin) with a name that is illegal in
the CDB name space, the translator translates the cellview but not the illegally-named
object. Therefore, although the cellview appears to have been translated to OpenAccess,
it is unlikely to be complete.
❑ For instances the special characters, ' ' '(' ')' ',' '/' '\', are converted to an '_' and these
instances are translated. If the -convertspecialchar option is specified during
translation, all special characters (except '?' and '$') are converted to an '_'.
❑ For mosaics the special characters, ' ' '(' ')' '<' '>' ',' '/' '\', are converted to an '_' and
these mosaics are translated. If the -convertspecialchar option is specified
during translation, all special characters (except '?' and '$') are converted to an '_'.
When printing messages to the log file, the translator prints object names as they occur in the
CDB name space. However, when it is necessary for the translator to retrieve a path directly
from the file system, you will see messages containing escaped hexadecimal codes like the
ones listed above.
For more information on name mapping in Virtuoso design environment tools, see Chapter 7,
“Name Mapping” in the Cadence Application Infrastructure User Guide.
Multimedia Demonstration
Video
For more information about translating data from CDB to OpenAccess format, see
CDB to OpenAccess Translator.
2
How CDB Data is Converted
This section tells you what the translator does with the different files and objects in a typical
CDB database and highlights areas where the results in OpenAccess might be other than you
expected.
■ The cdsinfo.tag file, which supports the configuration of key system capabilities,
including the type of design management system used to manage a library
For information on these files, see the Cadence Application Infrastructure User Guide.
The translator creates a cds.lib file in the current directory if it does not already exist or
updates it if it is already present. It then adds a DEFINE statement to the file, specifying the
name of and the path to the new OpenAccess library being produced.
If the library to be converted is already defined in the cds.lib file, the translator updates the
existing library. If you subsequently translate a second library, an appropriate entry for that
library is added to the existing cds.lib file.
If you use the -oalibpath argument and the library being converted is already defined in
the OpenAccess cds.lib file using a different path, the translator comments out the original
definition and redefines the library using the path you specified.
Tip
To ensure that the correct cds.lib file is updated and that access to the
OpenAccess version of the library is correctly maintained, always run the translator
in the OpenAccess library directory.
By default, all the paths written to the cds.lib file are relative to the current directory. You
can have the translator write absolute paths instead by using the -abspath option on the
command line or turning on the Write absolute paths in OpenAccess cds.lib file option
on the General tab in the CDB to OpenAccess Translator form.
Using absolute paths in the cds.lib file can lead to problems if you need to access the data
across different networks or using different hardware platforms and can adversely affect the
performance of your applications on OpenAccess.
Important
The cdb2oa translator is not supported on sol86 platform.
Additionally, if you convert the same library twice and specify the -abspath argument for
only one of the conversions, then the resulting library definitions files contain two different
DEFINE statements for the same library. Check the library definitions files regularly to ensure
that the data it contains is consistent.
If you copy a CDB cds.lib file to the OpenAccess version of the library, you must
■ Ensure that you have permission to write to the OpenAccess version of the cds.lib file
so that the translator can update it during the conversion.
■ Modify the library definitions so that they point to OpenAccess data and not to CDB data.
❑ If the OpenAccess cds.lib definition for the library being converted points to the
CDB version of the library, the translator stops because this would place the
OpenAccess version of the library in the same location as the CDB version, which
is not permitted.
❑ If any of the other library definitions in the OpenAccess cds.lib file point to CDB
data, the translator issues a warning. The translator will stop if the library you are
converting references CDB data from OpenAccess.
Technology Information
The technology information in the Virtuoso design environment defines the parameters used
in design sessions, including layer and device definitions, design rules, and display
parameters. There are three main sources of technology information for a CDB design library.
■ A CDB technology file, techfile.cds, stored in the library directory
■ Separate technology libraries, attached to the design library using the techLibName
property in the appropriate library prop.xx file
■ A display resource file, display.drf
For more information, see the Virtuoso Technology Data User Guide.
Technology File
If the translator encounters a CDB technology file, techfile.cds, in the library directory, it
converts it into an OpenAccess binary technology file called tech.db. The translator handles
automatically most of the changes required by the different technology file formats in CDB
and OpenAccess. The exceptions are described in the sections below.
For more information on CDB and OpenAccess technology files, see the Virtuoso Design
Environment Adoption Guide.
Part of the conversion involves converting place and route technology rules from CDB to
OpenAccess. Messages generated during this step are included in the translator log file and
are also printed to the terminal window from which you started the translator. They are tagged
“Technology Conversion” for identification.
For information on troubleshooting these messages, see the Virtuoso Design Environment
Adoption Guide.
The streamLayers section is not supported in the OpenAccess technology file. The
translator removes the rules from the technology file and saves them in a separate layer
mapping file called libName.layermap located in the same directory as the technology
file.
For example, the layer mapping file for the streamLayers section above looks like this.
Layer Name Layer Purpose Layer Stream Number Datatype Stream Number
metal1 net 1 0
metal1 boundary 2 0
metal2 drawing 8 8
metal2 drawing 8 9
metal2 drawing 8 10
metal2 drawing 9 8
metal2 drawing 9 9
metal2 drawing 9 10
metal2 drawing 10 8
metal2 drawing 10 9
metal2 drawing 10 10
#metal3 boundary 4 0
#metal3 drawing4 4 0
#metal3 label 4 0
#metal3 pin 4 0
#metal3 net 4 0
#metal3 drawing 4 0
# denotes a comment, reflecting the translate field setting of nil in the original
streamLayers definition.
Note: You can specify a different name for the layer map file using the -layermapfile
argument.
Routing rules for the IC Shape-Based Router can be stored in the CDB technology file or in
a separate ASCII file. Rules stored in the CDB technology file are picked up automatically by
the translator unless you specify a separate rules file using the -iccrulesfile argument.
If you specify a rules file, only that file is processed and any rules in the technology file are
ignored.
The translator translates these rules to the virtuosoDefaultSetup constraint group in the
OpenAccess technology file. To specify a different constraint group in which to put these
rules, use the -iccconstraintgroup argument.
When you attach a technology library, the translator updates the technology devices in the
design to reference the technology library and adds the techLibName property to the
property bag for the relevant library, cell, or cellview.
OpenAccess is more restricted; it picks up only technology libraries that are attached at the
library level. Cell and view-specific attachments are ignored.
Important
You must ensure that any attached technology library is defined in the library
definitions files and is translated before you translate the library that references it.
The translator stops if it encounters a reference to an attached library that does not
exist in OpenAccess. This is the case even if the library being translated does not
require technology information; for example, if it contains o®.
Note: Dependencies like this are handled automatically when you use the GUI but not
when you run the translator from the command line.
For information on attaching and detaching technology libraries, see the Virtuoso
Technology Data User Guide.
When converting technology information, the translator consolidates these values from the
different locations in CDB into a single location in the OpenAccess technology file.
1. The translator creates the OpenAccess technology file with the system default values for
each cellview type.
2. For each cellview type, the translator searches the CDB data in the sequence above and
compares the first value it finds with the value set for that cellview type in the OpenAccess
technology file.
3. If the values are different, the translator updates the OpenAccess technology file with the
value from CDB and issues a warning.
If you do not have permission to write to the library in question, the translator issues an
error.
In some cases, the OpenAccess values might be stored in the default technology file,
cdsDefTechLib, rather than in the library’s own technology file. The translator is unable to
update the OpenAccess cdsDefTechLib directly. Instead, it creates a new technology
library, tech.db, containing the correct values, attaches it to the design library, and issues a
warning to explain what it has done.
The display resource file specifies how your layers appear on display devices. It contains
display device definitions; definitions of colors, stipple patterns, and line and fill styles; and
definitions of display packets, which are collections of colors, stipples, and line styles
associated with particular display devices.
The translator copies this file to the OpenAccess version of the library.
Important
If you use a common display.drf file for multiple libraries and store this file
outside the library directory being translated, the translator does not copy it
automatically. The translator does not translate or copy any data located outside the
library directories specified in the CDB cds.lib file.
Sites
Cellviews that are used to define sites in CDB are converted to site definitions (siteDefs)
in the OpenAccess technology file.
To do this, the translator checks all CDB cellviews containing the property prCellType set
to the value site and looks for shapes on the (boundary boundary) or (boundary
drawing) layer-purpose pairs. It then uses these shapes to determine the height and width
for the siteDef.
Once the siteDef has been created, the unrequired cellviews are removed from the
OpenAccess library.
When CDB technology data is converted to OpenAccess, syContact devices are mapped
to standardViaDef devices, syPin and syRectPin devices are mapped to pin figures,
and the devices are deleted from the technology file.
To let Pcells which instantiate these devices continue to evaluate correctly after conversion,
use the -keepdevicemasters argument to preserve the device cellviews in the
OpenAccess version of the library.
Important
The -keepdevicemasters argument is provided for compatibility purposes only.
Although the device masters are translated, they are not recognized by the system
as via objects; you cannot update or recreate the device masters in OpenAccess,
and a query to the technology file does not return any symbolic device information.
Use the argument as a temporary solution if you have SKILL Pcells that instantiate
syContact, syPin, syRectPin, and cdsVia devices.
Note: A symbolic contact devices in CDB is converted to a standardViaDef in
OpenAccess if the dbiPDDCreateContact option is set to true in the Pcell code of the
device. However, if the dbiPDDCreateContact option is set to false, then a symbolic
contact device is converted to a customViaDef. To ensure that a symbolic contact device is
always converted to a standardViaDef, even if the dbiPDDCreateContact option is set
to false in the Pcell code, use the -symcontacttostdvia argument.
For more information, see the Virtuoso Design Environment Adoption Guide.
Via Instances
If your CDB design contains vias with master cellviews defined in the design library rather
than in the technology library, these need to be converted to vias in the OpenAccess version
of the technology library. You can do this either manually or automatically.
■ Manually - You can list the master cellviews in a via map file. The translator creates these
master cellviews as oaCustomViaDefs in the technology library and converts the CDB
instances of these masters as oaCustomVias which reference the oaCustomViaDefs
in the technology library. You can pass the via map file to the translator by using either
the command line argument -viamap or the GUI option Via map file on the
Technology tab.
The format of the via map file is as follows.
LibName CellName ViewName layer1 layer2 viaDefName
...
Note: All lines starting with the # symbol will be ignored. The # symbol is meant for
adding comments in the via map file.
■ Automatically - You can use the command line argument -detectvias or the GUI
option Detect vias automatically to let the translator detect the cellviews in the CDB
design that can be represented as viaDefs in OpenAccess. This takes away the effort of
manually creating a via map file. Unlike the translation using the via map file, the
automatic feature detects both oaStandardViaDefs and oaCustomViaDefs in the
CDB design.
Note: The manual and automatic options should not be used together.
If you neither select Detect vias automatically nor specify a Via map file, the vias will
be translated as instances. Instances take more time for processing and are less efficient
than vias. Moreover, the resulting oaDesigns are larger than required.
Important
If the cellview is created using system reserve layers instead of valid physical layers
then the -detectvias option does not convert the cellview in CDB to the standard
or custom ViaDefs in OpenAccess. In addition, no message will be displayed to the
user if the conversion is not successful.
Cellviews
Cellview database files are translated from CDB format to OpenAccess format and the
filename extension is changed from cdb to oa.
The translator always translates as much of a cellview as possible. Errors encountered in the
translation of a cellview are reported in the log file but do not necessarily cause the translator
to stop. If the log file contains errors against a particular cellview, examine the OpenAccess
version carefully to make sure it meets your needs. In some cases, you might need to fix the
data in CDB and translate the cellview again.
Master Cellviews
For certain operations, such as launching an editor on cellview data, Cadence software
needs to be able to identify the master file in any cellview. The master.tag file is an ASCII
file that specifies which view file inside each cell directory is the master.
Using a cellview called layout.cdb as an example, the translation of the master.tag file
is subject to the following conditions:
■ If layout.cdb is the master in CDB, then layout.oa is made the master in
OpenAccess.
If there is an existing layout.oa file in OpenAccess that is not the master, the translator
makes it the master.
■ If layout.cdb is not the master in CDB, then layout.oa is not made the master in
OpenAccess.
If there is an existing layout.oa file that is the master, the translator does not change
the specification because there is no way for it to determine what should be master
instead.
Illegal Names
For a cellview to be translated it must have a name that is legal in the CDB name space.
■ For information on what the translator does when it encounters an illegal name, see
“Illegal CDB Names” on page 27.
■ For general information on how the translator handles name spaces, see “Name Spaces”
on page 26.
Empty Cellviews
The translator does not translate or copy cellview data files that are empty. However, to
maintain the hierarchy of the library, the cellview directory containing the empty view file is
always copied to the OpenAccess version of the cellview.
Directories in Cellviews
Neither CDB nor OpenAccess supports directories in cellviews. When the translator
encounters a directory in a cellview, the directory and all its contents are copied to
OpenAccess but are not translated. If the directory in question contains CDB data files, these
will end up in the OpenAccess version of your library.
Tip
If your library has directories in cellviews and if those directories contain data that
needs to be translated, move the directory and its contents up to the cell level in the
hierarchy before running the translator.
Because the PCDB API can get the same information directly from the OpenAccess version
of the cellview, it is not always necessary to copy the pc.db file to OpenAccess. Whether it
is copied or not depends on whether or not the master cellview, as specified in the
master.tag file, is a CDB cellview.
■ If the master is a CDB cellview, it is converted to an OpenAccess cellview. Because the
PCDB API can get the information it requires from the OpenAccess cellview, the pc.db
file is redundant and is not copied.
■ If the master is not a CDB cellview, the pc.db file is required and is copied to the
OpenAccess version of the library. If the pc.db file is copied, its CDB timestamp is
preserved.
View Types
OpenAccess supports 4 distinct view types; CDB supports many more. The translator
converts view types from CDB to OpenAccess as follows:
CDB tolerates cellview filenames that do not match the view type stored internally in the data
file. OpenAccess does not. The translator identifies this conflicting view type information and
fixes it by changing the cellview filename in OpenAccess to match the stored view type.
For example, CDB allows a cellview with the stored view type maskLayout to be called
symbol.cdb. This would be translated into an OpenAccess cellview of type maskLayout
called layout.oa.
The translator issues a warning each time it encounters a mismatched view type. To prevent
these warnings from being generated, refer to the table above and modify your CDB data to
ensure that the view type implied by the filename reflects the view type stored for the cellview.
For example, if the view type is schematic, then the filename should be sch.cdb.
Mosaics
A mosaic is a database object that represents an array of instances of one or more masters.
There are two kinds of mosaics: simple and complex. A simple mosaic is a special kind of
regular array that has only one master, and every cell in the array has the same orientation.
Any mosaic other than the simple mosaic is called a complex mosaic.
■ The translator maps a simple mosaic to an OpenAccess arrayed instance.
■ Complex mosaics are seldom used in CDB and are not supported in OpenAccess.
The translator breaks up complex mosaics into the individual instances that make up the
mosaic.
For information on the issues around mosaics in CDB and OpenAccess, see the Virtuoso
Design Environment Adoption Guide.
Parameterized Cellviews
A parameterized cell, or Pcell, is a graphic, programmable cell that lets you create a
customized instance each time you place it. Pcells are created in the same way as any other
cell and combine the graphic layout of the cell and the parameters assigned to it. After you
compile the master, it is stored in the database as a SKILL procedure.
All Pcells to be translated must comply with the recommendations set out in the Virtuoso
Parameterized Cell Reference, particularly those in section “Creating Pcells Using SKILL”
in Chapter 15.
If your Pcells deviate from the recommendations and, for example, include SKILL functions
that are not intended for use in Pcells, the translator fails.
Instance Parameters
The Pcell you create is referred to as the master. You can define the master to have various
parameters. Length and number of gates are examples of parameters of a transistor Pcell.
While creating the instances of a Pcell, you can update the values of parameters such that
the values of those parameters are different on the Pcell master.
Every Pcell instance is associated with two types of parameters — Pcell parameters and cdf
parameters. Parameters might, in turn, be associated with attributes. Every cdf parameter, for
example, is associated with the attribute storeDefault, and every cdf parameter can have
a different setting for the storeDefault attribute. The valid values for the attribute include
yes and no.
Many Pcell and cdf parameters overlap in their names, types, and default values. In these
cases, the value of the storeDefault attribute on the cdf parameter decides which of the
two parameters would take precedence during the CDB to OpenAccess conversion. The
translator obeys the following use model:
■ If storeDefault = yes on a parameter, the translator will retain parameter on the
instance after translation. The default parameter value is taken from the Pcell master or
CDF parameter depending on the storage policy defined.
■ If storeDefault = no on a parameter, the translator will retain the parameter after
translation only if it has non-default value on the instance.
For all good CDF data, cdb2oa will be able to take CDF into account while instance creation.
However, for bad CDF data (Pcell superMaster parameter and CDF parameter with same
name and incompatible valueTypes), cdb2oa will drop the override with appropriate warnings.
Compatibility List
boolean boolean/integer/float
integer integer/float/double/range
float integer/float/double/range
double integer/float/double/range
string/Filename/IlExpr/NlpExpr string/Filename/IlExpr/NlpExpr
intRange/floatRange/doubleRange range/int/float/double
timeRange time
Two options have been introduced for handling CDF data efficiently.
■ storedefaultspolicy <usepcellvalue | usecdfvalue> specifies whether cdb2oa translator to
consider CDF parameters or Pcell superMaster parameters while creating parameters
on the OA instance. If you do not specify the option Pcell superMaster parameters are
considered.
■ parampolicy <abortontypedifference | abortondefaultvaluedifference | abortonboth>
specifies cdb2oa translator to abort when a mismatch of parameter types and default
values occur between CDF parameter and Pcell superMaster parameter. By default,
appropriate warning will be displayed and translation would continue if there is a
mismatch in type or default values. For example, if the superMaster has the parameter
type as boolean and instance has the parameter type as string or list, then CDBOA does
not do auto-conversion and the warning message will be displayed.
The cdb2oa now consider storeDefaults in the CDF data per parameter basis.
keepCDBInstParams Option
The keepCDBInstParams option allows CDBOA to retain all the parameters on OA
instances even if they have same default values as their master parameters. This option
should be used for User CDF or CDBOA will not consider User CDF and the parameters are
not retained on OA instance by default.
As this option is not parameter specific, CDBOA will end-up putting all the parameters on the
OA instance irrespective of their storeDefault value. For example, the text2 parameter
has the storeDefault value set to “no” on master, P2. When an instance of P2 is created
in a cellview (both in CDB and OA), the parameter, text2 is not kept on that instance.
However, CDBOA will retain the parameter, text2 on the OA instance along with all other
parameters.
Magnification
CDB supports the magnification of instances but OpenAccess does not. To reproduce
magnified instances in OpenAccess, the translator creates special parameterized cellviews
containing flattened instances of the original cellview master with an additional mag
parameter, used to magnify instances of that master when required.
■ When CDB2OA encounters a CDB instance (including Pcell and hierarchical instances)
that is magnified and the OA instance master does not have a mag parameter, the
translator
1. Creates a new instance of the original cellview master in OpenAccess version of the
library
Note: If the magnified instance is in a separate reference library, the translator creates
the new instance in the OpenAccess version of that reference library. If the translator is
unable to write to the reference library, it creates the new instance in the current library.
2. Flattens this instance
3. Adds a mag parameter to scale the shapes in the instance
4. Saves the instance as a new Pcell cellview called viewName_xform.
If there is already a transformed Pcell available for the cellview master in question, the
translator uses the existing Pcell and applies the appropriate mag value.
■ When CDB2OA encounters a CDB instance with mag != 1, and the OA instance master
is already a pCell with mag as a parameter, then for the instance translation the existing
OA master will be used and not create a new one with the _xform view name.
Transforming Pcells
If the instance to be magnified is itself a Pcell, the translator first creates an instance of the
original Pcell, using the original parameters, and then proceeds from step 2 in the procedure
above.
To ensure that your netlister recognizes the magnified instances in OpenAccess, you must
add the new cellview name, viewname_xform, to the netlister’s view name list before
running the netlister.
For example, for a magnified symbol cellview, add symbol_xform to the netlister’s view
name list.
Labels
Bounding Boxes
The bounding boxes of labels might be different in the OpenAccess and CDB versions of the
same cellview.
The difference is caused not by the translator but because of a difference in how OpenAccess
and CDB calculate bounding boxes. OpenAccess rounds the values to the nearest database
unit, whereas CDB truncates the values. Consequently, the width and height of a particular
label could differ by up to 1 (OpenAccess) database unit between OpenAccess and CDB
versions.
If the label or text display is at the edge of a cellview, the difference described above can
cause the bounding box of the cellview (and any instances of that cellview) to be different in
OpenAccess and CDB.
Caution
There can be a situation where cutRows or cutColumns is an even
number and the CutSpacing divided by manufacturing grid resolution is
an odd number. Then during translation there is the off-grid issue
because of a difference in the calculation method of bounding Box in OA
and CDB.
Therefore, to resolve this issue, CDBOA manipulates Origin Offset parameter to retain the
same geometry during CDBOA translation.
Text Displays
Visibility Settings
Text display objects are used to display the value of a property or attribute for an object. Like
all other design components, they can be assigned visibility attributes that specify whether or
not they are displayed when the cellview is viewed in a display device.
The visibility attributes are implemented differently in CDB and OpenAccess. The translator
maps the CDB settings as indicated in the table below.
CDB OpenAccess
t t t t oacNameValueTextDisplayFormat
t t n t oacNameTextDisplayFormat
t n t t oacValueTextDisplayFormat
t n n n oacValueTextDisplayFormat
n t t n oacNameValueTextDisplayFormat
n t n n oacNameTextDisplayFormat
n n t n oacValueTextDisplayFormat
n n n n oacValueTextDisplayFormat
Bounding Boxes
The bounding boxes of text displays might be different in OpenAccess and CDB versions of
the same cellview.
The difference is caused not by the translator but because of a difference in how OpenAccess
and CDB calculate bounding boxes: OpenAccess rounds the values to the nearest database
unit, whereas CDB truncates the values. Consequently, the width and height of a particular
text display could differ by up to 1 (OpenAccess) database unit between OpenAccess and
CDB versions.
If the text display is at the edge of a cellview, the difference described above can cause the
bounding box of the cellview (and any instances of that cellview) to be different in
OpenAccess and CDB.
Properties
The translator converts the CDB properties, wherever appropriate, to the equivalent
OpenAccess attributes.
Property Bags
In CDB, properties of libraries, cells and views are stored in files called prop.xx. To access
the properties, the application would call a function called dbOpenBag. The property bag is
explicitly or implicitly opened to create properties on library, cell or view.
In the Virtuoso design environment on OpenAccess the prop.xx file has been replaced by
a data.dm file. In OpenAccess the properties of objects such as library, cell or view are
created directly in this file and accessed through the corresponding objects.
The translator converts properties stored in prop.xx files to their equivalents in OpenAccess
data.dm files. The CDB properties attached to individual objects are mapped to their
OpenAccess equivalents.
Important
The translator converts property bags only if there is a valid master file in the cell in
question. If the master.tag file points to a nonexistent or invalid master file, the
translator is unable to convert any property bag that is associated with that cellview.
Net Criticality
The default net criticality on CDB is 10 and that on OpenAccess is 0. The following table
depicts how the maximum, minimum, and default net criticality values on both the databases
are mapped.
The translator converts the net criticality value based on this mapping. Other than the
maximum, minimum, and default net criticality values, one can expect the net criticality on
OpenAccess to be 10 units less than that on CDB.
Note: If the CDB net property prEditNetProperty exists on a net, the translator treats it
as the net criticality value and converts it based on the above described mapping to an
appropriate OpenAccess net priority value.
Unplaced Instances
Instances with placement status unplaced are displayed by Virtuoso design environment
applications such as Virtuoso XL on CDB but not on OpenAccess. To view such instances in
your OpenAccess design, use the -resetplacestatus argument with the cdb2oa
command to reset the placement status to none. In case the translator finds any unplaced
instances, it issues a warning message.
Tip
If you are using the GUI, use the Reset placement status option on the Database
tab.
This section outlines how the translator converts CDB timestamp properties to OpenAccess
counters. For detailed information on this topic, see the Virtuoso Design Environment
Adoption Guide.
Checking Connectivity
Tip
Cadence recommends that you always run Schematic Editor’s Design – Check
and Save command on the OpenAccess cellviews in order to re-extract the
connectivity information before using translated schematic and symbol data in your
flows.
To check that the connectivity extracted for a particular cellview is current, CDB applications
compare the values of lastSchematicExtraction and instancesLastChanged for
the cellview in question. If lastSchematicExtraction is later than
instancesLastChanged, the connectivity data is current; otherwise, it is not current.
OpenAccess applications compare the value of the cellview counter against the value of the
cellview’s connectivityLastUpdated property. If the values are different, then the
connectivity data is out of date and needs to be re-extracted.
The translator checks whether the connectivity data is current in CDB before translation.
■ If it is current in CDB, the translator retrieves the value of the cellview counter in
OpenAccess and creates the connectivityLastUpdated property with the same
value. OpenAccess applications querying the values of the two counters find that they
are the same and therefore that the connectivity is current.
■ If it is not current in CDB, the translator creates the connectivityLastUpdated
property with a value different from that of the cellview counter. OpenAccess applications
find that the values are different and that connectivity needs to be re-extracted for the
cellview.
Important
Some processes compare the lastSchematicExtraction property with the
UNIX file timestamp to determine whether or not the cellview needs to be
renetlisted. To support this methodology, the translator always copies the
lastSchematicExtraction property from the CDB to the OpenAccess version
of the cellview. If there is no lastSchematicExtraction property in the CDB
version, the translator does not create one.
Checking Geometry
The translator uses a similar scheme to establish the status of cellview geometry. In this case,
the schGeometryLastRecorded property is compared with instancesLastChanged to
determine if the geometry of the cellview is up to date.
In OpenAccess, when saving the cellview, the cellview counter from the master is stored
under the name masterChangeCount in the instance header of the parent cellview that
contains the instance. When the cellview is reopened, the cellview counter from the master
is compared with the masterChangeCount counter from the instance header. If the values
are different, then the instance and its master are out of synch.
Virtuoso XL Properties
The Virtuoso XL properties listed below have been updated in OpenAccess version 2.2. The
translator automatically converts the CDB property to its OpenAccess equivalent.
CDB OpenAccess
adleVersion lxInternal->version
CDB OpenAccess
dleCellViewPair lxInternal->source->cell
->dleCVPairCellName
dleCellViewPair lxInternal->source->lib
->dleCVPairLibName
dleCellViewPair lxInternal->source->view
->dleCVPairViewName
dleIgnoredParams lxParamsToIgnore
dleStopList lxStopList
dleTime lxInternal -> time
dleUseCell lxUseCell
dleViewList lxViewList
lxIgnoredParams lxParamsToIgnore
lxIgnoreParamsForCAS lxParamsToIgnoreForCheck
maskLayoutViewName lxStopList
The Virtuoso XL properties listed below are obsolete and are not converted to OpenAccess
2.2.
■ dleSchExtractPath
■ dlpRandomSeed
■ lxTimeStamp
■ posi
root net
subnet1 subnet2
Strong Connect
CDB OpenAccess
subnet1
pin1
subnet2
fig1 fig2
pin1 pin2
fig1 fig2
Note: For each pin in each group, all meaningful information is moved to the figures. Pin
properties from CDB are recreated on the OpenAccess figures. The translator uses the same
name but prepends it with an underscore; if that name exists already, the translator prepends
another underscore.
Weak Connect
CDB OpenAccess
subnet1
pin1 pin2
subnet2 subnet3
fig1 fig2
pin1 pin2
fig1 fig2
Must Connect
The OpenAccess database will contain additional nets and terminals required to model must-
connect pins.
CDB OpenAccess
pin1
subnet1 subnet2
pin1 pin2
net1_0 term1_0(mustJoin)
fig1 fig2
pin2
fig2
When Pcells are created in CDB without an explicit pin model (i.e., without subnets), by
convention, the CDB application would interpret the connection status. In the case of VXL in
CDB, these pins would be considered strongly connected.
If the pin status is undefined, you can use the -mapundefinedpingroups option with the
cdb2oa command for maskLayout cellviews that do not have explicit pin model information.
The valid values for the -mapundefinedpingroups option include strong (default), weak
and must. Alternatively, you can use the Map undefined pin model to option on the
Database tab in the CDB to OpenAccess Translator form to select one of the pin model.
Using one of these methods allows the undefined CDB pins to be explicitly modeled as one
of strong, weak, or must connect on OpenAccess.
In turn, the cdb2oa translator adds the property defaultPinModel to all supermasters of
maskLayout cellviews in a library, which do not have explicit pin model information. The
defaultPinModel property is set to the same value as is specified for the option -
mapUndefinedPinGroups.
If the subnets do exist, the pin connection status is evaluated based on subnets.
Instance Pins
An instance pin (instPin) is a database object that represents a pin of a terminal in the
master of an instance.
Because they are not used in Virtuoso design environment applications, cdb2oa does not
create any instance pins in the OpenAccess version of the cellview. Instead, the translator
flattens the cellviews and translates the shapes of the pin master to the cellview.
Note: Instance terminals (instTerm) are translated correctly.
When translating paths with extensions, if the path style is not variable, the translator resets
beginExt and endExt to 0.
For information on differences in paths with extensions in CDB and OpenAccess, see the
Virtuoso Design Environment Adoption Guide.
Boundaries
In CDB, place and route boundaries are shapes which use the convention of layer-purpose
pairs (LPPs) to identify them as boundaries. Virtuoso XL uses the layer-purpose pair
(prboundary drawing), while Virtuoso Preview uses layer-purpose pair (prboundary
boundary). On OpenAccess, place and route boundaries are objects (prBoundary) that do
not use conventions to define their purpose.
The translator converts shapes on the CDB place and route boundary layer to an
OpenAccess prBoundary object.
For more information, see the Virtuoso Design Environment Adoption Guide.
Additionally, if the CDB cellview contains a snap boundary, the translator converts it into an
oaSnapBoundary object. If the CDB cellview does not contain a snap boundary, the
translator creates the oaSnapBoundary using the bounding box of the PR boundary.
Rows
Rows represent the placeholders for site elements. In CDB, rows are identified as rectangles
on the layer purpose row drawing. Virtuoso Custom Placer (VCP) rows are also identified
as rectangles on the layer purpose row drawing and additionally have the property
lxVcpRowInfo attached to the shapes.
The translator converts the non-VCP row shapes in CDB to the OpenAccess oaRow objects.
The translator converts the VCP shape-based rows based on the following algorithm:
■ If the row comprises of only standard cells (component type class = stdcell) and the
row elements do not contain rail definitions (dbRailDef), the translator creates the
OpenAccess oaRow object.
■ If the row comprises of only standard cells and the row elements also contain rail
definitions, the translator creates a dbRow object.
■ If the row comprises of both standard and non-standard cells, the translator again
creates a dbRow object.
The siteDef creation for non-VCP rows is explained in the section Sites on page 36. For VCP
rows, siteDefs are created in the technology file corresponding to each cell with unique width
and height. While creating siteDefs, the following two scenarios are possible:
a. Snap boundary exists: The width and height of the siteDefs created are based on
the bounding box of the snap boundary.
Note: A design cannot contain more than one snap boundary.
b. Snap boundary does not exist: The width and height of the siteDefs created are
based on the bounding box of the PR boundary.
Note: The names of the siteDefs created include the cell width and height information. For
example, if the width and height of a cell are 10,000 and 20,000 DBUs, respectively, the
siteDef would be named cdsSiteDef_10000x20000.
3
Using the CDB to OpenAccess Translator
from the Command Line
This chapter lists the arguments and switches you can use with the cdb2oa UNIX command
and describes how to use these to accomplish the most common translation tasks.
Tip
You can also use the translator’s GUI, which provides additional support for
converting multiple libraries in a single run, including a function to determine
interdependencies between libraries and establish the sequence in which they need
to be converted. For more information, see Chapter 4, “Using the CDB to
OpenAccess Translator GUI.”
■ Ensure that you are able to read the data and that it is not locked
The translator does not translate data that is locked, unless you use the -ignorelocks
argument. Check that no one else is editing the library and if there are stale file locks
present, remove them.
■ Ensure that there are no invalid view types
The translator maps each of the CDB view types to one of the four OpenAccess view
types. A cellview generated in a release prior to IC 4.4.6 may have an invalid CDB view
type, which the translator is unable to handle. Use the approved migration process to
bring the cellview in question into IC 4.4.6 before running the translator.
■ Ensure that all libraries, cells, cellviews, and cellview components have legal
CDB names
The translator cannot translate objects that have illegal names in CDB. For information
on the CDB name space, see “Name Spaces” on page 26.
■ Check for instance terminals with the same names but on different nets
In releases prior to IC 4.4.6, CDB allows instances to have terminals with the same name
as long as these are attached to different nets. OpenAccess does not. You need to
correct the terminal names in CDB before translating these cellviews, either by editing
the cellviews manually or by regenerating them using the latest version of CDB.
Syntax
cdb2oa
-lib t_libName
-cdslibpath t_libPath
[ -oalibpath t_oalibPath ]
[ -cell t_cellName... ]
[ -view t_viewName... ]
[ -viewtype t_type... ]
[ -topdown -cell t_cellName -view t_viewName ]
[ -printonly ]
[ -nooverwrite ]
[ -ignorelocks ]
[ -abspath ]
[ -layermapfile t_fileName ]
[ -iccrulesfile t_fileName ]
[ -mapundefinedpingroups { strong | weak | must } ]
[ -iccconstraintgroup t_name ]
[ -iccrulesmapfile t_name ]
[ -createpathseg ]
[ -nodropinvalidCV ]
[ -keepdevicemasters ]
[ -retainsympins ]
[ -retainsympins ]
[ -convertnonmaskablesympins <rect | dot | ignore> ]
[ -disablecmxuprev ]
[ -resetplacestatus { all | unplaced } ]
[ -skipdir t_list_of_dirNames... ]
[ -viamap t_fileName ]
[ -mapviaparams ]
[ -log t_fileName ]
[ -appendlog ]
[ -report ]
[ (IC6.1.6 only) -tbrule t_fileName ]
[ -prrulelib t_libName]
[ -prrulelibpath t_prruleLibPath ]
[ -force ]
[ -detectvias]
[ -nodm ]
[-storedefaultspolicy <usepcellvalue | usecdfvalue>]
[-parampolicy <abortontypedifference | abortondefaultvaluedifference |
abortonboth>]
[ -loadskillfile]
[ -processskillfile <skillFileName>]
[ -scalelabelsize <scale factor>]
[ -keepcdbinstparams]
[ -mapcdsviatocustviadef]
[ -exitifcdbtechnotexists]
[ -pathtopolygon]
[ -convertspecialchar]
[ -help ]
-lib t_libName
Specifies the name of the CDB library to be translated. Specify
the name in the CDB name space.
This will also be the name of the OpenAccess version of the
library. You cannot use the translator to rename a library. If you
need your library to have a different name in OpenAccess,
rename the CDB version before translating it.
-cdslibpath t_libPath
Specifies the path to the CDB library definitions file that defines
the library to be translated.
The translator accepts any file that uses standard Cadence
cds.lib file syntax and supports the use of the INCLUDE
keyword in these files.
If you do not specify a filename, the translator defaults to
cds.lib.
-oalibpath t_oalibPath
Specifies the directory in which the OpenAccess library is
created. By default, the translator creates the library in the
current directory.
You can enter either a relative or an absolute path. The
directory you specify must exist on your system; the translator
does not create it automatically. If the library is already defined
in the OpenAccess cds.lib file using a different path, the
translator comments out the original definition and redefines
the library using the path you specified.
Note: The translator always creates or updates the
OpenAccess cds.lib file in the current directory irrespective
of any -oalibpath specification.
-cell t_cellName...
-abspath
Specifies that the absolute path to the translated library is to be
written to the cds.lib file. By default the relative path to the
library is written to these files, unless you specify an absolute
path with -oalibpath.
You might use this argument if your database includes multiple
reference libraries that are not all contained in the same
directory.
Note: Using absolute paths in the library definitions files can
lead to problems if you access the data across different
networks or on different hardware platforms. It can also
adversely affect the performance of your applications on
OpenAccess.
-mapviaparams
For symbolic devices and cdsVia instances, use parameter
default values from CDB instance masters instead from OA
stdViaDef parameters list.
-log t_fileName
Logs the translation in the specified file.
If you do not specify -log, the translator searches the
CDS_LOG_PATH environment variable for a suitable location for
the file.
If neither -log nor CDS_LOG_PATH yields a valid, writable
location, the translator records the session in $HOME/
cdb2oa.log.
-appendlog
Appends a record of the current translation to an existing log
file. You must use the -log argument to specify the log file to
which you want to append.
-report
Prints additional information to the log file and standard error
output indicating the progress of the translation.
(IC6.1.6 only) -tbrule t_fileName
(IC6.1.6 only) Specifies the name of the source Toolbox rule
file to be translated.
-prrulelib t_libName
Converting a Library
Note: The examples in this chapter use simple library structures to illustrate the use model
of the translator. The pictures do not show all the files typically found in a CDB library, only
those required to illustrate the point being described have been depicted.
This example uses a CDB library called design containing a number of different cells.
user
cdb
cds.lib
design
cell_1
cell_2
cell_3
...
Note: cdb2oa will ignore all ASSIGN statements found in the CDB cds.lib file.
user
cdb
cds.lib
design
cell_1
cell_2
cell_3
...
oa Start the translator in this directory
Important
Regardless of any -oalibpath specification, the translator always creates or
updates the cds.lib file in the run directory. To ensure that the correct files are
updated and that access to the OpenAccess version of the library is correctly
maintained, Cadence recommends that you always run the translator from the top-
level of the OpenAccess library.
To translate the design library into a specified directory, follow these steps:
1. In a shell window, create a new directory for the OpenAccess version of the library.
user
cdb
cds.lib
design
cell_1
cell_2
cell_3
...
oa Start the translator in this directory
oaNew
user
cdb
cds.lib
design
cell_1
cell_2
cell_3
...
oa
cds.lib OpenAccess library definitions files
updated in the current directory
oaNew
design
cell_1 Cellviews translated into the new directory
cell_2
cell_3
...
Converting a Cellview
You can use cdb2oa to do the following:
■ Converting a Single Cellview
■ Converting a Hierarchical Cellview within a Single Library
■ Converting a Hierarchical Cellview over Multiple Libraries
The translator converts only the layout view for cell_1, ignoring any other views present for
cell_1 and any other cellviews referenced by it.
For example, in the sample library, the top_cell layout view references the cell_2 and
cell_3 layouts. All three cells have layout and symbolic views.
user
cdb
cds.lib
design
top_cell
layout
layout.cdb
symbolic
layout.cdb
cell_2
layout
layout.cdb
symbolic
layout.cdb
cell_3
layout
layout.cdb
symbolic
layout.cdb
user
cdb
oa Start the translator in this directory
design
2. Go to the oa directory and run the translator with the -cell, -view, and -topdown
arguments.
cdb2oa -lib design -cdslibpath ../cdb/ -topdown -cell top_cell -view layout
The translator converts the layout view for top_cell and all of the cellviews present for
cell_2 and cell_3.
Tip
Cadence recommends that you use the GUI to complete this task. The GUI provides
support for converting multiple libraries in a single run, including a function to
determine interdependencies between libraries and establish the correct sequence
for conversion. For more information, see Chapter 4, “Using the CDB to
OpenAccess Translator GUI.”
When using the translator from the command line, you can translate only one library at a time.
To translate multiple libraries, you must run the translator separately on each library in turn.
user
cdb
cds.lib
design
devices
deviceLib1
deviceLib2
reflibs
refLib1
refLib2
Important
Regardless of any path specified using -oalibpath, the translator always creates
or updates the cds.lib file in the current working directory.
➤ In a shell window, create a top-level directory to contain the OpenAccess version of the
cds.lib file and a subdirectory for each of the libraries to be translated.
user
cdb
oa Start the translator in this directory
design
devices
deviceLib1
deviceLib2
reflibs
refLib1
refLib2
Important
When used from the command line, the translator is unable to determine this
sequence automatically. You must do it manually and run the translator separately
on each of the libraries in turn. The GUI provides a function to do this for you.
Design Hierarchy
****************************************************************************
Library : design
Cell : top_cell
View : layout
Option : Current to bottom
****************************************************************************
The indentation shows the hierarchical relationships between the listed cellviews. The
numbers in parentheses tell you how many instances of each cellview are present. For
example, design top_cell contains 5 instances of cellview refLib1 cell_1, 1
instance of refLib1 cell_2, and so on.
5. Translate the libraries one at a time, working from the lowest level library up to the top
cellview.
cdb2oa -cdslibpath ../cdb/ -lib refLib2 -oalibpath reflibs/refLib2
cdb2oa -cdslibpath ../cdb/ -lib deviceLib2 -oalibpath devices/deviceLib2
cdb2oa -cdslibpath ../cdb/ -lib deviceLib1 -oalibpath devices/deviceLib1
cdb2oa -cdslibpath ../cdb/ -lib refLib1 -oalibpath reflibs/refLib1
cdb2oa -cdslibpath ../cdb/ -lib design -oalibpath design
To resolve this situation, work from the lowest level in the hierarchy back up to the top cellview,
translating individual cellviews as required so that the dependencies are satisfied.
For example,
refLib1/cell_4/layout
refLib2/cell_1/layout
refLib1/cell_6/layout
refLib1/cell_6/layout
The layout editor’s Tree window shows the relationships like this.
Design Hierarchy
****************************************************************************
Library : design
Cell : top_cell
View : layout
Option : Current to bottom
****************************************************************************
.
.
.
refLib1 cell_4 layout (1)
refLib2 cell_1 layout (1)
refLib1 cell_6 layout (2)
.
(truncated)
3. Translate the rest of library refLib1, using the -nooverwrite option to prevent
cell_6 layout from being translated again.
cdb2oa -lib refLib1 -cdslibpath ../cdb/ -oalibpath ./reflibs/refLib1 -
nooverwrite
4
Using the CDB to OpenAccess Translator
GUI
This chapter describes how to use the CDB to OpenAccess Translator GUI.
Getting Started
■ Choosing a Run Directory
■ Starting the Translator
■ Running the Translator
Converting a Library
■ Converting into the Current Directory
■ Converting into a Specified Directory
Converting a Cellview
■ Converting a Single Cellview
■ Converting an Hierarchical Cellview within a Single Library
■ Converting an Hierarchical Cellview over Multiple Libraries
Getting Started
This section tells you how to start the GUI and outlines what happens after you start the
conversion. The examples in this chapter use simple library structures to illustrate the use
model of the translator.
Note: The figures in this chapter do not show all the files typically found in a CDB library; only
those required to illustrate the point being described have been depicted.
For more information about the translator forms, see Appendix A, “CDB to OpenAccess
Translator Form Descriptions”. The translator issues error messages to report conditions that
it cannot resolve. For information on how to limit the number of these errors, see “Before You
Start with CDB to OpenAccess Translation” on page 63.
If the library being converted is already defined in the OpenAccess cds.lib file using a
different path, the translator comments out the original definition and redefines the library
using the path you specified.
Important
The CDB to OpenAccess Translator form will not be displayed if any cellview is open
either in the read or edit mode. However, if you want to open the form, close the
already opened cellviews. Also, you can use the command line to execute the
translation.
Converting a Library
This section describes the following:
■ Converting into the Current Directory
■ Converting into a Specified Directory
The example in this section uses a CDB library called design containing a number of
different cells.
user
cdb
cds.lib
design
cell_1
cell_2
cell_3
...
1. In a shell window, go to the top-level directory of the OpenAccess version of the library.
If you are translating the library for the first time, create a new directory, say oa, and go
to that.
user
cdb
cds.lib
design
cell_1
cell_2
cell_3
...
oa Start the translator in this directory
2. Start the translator in the oa directory as described in Starting the Translator section. The
CDB to OpenAccess Translator form appears.
3. Type the path to the cds.lib file in the Path to cds.lib file field. The translator lists the
design library in the Libraries to convert pane. You can also specify the path to the
cds.lib file using the Browse button.
4. Click OK to convert the library. The translator creates and executes a script called
run_cdb2oa.csh in the current directory. This file contains the cdb2oa command to
convert the library in question.
cdb2oa -cdslibpath ../cdb/ -lib design -log ./cdb2oa.gui.log -appendlog -
mapundefinedpingroups strong
Tip
This section describes how to do this for a single library. For information on
translating multiple libraries, see “Converting Multiple Libraries” on page 105.
Important
Regardless of any -oalibpath specification, the translator always creates or
updates the cds.lib file in the run directory. To ensure that the correct files are
updated and that access to the OpenAccess version of the library is correctly
maintained, Cadence recommends that you always run the translator from the top
level of the OpenAccess library.
user
cdb
cds.lib
design
cell_1
cell_2
cell_3
...
oa Start the translator in this directory
oaNew
6. Click OK to return to the CDB to OpenAccess Translator form and then click OK again
to convert the cellview. The translator creates and executes a script called
run_cdb2oa.csh in the current directory. This file contains the cdb2oa command to
convert the library in question.
cdb2oa -cdslibpath ../cdb/ -lib design -oalibpath ../oaNew/design -log ./
cdb2oa.gui.log -appendlog -mapundefinedpingroups strong
Converting a Cellview
You can use the CDB to OpenAccess translator to do the following:
■ Converting a Single Cellview
■ Converting an Hierarchical Cellview within a Single Library
■ Converting an Hierarchical Cellview over Multiple Libraries
The translator converts only the layout view for cell_1, ignoring any other views present
for cell_1 and any other cellviews referenced by it.
To convert multiple selected cellviews, specify the names of the cells and views in the fields
provided. Separate names with a space. For example,
Consider the library depicted in the following figure. The top_cell layout view references
the cell_2 and cell_3 layouts.
user
cdb
cds.lib
design
top_cell
layout
layout.cdb
symbolic
layout.cdb
cell_2
layout
layout.cdb
symbolic
layout.cdb
cell_3
layout
layout.cdb
symbolic
layout.cdb
user
cdb
oa Start the translator in this directory
design
2. Start the translator in the top-level directory as described in “Starting the Translator” on
page 92.
3. Type the path to the cds.lib file in the Path to cds.lib file field. The translator lists the
design library in the Libraries to convert pane.
4. Select the design library and click Set library options. The Library specific options
form appears.
5. Click the Conversion tab.
6. In the Hierarchical conversion frame, select the Convert hierarchical cellview check
box and specify the top cellview by typing the values in the Cell name and View name
fields.
7. Click OK to return to the CDB to OpenAccess Translator form and then click OK again
to convert the cellview. The translator creates and executes a script called
run_cdb2oa.csh in the current directory. This file contains the cdb2oa command to
convert the cellview in question. The script used by the GUI uses the -cell, -view, and
-topdown command line arguments for performing the hierarchical conversion.
The translator converts the layout view for top_cell and all of the cellviews present for
cell_2 and cell_3.
Click Order on the CDB to OpenAccess Translator form to determine the dependencies
between the libraries. Translate the dependency libraries first in one or multiple runs of the
translator. Finally, to convert the hierarchical cellview, select the Convert hierarchical
cellview check box on the Conversion Tab and specify the values in the Cell name and View
name fields.
The GUI uses the -cell, -view, and -topdown command line arguments for performing
the hierarchical conversion.
user
cdb
cds.lib
design
devices
deviceLib1
deviceLib2
reflibs
refLib1
refLib2
These files and directories introduce many dependencies that must be accounted for
prior to conversion; for example, it is particularly important to locate SKILL files correctly
so that they are available for use by the libInit.il and.cdsinit files.
Important
Regardless of any path specified in the OpenAccess library path field, the
translator always creates or updates the cds.lib file in the current working
directory.
To set up the directory structure for the OpenAccess libraries, create a top-level directory to
contain the OpenAccess version of the cds.lib file and a subdirectory for each of the
libraries to be translated.
user
cdb
oa Start the translator in this directory
design
devices
deviceLib1
deviceLib2
reflibs
refLib1
refLib2
4. Click Order to determine the sequence in which these libraries need to be converted.
The translator determines the dependencies between the libraries and changes the order
appropriately.
5. Select the first library in the list and click Set library options. The Library specific
options form appears.
Note: You can manually select all the design libraries in the Libraries to convert pane
that you want to convert.
6. In the OpenAccess library path field on the Conversion Tab, specify the path to the
directory you want to use. For example, for refLib1, you would enter the following.
reflibs/refLib1
7. Click OK to close the Library specific options form. For more information about this
form, see Appendix A, “CDB to OpenAccess Translator Form Descriptions”.
8. Repeat steps 5 and 6 for each of the libraries to be converted.
9. In the CDB to OpenAccess Translator form, click OK to convert the listed libraries.
The translator creates and executes a script called run_cdb2oa.csh in the current
directory. This file contains one cdb2oa command for each library to be converted.
cdb2oa -cdslibpath ../cdb/ -lib refLib1 -oalibpath reflibs/refLib1 -log ./
cdb2oa.gui.log.1 -appendlog -mapundefinedpingroups strong
cdb2oa -cdslibpath ../cdb/ -lib deviceLib2 -oalibpath devices/deviceLib2 -log
./cdb2oa.gui.log.2 -appendlog -mapundefinedpingroups strong
cdb2oa -cdslibpath ../cdb/ -lib deviceLib1 -oalibpath devices/deviceLib1 -log
./cdb2oa.gui.log.3 -appendlog -mapundefinedpingroups strong
cdb2oa -cdslibpath ../cdb/ -lib refLib2 -oalibpath reflibs/refLib2 -log ./
cdb2oa.gui.log.4 -appendlog -mapundefinedpingroups strong
cdb2oa -cdslibpath ../cdb/ -lib design -oalibpath design -log ./
cdb2oa.gui.log.5 -appendlog -mapundefinedpingroups strong
refLib1/cell_4/layout
refLib2/cell_1/layout
refLib1/cell_6/layout
refLib1/cell_6/layout
When using the GUI, the translator is able to resolve most of these dependencies for you.
However, from time to time you might be left with some unresolved dependencies at the end
of the translation run.
To resolve these, use the -cell and -view arguments to work from the lowest level in the
hierarchy back up to the top cellview, translating individual cellviews as required so that the
dependencies are satisfied. For more information on how to do this, see “Determining the
Sequence of Translation” on page 87 and “Resolving Circular Dependencies” on page 88.
If the .cdsenv file is stored in your home directory, it gets loaded when you start the
translator and any of your customized settings come in effect.
The table in the Mapping GUI Options with Command Line Arguments and .cdsenv Variables
section lists all the default cdb2oa .cdsenv variables and the corresponding GUI options.
5
Post-Processing of the Translated Data
This chapter describes how you can process the translated OpenAccess design data after
the cdb2oa conversion.
The libraryon which the mapper utility is run must have write permissions for mapping. If the
library does not have write permission for mapping, then use the -makelibwritable option
to grant write permission to all cellviews of the library, recursively. The syntax is as follows:
mapper -lib <libName> -map <mapFilePath> --makelibwritable
Mapping Techniques
Traditionally, the mapper utility allows only the purpose-to-purpose mapping using a map file.
This method allows you to move all the shapes on <Layer1 Purpose1> to <Layer1
Purpose2>.
You can also use the LPP name mapping option -namemap to move all the shapes from
<Layer1 Purpose1> to <Layer2 Purpose2>. The syntax of -namemap is as follows:
mapper -lib <libName> -map <mapFilePath> -namemap [-cell] [-view]
Here, the -cell option works on a specific cell and the -view option works on a specific
view in the technology file. In case only -cell option is specified, it works on all the views
present in that cell. Whereas, if only -view option is specified, it works on a specific cellview
under each cell.
Otherwise, mapper works as LPP number mapping and the syntax is as follows:
mapper -lib <libName> -map <mapFilePath>
Shapes on all valid <Layer> <Purpose1> pairs will be moved to the valid <Layer
Purpose2> pairs. However, shapes will not move if the target layer-purpose does not
exist or is unknown.
❑ Both names and numbers can be used to specify the layer-purpose pairs in the map
file. However, a map file contains either all the names or all the numbers.
■ LPP-to-LPP Mapping: It includes the LPP-to-LPP mapping through a map file, which
moves shapes from source LPP to target LPP. The entries in the map file should be of
the following format:
<Layer1 Purpose1> <Layer2 Purpose2>
then, both LPPs metal1 drawing and metal2 drawing should be defined
in the technology file.
❑ Wildcard characters ‘*’ and ‘?’ can be used for specifying the layer and purpose
names. Wildcard characters are allowed in place of source layer and purpose
names. Though the use of wildcard characters generates a lot of possible layer-
purpose combinations, shapes on only the valid LPP will be migrated. For example,
the valid wildcard entries in a map file are:
* drawing metal1 drawing
metal2 * metal1 drawing
* * metal1 drawing
via* drawing metal2 drawing1
*1 drawing1 metal2 drawing1
❑ The map file is processed line-by-line and therefore it works in a cascade mode. For
example, if the map file contains the following entries:
metal1 drawing1 metal2 drawing2
metal2 drawing2 metal3 drawing3
then, all the shapes on LPP metal1, drawing1 will be moved to LPP
metal3, drawing3.
Note: All blank lines and the lines starting with the # symbol will be ignored. The #
symbol is meant for adding comments in the map file.
❑ Handling Duplicate Entries
To understand how duplicate entries are handled, consider a map file with following
entries:
metal1 drawing1 metal2 drawing
metal1 drawing1 metal3 drawing1
If the -copy option is specified, all the shapes on the single source OA LPP will be
copied to multiple destination OA LPPs. Additionally, a warning with information
about the duplicate entry, in which all column values match in the map file, will be
displayed.
If the -copy option is not specified, the sequence of entries in the map file is
considered. While reading the entries, the map file takes the top-to-bottom approach
and gives precedence to the first entry. Any duplicate entry is ignored and an ignore
warning message is displayed. In this scenario, if a duplicate entry is found because
of a wildcard character and if the -reportallerrors option is specified, an ignore
warning message will be displayed.
Shapes on all valid <Layer1 Purpose1> will be moved to a valid <Layer2 Purpose2>
pairs with respective photomask color <PhotoMaskColor> and color state <ColorState>.
In addition, a single map file can have multiple valid entries in any of the following formats:
<Layer1 Purpose1> <Layer2 Purpose2> <PhotoMaskColor> <ColorState>
<Layer1 Purpose1> <Layer1 Purpose2> <PhotoMaskColor> <ColorState>
(Recommended)
Let's consider an example where you have two shapes on LPP1. Now, this tool will migrate
the shapes from the source LPP to the target LPP, LPP2 with respective photo mask colors
and color states as shown below:
Metal1 drawing1 Metal2 drawing2 mask1Color locked
Note: The Photomask color information, which is specified in an entry of the layerMap file
is validated against the number of photomask color support in the technology for that
particular target LPP.
Object Mapping
In object mapping a LPP cannot be specified twice against two different objects. If this is done
the order of the entries will change the output. The object map is parsed on the basis of layer
and purpose names. Specifying the layer and purpose numbers is not allowed. They will be
treated as strings only.
The option name for object mapping is -objectmap and the syntax is as follows:
mapper -lib <libName> -objectmap <mapFilePath>
In PR and Snap boundary mapping, all the shapes would be queried on the specified LPP.
However, if multiple shapes are found only the first shape will be considered for PR boundary.
Whereas, in case of snap boundary, mapper will try to merge the bounding boxes of the
shapes and come up with a enveloping snap boundary. This is considered as an error from
the mapper’s perspective. Therefore, multiple shapes on the specified LPP should be
avoided.
Incase of layer blockage mapping, all shapes on specified LPP will be queried and would be
converted to layer blockages on the same layer and the shapes will be deleted. The
appropriate values for blockage types are: route, fill, slot, pin, feedthru, screen,
and routing. Incase, any other type string is specified, it would not be accepted and an error
message will be displayed.
If the same LPP has been specified twice, once with one blockage type and later with another
blockage type, then only the first entry will be considered and all the subsequent entries will
be ignored. Layer blockage can not have a blockage type of placement.
An optional density argument is added for layer blockage mapping to set the maxDensity
attribute only if the blockage sub type is screen. The syntax for it is as follows:
<layer name> <purpose name> blockage screen <maxDensity>
All shapes in the specified net will be queried and added to the specified net. If the specified
net is not found in the design block an error message will be displayed.
Note: All three types of object mappings support the characters '*' and '?' as wild cards in
the syntax. These wild cards can be used only for layer and purpose names.
Syntax
The command line syntax for the mapper utility is as follows:
mapper
-map mapFileName
-lib libName
[ -namemap ]
[ -copy ]
[ -cell ]
[ -view ]
[ -reportallerrors ]
[ -objectmap ]
[ -help ]
-map mapFileName
Specifies the name of the map file that maps one purpose to
another. If the mapping is in the name format, use the -
namemap argument with the -map argument.
-lib libName
Specifies the name of the input OpenAccess library to be
processed.
-namemap
Specifies that the entries in the map file are in the form of
names and not numbers. The mapper utility, by default,
assumes the mapping in the map file to be in the number
format.
-copy
Copies shapes from source LPP to target LPP.
-cell
Specifies the cell name.
-view
Specifies the view name.
-reportallerrors
Prints all the error and warning messages that are issued when
the utility comes across invalid layer-purpose combinations. A
number of invalid layer-purpose combinations are generated as
a result of using wildcard characters in the map file.
-objectmap
Specifies the object map file.
-help
Prints the list of mapper command arguments and their
descriptions. The utility displays the same information if you
type mapper without specifying any arguments.
A
CDB to OpenAccess Translator Form
Descriptions
Path to cds.lib file specifies the path to the CDB library definitions file that defines the
library to be translated. The translator accepts any file that uses standard Cadence cds.lib
file syntax and supports the use of the INCLUDE keyword in these files. If you do not specify
a filename, the translator defaults to cds.lib.
Caution
Changing the path to the cds.lib file to specify a different cds.lib file can
cause irreversible loss of your settings.
Libraries not to convert lists the libraries referenced in the specified cds.lib file but not
currently in the Libraries to convert field.
Libraries to convert lists the libraries to be converted. When you specify the path to the
cds.lib file, the translator automatically moves all the valid libraries defined in that
cds.lib file into this field.
Note: Reference libraries shipped with Cadence software are excluded from the list.
The libraries are converted in the order in which they are listed. To ensure that they are
converted in the correct order, click the Order button before running the conversion. Use the
arrow buttons to move libraries into and out of this field.
Up moves a selected library up one place in the list.
Down moves a selected library down one place in the list.
Order determines the sequence in which the list of libraries must be converted in order
to satisfy the cellview dependencies between them.
To increase the size of Libraries not to convert and Libraries to convert fields without
scroll bars, you can use an environment variable, increaseform of data type integer to
.cdsenv. Setting this variable 0 will display the default form and setting this variable to any
non-zero value will increase the form according. For example, if you want to display 30
characters without having scroll bar, then you can set the variable to 30.
Important
If you set the environment variable less than 22, then it will display the default form.
Set library options opens the Library specific options form for the selected library(s). Use
this form to limit the cellviews that are converted from an individual library and to specify
different options for different libraries in a multiple library conversion.
Sort list displays the list of libraries in sorted order in the Libraries to convert field. If the
Sort list check box is selected then the libraries will remain sorted irrespective of clicking the
arrow buttons. However, if you click the Up, Down, or Order button then the Sort list check
box will be deselected.
Generate run files only generates a run script without running the translation. The script
is created in the run directory and is called run_cdb2oa.csh. It contains one cdb2oa
command for each library to be converted.
If you are converting a hierarchical cellview, this button also generates a file called
cellList, which contains an ordered list of all the cellviews referenced by the top cellview.
General Tab
Run translator in preview mode (does not run the conversion) reports what would be
translated as a result of the current settings, but performs no translation. Therefore, the
remaining options on the General tab, other than those that specify the log file name and the
OpenAccess library path, are automatically disabled when the preview option is selected. The
report is printed to the same terminal window that is used to launch the translator.
Retain invalid cellviews and directories retains even the invalid cellview directories and
their contents.
Ignore CDB locks ignores any edit locks on CDB data. By default, when a CDB cellview is
locked, it is not translated.
Report conversion progress prints additional information to the log file and standard error
output indicating the progress of the translation.
Write absolute paths in OpenAccess cds.lib file specifies that the absolute path to the
converted library is written to the OpenAccess cds.lib file. By default, the translator writes
the relative path in these files, unless you specify an absolute path using the OpenAccess
library path field.
Note: Using absolute paths in library definitions files can lead to problems if you access
the data across different networks or on different hardware platforms. It can also
adversely affect the performance of your applications on OpenAccess.
Skip directories lists the directory names to be skipped by the translator. A directory with
one of the specified names is not translated.
Write log to file logs the translation in the specified file. By default the translator appends
the conversion log to a file called cdb2oa.gui.log stored in the run directory.
Append option allows you to append the log file that has been specified in the Write log to
file field. This is the default option.
Overwrite option allows you to overwrite the log file that has been specified in the Write log
to file field. To overwrite the specified file, select the Overwrite option.
OpenAccess library path specifies a location for the OpenAccess version of the library.
The directory you specify must exist on your system; the translator cannot create it
automatically. You can enter either a relative or an absolute path. The last element of the path
is the library directory into which the library cells and other files are to be translated.
Note: Regardless of any path you enter in this field, the translator always updates the
cds.lib file in the current directory.
Abort if parameter types differ for overlapped super master and CDF parameters
specifies the cdb2oa translator to abort when a mismatch of parameter type occurs between
CDF parameter and Pcell superMaster parameter. By default, an appropriate warning will be
displayed and translation would continue if there is a mismatch in parameter type.
Abort if default values differ for overlapped super master and CDF parameters specifies
the cdb2oa translator to abort when a mismatch of default value occurs between CDF
parameter and Pcell superMaster parameter. By default, an appropriate warning will be
displayed and translation would continue if there is a mismatch in default values.
Retain CDB parameter defaults on instances specifies the cdb2oa translator to retain the
CDB parameters defaults on instances.
Use defaults from Pcell parameters specifies cdb2oa translator to consider Pcell
superMaster parameters as master parameters while creating parameters on the OA
instance. If you do not select an option, by default Pcell superMaster parameter is considered.
Use defaults from CDF specifies cdb2oa translator to consider CDF parameter while
creating parameters on the OA instance. If you do not select an option, by default Pcell
superMaster parameter is considered.
User SKILL file specifies the top level SKILL file containing device definitions, which can be
loaded during the translation.
Process SKILL file specifies the SKILL file containing SKILL functions cdboaPreTrans()
and cdboaPostTrans, which can be loaded during the translation.
Database Tab
Do not flatten symbolic pins disables the flattening of the symbolic pins, syPins and
syRectPins. You can use this option only if the Preserve device masters option is
selected.
Create pathSeg objects converts CDB 2-point paths to OpenAccess pathSeg objects. By
default, the CDB paths are converted to OpenAccess paths.
Note: 2-point paths, which are relative-object design (ROD) objects, are not converted
to pathSeg objects.
Half width path to polygon converts CDB path to OpenAccess polygon. Only the path with
a segment less than half width of the path is converted.
Use the Convert Half Width Path to Polygon option to translate all 1/2 width paths as
BOUNDARY. However, you can deselect the Convert Half Width Path to Polygon option to
translate 1/2 width path as path and not as a polygon.
Reset placement status resets the placement status of instances to “none” so that they
are displayed correctly in OpenAccess. OpenAccess does not display instances with
placement status “unplaced”.
Unplaced resets only the instances with placement status “unplaced”.
All resets all the instances.
Map undefined pin model to maps pin groups without subnet extensions to one of the
selected pin group model: Strong, Weak, and Must. The default pin model is Strong.
Do not overwrite existing OpenAccess data prevents the translator from overwriting
existing OpenAccess library data. Instead, it writes only data that does not already exist in the
OpenAccess library. By default, the translator overwrites any existing data in the OpenAccess
library.
Disable CPH uprev inactivates the automatic uprev of the CPH legacy data. The data in
CDB is cell-level component type. After cphUpRev, the translated data stores old component
type data in the LAM file.
Ignore DM Settings ignores all DM related files and directories, and translates the data to
OA without DM information. Therefore, all cellviews whether checked in or not can be edited
after translation to OA and all .SYNC directories are ignored. By default, the Ignore DM
Settings option is unchecked.
Disable CMX uprev inactivates the automatic uprev of the CMX legacy data. The data in
CDB is cell-level component type. After cmxUpRev, the translated data stores old component
type data in the LAM file.
Convert non-maskable symbolic pin to allows you to either drop non-maskable symbolic
pins by selecting the ignore option or to convert the non-maskable symbolic pins to rect or
dot by selecting the rect or dot option respectively. If none of the check boxes are selected
then, by default, all non-maskable symbolic pins are converted to rect.
Convert special characters allows you to convert all special characters except '$' and '?'
for instances and mosaics to '_'.
Technology Tab
Create layer map file specifies a name for a layer map file to contain stream translation
rules removed from the CDB technology file. By default, the file is called
libName.layermap and is placed in the same directory as the technology file from which
it is derived. For information on how the translator handles stream translation rules, see
“Stream Translation Rules” on page 32.
Detect vias automatically lets the translator identify the cellviews in the CDB design that
can be represented as standard or custom viaDefs in OpenAccess. If you use this option, you
do not need to manually create a via map file. Therefore, the Via map file field is disabled
when the Detect vias automatically option is selected.
Note: You must have the permission to write to the OpenAccess technology file to use
this option.
Via map file specifies a file listing the CDB via cellview masters to be converted to
oaCustomViaDefs in OpenAccess. The translator adds the oaCustomViaDef definition to
the OpenAccess technology library and converts instances of the via cellview to OpenAccess
customVias referencing the new definition.
Note: You must have permission to write to the OpenAccess technology file to use this
option.
ICC rules files specifies the path to an ASCII file containing ICC rules. If you specify a rules
file, only that file is processed and any ICC rules in the technology file are ignored. The rules
are mapped to the virtuosoDefaultSetup constraint group in the OpenAccess
technology file unless you specify a different constraint group using the
-iccconstraintgroup argument.
ICC constraint group name specifies the OpenAccess constraint group into which ICC
rules are mapped. The translator picks up these rules from the CDB technology file or from a
separate ASCII file specified using the ICC rules files argument. By default the rules are
stored in the virtuosoDefaultSetup constraint group.
Use ICC rules map file specifies that a map file is to be used for mapping ICC rules files to
constraint group names.
ICC rules map file specifies the path of the map file. The map file is in ASCII format. The
map file contains several entries in the format “<ICC rules file path>
<constraint group name>”, with each entry on a separate line. Do not use this
argument along with either -icculesfile or -iccconstraintgroup; if used, the
translator will not proceed.
Toolbox rules file specifies the path of the Toolbox rule file. If a toolbox rule file is
specified, cdb2oa GUI will compile the command argument -tbrule. Specifying the
toolbox rules file would enable in faster deployment of Toolbox rule file from CDB to OA.
Map via parameters specifies that while translating CDB to OA, instances of symbolic
devices use the parameter default values from CDB master rather than OA stdViaDefs. By
default, the Map via parameters option is deselected.
ITDB frame specifies the Incremental Technology Database (ITDB) information for CDB to
OpenAccess translation.
PR rules library path specifies the path for creating the prrules library. If you do not
specify a path for the prrulelib library, by default the library is created in the current
directory.
PR rules library name specifies the name of the prRules library. Depending on
whether the library being translated is a technology or a design library, the translator
does one of the following:
❑ Splits the technology library into the base technology library and the specified
prRules library
❑ Attaches the design library to the specified prRules library. This can happen only if
the technology library, to which the design library is attached, has been split to
create the prRules library.
Note: If a design library has its own technology library and the technology library
has been split, the translated design library cannot access the prRules information
because the prRules information gets compiled into a separate library. Therefore, if
you want the design library to retain access to the prRules information, do not use
the prruleLib option.
Consider an example in which the design library dlib is attached to the technology
library techlib on CDB. First, translate the technology library and specify the PR rules
library name as prlib. The technology library will split into the base technology library
basetechlib and the prRules library prlib. Next, translate the design library dlib.
The following scenarios are possible for translating the design library:
Case 1: No PR Rules Library is Specified
The translator will create dlib and attach it to basetechlib. In this case, the prRules
information will be lost.
Case 2: A PR Rules Library is Specified
2A: If the name of the prRules library is specified as prlib, the translator will create
dlib and attach it to prlib.
2B: If the name of the prRules library is specified as pr1 such that its base technology
reference does not match the basetechlib, the translator exits and issues an error
message.
Force attach prRules Library allows the translator to overlook any mismatches
between the specified prRules library and the base technology library and attaches the
design library to the specified prRules library. The specified prRules library should exist,
else the translator issues error messages.
Abort if CBT tech not defined specifies the translator to abort if CDB technology library is
not defined in the CDB library definitions file.
Conversion Tab
Cells specifies the names of the cells to be translated. The translator converts only the cells
with one of the specified names.
Views specifies the view names to be translated. The translator converts only the views with
one of the specified names.
View types specifies the view types to be converted. Only cellviews that map to one of the
specified view types are translated. The valid view types are maskLayout, schematic,
symbol, netlist, schematicSymbol, verilogMap, and others.
Note: The view type is distinct from the view name used to describe the view directory
in the library file system. Each view name is mapped to its corresponding view type in
the Cadence data registry. For more information on the data registry, see the Cadence
Application Infrastructure User Guide.
Setting the map file invokes the mapper utility after the cdboa translation is complete to
process the translated OpenAccess design data. The Mapper is an independent post
processing utility that is launched using the cdb2oa GUI interface. The Post Processing tab
in the cdb2oa GUI contains the settings for the mapper utility. The Post Processing tab allows
you to do the following:
■ Object Mapping
■ Purpose Mapping
Object map file specifies the name of the object map file. The object map file maps the
shapes on a particular layer purpose to a specified OpenAccess object type.
Purpose map file specifies the name of the purpose map file. This would allow you to change
the shapes on a purpose to a new purpose.
Report all errors displays all the error and warning messages that are send out when the
utility comes across invalid layer-purpose combinations. A number of invalid layer-purpose
combinations are generated as a result of using wildcard characters in the map file. By
default, no errors and warnings are displayed for the invalid layer-purpose combinations. To
view all the errors and warnings, select the Report all errors option.
Map file uses layer and purpose names specifies that the entries in the map file are in the
form of names and not numbers. The mapper utility, by default, assumes the mapping in the
map file to be in the number format. By default the Map file uses layer and purpose names
option is deselected.
Index
Numerics illegal names in 27
instance pins 58
64-bit mode, running 18 magnified 44
master.tag 38
parameterized cells See parameterized
A cells
paths with extensions 58
application infrastructure files pc.db 39
cds.lib 30 site cellviews missing in
cdsinfo.tag 31 OpenAccess 36
view types
mapping from CDB to
B OpenAccess 40
mismatched 40
boundaries, mapping shape-based visibility settings for text display
boundaries 59 objects 46
bounding boxes, differences in 45, 46 command line
validation 19
connectivity
C pins and pin connectivity 53
counters See timestamps
CDB
objects not supported 63
permissions 64 D
versions supported 17
cdb2oa database units per user unit See technology
GUI 92 information, setting values for
location of executable 18 units 34
overview of the translator DBUPerUU See database units per user
engine 19 to 21 unit 34
running in 64-bit mode 18 disk space
syntax 65 estimating 24
cdb2oail quotas 24
location of executable 18 display resource file, display.drf 36
CDBA name space
illegal names in 27, 64
cds.lib E
converting 30
relative and absolute paths in 30 empty cellviews 39
cdsinfo.tag 31 environment variables files
cellviews .cdsenv 25
bounding boxes, differences in 45, 46 .cdsinit 25
determining the sequence of
translation 20
directories in 39
empty cellviews 39
G P
graphical user interface parameterized cells
run files introduced 41
SKILL functions in 41
parent-child database file, pc.db 39
H pcells See parameterized cells
pins
hierarchical conversion and pin connectivity 53
over multiple libraries 103 properties 47
within a single library 100 Virtuoso XL properties 51
prRules See technology file,
conversion 32
L
labels R
bounding boxes, differences in 45, 46
log file related documents 10
CDS_LOG_PATH 22 run files See graphical user interface
CDS_LOG_VERSION 22
location 21
messages excluded 23 S
naming convention 22
structure 22 sites 36
stream translation rules 32
syntax
M cdb2oa 65
command line validation 19
magnification 44
master.tag file 38
mosaics 41 T
techfile.cds See technology information 32
N techfilemapping file 59
technology information
name spaces attached technology libraries 33
illegal CDBA names 27 conversion 32
in log file messages 28 display.drf 36
introduced 26 setting values for units 34
mapping special characters from CDBA stream translation rules 32
to LibraryUnix 26 techfile.cds 32
specifying object names 27 validating in OpenAccess 35
text display objects
bounding boxes, differences in 45, 46
O visibility settings 46
timestamps
OpenAccess introduced 49
introduced 17 translating
versions supported 17 from the command line 63
from the GUI 91
U
usage
cdb2oa 65
userUnits See technology information,
setting values for units 34
V
validating CDB data 63
versions
CDB and OpenAccess versions
supported 17
vias
automatic detection 37, 130
via map file 37, 130, 131
visibility settings 46
for text display objects 46