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

minCutRoutingSpacing (Two layers)

orderedSpacings(
( minCutRoutingSpacing tx_layer1 tx_layer2
 ['overlappingLayer layer1]
 ['horizontal | 'vertical] 
 ['cutClass {f_width | (f_width f_length) | t_name}]
 ['exceptSameNet ['shortEdge ['shortEdgePrl f_prl]] 
  | 
  'toConcaveCorner ['prl f_prl]
  | 1
  'toDiffConcaveCorner  
 ]
 ['enclosingLayer tx_enclLayer 
  ['viaEdgeType x_viaEdgeType]
  ['enclosingLayerWidth f_enclWidth 
   ['anyOppositeExtension f_oppExtension]
  ]
 ]
 ['widthHorizontal | 'widthVertical]
 ['parallelEdgeWithin f_parWithin 'otherExtension f_otherExtension]
 ['parallelExtension f_parExtension] 
 ['maskOverlap | 'metalOverlap] 
 ['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]
 f_spacing
)
) ;orderedSpacings

Specifies the minimum spacing between a shape on a cut layer (layer1) and a shape on a routing layer (layer2). This constraint can be used to define the spacing between specific cut classes and neighboring metal shapes.

The cut shape to concave corner spacing applies only for a wire with default wire width containing the cut if all of the following conditions are true:

Values

tx_layer1

The first layer (cut layer) on which the constraint is applied.

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

tx_layer2

The second layer (routing layer) on which the constraint is applied.

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

f_spacing

The minimum required Euclidean spacing between the two layers.

Parameters

'overlappingLayer layer1

  

The constraint applies only when this metal layer overlaps both via and metal.

'horizontal | 'vertical

  

(Virtuoso Layout Suite EXL and higher tiers) The direction in which spacing is measured. If the direction is not specified, the spacing is measured in all applicable directions.

Type: Boolean

'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

'exceptSameNet

The constraint does not apply to shapes on the same net.

Type: Boolean

'shortEdge

The constraint applies only between a metal edge and a short edge of a rectangular cut shape.

Type: Boolean

'shortEdgePrl f_prl

(Virtuoso Advanced Node for Layout Only) The constraint applies between a metal edge and a short edge of a rectangular cut shape only if the parallel run length between them is greater than this value.

'toConcaveCorner

The constraint applies between a cut shape and a concave corner of the enclosing metal shape.

Type: Boolean

'prl f_prl

(Virtuoso Advanced Node for Layout Standard) The constraint applies only if the cut edges with zero extension have parallel run length greater than this value with the neighboring shapes on the layers above and below the cut layer.

The parallel run length is measured in an orthogonal direction to the spacing direction, if specified.

Type: Boolean

'toDiffConcaveCorner

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only between a cut and a different-metal concave corner.

'enclosingLayer tx_enclLayer

  

(Virtuoso Advanced Node for Layout Standard) The enclosing layer for 'viaEdgeType extension checks.

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

'viaEdgeType x_viaEdgeType

(Virtuoso Advanced Node for Layout Standard) The constraint applies only to the cut edges of this type (the type is defined in the viaEdgeType constraint).

'enclosingLayerWidth f_enclWidth

(Virtuoso Advanced Node for Layout Standard) The constraint applies only if the width of the enclosing shape on layer enclLayer is greater than or equal to this value.

'anyOppositeExtension f_oppExtension

(Virtuoso Advanced Node for Layout Standard) The constraint applies only if a cut shape has extensions less than this value on any two opposite sides.

'widthHorizontal | 'widthVertical

(Virtuoso Advanced Node for Layout Only) The direction in which the width of the wire specified by enclosingLayer parameter is measured.

'parallelEdgeWithin f_parWithin

(Virtuoso Advanced Node for Layout Standard) The constraint applies only if the neighboring shape on the metal layer below is at a distance equal to this value minus 0.001 (parWithin - 0.001) and the neighboring shape on the metal layer above is at a distance less than this value from the cut shape edges with zero extension.

'otherExtension f_otherExtension

(Virtuoso Advanced Node for Layout Standard) The constraint applies only if a cut shape with zero extension on two opposite sides has an extension less than this value on the other two opposite sides.

'parallelExtension f_parExtension

  

(Virtuoso Advanced Node for Layout Standard) The cut edges that do not fulfill the overhang requirement specified by minExtensionEdge are extended on both sides by this value before the spacing required by minCutRoutingSpacing is applied between an extended cut edge and a neighboring shape on layer2.

'maskOverlap | 'metalOverlap

The constraint applies as follows:

  • 'maskOverlap: (Virtuoso Advanced Node for Layout Standard) The constraint applies between a cut shape and the edge of an overlap between two metal shapes on two different masks.
  • 'metalOverlap: (Virtuoso Layout Suite EXL and higher tiers) The constraint applies between a cut shape and the edge of the overlap of metal shapes.

Type: Boolean

'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)
| 'outsidePurposes (
t_purpose1 t_purpose2t_purposeN)

The 'insideLayers and 'outsideLayers parameters are 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 layer1 (the cut shape) and layer2 (the metal 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|)

Examples

Example 1: minCutRoutingSpacing with cutClass, exceptSameNet and shortEdge

The spacing between the short edge of a Via1 via cut of type VB (0.4x0.6) and a Metal2 shape must be at least 0.1 if the via cut and the Metal2 wire are not on the same net.

Example 2: minCutRoutingSpacing with cutClass, toConcaveCorner, prl, parallelEdgeWithin, and otherExtension

The spacing between a Via1 via cut of type VA and a concave corner of an enclosing Metal2 wire must be at least 0.04 if all of the following conditions are satisfied:

Example 3: minCutRoutingSpacing with enclosingLayer, viaEdgeType, and enclosingLayerWidth

The spacing between a Via1 via cut and a neighboring Metal1 wire must be at least 0.08. The constraint applies only to via cuts that do not have two opposite edges with extensions less than or equal to 0.009.

Example 4: minCutRoutingSpacing with cutClass and maskOverlap

The spacing between a Via1 via cut of type VA and the overlap of two Metal2 shapes on different masks must be at least 0.05.

Example 5: minCutRoutingSpacing with anyOppositeExtension and deltaVoltage

The spacing between a Via1 via cut and a neighboring Metal1 wire must be at least 0.04. The constraint applies only to via cuts that do not have two opposite edges with extensions less than or equal to 0.0055. The distance between the via edge to another metal must be more than or equal to 0.04.

Example 6: minCutRoutingSpacing with metalOverlap

The Via1 cut shape is not allowed to intersect the overlap area of the Metal1 shapes.


Return to top
 ⠀
X