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

dbClearUnusedOccShapeColorData

dbClearUnusedOccShapeColorData(
d_cellView
[ ?dryRun { t | nil } ]
[ ?ignoreUnboundRefs { t | nil } ]
)
=> x_numClearedObjects / nil

Description

Opens hierarchy below the given cellview and removes all occShape coloring data that does not have any effect on the display of coloring data in the opened hierarchy. By default, if some instances or vias in the hierarchy cannot be bound, the function prints a warning message and returns nil, but cleanup can be forced with the ignoreUnboundRefs argument.

Suppose you do out-of-context edits, such as destroy, stretch, or move the master shape to a design that contains master shape of the hierarchical color lock (HCL). Now if this is the shape on which HCL is set, then HCL might not be visible when you open this top design. In this case, HCL data in the top design is retained but becomes unused. This function helps cleanup this data.

Until hierarchy is fully open it is not possible to distinguish between used or unused HCL data. The dbClearUnusedOccShapeColorData helps you view the unused data and clear it. This function does not cleanup HCL violations.

Arguments

d_cellView

Database ID of the cellview from which the unused occShape coloring data will be cleared.

?dryRun

When set to t, opens hierarchy below the specified cellview, and calculates the number of objects containing unused occShape coloring data, but does not remove this data.

Default Value: nil

?ignoreUnboundRefs

When set to t, clears unused occShape coloring data even if hierarchy cannot be fully opened.

  

Default Value: nil

Value Returned

x_numClearedObjects

  

A non-negative number of objects cleared.

If dryRun is set to t, this number indicates how many objects are found with the specified cellview, without clearing the data.

nil

Hierarchy below the given cellview cannot be opened or some other internal error occurred.

Nothing was cleared.

Example

;; Open cellview 'myLib/myCell/myLayout":
window = geOpen(?lib "myLib" ?cell "myCell" ?view "myLayout")
cellView = geGetEditCellView(window)
;; Just open hierarchy and count unused data:
dbClearUnusedOccShapeColorData(cellview ?dryRun t)  ; for example, returns 5
;; Remove unused data:
dbClearUnusedOccShapeColorData(cellview)  ; should return 5, too
;; Save changes:
dbSave(cellview)

Return to top
 ⠀
X