Product Documentation
Virtuoso Space-based Router Constraint Reference
Product Version IC23.1, June 2023

oaAllowedSpacingRange

Specifies the allowed set of spacing ranges between any two shapes on a layer. Spacing can be independent of the width of the shapes, dependent on the width of one of the shapes, or dependent on the width of both the shapes. The constraint is defined at the process level and may not apply in some cases.

The following three conditions define the bounding criteria for the constraint. At least one of these conditions must be specified to limit the bounds of the constraint:

oaAllowedSpacingRange Quick Reference

Constraint Type

Layer

Value Types

RangeArrayValue, RangeArray1DTblValue, RangeArray2DTblValue

Database Types

Technology

Scope

design, foundry

Category

Spacing

Value Types

RangeArrayValue

Specifies the allowed spacing ranges for the layer.

RangeArray1DTblValue

Specifies a one-dimensional table indexed on width (parallel run length) and the allowed spacing range for that width value on the layer. The table displays records in ascending order of the index values.

RangeArray2DTblValue

Specifies a two-dimensional table that determines the value of the allowed spacing range for the given width-value pairs.

Optional Parameters

oaSpacingDirection

Specifies the measurement direction.
anyDirection   0
(default)
horizontalDirection 1
verticalDirection   2

Type: StringAsIntValue

widthRangeArray

Specifies that the constraint applies only to shapes whose widths are in this range.

Type: RangeArrayValue, in user units

parallelRunLengthTable

Specifies that the parallel run length between the two shapes, and not the width, is the index for the one-dimensional table. The default value is false.

Type: BoolValue

width

Specifies that the constraint applies only to shapes whose widths are less than the given width value.

Type: Value, in user units

interSpace

Restricts the allowed spacing to integer multiples of this value. Use withinRange to limit this parameter to a specified range of values.

Type: Value, in user units

withinRange

Specifies that the interSpace parameter applies only within this range.

Type: RangeValue, in user units

overLayer

Specifies that the constraint applies only between the shapes that overlap a shape on this layer.

Type: LayerValue

There are two exceptions that apply to this constraint and these are specified using the sets of optional parameters listed below.

Exception 1: The following three parameters collectively form an exception and all of them must be specified together. This exception applies only when all the conditions specified by these parameters are satisfied.

parallelRunLength

The constraint does not apply if the length of the violation is less than or equal to the specified length.

Type: Value, in user units

exceptOverLayer

The constraint does not apply if the violation is over this layer.

Type: LayerValue

exceptRanges

The constraint does not apply if the spacing falls within the specified range.

Type: RangeArrayValue, in user units

Exception 2: The following four parameters collectively form an exception and must all be specified together. This exception applies only when all the conditions specified by these parameters are satisfied.

numShapesRange

The constraint does not apply if there are this many shapes on both sides of the violation with full parallel run length.

Type: RangeValue

maxWidth

Specifies that shapes wider than this value do not count towards the numShapesRange value.

Type: Value, in user units

distance

The constraint does not apply if the maximum distance between the shapes that form the exception is less than the specified distance.

Type: Value, in user units

exceptOtherRanges

The constraint does not apply if the spacing falls within the specified range.

Type: RangeArrayValue, in user units

Examples

Example 1: oaAllowedSpacingRange with RangeArrayValue

set_layer_constraint -constraint oaAllowedSpacingRange \
-layer Metal2 -RangeArrayValue {"(0.1 0.19)" ">=0.4"}

Sets the permitted spacing ranges for Metal2 shapes to greater than 0.1 and less than 0.19 user units, or greater than or equal to 0.4 user units.

Example 2: oaAllowedSpacingRange with RangeArray1DTblValue

set_layer_constraint -constraint oaAllowedSpacingRange -layer Metal1 \
-RangeArray1DTblValue { \
0.1 2 "(0.1 0.3)" ">= 0.4" \
0.2 2 "(0.1 0.3)" ">= 0.5" \
0.4 2 "(0.1 0.4)" ">= 0.6" }

Sets the allowed spacing ranges between Metal1 shapes based on the width of one of the shapes, as follows:

Example 3: oaAllowedSpacingRange with RangeArray2DTblValue

set_layer_constraint -constraint oaAllowedSpacingRange -layer Metal1 \
-TblCols {0.0 0.2 0.4}\
-RangeArray2DTblValue \
{0.0 {"(0.1 0.2)" "[0.3 0.4]" ">=0.5"} {} {} \
0.2 {} {"(0.1 0.3)" ">=0.5"} {"(0.1 0.4]" ">=0.6"} \
0.4 {} {"(0.1 0.4]" ">=0.6"} {"(0.1 0.5]" ">=0.7"}}

Sets the allowed spacing ranges between Metal1 shapes based on the width of the two shapes, as follows:

For information about the Virtuoso technology file version of this constraint, see allowedSpacingRanges (one-layer) and allowedSpacingRanges (two-layer).

Example 4: oaAllowedSpacingRange with exceptOverLayer, parallelRunLength, and exceptRanges

set_constraint_parameter -name exceptRanges -RangeArrayValue {[0.2 0.25]}
set_constraint_parameter -name parallelRunLength -Value 0.02
set_constraint_parameter -name exceptOverLayer -LayerValue Metal3
set_constraint_parameter -name oaSpacingDirection -StringAsIntValue \
horizontalDirection
set_layer_constraint -constraint oaAllowedSpacingRange \
-layer Metal2 -RangeArrayValue {"[0.1 0.19]" ">=0.4"}

Sets the allowed horizontal spacing between shapes on Metal2 to be either greater than or equal to 0.1 and less than or equal to 0.19, or greater than or equal to 0.4, except when all of the following conditions are met:

Example 5: oaAllowedSpacingRange with numShapesRange, maxWidth, distance, and exceptOtherRanges

set_constraint_parameter -name exceptOtherRanges -RangeArrayValue {[0.15 0.2]}
set_constraint_parameter -name distance -Value 0.08
set_constraint_parameter -name maxWidth -Value 0.2
set_constraint_parameter -name numShapesRange -RangeValue 3
set_constraint_parameter -name oaSpacingDirection -StringAsIntValue \
horizontalDirection
set_layer_constraint -constraint oaAllowedSpacingRange \
-layer Metal2 -RangeArrayValue {"[0.05 0.1]" ">=0.4"}

Sets the allowed Metal2 horizontal spacing to be either greater than or equal to 0.05 and less than or equal to 0.1, or greater than or equal to 0.4, except when all of the following conditions are met:

Related Topics

Spacing Constraints

check_space


Return to top
 ⠀
X