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

1


About Virtuoso Technology Data

Virtuoso® technology databases define the process data used throughout a design flow: layer definitions, layer attributes, design constraints, site definitions, via definitions, via specifications, and device definitions—all of the information that defines the framework for creating designs. Most Virtuoso design technology data is initially defined in ASCII technology files which are compiled into technology databases, or libraries. These technology databases can then be set up as incremental technology databases.

Incremental Technology Databases

The Virtuoso incremental technology database structure enables applications to combine technology data from different sources by establishing references between databases. A database inherits the technology data from any databases it references. A chain of references, called a graph, creates an effective technology database that is a combination of the technology data in all of the databases, as illustrated below. Multiple references in a technology database are ordered: The order in which they are listed in the referencing technology database dictates the order in which applications traverse the graph to find technology data.

The ability to establish references among technology databases allows the incremental inclusion of technology databases as needed by various applications throughout the design process. Technology databases can be supplied by multiple sources (for example, the foundry, IP provider, and designer) and can be tailored to meet the requirements of different tasks in the design flow (for example, device-level design as opposed to top-level interconnect creation). Avoiding the limitations placed on design teams when a single read-only technology database is supplied, this structure provides flexibility by allowing designers to

A design library or an application can reference any technology database whose entry point in a graph provides only the technology data it needs.This technology database is the local technology database for that design library. The complete graph of databases initially referenced by the local database is the effective technology database. For example, in the following simple graph, in which the technology databases contain data grouped by type,

Simple Incremental Technology Database Structures

Incremental technology database graphs can be as simple or as elaborate as required.

The simplest but least flexible is to specify all technology data in a single technology database.

Creation of any technology database automatically creates a reference to the Cadence default technology database, cdsDefTechLib. This default technology library defines all system-reserved layers and purposes. If system-reserved layers and purposes are in the compiled technology file, they are removed; defining them in two databases constitutes a conflict.

cdsDefTechLib must be installed in the standard Design Framework II hierarchy. Failure to install cdsDefTechLib in this manner will result in missing layer and purposes in the technology databases.

Additionally, cdsDefTechLib specifies layer-purpose pair priorities and techDisplays settings, as well as assigning the substrate layer function. This data can be redefined in the referencing technology database, which overrides the definitions in cdsDefTechLib. For example, you can

A technology database automatically inherits the layer-purpose pair priorities defined in cdsDefTechLib unless they are redefined higher in the graph. When inherited from cdsDefTechLib, the priorities are appended to the layer-purpose pair priority list specified in the technology database for user-defined layer-purpose pairs. When priorities are redefined, they are inherited based on the graph precedence search order. Any redefined priorities in the technology database override those specified lower in the graph. For example, then, you can mix user-defined layer-purpose pairs and layer-purpose pairs comprised of system-reserved layers and purposes throughout the priority list.

The following simple illustration shows how layer-purpose pair priorities work in a graph:

The ability to redefine layer-purpose priorities in this way allows you to include lower-level layer-purpose pairs higher in the priority list.

It is a good idea to define a full complement of layer-purpose pairs and their priorities in each technology database.

You can redefine the way layer-purpose pairs are displayed in the same manner, by redefining their techDisplays entries in any technology database. By default, a technology database inherits techDisplays definitions based on the graph precedence search order. Any redefinition overrides the definition in a lower technology database.

When designers are provided with established, read-only technology databases, they can create their own local technology database in which to define their own technology data and establish a reference to the read-only technology databases. For example, in this graph, the designer’s local technology database can reference the Router technology database, as shown below, or any other entry point that provides the data that is required for the designer’s task. Multiple local technology databases can be created and added to the graph as needed to be used by designers at different entry points in the graph.

User-defined Reserved Layers

Earlier, on the DFII, there are certain reserved layers defined in cdsDefTechLib. Users don’t need to specify these layers, since these layers automatically gets entered in the memory once the database gets read in. In addition, the technology file database saved by the user does not have the information for those system reserved layers.

For example, <text   230> is a system reserved layer. This layer will automatically gets entered in the technology file database once the database gets read in. However, when the user exits the program, there is no such layer information in the saved database. Therefore, the user is unable find the text layer.

Now, a user can also define reserved layers in the database. If the user specifically defines the layers with correct layer name and layer number, DFII will consider them as user-defined reserved layers. For these layers, the technology file database always saves the layer information, even after the user quits the DFII environment.

Therefore, if the user defines such layer with the name, text and number, 230 either through the ASCII technology file or through SKILL API techCreateLayer, then this layer will be treated as a user-defined reserved layer. In addition, this layer’s information can be found in the database even after the user quits the DFII environment.

Providing Like Data for Different Design Purposes

The following sample graph is designed to provide the data required for a 6-metal process and for a 7-metal process:

Multiple Design Libraries Using Incremental Technology Databases

The following example illustrates a complex incremental technology database graph. The graph provides multiple entry points, designed to supply each design library with the data it needs without burdening it with data that it does not use but that is required by other design libraries setting references higher in the graph. It also allows defining technology data required by more than one design library only once in a technology database that can be shared.

The Top-Level Chip design library extends itself by referencing the IP design library, IOPadLib. All require the 6-metal technology database. Also, the design library can instantiate devices from both of the other design libraries it references.

The Digital Block 1 design library extends itself by referencing the IP design library, Memory block. Digital Block 1 requires the LEFDefaultRouteSpec constraint group, non-default constraint groups, and standard via definitions for generated vias defined in the 6-mtl P&R rules technology database, which also requires the same 6-metal technology database that is in the effective graphs for the Top-Level Chip design libraries. Additionally, this design library uses site definitions defined in the technology database, standard cells A.

The Digital Block 2&3 design library also uses the 6-mtl P&R rules technology database used by the Digital Block 1 design library; however, it uses a different set of site definitions defined in the technology database, standard cells B. It, too, references the IP design library, Memory block.

Technology databases supporting a 7-metal process, although not used by the designs in this graph, are available for 7-metal process designs when needed. The 7-mtl P&R rules technology database contains the LEFDefaultRouteSpec constraint group, non-default constraint groups, and standard via definitions for generated vias needed for a 7-metal process. The 7-metal technology database provides the layers, via, and foundry constraints required by 7-metal processes in addition to the shared base data.

Designing Incremental Technology Database Graphs

Determining how to structure your technology databases depends primarily upon your design processes and what technology data you must use and cannot change, such as constraints defined and used by your foundry. Technology data should be grouped optimally for your design flow and for the most efficient access and use by the applications you employ. As you define a graph, it is important to

Database References

Data organization must be planned and defined so that any referenced database contains the data expected and required by the referencing database.

Database Reference Ordering

The order in which you reference technology databases from other technology databases determines the order in which software looks through the graph to find data. It will go to the first referenced database and then go through its referenced databases before returning to the second referenced database. The following illustrates this order:

No conflict exception warning is displayed when the referenced technology in the graph has a default value attribute, which is different with the top technologies in the graph. For example, if technology A references technology B and technology B’s DBUPerUU is the default value then no conflict notification is issued.

Database Content Targeting

Defining technology data in a graph only when it is required by a task keeps data from being seen in tasks that do not need it. For example, the base technology database typically contains definitions of the layers, constraints, and via definitions required for lower-level metal processes (metal1 through metal4). If your graph must provide data to support higher-level metal processes, such as a 6-metal process, then those ought to be defined in separate databases rather than in, for example, the basic technology database, which is used by every task in the design flow. There would be no reason to provide technology data for a 6-metal process to designers who use only lower-level processes (metal1-metal4).

Conflict Avoidance

While some technology data can be repeated in more than one database, most cannot and duplicating it will create conflicts. The software checks for conflicts whenever and however you introduce a new technology database or make any additions or changes to an existing technology database in a graph. When it detects a conflict, the software issues a warning or an error and disallows the action creating the conflict. For example, when compiling an ASCII technology file, the compilation will be aborted upon detecting certain conflicts. When setting or creating data that creates a conflict with SKILL, an error will be issued and the requested set or create function will not be completed. See Appendix C, “Data Handling for Incremental Technology Databases” for complete details about data conflicts and how the software handles conflict resolution.

The following simple illustration is used as a reference for this discussion.

It is possible to introduce immediate conflicts or out-of-context conflicts.

Immediate conflicts are those that are detected and can be handled as soon as they are introduced. For example, referring to the above illustration,

Out-of-context conflicts result whenever data is changed in a database when the software does not see the entire graph and so cannot check all databases for conflicts. For example,

To avoid introducing out-of-context conflicts, it is important to keep in mind that any single technology database can be referenced in many different graphs simultaneously.

Conflict Correction

Whenever the software reports a conflict that it cannot resolve and needs to be corrected by you, you must

  1. Dump the technology database to an ASCII file.
  2. Edit the ASCII file to eliminate the conflict.
  3. Recompile the corrected ASCII technology file.

Defining and Creating Technology Databases

ASCII Technology and Display Resource Files

Two basic types of ASCII files contribute to defining a technology database:

Some products require their application-specific rules in separate files. For specific application software requirements, see the documentation for that application.

A technology file can contain any or all of the following:

A display resource file contains the following

For detailed information about these ASCII files and the data you can specify in them, see the Virtuoso Technology Data ASCII Files Reference.

Compiling ASCII Technology Files into Technology Databases and Graphs

Loading, or compiling, an ASCII technology file creates a technology database. To create an incremental technology database graph, you must compile ASCII technology files in the proper order. Essentially, this means that you must compile the technology files of referenced databases before compiling their referencing database; you cannot compile a technology file when any database it references is not already compiled. In other words, you must compile the technology databases from the bottom up as seen in the graph. If you try to compile a technology database out of order, the compiler will see that the referenced database does not exist, issue an error, and abort the compilation.

Setting up Library Access to Technology Libraries

You can attach to or reference a technology library from any other design or technology library. To use your technology data in a design session, however, a design library must either attach to or reference a technology library. The choice between attaching and referencing determines designers’ ability to create and edit their own local technology database.

Attaching a read-only technology library to another library provides access to all of the data defined in the local and effective technology database, but precludes designers from defining their own local technology data. Attachment can be preferable in cases where designers use only predefined technology data.

Referencing a read-only technology database from a writable design library or technology library protects the integrity of the data in the read-only technology database, but also provides a local technology dabatase where designers can define their own technology data. Referencing is preferable to attachment when you want to be able to add technology data during the design process. (For example, creating a writable library provides a place to store LEF/DEF generated data.)

Libraries attached to technology databases contain the techLibName property that is added to them when the attachment takes place; this property identifies the attached technology library. Referenced libraries do not contain this property, which is applied only during attachment.

Querying Incremental Technology Bases with SKILL

When you use SKILL to retrieve data from an incremental technology database, always query the technology database from the top of the graph, and never query based on derived technology data from an object. If you do, you may get incorrect results, depending upon where the object is defined in the graph. The software searches the graph from the technology library containing the object down; if the data requested is above that technology library, it will not be found. The following is a simple illustration of how queries work:

For information on SKILL functions, refer to the Virtuoso Technology Data SKILL Reference.


Return to top
 ⠀
X