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

rteGeomAndNot

rteGeomAndNot(
[ ?cv d_cvId ]
[ ?lpp1 g_lpp1 ]
[ ?lpp2 g_lpp2 ]
[ ?outputLpp l_outputLpp ]
[ ?blockedLayer l_blockedLayer ]
[ ?polygons g_polygons ]
[ ?region l_region ]
[ ?size1 f_size1 ]
[ ?size2 f_size2 ]
[ ?trimCorners g_trimCorners ]
) ;
=> t / nil

Description

Generates new shapes that exist on one layer purpose and do not overlap shapes on another layer purpose. You can optionally use sized shapes from one or both of the layer purposes. And you can choose to operate on a specific region or the entire design.

This function is available only in Layout XL and higher tiers.

Arguments

?cv d_cvId

Database ID of the cellview. Defaults to the current cellview.

?lpp1 g_lpp1

Specifies the first layer purpose pair(s). Required.

See Specifying Input Layer Purposes for details.

?lpp2 g_lpp2

Specifies the second layer purpose pair(s). Required.

See Specifying Input Layer Purposes for details.

?outputLpp l_outputLpp

Specifies the output layer and purpose for the generated shapes. Required.

You must specify both the layer name and the layer purpose as a list or string.

Examples:

list("metal1" "drawing")

"metal1 drawing"

?blockedLayer l_blockedLayer

Outputs blockages on the specified layer.

Note: the ?blockedLayer and ?outputLpp arguments are mutually exclusive.

?polygons g_polygons

Generates output shapes as polygons, rather than individual rectangles. Values are t or nil.

If set to t (true), the resulting shapes are polygons.

If set to nil (default), the resulting shapes are rectangles.

?region l_region

A list specifying the lower-left and upper-right coordinates of the region on which the function should operate.

If not specified, the entire design is included in the operation.

?size1 f_size1

Specifies the sizing amount in user units for shapes on the first layer purpose. Default is 0.0.

?size2 f_size2

Specifies the sizing amount in user units for shapes on the second layer purpose. Default is 0.0.

?trimCorners g_trimCorners

Specifies that corners be trimmed when shapes are resized.

Values are t to trim corners or nil (default) to preserve corners.

Value Returned

t

The operation completed successfully.

nil

The operation did not complete successfully.

Examples

The following is a graphical illustration of the rteGeomAndNot function.

The following example generates new shapes on the metal5/drawing layer purpose that exist on metal2/pin and do not overlap shapes on metal1/pin.

rteGeomAndNot(
?lpp1 list("metal2" "drawing")
?lpp2 list("metal1" "pin")
?outputLpp list("metal5" "drawing")
?region list(2486.75 2850.75 2635.22 2946.52)
)

The following example is the same as the one above, but both layer purposes are included in the ?lpp1 argument.

rteGeomAndNot(
?lpp1 list(
list("metal2" "drawing")
list("metal1" "pin"))
?outputLpp list("metal5" "drawing")
?region list(2486.75 2850.75 2635.22 2946.52)
)

In the following example, 48 is the layer number representing metal1. Argument ?lpp1 includes all purposes for layer metal1. In argument ?lpp2, the layer purpose pair is specified as a string. This is allowed, as the argument contains only one layer.

rteGeomAndNot(
?lpp1 48
?lpp2 "metal2 drawing"
?outputLpp list("metal5" "drawing")
?region list(2486.75 2850.75 2635.22 2946.52)
?size1 0.5
?size2 0.5
?polygons t
?trimCorners t
)

Related Topics

Space-based Router Functions


Return to top
 ⠀
X