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

bndAddObjectsBinding

bndAddObjectsBinding(
d_schDbID
d_layDbID
=> t / nil

Description

Adds one or more objects to an existing binding. If no binding exists, a new binding is created. The specified objects must all be leaf-level instances. On the layout side, a leaf instance is an instance in the top level. On the schematic side, a leaf instance is the level at which the CPH stops such that INV1/P0 instance can bind to INV1|P0, but INV1 instance cannot bind to INV1|P0. For transparent instances, such as INV1, you can use INV1/N0 to add a binding to the nmos inside.

Arguments

d_schDbID

Database IDs of the objects to bind, used to specify one or more instances, terminals or shapes at the top level.

The object ID could be specified as a:

  • Single database ID: dbId
  • List of database IDs: list(list(d_dbId1 d_dbId2))
  • Database ID plus an index of a vector bit: list(list(d_dbId x_memInst))
  • Lists of database IDs: list(list(d_dbId1) list(dbId2))
  • Hierarchical path in the format list(list(db_id x_memInst x_row x_col)) returned by geGetInstHierPath(w_window)

d_layDbID

Database IDs of the layout objects to bind.

The object ID could be specified as a:

  • Single database ID: dbId
  • List of database IDs: list(list(d_dbId1 d_dbId2))
  • Database ID plus an index of a vector bit: list(list(d_dbId x_memInst))
  • Lists of database IDs: list(list(d_dbId1) list(dbId2))
  • Hierarchical path in the format list(list(db_id x_memInst x_row x_col)) returned by geGetInstHierPath(w_window)

Value Returned

t

The binding was created.

nil

The binding was not created.

Examples

I1=dbCreateInstByMasterName(schCellViewID "testcase" "inv" "symbol" "I1" '(-1.375 1.9375) "R0")
bndAddObjectsBinding(I1 dbFindAnyInstByName(layCellViewID "I0.1|I2(1)"))
t

Creates a new schematic instance called I1 and binds it to layout instance I0.1|I2(1), which is already bound.

bndAddObjectsBinding(dbFindAnyInstByName(schCellViewID "I0")
dbFindAnyInstByName(layCV "I0.1|I2(1)"))
*Error* bndAddObjectsBinding: (BND-3026): Cannot add binding to instance 'I0' because it is not a leaf. Binding can only be set between leaf objects in the schematic and layout objects.

Attempts to create a binding between schematic instance I0 and layout instance I0.1|I2(1), but fails because I0 is not a leaf instance.


Return to top
 ⠀
X