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

minAdjacentFourViaSpacing

orderedSpacings(
( minAdjacentFourViaSpacing tx_metalLayer tx_cutLayer 
 ['cutClass {f_width | (f_width f_length) | t_name}] 
 'prl f_parallelRunLength 'within f_within
 ['toAll]
 ['horizontal | 'vertical]
 ['mergedCuts]
 ['exceptDiffMetal ['noExtraCut]]
 ['minCorner | 'minInnerCorner | 'maxInnerCorner]
 ['exceptOverlap g_overlap]
 ['exceptMinLength g_minLength]
 ['cutWithin g_cutWithin]
 ['insideLayers (tx_layer1 tx_layer2tx_layerN)
  ['insidePurposes (t_purpose1 t_purpose2t_purposeN)]
  |
  'outsideLayers (tx_layer1 tx_layer2tx_layerN)
  ['outsidePurposes (t_purpose1 t_purpose2t_purposeN)]
 ]
 ['exceptOtherWidthWithCut g_width 
     'otherLayer g_otherLayer] 
 ['width g_width] 
 f_spacing 
)
) ;orderedSpacings

(Virtuoso Advanced Node for Layout Only) Specifies that the spacing between two adjacent via cuts on the same or on different nets must be greater than or equal to spacing if the following conditions are met:

Values

tx_metalLayer

The metal layer on which the constraint is applied.

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

tx_cutLayer

The cut layer on which the constraint is applied.

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

f_spacing

The spacing between the adjacent via cuts must be greater than or equal to this value.

Parameters

'cutClass {f_width | (f_width f_length) | t_name}

  

The cut class to which the constraint applies, specified by width, by width and length, or by name (as defined in a cutClasses constraint).

  • f_width: Width
  • f_length: Length
  • t_name: Name of the cut class. If not specified, any cut combination of four cuts can trigger the rule.

'prl f_parallelRunLength

  

The constraint applies only if the parallel run length between neighboring via cuts that are less than within apart is greater than this value.

'toAll

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies when at least one cut is of the specified cut class even if the other cuts are of different cut classes.

'within f_within

  

The constraint applies only if the distance between each pair of neighboring via cuts is less than this value.

'horizontal | 'vertical

The spacing and parallelRunLength values are measured in this direction, and the within value is measured in the orthogonal direction.

Type: Boolean

'mergedCuts

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies if merged cuts have a parallel run length more than the prl value and less than the within value.

'exceptDiffMetal

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only if at least one set of two cuts has the same metal on the specified metal layer.

'noExtraCut

(Virtuoso Layout Suite EXL and higher tiers) The constraint specifies that the 'exceptDiffMetal exemption applies only when there is no cut between the four cuts triggering the rule.

'minCorner | 'minInnerCorner | 'maxInnerCorner

(Virtuoso Layout Suite EXL and higher tiers) If neighbor cuts, which are not in the same set, have prl greater than 0, the cut center is used by default to form the metal search window, unless one of these parameters are specified:

  • minCorner: The inner corner is used to form the search window.
  • minInnerCorner: The minimum bounding box of the inner cut corners is used.
  • maxInnerCorner: The maximum bounding box of the inner cut corners is used.

'exceptOverlap g_overlap

(Virtuoso Layout Suite EXL and higher tiers) The constraint does not apply when the middle metal neighbor has a parallel run length overlapping the window by less than this value.

'exceptMinLength g_minLength

(Virtuoso Layout Suite EXL and higher tiers) The constraint does not apply when the middle metal neighbor has at least this length.

'cutWithin g_cutWithin

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies even if the middle metal neighbor does not overlap with the metal search window when the wire contains an above or below cut within the given value of the window.

'insideLayers (tx_layer1 tx_layer2tx_layerN)
| 'outsideLayers (
tx_layer1 tx_layer2tx_layerN)

Determines if the constraint applies, based on the presence or absence of one or more layers.

  • 'insideLayers: The constraint applies only if the shapes on the specified layer (layer) overlap a shape on one of these layers (layer1 layer2layerN).
  • 'outsideLayers: The constraint applies only if the shapes on the specified layer (layer) overlap the region outside the shapes on one of these layers (layer1 layer2layerN).

For more information, see Region-based Rule (One layer).

Type: String (layer name) or Integer (layer number)

'insidePurposes (t_purpose1 t_purpose2t_purposeN)

The 'insideLayers parameter is limited to only the specified purposes.

Type: String (purpose name)

'outsidePurposes (t_purpose1 t_purpose2t_purposeN)

The 'outsideLayers parameter is limited to only the specified purposes.

Type: String (purpose name)

'exceptOtherWidthWithCut g_width

(Virtuoso Layout Suite EXL and higher tiers) The constraint does not apply to a wire on tx_otherLayer with a cut on tx_cutLayer, when the width of the wire is greater than or equal to g_width and it is within the search window formed by the minimum bounding box of the inner cut corners.

'otherLayer g_otherLayer

(Virtuoso Layout Suite EXL and higher tiers) The layer name for the wire fulfilling the parameter condition in g_width.

'width g_width

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only if the neighbor metal width is less than or equal to this value.

Example

The spacing between two adjacent via cuts must be greater than or equal to 0.07 if the following conditions are met:

orderedSpacings(
    ( minAdjacentFourViaSpacing "Metal3" "Via2" 
     'cutClass "VA" 
'prl 0.05
'within 0.06
'exceptOtherWidthWithCut 0.05 'otherLayer "Metal2"
0.07
 ) 
) ;orderedSpacings

Return to top
 ⠀
X