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

viaEdgeType

spacings(
( viaEdgeType tx_layer 
 ['edgeExtension f_edgeExt]
 ['anyOppositeExtension f_oppEdgeExt]
 ['negateEdgeExtension]
 ['negateAnyOppositeExtension]
 ['metalWithin (g_metalPrl g_metalWithin)
  'noMetalWithin (g_noMetalPrl g_noMetalWithin)
  ['noMetalLowWithin g_noMetalLowWithin]
  {'horizontalEdge | 'verticalEdge}
  ['exceptSpacing g_exceptSpacing
  | 'exceptSpacingRange g_exceptSpacingRange]
  ['sameSide] 
 ]
x_viaEdgeType 
)
) ;spacings

Assigns a type to the edges of a shape on a cut layer. The constraint applies only if the entire length of a cut edge has extension less than or equal to the specified value. The assigned edge type can then be referenced in other constraints.

A cut edge fulfilling metalWithin and noMetalWithin conditions to any cut should be more than or equal to g_exceptSpacing. Search windows are formed on the opposite cut edges in the preferred direction on the above or below metal layers by using g_metalPrl and g_metalWithin on one of the cut edges and g_noMetalPrl and g_noMetalWithin on the opposite cut edge. The first metal search window overlaps a metal neighbor whereas the second metal search window does not overlap a metal neighbor. The cut edge without a metal neighbor is subject to this spacing rule.

In the following illustration, the preferred routing direction of the routing layer is verticalEdge. The red cut edge is subject to the cut spacing rules.

In the following illustration, the preferred routing direction of the routing layer is verticalEdge. Both windows are formed on the same cut edge. The red cut edge is subject to the cut spacing rules.

In the following illustration, the metal neighbors on the right have a spacing that is equal to g_exceptSpacing, which means that spacing rules do not apply to any cut edge in this case.

Values

tx_layer

The cut layer on which the constraint is applied.

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

x_viaEdgeType

The type assigned to the cut edges.

Parameters

'edgeExtension f_edgeExt

  

The constraint applies to cut edges with extension less than or equal to this value.

'anyOppositeExtension f_oppEdgeExt

  

The constraint applies only if a pair of opposite edges have extensions less than or equal to this value.

'negateEdgeExtension

  

The constraint applies to cut edges that do not satisfy 'edgeExtension.

'negateAnyOppositeExtension

  

The constraint applies only if 'anyOppositeExtension is not satisfied.

'metalWithin (g_metalPrl g_metalWithin)

(Virtuoso Layout Suite EXL and higher tiers) Specifies the metal parallel run length and within values of a cut having a metal neighbor to form a via edge type.

'noMetalWithin (g_noMetalPrl g_noMetalWithin)

(Virtuoso Layout Suite EXL and higher tiers) Specifies the metal parallel run length and within values of a cut not having a metal neighbor to form a via edge type.

'noMetalLowWithin g_noMetalLowWithin

(Virtuoso Layout Suite EXL and higher tiers) Specifies that no metal must be present in the search window formed between g_noMetalLowWithin and g_noMetalWithin.

'horizontalEdge | 'verticalEdge

(Virtuoso Layout Suite EXL and higher tiers) The cut edge direction to form the metal search windows.

'exceptSpacing g_exceptSpacing

(Virtuoso Layout Suite EXL and higher tiers) Specifies that the via edge type would not be formed when the line-end spacing of the neighbor wires is equal to the specified value on the cut edge not having a neighbor overlapping with the search window.

'exceptSpacingRange g_exceptSpacingRange

(Virtuoso Layout Suite EXL and higher tiers) Specifies that the via edge type would not be formed when the line-end spacing of the neighbor wires fulfills the specified spacing on the cut edge not having a neighbor overlapping with the search window.

'sameSide

(Virtuoso Layout Suite EXL and higher tiers) Specifies that both metal search windows must be formed on the same cut edge.

Examples

Example 1: viaEdgeType with edgeExtension

A via cut edge is of type 1 if it has an extension of less than or equal to 0.09 along the entire length of an edge.

Example 2: viaEdgeType with edgeExtension and anyOppositeExtension

A via cut edge or a pair of opposite via cut edges are of type 2 if they have extensions of less than or equal to 0.09 along the entire length of an edge.

Example 3: viaEdgeType with edgeExtension and negateEdgeExtension

A via cut edge is of type 3 if it has an extension of greater than 0.09 along the entire length of an edge.

Example 4: viaEdgeType with edgeExtension, anyOppositeExtension, and negateAnyOppositeExtension

A via cut edge is of type 4 if it has an extension of less than or equal to 0.09 along the entire length of the edge. A pair of opposite via cut edges are of type 4, if they have extensions greater than 0.09 along the entire length of the edge.

Example 5: viaEdgeType with metalWithin, noMetalWithin, horizontalEdge, and exceptSpacing

A via cut edge is of type 1 if the metalWithin and noMetalWithin values are as specified and the cut edge direction is horizontal, except when the line-end spacing of the neighbor wires is 0.1 on the cut edge not having a neighbor overlapping with the search window.

spacings(
    (viaEdgeType "Via2" 
     'metalWithin (0.03 0.04) 'noMetalWithin (0.06 0.08) 
'horizontalEdge
'exceptSpacing 0.1
1
)
) ;spacings

Return to top
 ⠀
X