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

minExtensionEdge

spacings(
( minExtensionEdge tx_layer1 tx_layer2
 ['cutClass {f_width | (f_width f_length) | t_name}]
 ['includeCorner]
 'width f_width ['maxWidth f_maxWidth]
 'paraLength f_parLength
 ['within {f_parWithin | (f_minWithin f_maxWithin)}]
 ['paraEdgeWidth f_parWidth]
 ['exceptExtraCut ['distanceWithin f_distance]]
 ['exceptTwoEdges ['exceptWithin f_exceptWithin]]
 f_extension 
)
     ( minExtensionEdge tx_layer1 tx_layer2
 ['cutClass {f_width | (f_width f_length) | t_name}]
 ['includeCorner]
 'minSpanLength f_spanLength 
 ['maxSpanLength f_maxSpanLength]
 ['paraLength f_parLength]
 ['within {f_parWithin | (f_minWithin f_maxWithin)}]
 ['paraEdgeWidth f_parWidth]
 ['exceptExtraCut ['distanceWithin f_distance]]
 ['exceptTwoEdges ['exceptWithin f_exceptWithin]]
 f_extension 
)
     ( minExtensionEdge tx_layer1 tx_layer2
 ['cutClass {f_width | (f_width f_length) | t_name}]
 ['includeCorner]
 'convexLength f_convexLength
  'adjacentLength f_adjLength
  'minLength f_minLength
  'paraWithin f_paraWithin
 f_extension 
)
     ( minExtensionEdge tx_layer1 tx_layer2
 ['cutClass {f_width | (f_width f_length) | t_name}]
 'twoSides 
  ['eolWidth f_eolWidth]
  ['exceptConcaveCorner f_exceptConcaveCorner]
  ['cutToMetalSpace f_cutToMetalSpace 
   ['layer f_layer] ['edgeExtension f_edgeExtension]
  ]
  ['horizontal | 'vertical]
  ['insideLayers (tx_layer3 tx_layer4 … tx_layerN)
   ['insidePurposes (t_purpose1 t_purpose2 … t_purposeN)]
   |
   'outsideLayers (tx_layer3 tx_layer4 … tx_layerN)
   ['outsidePurposes (t_purpose1 t_purpose2 … t_purposeN)]
  ]
 f_extension
)
) ;spacings

Specifies the minimum extension of a shape on one layer past a shape on another layer. Typically, layer1 is a metal layer and layer2 is a cut layer. The layer1 edge that must satisfy the constraint is determined by any parallel neighboring edges that are present.

The extension value specified with this constraint is typically larger than the value specified using minExtensionDistance or minOppExtension constraints and applies if the metal shape enclosing the cut shape has width greater than minWidth and is less than parWithin away from a neighboring shape whose parallel run length with the enclosing metal shape is greater than parLength, as shown in the figure below. Additionally, the cut shape must have a parallel run length greater than zero with the neighboring shape.

The constraint may not apply if:

In some processes, the conditions illustrated in the figure below must be satisfied for the constraint to apply. The enclosing edge (EE) and an adjacent edge (AE1) must lie between two convex corners. Additionally, the cut must have parallel run length greater than 0 with neighboring shapes that are parallel to EE and the other adjacent edge (AE2).

Values

tx_layer1

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

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

tx_layer2

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

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

g_extension

The minimum extension value that must be satisfied.

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

'width f_width

The width of the enclosing layer1 shape must be greater than or equal to this value.

'maxWidth f_maxWidth

The width of the enclosing layer1 shape must be less than this value.

'within {f_parWithin | (g_minWithin g_maxWithin)}

The constraint applies if the distance between the enclosing layer1 edge and a parallel metal edge is less than parWithin, or if the distance between the two edges is greater than or equal to minWithin and less than maxWithin.

'paraLength f_parLength

The constraint applies only if the parallel run length between the enclosing layer1 shape and a neighboring edge is greater than this value (parLength).

'paraEdgeWidth f_paraEdgeWidth

The constraint applies only if the width of the parallel neighboring shape is greater than or equal to this value.

'exceptExtraCut

The constraint does not apply if there exists another layer2 shape in the same metal intersection.

Type: Boolean

'distanceWithin f_distanceWithin

If there are two layer2 shapes in the same metal intersection, then they must be at a distance greater than this value for the constraint to apply.

'exceptTwoEdges

The constraint does not apply if neighboring edges with parallel run length greater than parLength exist on opposite sides of the enclosing metal shape at a distance less than parWithin from it.

Type: Boolean

'exceptWithin f_exceptWithin

The constraint applies if the neighboring edges on opposite sides are at a distance less than this value.

'includeCorner

The constraint applies to the corner of the cut shape, using Euclidean measurement. This check is required if the cut shape is outside the projection of the neighboring shape.

Type: Boolean

'minSpanLength f_minSpanLength

The constraint applies only if the span length of the metal shape in the direction perpendicular to the parallel run length is greater than or equal to this value.

'maxSpanLength f_maxSpanLength

The constraint applies only if the span length of the metal shape in the direction perpendicular to the parallel run length is less than this value.

'twoSides

(Virtuoso Advanced Node for Layout Standard) If an edge of a layer2 shape has a layer1 extension less than or equal to the constraint value, then the entire opposite edge of the layer2 shape must also have an extension less than or equal to the constraint value.

Type: Boolean

'eolWidth f_eolWidth

The constraint applies only if the end-of-line width of the metal edges satisfying the 'twoSides extension requirement is greater than or equal to this value.

'exceptConcaveCorner f_exceptConcaveCorner

  

(Virtuoso Advanced Node for Layout Standard) The distance of a concave corner from a cut edge orthogonal to the cut edges satisfying the 'twoSides extension requirement must be greater than this value. The distance to the concave corner is measured after projecting the extension value on the orthogonal bottom edge.

'cutToMetalSpace f_cutToMetalSpace

The distance of a cut edge satisfying the 'twoSides extension requirement to a different-net wire must be greater than or equal to this value.

'layer tx_layer

(Virtuoso Advanced Node for Layout Only) The metal layer to which 'cutToMetalSpace spacing must be measured.

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

'edgeExtension f_edgeExtension

(Virtuoso Advanced Node for Layout Only) The cut to different-net spacing of a cut edge satisfying the 'twoSides extension requirement is measured after projecting this extension value on the metal edge in the direction of the cut edge.

'convexLength f_convexLength

The constraint applies only if the length of the enclosing edge (EE) is less than or equal to this value.

In addition, the 'adjacentLength, 'minLength and 'paraWithin parameters must be specified and met.

'adjacentLength f_adjLength

The constraint applies only if the length of the adjacent edge (AE1) lying between two convex corners is less than or equal to this value.

'minLength f_minLength

The constraint applies only if the length of the other adjacent edge (AE2) is greater than or equal to this value.

'paraWithin f_paraWithin

  

The constraint applies if the distance of both the enclosing edge (EE) and the other adjacent edge (AE2) from its neighboring edge is less than this value.

'horizontal | 'vertical

(Virtuoso Advanced Node for Layout Standard) The direction in which the extension is measured.

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

(Virtuoso Advanced Node for Layout Standard) 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)

(Virtuoso Advanced Node for Layout Standard) The 'insideLayers parameter is limited to only the specified purposes.

Type: String (purpose name)

'outsidePurposes (t_purpose1 t_purpose2t_purposeN)

(Virtuoso Advanced Node for Layout Standard) The 'outsideLayers parameter is limited to only the specified purposes.

Type: String (purpose name)

Examples

Example 1: minExtensionEdge with width, paraLength, and within

The extension of a Metal1 shape with minimum width 0.2 past a Via1 cut must be at least 0.05 in the direction of a neighboring Metal1 edge less than 0.11 away, when the parallel run length for the Metal1 shapes is greater than 0.25.

Example 2: minExtensionEdge with exceptTwoEdges

The extension of a Metal1 shape with minimum width 0.2 past a Via1 cut must be at least 0.05 in the direction of a neighboring Metal1 edge greater than or equal to 0.08 and less than 0.1 away from it, when the parallel run length for the Metal1 shapes is greater than 0.5. The constraint does not apply if such neighboring shapes are present on both sides, except when their distance from the enclosing shape is less than 0.12.

Example 3: minExtensionEdge with paraEdgeWidth and includeCorner

The extension of a Metal1 shape with minimum width 0.2 past a Via1 cut must be at least 0.05, for edges as well as corners, in the direction of a neighboring Metal1 edge less than 0.1 away from it, when the parallel run length for the Metal1 shapes is greater than 0.5. The width of the neighboring shape must be at least 0.2.

Example 4: minExtensionEdge with twoSides and eolWidth

The extension of a Metal1 shape past a Via1 cut must be at least 0.02 along the entire length of a pair of opposite edges of the cut shape, and the end-of-line width of the metal edges that satisfy the 'twoSides requirement must be at least 0.15.

Example 5: minExtensionEdge with exceptConcaveCorner and cutToMetalSpace

The extension of a Metal1 shape past a Via1 cut must be at least 0.02 along the entire length of a pair of opposite edges of the cut shape. The following conditions must also be satisfied:

Example 6: minExtensionEdge with cutToMetalSpace, layer, and edgeExtension

The extension of a Metal1 shape past a Via1 cut must be at least 0.02 along the entire length of a pair of opposite edges of the cut shape, and the distance of a cut edge, satisfying the extension requirement, from a different-net wire must be greater than or equal to 0.07. Additionally, this distance must be measured after projecting the metal edge by 0.03 along the direction of the cut.

Example 7: minExtensionEdge with minSpanLength

The extension of a Metal1 shape with minimum span length 0.2 past a Via1 cut must be at least 0.02 in the direction of a neighboring Metal1 edge less than 0.09 away, when the parallel run length for the Metal1 shapes is greater than 0.01.

Example 8: minExtensionEdge with convexLength

The extension of a Metal1 edge—enclosing edge (EE)—past a Via1 cut must be at least 0.02 if the following conditions are true:


Return to top
 ⠀
X