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

wspCheckActive

wspCheckActive(
d_cellviewId 
t_layerName | ?shapes g_selSetId 
[ ?region l_bBox ] 
[ ?purpose t_purposeName ] 
[ ?hilightSet g_hlSetId ] 
[ ?markers g_markers [ ?vioLimit g_limit ] ] 
[ ?checkColor g_checkColor ] 
[ ?checkWidth g_checkWidth ] 
[ ?checkWireType g_checkWireType ] 
[ ?depth x_depth ] 
[ ?mergeShapes g_mergeShapes [ ?ignoreColorOnMerge g_ignoreColor ] ] 
[ ?mergePurposes l_mergePurposes ]
[ ?returnVioShapes g_returnVioShapes ]
[ ?excludeBlockageCheck g_excludeBlockageCheck ]
[ ?ignoreValidJogs g_ignoreValidJogs ]
)
=> t / l_dbID / nil

Description

Checks shapes and blockages for width, color, and wireType conformance to the active width spacing pattern (WSP) on the specified layer or in the specified set. The active WSP can be for the global grid or a pattern region.

Arguments

d_cellViewId

Database ID of the cellview to be checked.

t_layerName

Name of the layer to be checked. This argument must be a valid layer name but will be ignored if ?shapes is specified.

?shapes g_selSetId

Database ID of the set of shapes to be checked. If the set is empty or contains objects that are not shapes, an error message is displayed and no checking is done.

?region l_bBox

(Applies only when ?shapes is not specified) Area of the cellview to be checked. Specifies a pair of coordinates to denote the lower-left and upper-right corners of the bounding box, such as:
wspCheckActive(cv ?region list(0:0 1:1))

If this argument is not specified, the entire cellview bounding box is considered by default. The bounding box is in user-specified units.

?purpose t_purposeName

(Applies only when ?shapes is not specified) Name of the purpose to be checked.

If this argument is not specified, only the shapes on the drawing purpose for the layer are checked.

?hilightSet g_hlSetId

Database ID of the highlight set to which the shapes that do not conform to the active WSP color, width, or wireType will be added. If this argument is not specified, non-conforming shapes will not be added to a highlight set.

?markers g_markers

Specifies whether annotation markers will be created for shapes that do not conform to the active WSP.

Valid values: t or nil (default).

When this argument is set to t, the markers are added to the Annotation Browser without clearing any existing markers.

To limit the number of markers that are created, include the ?vioLimit argument. You can view the markers in the DRC/DFM tab of the Annotation Browser. For more information, see Finding Violations.

?checkColor g_checkColor

Specifies whether the color of each shape will be checked for conformance to the track colors of the active WSP.

Valid values: t (default) or nil.

Conforming shapes:

  • A colored shape on a same color track
  • A colored shape on a gray (uncolored) track
  • A gray shape on a gray track.

Non-conforming shapes:

  • A gray shape on a colored track

?checkWidth g_checkWidth

Specifies whether the width of the shape must match the width of the track.

Valid values: t (default) or nil.

If set to nil, the width of the shape does not need to match the width of the track. However, the shape is conforming only if its centerline is aligned with the centerline of the track. Use this setting to check against zero-width tracks.

?checkWireType g_checkWireType

Specifies whether the wireType of each shape must conform to the wireType of track for the active WSP.

Valid values: t (default) or nil.

Conforming shapes:

  • A shape with no wireType on a track with no wireType
  • A shape with no wireType on a track with a wireType
  • A shape with a wireType on a track with the same wireType

Non-conforming shapes:

  • A shape with a wireType on a track with no wireType
  • A shape with a wireType on a track with a different wireType

?depth x_depth

Specifies the hierarchy depth up to which the cellview will be checked.

The default is 32.

?mergeShapes g_mergeShapes

Specifies whether to merge same-color shapes and uncolored shapes that are on the same layer-purpose pair before checking for WSP conformance. When set to t, false violations on small shapes (for example, shapes overlapped by a WSP-conforming power rail) can be avoided.

Valid values: t or nil (default).

?mergePurposes l_mergePurposes

Merges the shapes on the purposes in the list that are on the same layer and have the same color before checking for WSP conformance.

?vioLimit g_limit

Specifies the maximum number of markers to be created. You must specify ?markers t, or this argument will be ignored.

The default is 1000.

?ignoreColorOnMerge g_ignoreColor

(Applies only when ?checkColor is nil and ?mergeShapes is t) Specifies whether to merge shapes on the same layer-purpose pair, regardless of color, before checking for WSP conformance. When set to nil, only the shapes on the same layer-purpose pair with the same color or no coloring are merged.

Valid values: t or nil (default)

?returnVioShapes g_returnVioShapes

Specifies whether to return the list of shapes that do not conform to the active WSP. When set to t, the function returns list of database IDs of shapes that do not conform to the active WSP.

Valid values: t or nil (default).

?excludeBlockageCheck g_excludeBlockageCheck

Specifies whether blockage objects will be checked for snap patterno or width spacing pattern conformance.

Valid values: t or nil (default).

?ignoreValidJogs g_ignoreValidJogs

Specifies whether to ignore jogs that are defined in the allowedWidthRanges constraint for the layer in the jog direction before checking.

Valid values: t or nil (default).

Value Returned

t

All the shapes conform to the active WSP.

l_dbID

(Applies only when ?returnVioShapes t is specified). List of database IDs for shapes that do not conform to the active WSP.

nil

If ?returnVioShapes t has been specified, all the shapes conform to the active WSP. If ?returnVioShapes t has not been specified, some shapes do not conform to the active WSP.

Examples

The following example checks the Metal1:drawing shapes in the edit cellview for width and color conformance to the active WSP. Only the top-level Metal1:drawing shapes in the region bounded by (2:1 4:2) are checked.

wspCheckActive( geGetEditCellView() "Metal1" ?markers t ?checkWireType nil ?depth 0 ?region list(2:1 4:2) )

The following example checks the Metal2:drawing shapes in the edit cellview for width, color, and wireType conformance to the active WSP. Non-conforming shapes are added to the hset highlight set and are drawn with a halo in the canvas.

hset = geCreateWindowHilightSet( hiGetCurrentWindow() list("Metal2" "drawing") )
geSetHilightSetHaloParameters( hset "under" "fadeout" "thick" 33 nil )
retval = wspCheckActive( geGetEditCellView() "Metal2" ?hilightSet hset )

The following example checks the shapes in the selection set for width, color, and wireType conformance to the active WSP. Markers are created for the non-conforming shapes.

myset = geGetSelSet()
retval = wspCheckActive( geGetEditCellView() ?shapes myset ?markers t )

The following example checks the Metal1:drawing shapes for centerline alignment, color, and wireType conformance to the active WSP. Markers are created for the non-conforming shapes.

wspCheckActive( geGetEditCellView() "Metal1" ?checkWidth nil ?markers t )

The following example merges the same-color shapes on the drw1 and drw2 purposes of Metal1 before checking for WSP conformance. For example, all the touching mask1Color shapes on Metal1:drw1 and Metal1:drw2 will be merged, and all the touching uncolored shapes on Metal1:drw1 and Metal1:drw2 will be merged.

wspCheckActive( geGetEditCellView() "Metal1" ?mergePurposes list("drw1" "drw2") )

The following example merges Metal1:drawing shapes, then checks them for centerline alignment, width, and wireType conformance to the active WSP.

wspCheckActive( geGetEditCellView() "Metal1" ?checkColor nil ?mergeShapes t ?ignoreColorOnMerge t)

Related Topics

Space-based Router Batch Checking (WSP Active Checking)


Return to top
 ⠀
X