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

techSetPrGenViaRule

techSetPrGenViaRule(
d_techID 
t_viaSpecName 
l_genViaRule
) 
=> t / nil

Description

Updates the specified via specification and any related standard via definitions in the specified technology database.

For more information about the viaSpecs section of the technology file, see viaSpecs in Virtuoso Technology Data ASCII Files Reference. For more information about the viaDefs section of the technology file and standard via definitions, see viaDefs in Virtuoso Technology Data ASCII Files Reference.

Arguments

d_techID

The database identifier of the technology database.

t_viaSpecName

The name of the via specification (the viaSpecName specified in the viaSpecs class).

l_genViaRule

A list containing the via specification parameters. The list has the following syntax:

t_cutLayer ( g_lowerPt g_upperPt g_xPitch g_yPitch g_resistance ) tx_layer1 t_dir1
(
n_minWidth1 n_maxWidth1 n_overhang1 n_metalOverHang1 ) tx_layer2 t_dir2
(
n_minWidth2 n_maxWidth2 n_overhang2 n_metalOverHang2 )

  • t_cutLayer is the cut layer specified in the standard via definition.
    Valid values: The layer name, the layer number
  • g_lowerPt is the lower-left point of the left bottom cut.
    Valid values: Any x,y coordinate
  • g_upperPt is the upper-right point of the left bottom cut.
    Valid values: Any x,y coordinate
  • g_xPitch is the distance between the centers of cuts in the x direction (cutSpacing in the x direction + cutWidth).

  • g_yPitch is the distance between the centers of cuts in the y direction (cutSpacing in the y direction + cutHeight).
    The following figure illustrates lowerPt, upperPt, xPitch, and yPitch. These values are not mapped into the technology database or stored in the technology database; rather, they are computed when needed.
  • n_resistance is resistancePerCut as specified in the standard via definition.
  • tx_layer1 is the bottom routing layer for the via as specified in the standard via definition.
    Valid values: The layer name, the layer number t_dir1 is ignored. The direction is taken from the layerRoutingGrids subclass of the layerRules class.
  • n_minWidth1 is the minimum width, in user units, of the top layer.
  • n_maxWidth1 is the maximum width, in user units, of the top layer.

  • n_overhang1 is the minimum spacing between the contact cut and the outer edge of the via.
    Valid values: When there is a single standard via definition in the via specification, overhang1 must be equal to the layer1Enc width parameter in the standardViaDef subclass when the layer direction is horizontal or it must be equal to the height parameter when the layer direction is vertical. When there is no standard via definition or when there are multiple standard via definitions, overhang1 must be _NA_.
  • n_metalOverhang1 is ignored if a value is specified.

Valid values: _NA_

  • tx_layer2 is the top routing layer for the via as specified in the standard via definition.
    Valid values: the layer name, the layer number t_dir2 is ignored. The direction is taken from the layerRoutingGrids subclass of the layerRules class.
  • n_minWidth2 is the minimum width, in user units, of the top layer.
  • n_maxWidth2 is the maximum width, in user units, of the top layer.
  • n_overhang2 is the minimum spacing between the contact cut and the outer edge of the via.
    Valid values: When there is a single standard via definition in the via specification, overhang2 must be equal to the layer2Enc width parameter in the standardViaDef subclass when the layer direction is horizontal or it must be equal to the height parameter when the layer direction is vertical. When there is no standard via definition or when there are multiple standard via definitions, overhang2 must be _NA_.
  • n_metalOverhang2 is ignored if a value is specified. Valid Values: _NA_

Value Returned

t

The via specification and matching standard via definitions were updated or added to the viaSpecs and viaDefs classes in the specified technology database.

nil

The update was not done because one or both of the layers specified are not routing layers or the technology database does not exist.

Example

techSetPrGenViaRule(techID (viaspec9 
via (.6 .6 1.2 1.2 _NA_)
metal1 "horizontal" (.6 20.0 _NA_ _NA_)
metal2 "vertical" (.6 20.0 _NA_ _NA_))
=> t

Updates the via specification viaspec9 in the viaSpecs class of the technology database identified by techID.


Return to top
 ⠀
X