Product Documentation
Virtuoso Technology Data ASCII Files Reference
Product Version IC23.1, June 2023

3


Technology File Controls

Technology file controls let you define data that can be used throughout the technology file.

This chapter contains the following topics:

controls

controls()

Description

When specified, controls must be the first section in the technology file. Subsections that specify specific controls must be enclosed in this section.

Additionally, the controls section must be loaded only once, that is, a technology file must contain only one controls section. If multiple technology files are loaded by using the include statement, the controls section must be present only in the main technology file that refers to other technology files.

processNode

controls(
processNode( g_processNodeValue )
)

Description

Associates a process node setting with the technology database. The value is specified in user units, using an integer or a floating-point number. It is converted to database units by using the dbuPerUU from the maskLayout viewType.

The technology file compiler is updated to compile the new syntax. If conflicts are detected, compilation fails. The technology file dumper updates to dump out the new (local) attribute when set on a technology.

Arguments

g_processNodeValue

The value is specified in user units, using an integer or a floating-point number. It is illegal to specify the value as 0.

Example

controls(
    processNode(0.02)
)

The value 0.02 is associated with the process node.

Related Topics

techVersion

controls(
techVersion( s_version )
)

Description

Specifies the technology file version.

Introduction to techVersion 1.0

Virtuoso Version techVersion Behavioral Changes

IC_6.1.5

1.0

cdsViaDevice is always created as a cdsVia.

All entries in constraint tables need to be specified.

If you have more than one table-based constraint per constraint definition and layer(s) in the technology file, techVersion must be specified as 1.0.

Arguments

s_version

The currently supported technology file syntax version is "1.0".

To compile a technology file compatible with the technology file syntax of earlier versions of Virtuoso, do not use techVersion().

Example

controls(
    techVersion("1.0")
)

The only allowed value is 1.0. The cdsVias are retained only if techVersion("1.0") is specified. If there is no techVersion section, it symbolizes a legacy IC6.1.4 ASCII technology file.

Related Topics

techParams

controls(
techParams(
( t_name g_value )
…
)
)

Description

Defines parameters that can be used throughout the technology file. Once you have defined a parameter with techParams, you can invoke it wherever needed in your technology file, with the exception of table indexes, by specifying it with techParam( paramName ).

Parameters cannot be specified as table indexes. For more information, see Current Density Tables and Spacing Table Constraint.

When you use the techParam() function in any section of the technology file, the technology file compiler makes an explicit reference to the controls section, instead of evaluating the expression and storing only the value. As a result, if, at a later date, you want to update the technology file functions that use a control parameter, you need to update the value of the parameter at one place.

When you dump the technology file, the control parameters, rather than the evaluated expressions, appear in the ASCII syntax. You can reverse this behavior with the techSetEvaluate SKILL function.

Arguments

t_name

The name of the parameter.

g_value

The value to assign to the parameter.

Example

techParams(
; (name value)
(lambda 0.3 )
)

This example assigns a value of 0.3 to the parameter lambda. When you use the expression techParam("lambda") as a value in any technology file specification, the system uses the value stored for the parameter in this section. For example, the following specification sets the minSpacing constraint on Metal1 to 0.3.

spacings(minSpacing "Metal1" techParam("lambda")) 

Related Topics

controls

distanceMeasure

controls(
distanceMeasure(
 ( 'euclidian | 'manhattan )
)
…
)

Description

Specifies Euclidian or Manhattan spacing as the default for all constraints in the technology file, without the selection being set explicitly for individual constraints. The default is 'euclidian.

Related Topics

controls

viewTypeUnits

controls(
viewTypeUnits(
 ( t_viewType t_userUnit n_dbuPerUU )
 …
)
)

Description

Specifies the user units and database units per user unit for the specified view type. To apply a dbuPerUU value other than the default of 1000, this subsection must be specified before the mfgGridResolution subsection in the technology file.

Arguments

t_viewType

The view type, for example, maskLayout, schematic, schematicSymbol, netlist, and hierDesign.

t_userUnit

The user unit to be used for the view type, for example, "micron", "inch".

n_dbuPerUU

The number of database units per user unit.
Default: 1000

Example

viewTypeUnits(
    ( maskLayout          "micron"        2000 )
    ( schematic           "inch"          160  )
    ( schematicSymbol     "inch"          160  )
    ( netlist             "inch"          160  )
    ( hierDesign          "_def_"         2000 )
) ;viewTypeUnits
TechDB enforces that hierDesign type dbuperUU is the same as the maskLayout type dbuPerUU in the techDB reference graph. The same policy applies to the userUnit attributes of maskLayout and hierDesign in the techDB reference graph.
The information stored in hierDesign consists of constraints that are usually derived from techDB. In addition, techDB itself retrieves its dbuPerUU from the maskLayout viewType. Therefore, in a scenario where hierDesign view constraint groups refer to rules in a techDB that is at 2000 dbuPerUU because it inherits from a maskLayout that is at 2000 dbuPerUU, it would generate an error if you stored items at 1000 dbuPerUU.

Related Topics

controls

mfgGridResolution

controls(
mfgGridResolution( 
 (g_value)
)
)

Description

Specifies the manufacturing grid resolution; grid snapping must be a multiple of the specified value. The specified value applies to the entire design, except to specific layers that are assigned their own routing grid resolutions by the mfgResolutions constraint. This subsection must be placed after any viewTypeUnits specification in the technology file.

Arguments

g_value

The manufacturing grid resolution.

Example

mfgGridResolution(
    (0.001000)
) ;mfgGridResolution

Sets the manufacturing grid resolution to 0.001000.

Related Topics

refTechLibs

controls(
refTechLibs(t_techLibName …)
)

Description

Specifies references to other technology libraries from the technology library defined by this ASCII technology file. The library list is an ordered list indicating the order of the referenced technology libraries in an incremental technology database graph.

For information about setting up ASCII technology files for incremental technology databases, see Virtuoso Technology Data User Guide.

Arguments

t_techLibName

The name of the reference library.

Example

refTechLibs("HVStdCells" "6MP&R" "90Core")

Specifies the technology libraries referenced by the technology library created by this ASCII technology file: HVStdCells, then 6MP&R, then 90Core.

Related Topics

processFamily

controls(
processFamily( t_processFamilyName )
)

Description

Associates a process family name with the technology database. This allows identification of technology databases that belong in the same graph, or, conversely, technology databases with different names that do not belong in the same graph. Technology databases without a process family specified can be used with any other technology database in a graph.

Arguments

t_processFamilyName

The name of the process family.
Valid values: A string, an empty string, or a string containing a space

Compiling a technology file with the process family specified as an empty string or a string containing a space in "replace" mode unsets the process family specified in the technology database; compiling in "merge" mode makes no change in the original process family.

Example

processFamily("CMOS90")

Specifies that the technology database belongs to the CMOS90 process family, which is used, in this example, for CMOS90 design.

Related Topics

fabricType

controls(
fabricType ( t_fabricType )
)

Description

Specifies the fabric type of a technology database.

Arguments

t_fabricType

The fabric type of the technology database. The default value is unspecified. The other supported values are ic, package, board, and module.

You need the Virtuoso_MultiTech_Framework license to use a fabric type other than ic. You can change the fabric type to ic without this license if the technology database does not have any package elements, such as wirebond profiles.

After a fabric type is specified for one technology database, all other technology databases in the technology graph it is in must have the same fabric type or the value unspecified.

The following values correspond to Cadence package names:

  • package: Cadence® SiP Layout .sip file
  • module: Cadence® Allegro® Package Designer .mcm file
  • board: Cadence® Allegro® PCB Designer .brd file

Example

fabricType("package")

Specifies that the technology database has the fabric type package.

Related Topics


Return to top
 ⠀
X