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

minSideSpacing (Two layers)

orderedSpacings(
( minSideSpacing tx_layer1 tx_layer2
 ['shortSideToShortSide | 'shortSideToLongSide | 'shortSideToAnySide
  | 'longSideToLongSide | 'longSideToAnySide
 ]
 ['widthRanges (g_ranges)]
 ['otherWidthRanges (g_otherRanges)]
 ['horizontal | 'vertical]
 ['exceptOverlap f_exceptOverlap | 'exceptExactOverlap      f_exceptExactOverlap] 
 ['cornerEuclidian]
 ['mask1 | 'mask2 | 'mask3]
 ['otherMask1 | 'otherMask2 | 'otherMask3]
 ['insideLayers (tx_layer3 tx_layer4tx_layerN)
 ['insidePurposes (t_purpose1 t_purpose2t_purposeN)]
  |
 'outsideLayers (tx_layer3 tx_layer4tx_layerN)
 ['outsidePurposes (t_purpose1 t_purpose2t_purposeN)]
 ]
 ['deltaVoltage f_voltage]
 ['prl f_prl | 'prlRange g_prlRange]
 f_spacing
)
) ;orderedSpacings

(Virtuoso Advanced Node for Layout Standard) Specifies the minimum spacing between two shapes on two different layers based on which side of the layer1 shape faces which side of the layer2 shape. Sides can be of type short, long, or any.

If the parallel run length between the shapes is less than zero, spacing can optionally be measured corner-to-corner using Euclidean measure type. By default, spacing is measured using Manhattan measure type.

Sides of non-rectangular shapes and squares are of type "any" (that is, they are not considered as short or long).

Values

tx_layer1

The first layer on which the constraint is applied.

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

tx_layer2

The second layer on which the constraint is applied.

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

f_spacing

The spacing between the shapes must be greater than or equal to this value.

Parameters

'shortSideToShortSide | 'shortSideToLongSide | 'shortSideToAnySide | 'longSideToLongSide | 'longSideToAnySide | 'anySideToAnySide

  

The sides between which spacing is measured.

  • 'shortSideToShortSide: Spacing is measured between a short side of the layer1 shape and a short side of the layer2 shape.
  • 'shortSideToLongSide: Spacing is measured between a short side of the layer1 shape and a long side of the layer2 shape.
  • 'shortSideToAnySide: Spacing is measured between a short side of the layer1 shape and any side of the layer2 shape.
  • 'longSideToLongSide: Spacing is measured between a long side of the layer1 shape and a long side of the layer2 shape.
  • 'longSideToAnySide: Spacing is measured between a long side of the layer1 shape and any side of the layer2 shape.
  • 'anySideToAnySide: Spacing is measured between any side of the layer1 shape and any side of the layer2 shape.

'widthRanges (g_widthRanges)

The constraint applies only if the width of the layer1 shape falls in one of these ranges.

Type: Floating-point values specifying a range of widths that trigger the constraint

'otherWidthRanges (g_otherWidthRanges)

  

The constraint applies only if the width of the layer2 shape falls in one of these ranges.

Type: Floating-point values specifying a range of widths that trigger the constraint

'horizontal | 'vertical

The direction in which spacing is measured. If direction is not specified, spacing is measured in any direction.

Type: Boolean

'exceptOverlap f_exceptOverlap | 'exceptExactOverlap f_exceptExactOverlap

  

  • exceptOverlap: (Virtuoso Advanced Node for Layout Only) For positive exceptOverlap values, the constraint does not apply if the overlap between the shapes in the spacing direction is greater than or equal to the specified value. For negative exceptOverlap values, the constraint does not apply if the distance between the two shapes in the spacing direction is less than the absolute value of exceptOverlap.
  • exceptExactOverlap: (Virtuoso Layout Suite EXL and higher tiers) The constraint does not apply if the overlap between the shapes in the spacing direction is exactly equal to the specified value. Only positive values are allowed.

'cornerEuclidian

(Virtuoso Advanced Node for Layout Only) The corner-to-corner spacing (when parallel run length is less than zero) between shapes is measured using Euclidean measure type (the spacing halo has rounded corners).

The default measure type is Manhattan.

Type: Boolean

'mask1 | 'mask2 | 'mask3

(Virtuoso Advanced Node for Layout Only) The constraint applies to this mask on layer1.

'otherMask1 | 'otherMask2 | 'otherMask3

(Virtuoso Advanced Node for Layout Only) The constraint applies to this mask on layer2.

'insideLayers (tx_layer3 tx_layer4tx_layerN)
| 'outsideLayers (
tx_layer3 tx_layer4tx_layerN)

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

  • 'insideLayers: The constraint applies when the region between the shapes on the specified layers (layer1 and layer2) overlaps a shape on one of these layers (layer3 layer4layerN).
  • 'outsideLayers: The constraint applies when the region between the shapes on the specified layers (layer1 and layer2) overlaps the region outside the shapes on one of these layers (layer3 layer4layerN).

For more information, see Region-based Rule (Two layers).

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)

'deltaVoltage f_voltage

(Virtuoso Advanced Node for Layout Only) The constraint applies if both the cut shape and the metal shape have voltages and the delta voltage between the layer1 shape and the layer2 shape is greater than this value.

The delta voltage is calculated as follows:

  • For asynchronous nets:
    max(V1max, V2max) - min(V1min, V2min)
  • For synchronous nets:
    max(|V1max - V2max|, |V1min - V2min|)

'prl f_prl

The constraint applies only if the parallel run length between the two sides is greater than this value.

'prlRange g_prlRange

  

(Virtuoso Advanced Node for Layout Only) The constraint applies only if the parallel run length between the two sides falls in this range.

Type: Floating-point values specifying a range of parallel run lengths that trigger the constraint

Examples

Example 1: minSideSpacing with shortSideToShortSide, prl, widthRanges, and otherWidthRanges

The spacing between the short sides of shapes S1 and S2 must be greater than or equal to 0.4 if the following conditions are met:

Example 2a: minSideSpacing with exceptOverlap

The spacing between Trim1 and Metal2 shapes must be at least 0.1, except when the horizontal overlap between the two shapes is greater than or equal to 0.05.

Example 2b: minSideSpacing with exceptOverlap

The spacing between Trim1 and Metal2 shapes must be at least 0.1, except when the horizontal distance between the two shapes is less than 0.05.

Example 3: minSideSpacing with deltaVoltage and prlRange

The spacing between two vias can be specified separately for different parallel run lengths and voltage differences as illustrated in this example.


Return to top
 ⠀
X