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

minEndOfLineCutSpacing

orderedSpacings(
( minEndOfLineCutSpacing tx_cutLayer tx_metalLayer
 ['cutClass { f_width | (f_width f_length) | t_name }
  ['toCutClass 
   (
    ({ f_width1 | (f_width1 f_lenght1) | t_name1 } (f_cS1 f_cS2))
    …
   )
  ]
 ]
 'width f_width 
 'prl f_prl
 'enclosure (f_eolEnclosure f_otherEnclosure)
 'extension (f_sideExt f_backwardExt)
 'spanLength f_spanLength
 (f_cutSpacing1 f_cutSpacing2)
)
) ;orderedSpacings

Defines the minimum spacing required between via cuts that are near the end-of-line edges of the enclosing metal shape, based on the parallel run length (prl) between the via cuts.

The placement of the via cut within the enclosing metal shape, together with the end-of-line width and span length of the enclosing metal shape, determines the via cut edges that must satisfy the spacing requirement. For example, in the figure below:

Because the span length is less than spanLength, a neighboring wire must overlap with only the search region along the edge that satisfies otherEnclosure (and not with the other search region that is along the opposite edge)—a condition that is satisfied.

The cut spacing applies to the vertical blue edge of the via cut because it is opposite the end-of-line edge and to the horizontal blue edge of the via cut because it is opposite the edge that satisfies otherEnclosure.

In the next example shown in the figure below:

Because the via cut is within eolEnclosure of both end-of-line edges, the two search regions overlap, with one extending backward from the left end-of-line edge and the other extending backward from the right end-of-line edge, as shown below. This also means that there is no cut edge opposite the end-of-line edge to which the cut spacing applies. Therefore, the only edge to which the cut spacing applies is the horizontal blue edge opposite the edge that satisfies otherEnclosure. Note that a neighboring wire overlaps with both the search regions—a condition that must satisfied when span length is greater than or equal to spanLength.

If a cut layer has cut classes, only one minEndOfLineCutSpacing constraint should be defined for each cut class on that cut layer. If the cut layer does not have cut classes, only one minEndOfLineCutSpacing constraint should be defined for that layer.

Cut spacing based on the parallel run length between the via cuts is measured as shown below:

Values

tx_cutLayer

The cut layer on which the constraint is applied.

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

tx_metalLayer

The metal layer above the cut layer on which the constraint is applied.

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

f_cutSpacing1 f_cutSpacing2

The minimum cut spacing required based on the parallel run length (prl) between the two via cuts (cutSpacing1 is typically less than cutSpacing2).

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

'toCutClass (({ f_width1 | (f_width1 f_length1) | t_name1 }     (f_cS1 f_cS2)) …)

  

A list of cut classes and the required spacing from the named cut class to each cut class in the list.

'width f_width

The constraint applies only if the end-of-line width of the enclosing metal shape is less than this value.

'prl f_prl

  

The spacing between the two via cuts must be greater than or equal to:

  • cutSpacing1 if the parallel run length between the two via cuts is less than prl.
  • cutSpacing2 if the parallel run length between the two via cuts is greater than or equal to prl.

Both positive and negative values are allowed for prl.

'enclosure (f_eolEnclosure f_otherEnclosure)

  

The constraint applies only if the enclosure on the end-of-line edge is less than eolEnclosure and the enclosure on a cut edge orthogonal to the end-of-line edge is exactly equal to otherEnclosure.

'extension (f_sideExt f_backwardExt)

  

The two values together specify a search region that extends sideExt along the end-of-line edge with enclosure less than eolEnclosure, away from the wire, and backwardExt along an orthogonal edge.

'spanLength f_spanLength

  

The span length of the enclosing metal shape.

  • If the span length is less than this value, the constraint applies only if a neighboring wire overlaps with the search region along the edge that satisfies otherEnclosure (and not with the other search region that is along the opposite edge).
  • If the span length is greater than or equal to this value, a neighboring wire must overlap with the search regions along the edge on which the via cut has enclosure exactly equal to otherEnclosure.

Example

The cut spacing required between Via1 via cuts enclosed by a Metal2 shape is as follows:

orderedspacings(
    ( minEndOfLineCutSpacing "Via1" "Metal2"  
     'cutClass "VA" 
'toCutClass (("VB" (0.2 0.2)) ("VC" (0.3 0.3)))
'width 0.3
'prl 0
'enclosure (0.2 0.3)
'extension (0.4 0.4)
'spanLength 0.3
(0.5 0.6)
)
) ;orderedspacings

Return to top
 ⠀
X