Product Documentation
Virtuoso Technology Data Constraints Reference
Product Version IC23.1, November 2023

maxViaArrayClusterSize

spacings(
(maxViaArrayClusterSize tx_layer
 'horizontal | 'vertical
 'mergeSpacing f_mergeSpacing
 {'clusterSpacing f_clusterSpacing
  |'clusterSpacingRange g_clusterSpacingRange
  ['lengthRange g_lengthRange ['checkLengthOfAnyArray]]
  ['clusterAny | 'clusterHorizontal | 'clusterVertical
   ['neighborDistanceRange g_neighborDistanceRange
             ['maxFacingEdgeNeighbors g_NumNeighbors
               ['checkEachSideNeighborsSeparately]
             ]
          ]
      ]
  ['prl f_prl]
 }
 ['layer g_layer ['colorMasks (mask1 mask2 ... maskn)]]
 ['enclosingLayer   tx_enclosingLayer
  ['enclosureValue  f_enclosureValue]
 ]
 ['clusterLength f_clusterLength]
 ['exceptExactAligned]
 ['sameMask]
 ['minNumCutsInArray x_minNumCutsInArray]
 ['maxNumCutsInArray x_maxNumCutsInArray]
 ['minClusterSize x_clusterSize]
 x_numViaArrays 
)
) ;spacings

(Virtuoso Advanced Node for Layout Only) Specifies the maximum number of via arrays that are allowed in a cluster.

The following example shows three vertically aligned and merged via arrays in a cluster.

Values

tx_layer

The layer on which the constraint is applied.

Type: String (layer and purpose names) or Integer (layer number)

x_numViaArrays

The maximum number of via arrays that are allowed in a cluster.

Parameters

'horizontal | 'vertical

  

The direction in which the vias should be merged into arrays.

Type: Boolean

'mergeSpacing f_mergeSpacing

Vias that are spaced at less than or equal to this value and are exactly aligned are considered for merging into arrays.

'clusterSpacing f_clusterSpacing

Via arrays that are spaced at less than this value are considered for clustering.

'clusterSpacingRange g_clusterSpacingRange

Shapes in this spacing range are considered for clusters. This parameter is an alternative to the clusterSpacing parameter.

'lengthRange g_lengthRange ['checkLengthOfAnyArray]

Specified with clusterSpacingRange. Only shapes in this range are considered. It is measured in the merge direction.

If checkLengthOfAnyArray is also specified, the constraint applies if the length of any one of the via arrays is within g_lengthRange.

'clusterAny |'clusterHorizontal | 'clusterVertical

  

Specified with clusterSpacingRange. It specifies the direction in which cluster distance should be measured. It can have one of these values: clusterAny (default), clusterHorizontal, or clusterVertical.

Type: Boolean

'neighborDistanceRange g_neighborDistanceRange

Specified when the cluster direction is specified as clusterHorizontal or clusterVertical. Neighbors are considered within this range in a direction orthogonal to the cluster direction.

'maxFacingEdgeNeighbors g_NumNeighbors

Specified with neighborDistanceRange to indicate the maximum number of facing edge neighbors within the specified neighborDistanceRange for a cluster.

'checkEachSideNeighborsSeparately

Specified with maxFacingEdgeNeighbors to indicate that neighbors on each side must be checked.

'prl f_prl

Specified with clusterSpacingRange. The constraint will be applicable only if all shapes in the cluster have parallel run length within this range.

'sameMask

The constraint applies only between vias on the same mask.

Type: Boolean

'layer g_layer ['colorMasks (mask1 mask2maskn)]

The constraint applies only for cuts on the specified layer. The via can be either intersecting or enclosed within the metal.

If the colorMasks parameter is also specified, the constraint applies selectively to cuts on the specified color masks. Masks are specified using integer values starting from 1 representing mask1.

'enclosingLayer tx_enclosingLayer

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies for the metal layer for which enclosures are checked on all sides of the via.

'enclosureValue f_enclosureValue

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies when enclosure of vias on the layer specified in the enclosingLayer parameter in any direction is less than this value.

'clusterLength f_clusterLength

The constraint applies only if the length of the cluster is greater than this value.

'exceptExactAligned

The constraint applies only if the merged vias are not exactly aligned.

Type: Boolean

'minNumCutsInArray x_minNumCutsInArray

The constraint applies only if at least one array in the cluster has at least this number of cuts.

'maxNumCutsInArray x_maxNumCutsInArray

The constraint shows a violation if any array in the cluster has more than this number of cuts.

'minClusterSize x_clusterSize

The constraint applies only when the number of via arrays in a cluster is more than or equal to this value.

Examples

Example 1: maxViaArrayClusterSize with numViaArrays and minNumCutsInArray

Consider the following constraint:

spacings(
    ( maxViaArrayClusterSize "Via1"
     'vertical   
'mergeSpacing 0.11
'clusterSpacing 0.21
'exceptExactAligned
'sameMask
'minNumCutsInArray 4
2
)
) ;spacings

A couple of sample scenarios follow:

Example 2: maxViaArrayClusterSize with clusterSpacingRange

Vertically aligned vias that are within 0.02 are merged. Merged vias that are at least 0.1 in length and at a distance of less than 0.05 in the horizontal direction are considered as clustered. The constraint is met if there are no more than 2 merged vias in the cluster.

Example 3: maxViaArrayClusterSize with neighborDistanceRange and maxFacingEdgeNeighbors

The maximum cluster size is 3, and it can have a maximum of 4 neighbors.

Example 4: maxViaArrayClusterSize with neighborDistanceRange, maxFacingEdgeNeighbors, and checkEachSideNeighborsSeparately

The maximum cluster size is 4, and it can have a maximum of 3 neighbors on each side.

Example 5: maxViaArrayClusterSize with checkLengthOfAnyArray

Consider the following constraints in an AND group. The via spacing is short-to-short in the first case and long-to-short or long-to-long in the second case.

Example 6: maxViaArrayClusterSize with layer and colorMasks

The maximum cluster size is 4. The constraint applies only for cuts on layer Metal2 that are on colorMask 2.

Example 7: maxViaArrayClusterSize with clusterLength

The maximum cluster size is 3, and it can have a maximum of 4 neighbors.

Example 8: maxViaArrayClusterSize with maxNumCutsInArray and minClusterSize

The constraint is met if there are no more than 3 merged vias in the cluster. In both scenarios, the constraint applies because at least one array in the cluster has more than 1 cut but fails because the number of via arrays in the cluster is more than 2.


Return to top
 ⠀
X