Product Documentation
Virtuoso Layout Suite SKILL Reference
Product Version IC23.1, November 2023

lxGetValidViaDefs

lxGetValidViaDefs(
d_objID
[ ds_constraintGroup ]
[ ltx_bottomLayer ]
[ ltx_topLayer ]
)
=> list_of_viaDefs / nil

Description

Returns a list of via definitions associated with a specified design object. You can restrict the list to include only vias defined in a specified constraint group or which feature a specific top and/or bottom layer. If you specify a technology file, no constraint groups, and no layers, the function returns all the via definitions in the technology database. If you specify both top and bottom layers, the function returns only via definitions featuring those layers. If you specify either a top or bottom layer, the function returns only via definitions featuring the layer in question.

Arguments

d_objID

Database ID of the object to be queried for associated via definitions.

Valid object types are: net, route, cellview, or technology file.

ds_constraintGroup

Name or database ID of the constraint group in which the via is defined.

ltx_bottomLayer

Bottom layer of the via definition.

ltx_topLayer

Top layer of the via definition.

Value Returned

list_of_viaDefs

List of via definitions associated with the specified design object or featuring the specified top and/or bottom layer.

  • If you do not specify a top or bottom layer, the function returns a list of all the valid via definitions.
  • If you specify top and bottom layers, the function returns a list of lists, each list containing the valid vias between pairs of layers from the specified layer range.

See the examples below for more information.

nil

The command was unsuccessful.

Examples

Returns a list of valid vias defined between layers Metal3 and Metal4.

lxGetValidViaDefs(geGetEditCellView() nil "Metal3" "Metal4")
((db:0x149dd397 db:0x149dd3af db:0x149dd3a6))

Returns two lists of vias, one for those defined between layers Metal2 and Metal3 and the other for vias defined between layers Metal3 and Metal4.

lxGetValidViaDefs(geGetEditCellView() nil "Metal2" "Metal4")
((db:0x149dd397 db:0x149dd3af db:0x149dd3a6)
    (db:0x149dd3b5 db:0x149dd398 db:0x149dd3b0 db:0x149dd3a7)
)

Returns a single list of all the valid vias defined for the current cellview.

lxGetValidViaDefs(geGetEditCellView() nil) 
(db:0x149dd39c db:0x149dd39b db:0x149dd39f db:0x149dd39e db:0x149dd39d
    db:0x149dd3b2 db:0x149dd3a0 db:0x149dd3a9 db:0x149dd39a db:0x149dd3b3
    db:0x149dd3a8 db:0x149dd3b1 db:0x149dd399 db:0x149dd812 db:0x149dd813
    db:0x149dd3b4 db:0x149dd3a7 db:0x149dd3b0 db:0x149dd398 db:0x149dd3b5
    db:0x149dd3a6 db:0x149dd3af db:0x149dd397 db:0x149dd3a5 db:0x149dd3ae
    db:0x149dd396 db:0x149dd3a4 db:0x149dd3ad db:0x149dd395 db:0x149dd3a3
    db:0x149dd3ac db:0x149dd394 db:0x149dd3a2 db:0x149dd3ab db:0x149dd393
    db:0x149dd3a1 db:0x149dd3aa db:0x149dd392
)

Creates a via using the lxGetValidViaDefs, lxComputeViaParams, and dbCreateVia commands.

  1. cellViewId = geGetEditCellView()
  2. viaDefs=lxGetValidViaDefs(cellViewId "highYield")
    ; pick a viaDefId
  3. viaId=nth(3 viaDefs)
  4. viaParams=lxComputeViaParams(viaId cellViewId "highYield" list(list("cutRows" 3) list("cutColumns" 3)))
  5. viaId=dbCreateVia(cellViewId viaId list(5 5) "R0" viaParams)

Return to top
 ⠀
X