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

bndSetObjectsBinding

bndSetObjectsBinding(
d_schDbID
d_layDbID
)
=> t / nil

Description

Set a binding between schematic and layout objects. The specified objects must be lead instances and must not be bound already. The object ID can be specified in different formats. See the argument description for more information.

Arguments

d_schDbID

Database IDs of the schematic 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)

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.

Additional Information

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.

Example

bndSetObjectsBinding(dbFindAnyInstByName(schCellViewID "I0")
dbFindAnyInstByName(layCellViewID "I0.1|I2(1)"))
*Error* bndSetObjectsBinding: (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 bind schematic instance I0 to layout instance I0.1|I2(1), but fails because I0 is not a leaf instance.

I1=dbCreateInstByMasterName(schCellViewID "testcase" "inv" "symbol" "I1" ’(-1.375 1.9375) "R0")
bndSetObjectsBinding(I1 dbFindAnyInstByName(layCellViewID "I0.1|I2(1)"))
*Error* bndSetObjectsBinding: (BND-3023): Cannot add binding to instance '|I0.1|I2(1)' because it is already bound. Use 'bndReplaceObjectsBinding' or 'bndReplaceInstsBindingByName' if you want to replace the existing binding.

Attempts to bind schematic instance I1 to layout instance I0.1|I2(1), but fails because I1 is already bound.

bndSetObjectsBinding(list(dbGetInstByName(scv "R0<0:1>") 0) dbGetInstByName(lcv "Res0"))

Binds the schematic vector bits.

bndSetObjectsBinding(dbGetInstByName(scv "N0") dbGetInstByName(lcv "N0.1"))
bndAddObjectsBinding(dbGetInstByName(scv "N0") dbGetInstByName(lcv "N0.2"))

Binds the schematic instance N0 to layout instances N0.1 and N0.2.

Related Topics

leaf objects


Return to top
 ⠀
X