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

dbGetOverlaps

dbGetOverlaps(
d_cellView 
l_bBox 
[ l_layerPurposePair | tx_layer | g_value {t | nil} ]
[ lx_level ] 
[ g_doRowCol ]
) 
=> ld_fig / nil 

Description

Returns a list of all the objects (such as, vias, shapes, instances, and mosaics) in a cellview that overlaps the area specified by l_bBox.
If the object comes from a lower level in the hierarchy, instead of from the specified cellview, the object is represented by a list (potentially a nested list, if it comes from more than one level down). Each level of the list has the ID of the instance in the corresponding level in the hierarchy.
For example, if there is a rectangle in a master cellview two levels down, for this rectangle, in the top cellview, dbGetOverlaps will return a nested list. The output of this function is same as that of dbGetTrueOverlaps.

From OA 2.2 release onward, the shape query returns only those shapes whose geometry overlap the region. This means that the trueOverlap rule is applied to all shapes at all times. As a result no additional processing is required for performing trueOverlap.

Arguments

d_cellView

Database ID of a cellview.

l_bBox

The searching box.

l_layerPurposePair

  

The layer-purpose pair.

If l_layerPurposePair, tx_layer, or g_value is specified, the function produces vias, instances, mosaics, and shapes. If none of these is specified, the function produces only vias, instances, and mosaics.

tx_layer

Specifies the layer name or number.

g_value

A Boolean value where:

  • t indicates that the function should produce vias, instances, mosaics, and shapes.
  • nil indicates that the function should produce only vias, instances, and mosaics.

lx_level

Search level. It can be a list of two integers (start and stop level for the search), or a single integer (stop level, start level is zero). If no level argument is specified, the start and stop levels are both zero, so that only the top-level figures are returned.

g_doRowCol

If set to true, displays row and column value, if the overlapped object is a mosaic instance.

Value Returned

ld_fig

A list identifying all the objects encountered in the search. If the object is in the given cellview, it is identified by its own ID. Otherwise, the object is identified by its hierarchical path, represented as a list of object IDs where the length of the list is one greater than the level of the object.

nil

An error occurred.

Examples

shapeList finds all the shapes on the device layer with drawing purpose on the top level.

shapeList = dbGetOverlaps(cv cv~>bBox "device") 

shapeList finds all the shapes on the device layer (with any purpose) on the top level.

shapeList = dbGetOverlaps(cv cv~>bBox list("device"))

shapeList finds all the shapes on the device layer with pin purpose on the top level.

shapeList = dbGetOverlaps(cv cv~>bBox list("device" "pin"))

figList finds all the mosaics and instances on the top level.

figList = dbGetOverlaps(cv cv~>bBox nil) 

figList finds all the shapes, mosaics and instances on the top level.

figList = dbGetOverlaps(cv cv~>bBox)

figList finds all the shapes, mosaics and instances from the top level to the level 5.

figList = dbGetOverlaps(cv cv~>bBox t 0:5)

figList finds all the mosaics and instances on the top level.

figList = dbGetOverlaps(cv cv~>bBox nil)

figList finds all the mosaics and instances from the top level to the level 3.

figList = dbGetOverlaps(cv cv~>bBox nil 3)

The illustration below shows that l_bBox overlaps the perimeters of B, C, and D.

Additional Information

The SKILL functions dbOpenHier, dbShapeQuery, and dbGetOverlaps perform different functions and have different implementations that may traverse the hierarchy in different ways. Although it is possible to use combinations of these and other functions to get similar results, code that is sensitive to the order of traversal may produce different results. For example, code that is traversing the hierarchy through dbOpenHier and dbShapeQuery, which needs to expand through Pcells, may produce a result that is different from dbGetOverlaps.

if there is a Pcell evaluation failure at some point of the traversal because these functions cannot guarantee order and it cannot be predicted whether or when a Pcell will fail to evaluate, some data that is produced by one set of SKILL functions may not be produced by a different set of SKILL functions.

Related Topics

dbGetOverlaps

dbGetTrueOverlaps

dbOpenHier

dbShapeQuery

Figure Creation and Retrieval Functions


Return to top
 ⠀
X