minEndOfLineSpacing
Specifies the minimum spacing between the end of a line and its neighboring geometry. The constraint definition supports optional parameters to specify when the constraint applies.
-
The constraint applies only when the width of the end-of-line wire is less than a specified value (
widthparameter) or within a specified range (widthRangeArrayparameter). -
The constraint applies when any geometry occurs within a region defined by the minimum end-of-line spacing (
minEndOfLineSpacingconstraint), the distance (distanceparameter) from each side of the wire and the width of the wire. -
The constraint applies only if one parallel edge is within a specified rectangular region from the corners of the end-of-line wire, or it applies only if two parallel edges are within a specified rectangular region from the corners of the end-of-line wire. The dimensions of the rectangular region are given by the distance perpendicular to the wire (
parallelEdgeSpaceparameter), the distance from the end-of-line along the wire (parallelEdgeWithinparameter), and the lateral verification distance (distanceparameter). - The constraint applies when no parallel edges occur within the region defined by the minimum end-of-line spacing, or when one parallel edge occurs within the region defined by the minimum end-of-line spacing, or when two parallel edges occur within the region defined by the minimum end-of-line spacing.
minEndOfLineSpacing Quick Reference
Value Type
minEndOfLineSpacing constraints have a Value that represents the minimum spacing between the end of a line and its neighboring geometry. Typically, the minEndOfLineSpacing is slightly larger than the minimum required spacing (minSpacing).
The application of the End-of-Line Spacing rule is dependent on the given count parameter:
In this case, an end-of-line with a width less than eolWidth requires spacing greater than or equal to eolSpace beyond the end-of-line anywhere within (that is, less than) eolWithin distance.

In this case, the end-of-line rule applies only if there is one parallel edge that is less than parSpace away, and is also less than parWithin from the end-of-line and eolWithin beyond the end-of-line.

In this case, the End-of-Line Spacing rule is triggered if there are two parallel edges that are less than parallelEdgeSpace from the end-of-line wire within the regions given by the distance and the parallelEdgeWithin parameters as shown in the following figure.








Parameters
One of the following parameters must be specified:
-
width(Value, required) is the width of the end-of-line wire (eolWidth). The constraint applies only when the wire width is less than the specifiedwidthparameter value. -
widthRangeArray(RangeArrayValue, required) specifies that the constraint applies only to end-of-line edges with edge length in this range, specified in user units.
The following parameters specify the remaining conditions for the constraint:
-
distance(Value, required) is the lateral verification distance (eolWithin) from the end-of-line wire for the spacing check. The constraint applies anywhere laterally beyond the end-of-line within (<)distance. Also specifies the distance beyond the end-of-line edge for the parallel-edge check region whencountis greater than 0. -
count(IntValue, optional) is the number of parallel edges that trigger this constraint and is an integer value of 0, 1, or 2. When this value is 1 or 2, you must also specifyparallelEdgeSpaceandparallelEdgeWithinparameters. When count = 2, the two parallel edges must be on opposite sides of the end-of-line. -
minOppositeWidth(Value, optional) specifies that the constraint applies only if a wire beyond the end-of-line edge has a perpendicular span to the EOL edge that is less than this value. -
minLength(Value, optional) with thetwoSidesparameter, specifies when the end-of-line applies, based on the side lengths of the end-of-line. -
twoSides(BoolValue, optional) applies only whenminLengthis given and determines when the constraint applies. -
maxLength(Value, optional) specifies that the constraint does not apply if both sides of the end-of-line are longer thanmaxLength. -
endToEndSpacing(Value, optional) specifies that the constraint only applies when there is another end-of-line within (less than) this distance. Use this parameter to specify end-to-endminEndOfLineSpacingthat is different fromminEndOfLineSpacingrequired for end-to-perpendicular shapes.-
oneCutSpace(Value, optional) applies only whenendToEndSpacingis specified. TheoneCutSpaceparameter specifies the spacing required between an end-of-line which touches a single cut, and another that does not. -
twoCutSpace(Value, optional) applies only whenendToEndSpacingis specified. ThetwoCutSpaceparameter specifies the spacing required between two end-of-lines, both of which touch a via cut. -
otherEndWidth(Value, optional) specifies that another shape’s width must be less than this value for it to be considered an end-of-line. This is used with theendToEndSpacingparameter to qualify the other end-of-line and with theeolAddSpaceparameter to extend the end for stricter spacing. -
bothWires(BoolValue, optional) if true, specifies that theendToEndSpacingcheck only applies if both shapes satisfy the parametersminLengthandmaxLength. ThebothWiresparameter should be only specified ifendToEndSpacingand at least one ofminLengthormaxLengthis specified, else it is not applicable. The default value of this parameter is false. When false, only one of the two shapes must satisfy theminLengthandmaxLengthparameters.
-
-
equalRectWidth(BoolValue, optional) specifies that the constraint applies only when the length of the end-of-line edge is smaller than or equal to the wire width. If there are more than oneminEndOfLineSpacingconstraints with theequalRectWidthparameter set for a given layer, then all of them must haveequalRectWidthset. -
eolAddSpace(OneDTblValue, custom/optional) specifies that any shape whose width maps to a non-zero spacing value in the table is effectively extended by the given amount. In addition, the spacing measurement becomes Euclidean (radial). By default, Manhattan spacing is used for end-of-line spacing. -
rightDirExtension(Value, optional) specifies the lateral checking distance used to check end-of-line spacing between two end-of-lines routed in the preferred direction. -
wrongDirExtension(Value, optional) specifies the lateral checking distance used to check end-of-line spacing between two end-of-lines routed in the non-preferred direction. -
oaConnectivityType(IntValue, optional) specifies the shapes to which this constraint applies, based on their connectivity, as given in Table .String Value Constraint applies to: -
oaSpacingDirection(StringAsIntValue, optional) specifies the measurement direction. anyDirection 0 Horizontally and vertically (default) horizontalDirection 1 Horizontally only verticalDirection 2 Vertically only -
extendBy(Value, optional) specifies that the end-of-line edge must be extended in the projection direction by this distance before checking. This extension applies to both the end-of-line edge and the adjacent shape. -
sizeBy(Value, optional) specifies that the end-of-line edge must be extended by this distance on both sides before checking. -
wrongDirWithin(Value, optional) specifies the lateral checking distance used for wires running in the non-preferred direction, which is different from that used for preferred direction wires. If this parameter is specified, the existingdistanceparameter only specifies the preferred direction lateral verification distance. -
diffMask(BoolValue, optional), whentrue, specifies that the constraint applies only between shapes on different masks. The default isfalse. -
sameMask(BoolValue, optional) specifies whether the constraint applies only between shapes on the same mask (true) or between all shapes on the given layer (false/default). Whentrue, the constraint specifies end-to-side or end-to-end spacing for advanced nodes. End-to-end same mask spacing also requiresendToEndSpacingandotherEndWidthparameters. -
cutEolSpace(Value, optional) specifies the spacing required if the metal end-of-line edge under consideration intersects a cut shape on the cut layer either above or below the metal layer. This is spacing to another non-end-of-line edge.-
cutClass(DualValue, optional) used withcutEolSpaceto specify the via width and height for which the constraint applies. -
cutLayerEol(IntValue, optional) used withcutEolSpaceto specify that the cutEolSpace is only applied if the metal end-of-line touches a cut shape in the cut layer above, below, or both (default). -
enclosureEndWidth(Value, optional) used withcutEolSpace. TheminEndOfLineSpacingconstraint applies to an end-of-line edge touching a via cut if the edge length is less than this parameter value. -
enclosureEndWithin(Value, optional) specifies the lateral verification distance for ends-of-lines touching via cuts applied in end-of-line to non-end-of-line spacing. If this parameter is specified, thenenclosureEndWidthmust also be specified. SeerightDirExtensionandwrongDirExtensionfor lateral verification distance used in end-to-end spacing checks.
-
-
exactEolWidth(BoolValue, optional) specifies that the rule applies only if the edge width is equal to the specified end-of-line width. -
wrongDirSpace(IntValue, optional) specifies the minimum end-of-line spacing to be used for wires running in the non-preferred direction, which is different from that used for preferred direction wires. -
exceptExactAligned(BoolValue, optional), whentrue, specifies that the constraint does not apply to shapes that are aligned.
These parameters specify conditions when there are edges parallel to the end-of-line. The count parameter specifies the number of parallel edges (1 or 2) that must exist for the constraint to apply.
-
parallelEdgeSpace(Value, required whencount> 0) is the distance (parSpace) perpendicular to the end-of-line wire. -
parallelEdgeWithin(Value, required whencount> 0) is the distance (parWithin) along the end-of-line wire. -
parallelEdgeMinLength(Value, optional) specifies that the constraint applies only when the end-of-line length is greater than or equal to this value. -
subtractEndOfLineWidth(BoolValue, optional) specifies that the parSpace should be subtracted by the width of the end-of-line edge to define the distance in searching for a parallel neighbor edge.
The following parameters specify that the rule only applies if there is a cut above or below this metal that is less than enclosedDistance from the end-of-line edge, and the cut-edge-to-metal-edge space beyond the end-of-line edge is less than cutToMetalSpacing. If there is more than one cut connecting the same metal shapes above and below, only one cut needs to meet this rule.
-
cutToMetalSpacing(Value) specifies that the constraint applies only when there is a cut shape (enclosedCut) on the layer above or below the metal layer that is less than or equal to this distance from the metal edge. -
enclosedCut(StringAsIntValue) specifies which cuts are considered withcutToMetalSpacingas given in Table . -
enclosedDistance(Value, optional) specifies that the rule only applies if there is a cut above or below this metal that is less thanenclosedDistancefrom the end-of-line edge, and the cut-edge-to-metal-edge space beyond the end-of-line edge is less thancutToMetalSpacing. -
allCuts(BoolValue, optional) Whentrue, the constraint is checked for all cuts connecting the same metal shapes above and below.
Examples
- Example 1: minEndOfLineSpacing with count=0
- Example 2: minEndOfLineSpacing with count=1
- Example 3: minEndOfLineSpacing with count=2
- Example 4: minEndOfLineSpacing with maxLength
- Example 5: minEndOfLineSpacing with parallelEdgeMinLength and cutToMetalSpacing
- Example 6: minEndOfLineSpacing with equalRectWidth
- Example 7: minEndOfLineSpacing with endToEndSpacing and minLength
- Example 8: minEndOfLineSpacing with subtractEndOfLineWidth
- Example 9: minEndOfLineSpacing with minOppositeWidth and minLength
- Example 10: minEndOfLineSpacing with eolAddSpace, otherEndWidth and minLength
- Example 11: minEndOfLineSpacing with minLength and twoSides
- Example 12: minEndOfLineSpacing with oaSpacingDirection
- Example 13: minEndOfLineSpacing with widthRangeArray, extendBy and sizeBy
- Example 14: minEndOfLineSpacing with endToEndSpacing, extendBy and sizeBy
Example 1: minEndOfLineSpacing with count=0
In this example, any end-of-line that is less than 0.11μm wide requires spacing that is greater than or equal to 0.12 μm beyond the end-of-line, within 0.06 μm to either side. The following figure includes examples of this rule.

Example 2: minEndOfLineSpacing with count=1
In this example, any end-of-line shape that is less than 0.11 μm wide, with a parallel edge that is less than 0.12 μm away, and is within 0.05 μm of the end-of-line, requires spacing greater than or equal to 0.12μm beyond the end-of-line, when within 0.6 μm to either side of the end-of-line. The following figure includes examples of legal spacing for, and violations of, this rule.

Example 3: minEndOfLineSpacing with count=2
This example is similar to Example 2: minEndOfLineSpacing with count=1, except that the rule is triggered by two parallel edges. See minEndOfLineSpacing with count = 2 for a graphic example.
Example 4: minEndOfLineSpacing with maxLength

Example 5: minEndOfLineSpacing with parallelEdgeMinLength and cutToMetalSpacing


Example 6: minEndOfLineSpacing with equalRectWidth

Example 7: minEndOfLineSpacing with endToEndSpacing and minLength

Example 8: minEndOfLineSpacing with subtractEndOfLineWidth

Example 9: minEndOfLineSpacing with minOppositeWidth and minLength


Example 10: minEndOfLineSpacing with eolAddSpace, otherEndWidth and minLength

Example 11: minEndOfLineSpacing with minLength and twoSides

Example 12: minEndOfLineSpacing with oaSpacingDirection
In this example, the minimum end-of-line spacing measured in the horizontal direction is 0.05 user units for an end-of-line on Metal2 that is less than 0.03 in width, and applies only to vertical end-of-line edges. The violation area extends 0.03 to the sides of the end-of-line, as shown in the following figure.

Example 13: minEndOfLineSpacing with widthRangeArray, extendBy and sizeBy
In this example, the minimum spacing is 0.3 user units to an end-of-line edge with width less than or equal to 0.3, or equal to 0.6 or 0.8, when the end-of-line edge and the adjacent shape are extended by 0.2 in the projection direction, and the end-of-line edge is extended by 0.1 on both sides.

Example 14: minEndOfLineSpacing with endToEndSpacing, extendBy and sizeBy
In this example, the minimum spacing is 0.3 user units between end-of-line edges with width less than or equal to 0.3, or equal to 0.6 or 0.8, when both end-of-line edges are extended by 0.2 in the projection direction, and the target end-of-line edge is extended by 0.1 on both sides.

Related Topics
Return to top