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

endOfLineKeepout

spacings(
( endOfLineKeepout tx_layer 
 'width f_width
 ['horizontal | 'vertical]
 ['minEolWidth f_minEolWidth]
 ['widthRanges (g_widthRanges)] 
 ['cornerOnly 
  [{'exceptFromFrontEdge
     | 'exceptFromBackEdge 
   ['forwardGap f_forwardGap]           
   ['exactAligned f_exactAligned]
   ['extraForwardKeepout 
    (f_minKeepout f_maxKeepout)]
  }
  ​['otherEol ['dualEolSpacing f_minEolWidth f_maxEolWidth)]]
   ['twoSides]
  ]
  ['exceptSpacing t_spacing | 'exceptLineEndGap]
  ['withinCut t_withinCut
     'cutLayers l_cutLayers]
  ['exceptEolSpacing t_eolSpacing] 
 ] 
 ['diffMask |'sameMask]
 ['exceptSameMetal] ['exceptSideWithin f_withinRange]
 ['orGroupID x_orGroupID ['otherEndEol]] 
 ['insideLayers (tx_layer1 tx_layer2tx_layerN)
  ['insidePurposes (t_purpose1 t_purpose2t_purposeN)]
  |
  'outsideLayers (tx_layer1 tx_layer2tx_layerN)
  ['outsidePurposes (t_purpose1 t_purpose2t_purposeN)]
 ]
 ['exceptSameSideMetal (t_backwardExt1 t_sideExt1 t_forwardExt1)]
 ['exceptNoOppSideMetal (t_backwardExt2 t_sideExt2 t_forwardExt2)]
 ['eolSpacingRange g_eolSpacingRange
 ['eolSideExtensionRange f_eolSideExtensionRange]]
     ['otherEolSpacingRange g_otherEolSpacingRange]
 ['jointAsEol]  
 ['checkOtherWidth] | ['otherWidthRanges g_otherWidthRanges]
 ['equalRectWidth]
 ['ignoreJoint]
 ['orthogonalPair]
 ['mask1 | 'mask2 | 'mask3]
 (f_backwardExt f_sideExt f_forwardExt)
)
) ;spacings

Specifies the keepout region around the end-of-line edge for shapes with end-of-line width less than the given value. Shapes on the same layer must not intersect this keepout region, which extends both forward (forwardExt) and backward (backwardExt) from the end-of-line edge and on both sides (sideExt) of the end-of-line edge.

In some processes, a violation occurs if a corner of another shape intersects the keepout region, while in other processes, neither a corner nor an edge of another shape can intersect the keepout region. However, in some processes, an intersecting corner or edge of a contiguous same-metal shape is not considered a violation.

Values

tx_layer

The layer on which the constraint is applied.

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

f_backwardExt

The backward extension value of the keepout region.

f_sideExt

The side extension value of the keepout region.

f_forwardExt

The forward extension value of the keepout region.

Parameters

'width f_width

The constraint applies to shapes with end-of-line width less than this value.

'horizontal | 'vertical

(Virtuoso Layout Suite EXL and higher tiers) The direction in which the constraint is applied to ends-of-lines. If it is not specified, the constraint is applied to all ends-of-lines.

Type: Boolean

'minEolWidth f_minEolWidth

(Virtuoso Advanced Node for Layout Only) The constraint applies only if the end-of-line width is greater than or equal to the given value.

'widthRanges g_widthRanges

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only if the end-of-line width falls in these width ranges and also meets f_width.

Type: Floating-point numbers specifying width ranges

'cornerOnly

Only a corner inside the keepout region is a violation. Otherwise, an edge or a corner of a neighboring shape intersecting the keepout region is a violation.

Type: Boolean

'exceptSameMetal

The corner or edge of a contiguous same-metal shape intersecting the keepout region is not a violation.

Type: Boolean

'exceptFromFrontEdge

(Virtuoso Advanced Node for Layout Standard) Neighboring shapes that intersect the front (top) edge of the keepout region do not cause a violation.

Type: Boolean

'exceptFromBackEdge

(Virtuoso Advanced Node for Layout Standard) Neighboring shapes that intersect the back (bottom) edge of the keepout region do not cause a violation.

Type: Boolean

'forwardGap f_forwardGap

  

(Virtuoso Advanced Node for Layout Only) If the spacing between the shape that is face-to-face with the end-of-line shape (inside the search window defined by backwardExt, sideExt, and forwardGap) is less than the forwardGap value, then it must be equal to the forwardExt value specified for the constraint.

'exactAligned f_exactAligned

  

(Virtuoso Layout Suite EXL and higher tiers) A different spacing or search window extension between two aligned end-of-line edges with a same width to be the specified value.

'extraForwardKeepout (f_minKeepout f_maxKeepout)

  

(Virtuoso Layout Suite EXL and higher tiers) Specifies that an extra keepout is formed by the side extension and the specified values in the forward extension.

'otherEol

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies if the neighbor wire should also be an end-of-line.

'dualEolSpacing f_minEolWidth f_maxEolWidth

  

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies if the neighbor end-of-line has a width greater than or equal to the f_minEolWidth value and is less than the f_maxEolWidth value.

'mask1 | 'mask2 | 'mask3

(Virtuoso Advanced Node for Layout Only) The constraint applies only if the end-of-line shape is on the specified mask.

Type: Boolean

'twoSides

(Virtuoso Advanced Node for Layout Only) The constraint applies only if the end-of-line shape has two neighboring shapes, one on each side, in the keepout region.

Type: Boolean

'diffMask | 'samMask

(Virtuoso Layout Suite EXL and higher tiers) The mask type.

  • 'diffMask: The constraint applies only between shapes on different masks.
  • 'sameMask: The constraint applies only between shapes on the same mask.

Type: Boolean

'exceptSpacing t_spacing

(Virtuoso Layout Suite EXL and higher tiers) The constraint does not apply when the line-end spacing of the neighbor wire is equal to this given value.

'exceptLineEndGap

(Virtuoso Layout Suite EXL and higher tiers) The constraint does not apply if the lineEndGap constraint condition on this layer is met. This exemption would be applied on a triggering line end or as a neighbor wire meeting the lineEndGap constraint condition.

'withinCut t_withinCut 'cutLayers l_cutLayers

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies when there is a cut on one of the layers specified with l_cutLayers within the given value of t_withinCut to the line-end. A maximum of two cut layers can be specified with l_cutLayers.

'exceptEolSpacing t_eolSpacing

(Virtuoso Layout Suite EXL and higher tiers) The constraint does not apply when the spacing of the line-end edge is less than or equal to this value.

'exceptSideWithin f_withinRange

(Virtuoso Advanced Node for Layout Standard) The extension values (lowSideExt and highSideExt) that define the exemption regions on both sides of the end-of-line edge. Shapes that intersect these exemption regions do not cause a violation.

'orGroupID x_orGroupID

(Virtuoso Advanced Node for Layout Standard) An ID of type integer. All constraints with the same ID are treated as OR constraints; constraints with a different ID are treated as AND constraints. Typically, 'orGroupID is used with one constraint value for an 'exceptFromBackEdge region and with another constraint value for an 'exceptFromFrontEdge region. In such cases, it is a violation if both constraints fail on the same side of the end-of-line shape.

'otherEndEol

(Virtuoso Advanced Node for Layout Only) If the edge found inside the keepout region is an end-of-line edge, a violation occurs only if this "other" end-of-line edge also fails all endOfLineKeepout constraints in an OR or AND group. This parameter must be specified along with 'exceptFromBackEdge to ensure symmetry, which means that either end-of-line edge as a trigger edge can find the other end-of-line edge.

Type: Boolean

'insideLayers (tx_layer1 tx_layer2tx_layerN)
| 'outsideLayers (
tx_layer1 tx_layer2tx_layerN)

Determines if the constraint applies, based on the presence or absence of one or more layers.

  • 'insideLayers: The constraint applies only if the shapes on the specified layer (layer) overlap a shape on one of these layers (layer1 layer2layerN).
  • 'outsideLayers: The constraint applies only if the shapes on the specified layer (layer) overlap the region outside the shapes on one of these layers (layer1 layer2layerN).

For more information, see Region-based Rule (One layer).

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

'insidePurposes (t_purpose1 t_purpose2t_purposeN)

The 'insideLayers parameter is limited to only the specified purposes.

Type: String (purpose name)

'exceptSameSideMetal (t_backwardExt1 t_sideExt1 t_forwardExt1)

(Virtuoso Layout Suite EXL and higher tiers) Specifies a search window formed by three values defining the backward extension, side extension, and forward extension based on the line-end. If there is another wire in that window on the same side of a wire triggering the violation, the constraint does not apply.

'exceptNoOppSideMetal (t_backwardExt2 t_sideExt2 t_forwardExt2)

(Virtuoso Layout Suite EXL and higher tiers) Specifies a search window formed by three values defining the backward extension, side extension, and forward extension based on the line-end. If there is no wire in the window on the opposite side of a wire triggering the violation, the violation is exempted.

'outsidePurposes (t_purpose1 t_purpose2t_purposeN)

The 'outsideLayers parameter is limited to only the specified purposes.

Type: String (purpose name)

'eolSpacingRange g_eolSpacingRange

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies when the spacing of the line-end edge of the triggering EOL is in this range.

'eolSideExtensionRange f_eolSideExtensionRange

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies when no shapes are present in the window formed with the EOL spacing and the value specified by this parameter.

'jointAsEol

(Virtuoso Layout Suite EXL and higher tiers) The two edges at the joint of two intersecting shapes are also treated as end-of-line. For the edge to be considered end-of-line, one of the edges of the intersecting shapes that forms the joint edge must have width less than the width parameter.

'checkOtherWidth | 'otherWidthRanges (g_otherWidthRanges)

  • 'checkOtherWidth: (Virtuoso Layout Suite EXL and higher tiers) The constraint applies when the width of the other shape is also less than the width parameter. Additionally, the width of the other shape is checked only in the direction orthogonal to the direction parameter, if specified.
  • 'otherWidthRanges: The constraint applies only if the width of the other shape falls in one of these ranges. Type: Floating-point values specifying a range of widths that trigger the constraint

'equalRectWidth

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only if the length of the end-of-line edge is equal to the width of the shape.

'ignoreJoint

(Virtuoso Layout Suite EXL and higher tiers) The constraint ignores violations for the joint inside the keepout region.

'orthogonalPair

(Virtuoso Layout Suite EXL and higher tiers) The constraint applies only to the shapes in orthogonal directions.

Examples

Example 1: endOfLineKeepout

The keepout region for a wire with end-of-line width less than 0.2 and minimum EOL width less than or equal to 0.05 is defined by backward, side, and forward extension values of 0.03, 0.05, and 0.1, respectively. The constraint is violated if the corner or edge of a neighboring shape intersects the keepout region.

Example 2: endOfLineKeepout with widthRanges

Example 3: endOfLineKeepout with cornerOnly and exceptFromFrontEdge

The keepout region for a wire with end-of-line width less than 0.2 is defined by backward, side, and forward extension values of 0.03, 0.05, and 0.1, respectively. The constraint is violated if the corner of a neighboring shape, which is not coming from the front edge of the keepout region, intersects the keepout region.

Example 4: endOfLineKeepout with exceptSideWithin

The keepout region for a wire with end-of-line width less than 0.2 is defined by backward, side, and forward extension values of 0.03, 0.15, and 0.1, respectively. The constraint is violated if the corner of a neighboring shape, which is not coming from the front edge of the keepout region, intersects the keepout region, except when it overlaps the exempted regions.

Example 5: endOfLineKeepout with forwardGap

The keepout region for a wire with end-of-line width less than 0.2 is defined by backward, side, and forward extension values of 0.03, 0.05, and 0.1, respectively. If the distance between the wire and a face-to-face shape is less than 0.15, then the spacing between them must be 0.1 (the forward extension value).

Example 6: endOfLineKeepout with orGroupID (OR)

Two keepout regions for a wire with end-of-line width less than 0.2 are defined by backward, side, and forward extension values of 0.03, 0.05, and 0.0, respectively, for region 1, and 0.0, 0.05, and 0.1, respectively, for region 2. The constraint is violated if all of the following conditions are met:

Example 7: endOfLineKeepout with orGroupID (OR and AND)

In the following example, a violation occurs if all of the first three rules fail or if both of the last two rules fail:

spacings(
    ( endOfLineKeepout "Metal1" 'width 0.06
     'cornerOnly
'exceptFromFrontEdge
'orGroupID 1
(0.00 0.08 0.12)
)
( endOfLineKeepout "Metal1" 'width 0.06
'cornerOnly
'exceptFromBackEdge
'orGroupID 1
(0.04 0.08 0.00)
)
( endOfLineKeepout "Metal1" 'width 0.06
'cornerOnly
'orGroupID 1
(0.04 0.06 0.12)
)
( endOfLineKeepout "Metal1" 'width 0.09
'cornerOnly
'exceptFromFrontEdge
'orGroupID 2
(0.04 0.08 0.12)
)
( endOfLineKeepout "Metal1" 'width 0.09
'cornerOnly
'exceptFromBackEdge
'orGroupID 2
(0.04 0.00 0.12)
)
) ;spacings

Example 8: endOfLineKeepout with mask, twoSides, and diffMask

The keepout region for a wire with end-of-line width less than 0.2 is defined by backward, side, and forward extension values of 0.03, 0.05, and 0.1, respectively. The constraint applies only to a mask1 wire with two neighboring wires on a different mask, one on each side. The neighboring wires must also satisfy 'cornerOnly and 'exceptFromBackEdge.

Example 9: endOfLineKeepout with otherEndEol

Two endOfLineKeepout constraints in an OR group define two keepout regions for wires with end-of-line width less than 0.1; region 1 with backward, side, and forward extensions of 0.0, 0.2, and 0.2, respectively; and region 2 with backward, side, and forward extensions of 0.0, 0.0, and 0.15, respectively. A violation does not occur if an end-of-line edge that passes one of the constraints in the OR group is found inside the keepout region.

Example 10: endOfLineKeepout with exceptSameSideMetal

The following diagram illustrates the exceptSameSideMetal parameter.

Example 11: endOfLineKeepout with exceptNoOppSideMetal

The following diagram illustrates the exceptNoOppSideMetal parameter.

Example 12: endOfLineKeepout with exceptSpacing and exceptEolSpacing

The first constraint applies only when the neighbor wire has another wire with an end-of-line spacing of exactly 0.06. The second constraint applies only when there is a cut on either Via1 or Via2 within 0.05 from the end-of-line edge.

spacings(
    (endOfLineKeepout "Metal1" 'width 0.08 
     'cornerOnly 'exceptSpacing 0.06
(0.03 0.06 0.07))
(endOfLineKeepout "Metal1" 'width 0.08
'cornerOnly 'exceptEolSpacing 0.06
'withinCut 0.05 'cutLayers ("Via1" "Via2")
(0.03 0.06 0.07))
) ;spacings

Example 13: endOfLineKeepout with eolSpacingRange and otherEolSpacingRange

The following examples illustrate the eolSpacingRange and otherEolSpacingRange parameters.

Example 14: endOfLineKeepout with jointAsEol

Two edges at a joint of two intersecting shapes are treated as end-of-line when one of the edges of the intersecting shapes that forms the joint edge has width less than 0.6.

Example 15: endOfLineKeepout with checkOtherWidth

The constraint applies when the width of the other shape is also less than 0.6. Additionally, the width of the other shape is checked only in the direction orthogonal to the direction parameter, which is specified here as horizontal.

Example 16: endOfLineKeepout with equalRectWidth

The constraint applies only if the length of the end-of-line edge is equal to 0.6.

Example 17: endOfLineKeepout with ignoreJoint

The constraint does not apply when the end-of-line keepout region contains only wire joints.


Return to top
 ⠀
X