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

oaMinViaSpacing

Sets the minimum spacing, either edge-to-edge or center-to-center, between via cuts on the specified layer, either absolutely or conditionally, based on the net the cuts are on.

oaMinViaSpacing Quick Reference

Constraint Type

Layer

Value Types

Value, OneDTblValue

Database Types

Design, Technology

Scope

design, foundry

Category

Via Construction

Value Types

Value

Specifies the minimum spacing, in user units.

OneDTblValue

Specifies the minimum spacing that changes according to the width of the wider of the two shapes. The width of the wider shape is the lookup key for the table. The table value is the minimum spacing. The width of a shape is defined as the smaller of the shape’s two dimensions.

Required Parameters

None

Optional Parameters

distanceMeasureType

Specifies the spacing measurement method as Euclidean (0, default) or Manhattan (1). For information about this parameter, see Euclidean and Manhattan Spacing Constraints.

Type: IntValue

oaCenterToCenter

Determines how cut clearance is measured. If set to true, cut clearance is measured from the center of one cut to the center of the other cut. If not specified or set to false, cut clearance is measured edge-to-edge.

Type: BoolValue

oaConnectivityType

Specifies the shapes to which this constraint applies, based on their connectivity. This parameter is mutually exclusive with exceptConnectivityType.

String   Integer Value

anyConnectivity (default)   0
  Constraint applies to any connectivity

sameNetConnectivity   1
  Constraint applies to same net only

sameIslandConnectivity   2
  Constraint applies to via cuts connected by contiguous same metal

directConnectShapesConnectivity   3
  Constraint applies to via cuts directly connected by the same metal

sameViaConnectivity   4
  Constraint applies to via cuts with the same metal above and same metal below

Type: StringAsIntValue

exceptConnectivityType

  

Specifies the vias for which this constraint does not apply, based on their connectivity. This parameter is mutually exclusive with oaConnectivityType.

String   Integer Value

sameNetConnectivity   1
  Constraint does not apply to same net only

sameIslandConnectivity   2
  Constraint does not apply to via cuts connected by contiguous same metal

directConnectShapesConnectivity   3
  Constraint does not apply to via cuts directly connected by the same metal

sameViaConnectivity   4
  Constraint does not apply to via cuts with the same metal above and same metal below

Type: StringAsIntValue

oaArea

Specifies that the constraint applies only if the area of a cut is equal to or greater than this value. The value of this parameter is assumed to be greater than the default clearance value. This parameter is not currently supported by Space-based Router and Chip Optimizer.

Type: Value

parallelRunLength

Specifies that the constraint applies only if the parallel run length (prl) between two via cuts is greater than or equal to this value. Both positive and negative values are allowed. This parameter is mutually exclusive with exactParallelRunLength.

If multiple oaMinViaSpacing constraints are defined in an AND constraint group, the constraint is applied by evaluating the prl values, specified in the ascending order, to locate the first prl value for which the actual prl is greater than or equal to the parameter value. As a result, only one constraint in an AND constraint group applies. For example, in an AND constraint group with prl values specified as -1.0, -0.05, 0, 0.05, 1, the constraint value that applies is determined as follows:

Actual length (prl) Use constraint value for length

<-1   The constraint does not apply.

>=-1 and <-0.05   -1.0

>=-0.05 and <0   -0.05

>=0 and <0.05   0

>=0.05 and <1.0   0.05

>=1.0   1.0

Type: Value

exactParallelRunLength

Specifies that the constraint applies only if the parallel run length is this value, in user units. This parameter is mutually exclusive with parallelRunLength.

Type: Value

exactSpacing

Specifies whether the constraint value is an exact spacing (true) or a minimum spacing (false/default). Must be used with the exactParallelRunLength parameter.

Type: BoolValue

sameMask

Specifies whether the constraint applies between cut shapes on the same mask (true) or between all shapes on the given cut layer (false/default).

Type: BoolValue

diffMask

Specifies whether the constraint applies between cut shapes on different masks (true) or between all shapes on the given cut layer (false/default).

Type: BoolValue

bothCuts

Specifies that the constraint applies only when both cuts are of the type specified by viaEdgeTypeParam (true). The default is false.

Type: BoolValue

viaEdgeTypeParam

Specifies that the constraint applies only to via edges of the specified type.

Different via edge types are specified using separate viaEdgeType constraints.

Type: IntValue

enclosingLayer

Specifies the enclosing layer for via edge type extension checks.

Type: LayerValue

sizeBy

Specifies that cuts are to be increased in size by this value before the spacing check is performed. If both enclosingLayer and sizeBy are specified, the spacing is checked between the AND of the enclosingLayer extension and the via extended by the sizeBy value.

Type: Value

oaSpacingDirection

Specifies that the constraint applies only to extensions measured in this direction.

Valid values:

anyDirection 0 Horizontally and vertically    (default)
horizontalDirection 1 Horizontally only
verticalDirection 2 Vertically only

Type: IntValue

exceptExactAligned

Specifies that the constraint does not apply to cuts that are aligned (true). The default is false.

Type: BoolValue

Examples

Example 1: oaMinViaSpacing with oaConnectivityType

set_constraint_parameter -name oaConnectivityType -IntValue 1
set_layer_constraint -constraint oaMinViaSpacing \
-layer via1 -Value 0.3

Sets the minimum via spacing on via1 to 0.3 when the cuts are on the same net.

Example 2: oaMinViaSpacing with exactParallelRunLength, enclosingLayer, viaEdgeTypeParam, bothCuts, and sizeBy

set_constraint_parameter -name anyOppositeExtension -Value 0.009
set_layer_constraint -layer Via1 -constraint viaEdgeType -IntValue 2
set_constraint_parameter -name exactParallelRunLength -Value 0.05
set_constraint_parameter -name enclosingLayer -LayerValue Metal1
set_constraint_parameter -name viaEdgeTypeParam -IntValue 2
set_constraint_parameter -name bothCuts -BoolValue true
set_constraint_parameter -name sizeBy -Value 0.009
set_layer_constraint -constraint oaMinViaSpacing -layer Via1 -Value 0.07

Specifies that the spacing between two via cuts expanded by 0.009 must be at least 0.07 if the following conditions are met:

Related Topics

Via Construction Constraints


Return to top
 ⠀
X