7
Technology File Via Definitions and Via Specifications
This chapter contains the following topics pertaining to via definitions and via specifications:
- viaDefs
- standardViaDefs
- customViaDefs
- standardViaVariants
- customViaVariants
- cdsFixedViaDefs
- cdsGenViaDefs
- cdsGenViaVariants
- viaSpecs
viaDefs
viaDefs()
Description
Contains via definitions and via variants. All subsections specifying via definitions and via variants must be enclosed within the parentheses of this section.
standardViaDefs
standardViaDefs( (t_viaDefNametx_layer1tx_layer2(tx_cutLayern_cutWidthn_cutHeight[n_resistancePerCut] ) (x_cutRowsx_cutCols(l_cutSpace) [(l_cutPattern)]) (l_layer1Enc) (l_layer2Enc) (l_layer1Offset) (l_layer2Offset) (l_origOffset) [tx_implant1(l_implant1Enc) [tx_implant2(l_implant2Enc) [tx_wellSubstrate] ] ] )
) ;standardViaDefs
Description
Specifies standard via definitions. A standard via definition has a fixed set of parameters.
An advantage of using a standard via definition is that it is fully captured in the technology file, which makes it easier to manage the via definition.
standardViaDefs are more efficient than customViaDefs because they do not need to access a separate via master design and an external evaluation to determine geometries.
Arguments
Example
standardViaDefs(
; ( viaDefName layer1 layer2 ( cutLayer cutWidth cutHeight [ resistancePerCut ] )
; ( cutRows cutCol ( cutSpace ) [( l_cutPattern )])
; ( layer1Enc ) (layer2Enc) ( layer1Offset ) ( layer2Offset ) ( origOffset )
; [implant1 (implant1Enc) [implant2 (implant2Enc) [wellSubstrate]]])
( M2xM1xG M1 M2 ( "VIA1" 0.13 0.13 5.0 )
( 1 1 ( 0.15 0.15 ) )
( 0.05 0.005 ) ( 0.05 0.005 ) ( 0.0 0.0 ) ( 0.0 0.0 ) ( 0.0 0.0 )
pimplant (1.0 1.0)
)
( M1_P diff metal1 ("cont" 0.6 0.6 )
( 2 4 ( 0.6 0.6 ) (( 1 0 1 0 ) ( 1 1 0 1 )))
( 0.6 0.6 ) ( 0.6 0.6 ) ( 0.0 0.0 ) ( 0.0 0.0 ) ( 0.0 0.0 )
)
( M3xM2xG M2 M3 ( "VIA2" 0.13 0.13 5.0 )
( 1 1 ( 0.15 0.15 ) )
( 0.05 0.005 ) ( 0.05 0.005 ) ( 0.0 0.0 ) ( 0.0 0.0 ) ( 0.0 0.0 )
)
( M4xM3xG M3 M4 ( "VIA3" 0.13 0.13 5.0 )
( 1 1 ( 0.15 0.15 ) )
( 0.05 0.005 ) ( 0.05 0.005 ) ( 0.0 0.0 ) ( 0.0 0.0 ) ( 0.0 0.0 )
)
( M5xM4xG M4 M5 ( "VIA4" 0.13 0.13 5.0 )
( 1 1 ( 0.15 0.15 ) )
( 0.05 0.005 ) ( 0.05 0.005 ) ( 0.0 0.0 ) ( 0.0 0.0 ) ( 0.0 0.0 )
)
( M6xM5xG M5 M6 ( "VIA5" 0.36 0.36 5.0 )
( 1 1 ( 0.29 0.29 ) )
( 0.09 0.03 ) ( 0.09 0.03 ) ( 0.0 0.0 ) ( 0.0 0.0 ) ( 0.0 0.0 )
)
( PTAP pdiff M1 ( "contact" 1.0 1.0 )
( 1 1 ( 1.0 1.0 ) )
( 1.0 1.0 ) ( 0.5 0.5 ) ( 0.0 0.0 ) ( 0.0 0.0 ) ( 0.0 0.0 )
nil nil nil nil substrate
)
( NTAP ndiff M1 ( "contact" 1.0 1.0 )
( 1 1 ( 1.0 1.0 ) )
( 1.0 1.0 ) ( 0.5 0.5 ) ( 0.0 0.0 ) ( 0.0 0.0 ) ( 0.0 0.0 )
nil nil nil nil nwell
)
) ;standardViaDefs
customViaDefs
customViaDefs( (t_viaDefNamet_libNamet_cellName t_viewName tx_layer1 tx_layer2 n_resistancePerCut)
) ;customViaDefs
Description
Specifies custom via definitions. To specify a custom via definition, the cellview on which it is based must exist in the specified library. Unlike standardViaDefs that describe all the via layers and dimensions, customViaDefs define only a list of existing cellviews.
Custom via definitions do not define geometric parameters; they define only the name of the via and the <lib | cell | view> information.
customViaDef with a leading ";" comment when the following criteria is met:-
It is referenced by
tcDeclareDeviceor any other device creation construct in the technology file. -
The
tcDeclareDevicedefinition references acustomViaDefin the technology database library.
Arguments
Example
customViaDefs(
; ( viaDefName libName cellName viewName layer1 layer2
; resistancePerCut )
( M2_M1_H testTech4 M2_M1_H via M1 M2 5.0 )
( M2_M1_H "2testTech" M2_M1_H via M1 M2 5.0 )
( M2_M1_V1 testTech4 M2_M1_V1 via M1 M2 5.0 )
( M2_M1_V2 testTech4 M2_M1_V2 via M1 M2 5.0 )
( M2_M1_DBLCUT_E testTech4 M2_M1_DBLCUT_E via M1 M2 5.0 )
( M2_M1_DBLCUT_W testTech4 M2_M1_DBLCUT_W via M1 M2 5.0 )
( M2_M1_QUADCUT_NE testTech4 M2_M1_QUADCUT_NE via M1 M2 5.0 )
( M2_M1_QUADCUT_NW testTech4 M2_M1_QUADCUT_NW via M1 M2 5.0 )
( M2_M1_QUADCUT_SE testTech4 M2_M1_QUADCUT_SE via M1 M2 5.0 )
( M2_M1_QUADCUT_SW testTech4 M2_M1_QUADCUT_SW via M1 M2 5.0 )
( M3_M2_SINGLE testTech4 M3_M2_SINGLE via M2 M3 5.0 )
( M3_M2_V1 testTech4 M3_M2_V1 via M2 M3 5.0 )
( M3_M2_V2 testTech4 M3_M2_V2 via M2 M3 5.0 )
( M3_M2_TOS testTech4 M3_M2_TOS via M2 M3 5.0 )
( M3_M2_DBLCUT_E testTech4 M3_M2_DBLCUT_E via M2 M3 5.0 )
( M3_M2_DBLCUT_W testTech4 M3_M2_DBLCUT_W via M2 M3 5.0 )
( M3_M2_QUADCUT_NE testTech4 M3_M2_QUADCUT_NE via M2 M3 5.0 )
( M3_M2_QUADCUT_NW testTech4 M3_M2_QUADCUT_NW via M2 M3 5.0 )
( M3_M2_QUADCUT_SE testTech4 M3_M2_QUADCUT_SE via M2 M3 5.0 )
( M3_M2_QUADCUT_SW testTech4 M3_M2_QUADCUT_SW via M2 M3 5.0 )
( M4_M3_SINGLE testTech4 M4_M3_SINGLE via M3 M4 5.0 )
( M4_M3_V1 testTech4 M4_M3_V1 via M3 M4 5.0 )
( M4_M3_V2 testTech4 M4_M3_V2 via M3 M4 5.0 )
( M4_M3_TOS testTech4 M4_M3_TOS via M3 M4 5.0 )
( M4_M3_DBLCUT_N testTech4 M4_M3_DBLCUT_N via M3 M4 5.0 )
( M4_M3_DBLCUT_S testTech4 M4_M3_DBLCUT_S via M3 M4 5.0 )
( M4_M3_QUADCUT_NE testTech4 M4_M3_QUADCUT_NE via M3 M4 5.0 )
( M4_M3_QUADCUT_NW testTech4 M4_M3_QUADCUT_NW via M3 M4 5.0 )
( M4_M3_QUADCUT_SE testTech4 M4_M3_QUADCUT_SE via M3 M4 5.0 )
( M4_M3_QUADCUT_SW testTech4 M4_M3_QUADCUT_SW via M3 M4 5.0 )
( M5_M4_SINGLE testTech4 M5_M4_SINGLE via M4 M5 5.0 )
( M5_M4_V1 testTech4 M5_M4_V1 via M4 M5 5.0 )
( M5_M4_V2 testTech4 M5_M4_V2 via M4 M5 5.0 )
( M5_M4_TOS testTech4 M5_M4_TOS via M4 M5 5.0 )
( M5_M4_DBLCUT_E testTech4 M5_M4_DBLCUT_E via M4 M5 5.0 )
( M5_M4_DBLCUT_W testTech4 M5_M4_DBLCUT_W via M4 M5 5.0 )
( M5_M4_QUADCUT_NE testTech4 M5_M4_QUADCUT_NE via M4 M5 5.0 )
( M5_M4_QUADCUT_NW testTech4 M5_M4_QUADCUT_NW via M4 M5 5.0 )
( M5_M4_QUADCUT_SE testTech4 M5_M4_QUADCUT_SE via M4 M5 5.0 )
( M5_M4_QUADCUT_SW testTech4 M5_M4_QUADCUT_SW via M4 M5 5.0 )
( M6_M5_SINGLE testTech4 M6_M5_SINGLE via M5 M6 5.0 )
( M6_M5_DBLCUT_N testTech4 M6_M5_DBLCUT_N via M5 M6 5.0 )
( M6_M5_DBLCUT_S testTech4 M6_M5_DBLCUT_S via M5 M6 5.0 )
( M6_M5_DBLCUT_E testTech4 M6_M5_DBLCUT_E via M5 M6 5.0 )
( M6_M5_DBLCUT_W testTech4 M6_M5_DBLCUT_W via M5 M6 5.0 )
) ;customViaDefs
(V12_HV_via 0techlib V12_HV via METAL1 METAL2 4.0), you must enclose the library name starting with a number, 0techlib, in double quotes; for example, "0techlib".
Similarly, any string type entry, such as 0Metal, that starts with a number, must also be defined as "0Metal".standardViaVariants
standardViaVariants( (t_viaVariantNamet_viaDefName(tx_cutLayerf_cutWidthf_cutHeight) (x_cutRowsx_cutCol(l_cutSpace)) (l_layer1Enc) (l_layer2Enc) (l_layer1Offset) (l_layer2Offset) (l_origOffset) (l_implant1Enc) (l_implant2Enc) (l_cutPattern) )
) ;standardViaVariants
Description
Defines standard via variants. This subsection specifies the parameters applied to create a named variant of the specified standard via definition.
standardViaVariants() subsection must be placed after the standardViaDefs() subsection in the technology file.Each variant must have a unique name and definition. Multiple variants of the same standard via must specify at least one unique parameter. This is because the technology file compiler rejects multiple identical variants of the same custom via.
Arguments
Example
standardViaDefs(
; ( viaDefName layer1 layer2 ( cutLayer cutWidth cutHeight [ resistancePerCut ] )
; ( cutRows cutCol ( cutSpace ) )
; ( layer1Enc ) (layer2Enc) ( layer1Offset ) ( layer2Offset ) ( origOffset )
; [implant1 (implant1Enc) [implant2 (implant2Enc)]])
( M2xM1xG M1 M2 ("VIA1" 0.13 0.13 5.0) (1 1 (0.15 0.15)) (0.0 0.0) (0.0 0.0) (0.0 0.0) pimplant (1.0 1.0)
)
) ;standardViaDefs
standardViaVariants(
; ( viaVariantName viaDefName ( cutLayer cutWidth cutHeight )
; ( cutRows cutCol ( cutSpace ) )
; ( layer1Enc ) (layer2Enc) ( layer1Offset ) ( layer2Offset ) ( origOffset )
; (implant1Enc) (implant2Enc) (cut_pattern]])
( M2xM1xG_Var1 M2xM1xG ( "VIA1" 0.15 0.15 ) (1 1 (0.2 0.2)) (0.05 0.005) (0.05 0.005) (0.1 0.0) (0.0 0.0) (0.0 0.0) ( 1.0 1.0 ) nil ((1 1) (1 1))
)
) ;standardViaVariants
Defines a variant named M2xM1XG_Var1 of the standard via definition M2xM1xG with the following modified parameters:
-
Sets the cut width and height for the cut layer
VIA1to0.15(instead of 0.13) -
Sets the cut space for the cut rows and columns to
0.2(instead of 0.15) -
Sets the layer1 (
M1) offset to (0.1 0.0) (instead of (0.0 0.0))
customViaVariants
customViaVariants( (t_viaVariantNamet_viaDefNamel_viaParams)
) ;customViaVariants
Description
Defines custom via variants. The subsection specifies the parameters applied to create a named variant of the specified custom via definition.
customViaVariants() subsection must be placed after the customViaDefs() subsection in the technology file.Each variant must have a unique name and definition and can take any list of parameter-value pairs. However, multiple variants of the same custom via must specify at least one unique parameter. This is because the technology file compiler rejects multiple identical variants of the same custom via.
Arguments
Examples
customViaDefs(
; ( viaDefName libName cellName viewName layer1 layer2 resistancePerCut )
( M2_M1_H testTech4 M2_M1_H via M1 M2 5.0 )
( M2_M1_V1 testTech4 M2_M1_V1 via M1 M2 5.0 )
) ;customViaDefs
customViaVariants(
; ( viaVariantName viaDefName parameters )
( M2_M1_H_VAR1 M2_M1_H (param1 0.0 ) (param2 1.0))
) ;customViaVariants
Defines a variant of the custom via definition M2_M1_H and adds parameters param1 with value 0.0 and param2 with value 1.0.
;********************************
; DEVICES
;********************************
devices(
tcCreateCDSDeviceClass()
cdsViaDevice(
; (name cutLayer cutPurpose layer1 purpose1 layer2 purpose2
; row column origin stackedVias cutLayerW cutLayerL xCutSpacing yCutSpacing
; layer1XDirOverride layer1YDirOverride layer2XDirOverride layer2YDirOverride
; layer1Dir layer2Dir
; layer1XDefOverride layer1YDefOverride layer2XDefOverride layer2YDefOverride
; implantLayer1 implantLayer2 diffSpacing abutClass)
( viaM2V2M3 V2 drawing M2 drawing M3 drawing
1 1 centerCenter t _def_ _def_ 0.05 0.05
0.02 0.02 _def_ 0.008
; "Y" "X"
"" ""
0 0 0 0
; (
; (("Nwell" "drawing") 1)
; )
; (
; (("Nimp" "drawing") 0.5)
; )
nil nil _def_ ""
)
) ;devices
customViaDefs(
;( viaDefName libName cellName viewName layer1 layer2 resistancePerCut)
;( ---------- ------- -------- -------- ------ ------ ----------------)
( viaM2V2M3 techlib viaM2V2M3 layout M2 M3 0.0 )
) ;customViaDefs
customViaVariants(
;(viaVariantName viaDefName (paramName paramValue) …)
;( -------------------------------------------------)
( viaM2V2M3_LY1x1 viaM2V2M3
("row" 1)
("column" 1)
("xCutSpacing" 0.08)
("yCutSpacing" 0.08)
("layer1XDefOverride" 0.000)
("layer1YDefOverride" 0.032)
("layer1YEnclosure" 0.008)
("layer2XEnclosure" 0.008)
("layer2XDefOverride" 0.032)
("layer2YDefOverride" 0.000)
)
( viaM2V2M3_LY2x2 viaM2V2M3
("row" 2)
("column" 2)
("xCutSpacing" 0.08)
("yCutSpacing" 0.08)
("layer1XDefOverride" 0.014)
("layer1YEnclosure" 0.014)
("layer2XEnclosure" 0.008)
("layer2YDefOverride" 0.008)
)
) ;customViaVariants
Defines custom via variants named viaM2V2M3_LY1x1 and viaM2V2M3_LY2x2 of the custom via definition viaM2V2M3 and adds a set of parameters to these.
cdsFixedViaDefs
cdsFixedViaDefs(l_list) =>t/ nil
Description
Specifies the technology class to define the cds fixed viaDef.
Arguments
Example
cdsFixedViaDefs(
(fixedVia1
(layers
(layer1 Metal1)
(layer2 Metal2)
(cutLayer Cont)
)
)
cdsGenViaDefs
cdsGenViaDefs( (t_viaDefName(layers ; ** Base Layers and extra layers ** (layer1tx_layer1) (layer2tx_layer2) (cutLayertx_cutLayer) ) [(extraLayers ; ** Extra layers ** [(layer1ExtraLayersl_layer1ExtraLayers)] [(layer2ExtraLayersl_layer2ExtraLayers)] [(cutExtraLayersl_cutExtraLayers)] ) ] ; l_extraLayers := ({tx_layer} …) (parameters (cutWidthf_cutWidth) (cutHeightf_cutHeight) ; ** Other Default parameters ** [(layer1Purposetx_layer1Purpose)] [(layer1Encl_layer1Enc)] [(layer2Purposetx_layer2Purpose)] [(layer2Encl_layer2Enc)] [(cutPurposetx_cutPurpose)] [(cutSpacingx_cutSpacingXx_cutSpacingY)] [(cutRowsn_cutRows)] [(cutColumnsn_cutColumns)] [(cutPatternl_cutPattern)] [(alignmentt_alignment)] [(originOffset (f_XOffset f_YOffset)] [(layer1ExtraParamsl_layer1ExtraParams)] [(layer2ExtraParamsl_layer2ExtraParams)] [(cutLayerExtraParamsl_cutLayerExtraParams)] [(cutArraySpacingf_XCutArraySpacingf_YCutArraySpacing)] [(cutArrayPatternXl_cutArrayPatternX)] [(cutArrayPatternYl_cutArrayPatternY)] [(versionn_version)] ) ; l_enc := ( x_left x_right x_top x_bottom ) ; l_pattern := ( ( {0|1} ... ) ... ) ; l_extraLayerParams := ( ( [(enc l_enc)] [(purpose tx_purpose)] ) ... ) ; l_cutArrayPattern := ( {x_num} ... ) ) …
) ;cdsGenViaDefs
Description
Specifies the definition of the layers and the default parameter values to use for all instances of the vias created from the definition.
It declares vias of the Cadence-defined cdsGenVia type with advanced features such as purpose-specific vias with an unlimited number of extra layers for each of the three primary layers and cut array support.
The via parameters can be grouped as follows:
- Parameters for layer1, which include purpose and enclosure
- Parameters for layer2, which include purpose and enclosure
- Parameters for the cut layer, which include purpose
- The cut width, height, and spacing
- The number of rows, columns, and optional pattern
- The via justification or origin offset
- An optional list of extra layer1 layer parameters
- An optional list of extra layer2 layer parameters
- An optional list of extra cut layer parameters
- An optional specification of how the cuts are to be grouped and distributed in arrays
Each of the three primary layers can have any number of extra layers. Shapes on the extra layers are generated relative to their parent layer, with an optional enclosure and shape purpose value.
Cuts can be grouped into arrays for multi-cut cdsGenVias. In such a case, the cutSpacing value applies to cuts within each array and cutArraySpacing specifies the spacing between arrays. The size of each array is specified using cutArrayPatternX and cutArrayPatternY. For example, if there are 7 cut rows, and cutArrayPatternY has the value (3 4), then the cuts would be grouped into 2 arrays in the Y direction, the lower one with 3 cuts and the upper one with 4 cuts.
Arguments
Example
cdsGenViaDefs(
(via01
(layers
(layer1 Poly)
(layer2 Metal1)
(cutLayer Cont)
)
(parameters
(cutWidth 0.2)
(cutHeight 0.2)
)
)
(via1_Nwell_Nimp_hv
(layers
(layer1 "Metal1")
(layer2 "Metal2")
(cutLayer "Via1")
)
(extraLayers
(layer1ExtraLayers ("Nwell" "Nimp"))
)
(parameters
(cutWidth 0.2)
(cutHeight 0.2)
(cutSpacing 0.1 0.1)
(cutRows 1)
(cutColumns 1)
(layer1Purpose "hv")
(layer1Enc (0.3 0.3 0.0 0.0))
(layer2Purpose "hv")
(layer2Enc (0.1 0.1 0.2 0.2))
(cutPurpose "hv")
(alignment "centerCenter")
(layer1ExtraParams (
( (purpose hv) (enc (0.1 0.1 0.1 0.1)) ) ; Nwell
( (purpose hv) (enc (1.0 1.0 0.0 0.0)) ) ; Nimp
)
)
(via1_offset
(layers
(layer1 Metal1)
(layer2 Metal2)
(cutLayer Via1)
)
(parameters
(cutWidth 0.2)
(cutHeight 0.2)
(cutSpacing 0.1 0.1)
(cutRows 1)
(cutColumns 1)
(alignment "offset")
(originOffset (0.1 0.2) )
)
)
(via1_arrays
(layers
(layer1 Metal1)
(layer2 Metal2)
(cutLayer Via1)
)
(parameters
(cutWidth 0.2)
(cutHeight 0.2)
(cutSpacing 0.1 0.1)
(cutRows 5)
(cutColumns 4)
(alignment "lowerLeft")
(cutArraySpacing 0.15 0.15 )
(cutArrayPatternX (2 2) )
(cutArrayPatternY (2 3) )
)
)
(via1_pattern
(layers
(layer1 Metal1)
(layer2 Metal2)
(cutLayer Via1)
)
(parameters
(cutWidth 0.2)
(cutHeight 0.2)
(cutSpacing 0.1 0.1)
(cutRows 5)
(cutColumns 4)
(alignment "lowerLeft")
(cutPattern ( (1 0 1 0 ) (0 1 0 1) (1 0 1 0) (0 1 0 1) (1 0 1 0) ) )
)
)
) ;cdsGenViaDefs
cdsGenViaVariants
cdsGenViaVariants( (t_viaVariantName t_viaDefName(parameters [(layer1Purposetx_layer1Purpose)] [(layer2Purposetx_layer2Purpose)] [(cutPurposetx_cutPurpose)] [(cutWidthf_cutWidth)] [(cutHeightf_cutHeight)] [(cutColumnsn_cutColumns)] [(cutRowsn_cutRows)] [(cutSpacingf_Xspacing f_Yspacing)] [(layer1Encl_fourEnclosures1)] [(layer2Encl_fourEnclosures2) ] [(cutPatternl_cutPattern)] [(alignmentt_alignment)] [(originOffset (f_Xoffsetf_Yoffset) ] [(cutArraySpacingf_XCutArraySpacingf_YCutArraySpacing)] [(versionn_version)] [(layer1ExtraParamsl_layer1ExtraParams)] [(layer2ExtraParamsl_layer2ExtraParams)] [(cutArrayPatternXl_cutArrayPatternX)] [(cutArrayPatternYl_cutArrayPatternY)] ) ) ) ;cdsGenViaVariants
Description
Specifies generated via variants and the default parameter values to use for all instances of the generated via variants created from a specified generated via definition.
Arguments
|
The generated via variant name. |
|
|
The name of an existing generated via definition to associate with the variant. |
|
|
The parameters for the variant. For descriptions of parameters, see cdsGenViaDefs. |
Example
cdsGenViaVariants( ;(viaVariantName viaDefName (parameters (paramName paramValue) ...)) ;( -------------------------------------------------------------------------- ) ( vv1 myGenVia parameters (layer1Purpose "net")
(layer1Enc (0.0 0.0 0.1 0.1))
(layer2Purpose "net")
(layer2Enc (0.2 0.2 0.2 0.2))
(cutPurpose "fill")
(cutWidth 0.1)
(cutHeight 0.1)
(cutSpacing 0.1 0.1)
(cutRows 8)
(cutColumns 6)
(cutPattern ((0 1 1 1 1 1) (1 0 1 1 1 1) (1 1 1 1 1 1) (1 1 1 1 1 1)
(1 1 1 1 1 1) (1 1 1 1 1 1) (1 1 1 1 1 1) (1 1 1 1 1 1)))
(alignment "offset")
(originOffset (0.1 0.1))
(layer1ExtraParams (((purpose "net") (enc (0.3 0.3 0.3 0.3)))
((purpose "drawing") (enc (0.2 0.2 0.2 0.2)))))
(layer2ExtraParams (((purpose "net") (enc (0.3 0.3 0.3 0.3)))))
(cutLayerExtraParams (((purpose "net") (enc (0.3 0.3 0.3 0.3)))))
(cutArraySpacing 0.1 0.2)
(cutArrayPatternX (2 4))
(cutArrayPatternY (3 5))
(version 1)
)
) ;cdsGenViaVariants
viaSpecs
viaSpecs( (tx_layer1 tx_layer2 lt_viaDefNames[ (n_layer1MinWidth n_layer1MaxWidth n_layer2MinWidth n_layer2MaxWidthlt_viaDefNames2) ] )
) ;viaSpecs
Description
Defines an array of via definitions and via variants, referred to as a via specification.
viaSpecs() does not support cdsGenViaDefs(). The oaViaSpec class and corresponding infrastructure are obsolete and superseded by the LEFSpecialRouteSpec and the oacValidRoutingVias constraints it contains.
A via specification allows you to map two wire widths to a list of viaDefNames. It is used for power vias.
Earlier, via specifications were used to store only the LEF VIARULE statement in OpenAccess. However, in the IC releases that use OpenAccess kits supporting Data Model 4, the validRoutingVias constraint is used to make power vias symmetric with signal vias. In addition, to help applications find that constraint, it is placed in a constraint group named LEFSpecialRouteSpec.For more information about the LEF VIARULE statement, see LEF/DEF 5.8 Language Reference.
Arguments
Example
viaSpecs(
( METAL1 METAL2 ( "Via12Array" )
(
(0.5 0.6 0.4 0.5 ( "Via12Array_south" ))
(0.6 0.7 0.4 0.5 ( "Via12Array_north" ))
)
)
) ;viaSpecs
Return to top