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

minExtensionToCorner

orderedSpacings(
( minExtensionToCorner tx_layer1 tx_layer2 
 {'toConcaveCorner 
  {['parallelExtension f_parExt 'width f_width 'length f_length]
   | ['convexLength f_convexLength 'enclosure (f_encl1 f_encl2)]
  }
   | 'toConvexCorner ['eolWidth f_eolWidth] ['minLength f_minLength]
 }
 ['cutClass {f_width | (f_width f_length) | t_name}]
 ['viaEdgeType x_viaEdgeType]
 ['extendCornerBy f_extendCorner]
 ['exceptCornerTouch]
 f_spacing
)
) ;orderedSpacings

(Virtuoso Advanced Node for Layout Standard) Specifies how far a layer2 shape must be from the corners of an enclosing layer1 shape. The corners can be either concave or convex.

For convex corners, the constraint value is used to define a keepout region that the layer2 shape must not overlap. This keepout region can be a triangle or a square depending on whether the 'eolWidth parameter is specified.

Values

tx_layer1

The first layer on which the constraint is applied.

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

tx_layer2

The second layer on which the constraint is applied.

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

f_spacing

The value that determines how far a layer2 shape must be from a corner of the enclosing layer1 shape. The type of corner, concave or convex, determines how the spacing between the layer2 shape and the corner is measured.

Parameters

'toConcaveCorner

The distance between an edge of a layer2 shape and a concave corner of the enclosing layer1 shape must be greater than or equal to the constraint value.

Type: Boolean

'parallelExtension f_parExt

  

The concave corner is extended by the constraint value on both sides along the edge of the layer1 shape perpendicular to the edge with width width to form a search window; the other side of the search window is equal to the width of the layer1 shape.

If a layer2 shape is found inside the search window, then the layer2 edge parallel to the layer1 edge that forms the concave corner (and belongs to the layer1 shape with width less than or equal to width) must have an enclosure greater than or equal to parExt. Enclosure is checked on a layer2 edge only if that edge overlaps the search window.

'width f_width

The constraint applies only if the width of the enclosing layer1 shape, an edge of which forms one part of the concave corner, is less than or equal to this value.

'length f_length

The constraint applies only if the length of the layer1 edge that forms the other part of the concave corner is greater than or equal to this value.

'convexLength f_convexLength

The constraint applies to a concave corner only if one of the edges that forms the concave corner is less than this value in length and connects to a convex corner at the other end.

'enclosure (f_encl1 f_encl2)

If an edge of a layer2 shape has an enclosure less than encl1 on an edge that forms a convex corner, the adjacent layer2 edges must have enclosures greater than encl2.

'toConvexCorner

A keepout region is defined in each convex corner of the shape on the first layer. If a shape on the second layer overlaps this keepout region, it is considered a violation.

  • If both 'toConvexCorner and 'eolWidth are specified, the keepout region is a triangle with side equal to the constraint value or the smaller edge length.
  • If only 'toConvexCorner is specified, the keepout region is a square with sides equal to the constraint value.

Type: Boolean

'eolWidth f_eolWidth

The constraint does not apply if a convex corner is formed by an end-of-line edge with width less than this value. In other words, a triangular keepout region must not touch an end-of-line edge with width less than this value.

'minLength f_minLength

The constraint does not apply if both adjoining edges of an end-of-line edge are greater than or equal to this value.

In other words, an edge with width less than eolWidth does not qualify as an end-of-line edge if the length of any of it adjoining edges is less than this value.

'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

'viaEdgeType x_viaEdgeType

The constraint applies only to the via cut edges of this type (the type is defined in the viaEdgeType constraint).

'extendCornerBy f_extendCorner

The constraint is applied after extending the corner by this value, both horizontally and vertically.

'exceptCornerTouch

The constraint does not apply if the layer2 shape touches a corner.

Type: Boolean

Examples

Example 1: minExtensionToCorner with toConvexCorner, eolWidth, and minLength

The distance of a VA via cut on layer Via1 from the convex corners of an enclosing Metal1 shape must be at least 0.05. The constraint does not apply if the convex corner is formed by an end-of-line edge less than 0.07 wide, whose both adjoining edges are greater than or equal to 0.05 long.

Both 'toConvexCorner and 'eolWidth are specified; therefore, the keepout region is a triangle.

Example 2: minExtensionToCorner with toConvexCorner

The distance of a Via1 via cut from the convex corners of an enclosing Metal1 shape must be at least 0.3.

Only 'toConvexCorner is specified; therefore the keepout region is a square.

Example 3: minExtensionToCorner with toConcaveCorner, parallelExtension, width, and length

The distance of a VA via cut on layer Via1 from the concave corners of an enclosing Metal1 shape must be at least 0.03. The constraint applies only if the following conditions are true:

Additionally, the edge of the via cut parallel to the metal edge with width less than or equal to 0.08 has enclosure greater than or equal to 0.02.

Example 4: minExtensionToCorner with toConcaveCorner, viaEdgeType, and exceptCornerTouch

The distance of a Via1 via cut edge of viaEdgeType 1 from a concave corner of an enclosing Metal1 shape must be at least 0.05 (via cut edges with Metal1 extensions less than or equal to 0.009 are of viaEdgeType 1). The constraint does not apply if the via cut touches the concave corner.

Example 5: minExtensionToCorner with toConcaveCorner, viaEdgeType, and exceptCornerTouch

The distance of a Via1 via cut edge of viaEdgeType 1 from a concave corner of an enclosing Metal1 shape must be at least 0.05 (via cut edges with Metal1 extensions greater than 0.009 or a pair of opposite edges with extensions less than or equal to 0.009 are of viaEdgeType 1).

Example 6: minExtensionToCorner with toConcaveCorner and extendCornerBy

The distance of a Via1 via cut from a concave corner of an enclosing Metal1 shape must be at least 0.05. The spacing is checked after extending the concave corner by 0.01 in both directions.


Return to top
 ⠀
X