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

minSideSpacing (One layer)

spacings(
( minSideSpacing tx_layer
 ['otherLayer tx_otherLayer
  ['cutClass {f_width | (f_width f_length) | t_name}]
  ['cutWithin g_within]
 ]
 ['shortSideToShortSide | 'shortSideToLongSide | 'shortSideToAnySide 
  | 'longSideToLongSide | 'longSideToAnySide | 'anySideToAnySide
 ]
 ['prl f_prl | 'prlRange g_prlRange]
 ['exactAlignedSpacingRange]  
 ['sameMask]
 ['cornerEuclidian]
 ['facingEdges]
 ['widthRanges (g_widthRanges)]
 ['lengthRanges (g_lengthRanges)]
 ['otherWidthRanges (g_otherWidthRanges)]
 ['otherLengthRanges (g_otherLengthRanges)]
 ['horizontal | 'vertical]
 ['deltaVoltage f_voltage]
 ['exceptSpacingRanges l_exceptSpacingRanges]
 ['otherFacingEdgeRange g_fRange
  ['facingEdgeHorizontal | 'facingEdgeVertical]
 ['insideLayers (tx_layer1 tx_layer2 … tx_layerN)
  ['insidePurposes (t_purpose1 t_purpose2 … t_purposeN)]
  |
  'outsideLayers (tx_layer1 tx_layer2 … tx_layerN)
  ['outsidePurposes (t_purpose1 t_purpose2 … t_purposeN)]
 ]
 ['exceptIntersectLayers (tx_layer1 tx_layer2 … tx_layerN)
 ['widthDiff f_widthDiff]
 ['orthogonalPair]
 ['mask1 | 'mask2 | 'mask3] 
 ['widthHorizontal | 'widthVertical] 
 f_spacing
)
) ;spacings

(Virtuoso Advanced Node for Layout Standard) Specifies the minimum spacing between two shapes on a layer based on which side of the first shape faces which side of the second shape ("other" 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 are of type "any" (that is, they are not considered as short or long).

Values

tx_layer

The layer on which the constraint is applied.

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

f_spacing

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

Parameters

'otherLayer tx_otherLayer

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies to the specified cut layer that is inside the metal layer.

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

  

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only when tx_otherLayer is of the specified cut class size. The cut class is 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.

'cutWithin g_cutWithin

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only if tx_otherLayer is within the specified distance. The default value is 0. The distance is measured in the direction orthogonal to the spacing direction.

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

  

The sides between which spacing is measured.

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

'prl f_prl

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

Type: Boolean

'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

'exactAlignedSpacingRange

  

(Virtuoso Advanced Node for Layout Only) The spacing between the exactly aligned shapes can be in this range as an exception,  but only for positive values of the prlRange parameter.

'sameMask

(Virtuoso Advanced Node for Layout Only) The constraint applies only between shapes on the same mask.

Type: Boolean

'cornerEuclidian

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

The default measurement type is Manhattan.

Type: Boolean

'facingEdges

(Virtuoso Advanced Node for Layout Only) The constraint applies only if they face each other and there is no obstruction between edges.

'widthRanges (g_widthRanges)

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

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

'lengthRanges (g_lengthRanges)

(Virtuoso Advanced Node for Layout Only) The constraint applies only if the length of the first shape falls in one of these ranges.

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

'otherWidthRanges (g_otherWidthRanges)

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

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

'otherLengthRanges (g_otherLengthRanges)

  

(Virtuoso Advanced Node for Layout Only) The constraint applies only if the length of the other shape falls in one of these ranges.

Type: Floating-point values specifying a range of lengths 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

'deltaVoltage f_voltage

The constraint applies only if the maximum voltage difference between the two shapes is greater than this value.

Delta voltage = max(max1, max2) - min(min1, min2), where (max1, min1) denotes the voltage range for the first shape and (max2, min2) denotes the voltage range for the second shape.

'exceptSpacingRanges l_exceptSpacingRanges

The constraint does not apply if the spacing between the shapes is in this range.

Type: A list of floating-point spacing ranges to which the constraint does not apply

'otherFacingEdgeRange g_fRange ['facingEdgeHorizontal | 'facingEdgeVertical]

(Virtuoso Advanced Node for Layout Only) The constraint applies only if one of the two corners has a facing edge within the specified range and direction. You cannot specify a value greater than or equal to the specified range value.

'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)

'exceptIntersectLayers (tx_layer1 tx_layer2tx_layerN)

(Virtuoso Layout Suite EXL and higher tiers) The constraint does not apply if the spacing gap is covered by shapes on one of the specified layers.

'widthDiff f_widthDiff

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only if the width difference of the shapes is greater than the specified value.

'orthogonalPair

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only to the shapes in orthogonal directions. This parameter is applicable only for shapes with negative parallel run length.

'mask1 | 'mask2 | 'mask3

  

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only to shapes on the specified mask.

Type: Boolean

'widthHorizontal | 'widthVertical

(Virtuoso Advanced Node for Layout Only) The direction in which the widthRanges, otherWidthRanges, lengthRanges, and otherLengthRanges parameters are measured.

  • The widthRanges and otherWidthRanges parameters would be always measured in this direction, even if it does not correspond to the smaller dimension.
  • The lengthRanges and otherLengthRanges parameters would be measured in the orthogonal direction, even if it does not correspond to the larger dimension.

By default, when this parameter is not used, then the smaller dimension is used for widthRanges and otherWidthRanges and the larger dimension is used for lengthRanges and otherLengthRanges.

Type: Boolean

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 2: minSideSpacing with shortSideToLongSide and deltaVoltage

The spacing between a long side and a short side of two adjacent Metal1 shapes must be greater than or equal to 0.6 if the delta voltage between the shapes is greater than 1.5.

Example 3: minSideSpacing with shortSideToLongSide and exceptSpacingRanges

The spacing between a long side and a short side of two adjacent Metal1 shapes must be greater than or equal to 0.6. The constraint does not apply if the spacing is equal to 0.3 or greater than 0.4 and less than 0.42.

Example 4: minSideSpacing with facingEdges

The constraint applies only if edges are facing and the spacing is 0.4 or greater.

Example 5: minSideSpacing with otherFacingEdgeRange

The constraint applies only if the edges are facing and the spacing is 0.094 or greater.

Example 6: minSideSpacing with otherLayer

The spacing between M0 and VC must not exceed 0.04 with the given cutClass and cutWithin values.

Example 7: minSideSpacing with exceptIntersectLayers

Example 8: minSideSpacing with widthDiff

Example 9: minSideSpacing with orthogonalPair


Return to top
 ⠀
X