Product Documentation
Virtuoso Technology Data User Guide
Product Version IC23.1, June 2023

2


ASCII Technology File Development

This chapter introduces and presents an overview of ASCII technology file development and usage. It also summarizes technology file organization and presents definitions of the various kinds of data defined in a technology file.

This chapter discusses the following:

Methods of Initial ASCII File Creation

You can create a new ASCII technology file by any of the following methods:

Whatever method you use, the structure of and requirements for specifying ASCII technology file data remain the same. For details, see the Virtuoso Technology Data ASCII Files Reference.

Technology File Organization

An ASCII technology file is organized into sections that define technology data as described in the following paragraphs. You can specify one, some, or all of these sections in an individual technology file, depending upon what is needed to create the technology database you want for your graph.

Technology file statements (include and comment) allow you to include other files in the technology file and put comments in the technology file that remain during compilation and dumping.

Controls (controls) specify data that can be used throughout the technology file and also specify references to other technology libraries.

Layer definitions (layerDefinitions) define the layers that can be used to define data throughout the technology file or by other technology databases in design sessions.

Layer rules (layerRules) specify layer attributes, such as layer materials, manufacturing grid resolutions, and current densities.

Constraint groups (constraintGroups) specify design constraints.

Site definitions (siteDefs) define scalar site definitions and arrays of scalar site definitions.

Via definitions (viaDefs) define standard and custom vias.

Via specifications (viaSpecs) define arrays of via definitions.

Devices (devices) define Cadence-predefined and ruleContact devices and multipart path templates.

For complete definitions of technology file sections and details about specifying technology file data, see the Virtuoso Technology Data ASCII Files Reference.

Which Technology Data Does Your Application Use?

To provide the greatest flexibility and satisfy the needs of a wide range of applications, the technology file provides a place to define many different data items. Not all of the data you can define is recognized and used by all applications. Before specifying data in the technology file or adding it to a technology database, make sure that it is used by the application or applications you are employing in your design process.

Specifying Data for An Incremental Technology Database

When you specify technology data in your ASCII technology file, you must keep in mind how that data is to be used as an incremental technology database. You must specify data that is in accord with its referenced and referencing technology databases and will not conflict with other technology data in a graph.

For detailed information about where you can specify each type of data without creating conflicts and for a detailed chart explaining how the software handles data, including data in conflict, see Appendix C, “Data Handling for Incremental Technology Databases.” While the following paragraphs present some general guidelines, the reference information in the appendix specifies details for every type of data in every situation.

Duplication of most technology data in multiple databases in a graph is not allowed because it creates irresolvable conflicts. Some technology data, however, can be duplicated in more than one technology database.

  1. You can duplicate any MPPTemplate or non-viaDef device of the same name in multiple technology databases.
  2. You can duplicate the following technology file subsections and data in multiple technology databases:
    • foundry constraint groups and their contents, with the requirement that the objects referenced exist somewhere in the subgraph
    • default constraint groups and their contents, with the requirement that the objects referenced exist somewhere in the subgraph
    • layer-purpose pairs and their drawing priority order
    • techLayerPurposePriorities for the same layer and purpose names
    • equivalentLayers
    • stampLabels
    • labels
    • leLswLayers
  3. You can specify the dbuPerUU value and user units in every technology database, but the value must be the same in all of them.

You cannot duplicate most other technology data, such as viaDefs or any constraint group with the same name other than a foundry or default constraint group.

Whereas, in general, objects referenced in a technology data definition can be defined in a referenced database, in certain cases, related data must be specified in the same technology database:

Creating a Technology Database from a Technology File

Compiling an ASCII technology file creates a technology database, or library, as defined by the ASCII technology file. The technology library consists of the binary technology database (always named tech.db) and the device cellviews defined in the ASCII technology file.

Notes:

  1. Do not rename the binary technology file or rearrange the file structure.
  2. If your application has rules files separate from the technology file, you must file those in the technology library subdirectory. For information about application-specific rules files, see the documentation for your application.
  3. Do not hard-code the binary technology database name into applications. Instead, retrieve the name with the SKILL function techGetDefaultTechName or, for C and C++, use the # define techDefaultTechFileName constant.

You must compile technology files for incremental technology bases in the order in which they are referenced; if you try to compile a technology file when its referenced database or any referenced objects, such as layers or purposes, does not already exist, the compilation aborts and issues an error message.

For details on compilation, see Generating a New Technology Library.


Return to top
 ⠀
X