Product Documentation
Virtuoso Studio Design Environment SKILL Reference
Product Version IC23.1, November 2023

dbCreateVia

dbCreateVia(
d_cellviewId
d_viaDefId
l_point
t_orient
[ l_paramList ] ]
)
=> d_viaId / nil

Description

Creates a custom or standard via according to the specified viaDef type and the optional parameter list

A via is a design object. It corresponds to the OpenAccess oaVia object.

A via represents a physical connection between two adjacent physical objects, such as path segments, that exist on two different layers. A via references a via definition, the oaViaDef, from the technology database that corresponds to the design.

This function cannot create a custom or standard via using parameters that will create inverted layer and implant enclosure shapes.

Arguments

d_cellViewId

The database ID of the cellview.

d_viaDefId

Specifies the database ID of the viaDef associated with the via.

l_point

Specifies a list of points for the via.

t_orient

Specifies the orientation of the via.

l_paramList

For custom vias, the values of the parameters can be optionally specified in the parameter list as follows:

l_param, where l_param is list(t_propName g_value)

Custom vias are usually Pcells defined in the PDK. These vias can be defined to have their own parameters and related requirements.

For standard vias, the parameters can be optionally specified in the parameter list.

Standard vias are connections between two adjacent signal layers on the chip being connected. The cut layer is where the chip processing cuts away the oxide between the two adjacent signal layers to provide the connection between them.

The paramList should be a list of lists, each of which is a name value pair.

t_cutLayerName n_cutWidth n_cutHeight x_cutRows

x_cutColumns l_cutSpacing l_layer1Enc l_layer2Enc

l_layer1Offset l_layer2Offset l_originOffset [l_imp1Enc

[l_imp2Enc [t_cutPattern]]]

Do not specify defaults in the parameter list. If the parameter list is not specified, then the default via parameter will be used to create the standard via.

It is possible to partially specify the following 2D standard via parameters:

l_cutSpacing, l_layer1Enc, l_layer2Enc, l_layer1Offset, l_layer2Offset, l_originOffset, l_imp1Enc, l_imp2Enc.

A nil specification is allowed for either the x or y value of the 2D parameter, which implies that the value will be retrieved from the default value on the viaDef.

If implant layer enclosure values are given for a standard via that is associated with a viaDef which does not specify an implant layer, the enclosure values are ignored. No warning message is issued.

Value Returned

d_viaId

When successful, returns the database ID of the via.

nil

nil is returned if the cellview ID is invalid.

Examples

Get the cellview ID where you want to place the via

cvId = geGetEditCellView()

Get the technology file id of the library that contains the definition of the via

tech = techGetTechFile(cvId)

Get the id of the viaDef you want to place

viaDefId = techFindViaDefByName(tech "M2_M1v")
viaParams = list(list("cutRows" 3) list("cutColumns" 3))

Place the via at the coordinate, and with orientation you want

newVia = dbCreateVia(cvId viaDefId list(5 5) "R0" viaParams)

Related Topics

Working with Vias

Database Access Function Argument Types

Standard Via Attributes

Interconnect Functions


Return to top
 ⠀
X