Product Documentation
Virtuoso Space-based Router Constraint Reference
Product Version IC23.1, June 2023

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.

minEndOfLineSpacing Quick Reference

Constraint Type

Layer

Value Types

Value

Database Types

Design, Technology

Scope

design, foundry

Category

Spacing

Group Operators

AND, OR

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.

minEndOfLineSpacing with count = 0

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.

minEndOfLineSpacing with count = 1

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.

minEndOfLineSpacing with count = 2

minEndOfLineSpacing with minLength and/or maxLength

minEndOfLineSpacing with cutToMetalSpacing

minEndOfLineSpacing with endToEndSpacing

minEndOfLineSpacing with wrongDirWithin

minEndOfLineSpacing with cutEolSpace and enclosureEndWidth

minEndOfLineSpacing with endToEndSpacing and rightDirExtension

minEndOfLineSpacing with endToEndSpacing and wrongDirExtension

Parameters

One of the following parameters must be specified:

The following parameters specify the remaining conditions for the constraint:

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.

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.

Examples

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.

minEndOfLineSpacing with count=0

Format Example

Tcl

set_constraint_parameter -name width -Value .11
set_constraint_parameter -name distance -Value 0.06
set_constraint_parameter -name count -IntValue 0
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value .12

LEF

PROPERTY LEF58_SPACING \"SPACING 0.12 ENDOFLINE 0.11 WITHIN 0.06 ;\" ;

Virtuoso

spacings(  
( minEndOfLineSpacing \"Metal2\" (0.11 0.06 0.0 0.12) )
)

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.

minEndOfLineSpacing with count=1

Format Example

Tcl

set_constraint_parameter -name width -Value .11
set_constraint_parameter -name distance -Value 0.06
set_constraint_parameter -name count -IntValue 1
set_constraint_parameter -name parallelEdgeSpace -Value .12
set_constraint_parameter -name parallelEdgeWithin -Value .05
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value .12

LEF

PROPERTY LEF58_SPACING "SPACING 0.12 ENDOFLINE 0.11 WITHIN 0.06 PARALLELEDGE 0.12 WITHIN 0.05 ;" ;

Virtuoso

spacings(
( minEndOfLineSpacing "Metal2" (0.11 0.06 0.001 0.12 50 0.12) )
)

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.

Format Example

Tcl

set_constraint_parameter -name width -Value .11
set_constraint_parameter -name distance -Value 0.06
set_constraint_parameter -name count -IntValue 2
set_constraint_parameter -name parallelEdgeSpace -Value .12
set_constraint_parameter -name parallelEdgeWithin -Value .05
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value .12

LEF

PROPERTY LEF58_SPACING "SPACING 0.12 ENDOFLINE 0.11 WITHIN 0.06 PARALLELEDGE 0.12 WITHIN 0.05 TWOEDGES ;" ;

Virtuoso

( minEndOfLineSpacing  "Metal2" (0.11 0.06 0.002 0.12 .05 0.12) )

Example 4: minEndOfLineSpacing with maxLength

Format Example

Tcl

set_constraint_parameter -name width -Value .1 
set_constraint_parameter -name distance -Value 0.05
set_constraint_parameter -name count -IntValue 0
set_constraint_parameter -name maxLength -Value 0.08
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.12

LEF

PROPERTY LEF58_SPACING 
"SPACING 0.12 ENDOFLINE 0.1 WITHIN 0.05 MAXLENGTH 0.08 ;" ;

Example 5: minEndOfLineSpacing with parallelEdgeMinLength and cutToMetalSpacing

Format Example

Tcl

set_constraint_parameter -name width -Value 0.10 
set_constraint_parameter -name distance -Value 0.05
set_constraint_parameter -name count -IntValue 1
set_constraint_parameter -name parallelEdgeSpace -Value 0.10
set_constraint_parameter -name parallelEdgeWithin -Value 0.07
set_constraint_parameter -name parallelEdgeMinLength -Value 0.10
set_constraint_parameter -name enclosedCut \
-StrinAsIntValue cutIsBelow
set_constraint_parameter -name enclosedDistance -Value 0.06
set_constraint_parameter -name cutToMetalSpacing -Value 0.16
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.15

LEF

PROPERTY LEF58_SPACING 
"SPACING 0.15 ENDOFLINE 0.10 WITHIN 0.05 PARALLELEDGE 0.10
WITHIN 0.07 MINLENGTH 0.10 ENCLOSECUT BELOW 0.06 CUTSPACING 0.16 ;" ;

Example 6: minEndOfLineSpacing with equalRectWidth

Format Example

Tcl

set_constraint_parameter -name width -Value 0.25 
set_constraint_parameter -name distance -Value 0.10
set_constraint_parameter -name count -IntValue 0
set_constraint_parameter -name equalRectWidth -BoolValue true
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.15

LEF

PROPERTY LEF58_SPACING 
"SPACING 0.15 ENDOFLINE 0.25 WITHIN 0.10 EQUALRECTWIDTH ;" ;

Example 7: minEndOfLineSpacing with endToEndSpacing and minLength

Format Example

Tcl

set_constraint_parameter -name width -Value 0.15 
set_constraint_parameter -name distance -Value 0.05
set_constraint_parameter -name count -IntValue 0
set_constraint_parameter -name endToEndSpacing -Value 0.12
set_constraint_parameter -name minLength -Value 0.11
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.10

LEF

PROPERTY LEF58_SPACING 
"SPACING 0.10 ENDOFLINE 0.15 WITHIN 0.05
ENDTOEND 0.12
MINLENGTH 0.11 ;" ;

Example 8: minEndOfLineSpacing with subtractEndOfLineWidth

Format Example

Tcl

set_constraint_parameter -name width -Value 0.1 
set_constraint_parameter -name distance -Value 0.05
set_constraint_parameter -name count -IntValue 1
set_constraint_parameter -name subtractEndOfLineWidth \
-BoolValue true
set_constraint_parameter -name parallelEdgeSpace -Value 0.16 set_constraint_parameter -name parallelEdgeWithin -Value 0.03
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.15

LEF

PROPERTY LEF58_SPACING 
"SPACING 0.15 ENDOFLINE 0.1 WITHIN 0.05
PARALLELEDGE SUBTRACTEOLWIDTH 0.16 WITHIN 0.03 ;" ;

Example 9: minEndOfLineSpacing with minOppositeWidth and minLength

Format Example

Tcl

set_constraint_parameter -name width -Value 0.1 
set_constraint_parameter -name distance -Value 0.05
set_constraint_parameter -name count -IntValue 0
set_constraint_parameter -name minOppositeWidth -Value 0.08
set_constraint_parameter -name minLength -Value 0.06 set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.12

LEF

PROPERTY LEF58_SPACING 
"SPACING 0.12 ENDOFLINE 0.1 OPPOSITEWIDTH 0.08 WITHIN 0.05
MINLENGTH 0.06 ;" ;

Example 10: minEndOfLineSpacing with eolAddSpace, otherEndWidth and minLength

Format Example

Tcl

set_constraint_parameter -name width -Value 0.1 
set_constraint_parameter -name distance -Value 0.05
set_constraint_parameter -name count -IntValue 0
set_constraint_parameter -name otherEndWidth -Value 0.1
set_constraint_parameter -name eolAddSpace \
-OneDTblValue {0 0.01 0.1 0} -row_interpolation snap_down \ -row_extrapolation { snap_down snap_down)
set_constraint_parameter -name minLength -Value 0.06 set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.12

Example 11: minEndOfLineSpacing with minLength and twoSides

Format Example

Tcl

set_constraint_parameter -name width -Value 0.1 
set_constraint_parameter -name distance -Value 0.05
set_constraint_parameter -name count -IntValue 0
set_constraint_parameter -name minLength -Value 0.11 set_constraint_parameter -name twoSides -BoolValue true
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.15

LEF

SPACING 0.15 ENDOFLINE 0.1 WITHIN 0.05 MINLENGTH 0.11 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 12—minEndOfLineSpacing with oaSpacingDirection

Format Example

Tcl

set_constraint_parameter -name width -Value 0.03 
set_constraint_parameter -name distance -Value 0.03
set_constraint_parameter -name count -IntValue 0
set_constraint_parameter -name oaSpacingDirection \
-StringAsIntValue horizontalDirection
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.05

techfile

spacings(
( minEndOfLineSpacing "Metal2"
'horizontal
'width 0.03
'distance 0.03
0.05
)
); spacings

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 13—minEndOfLineSpacing with widthRangeArray, extendBy and sizeBy

Format Example

Tcl

set_constraint_parameter -name widthRangeArray \
-RangeArrayValue {"<=0.3" "0.6" "0.8"}
set_constraint_parameter -name extendBy -Value 0.2
set_constraint_parameter -name sizeBy -Value 0.1
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.3

techfile

spacings(
( minEndOfLineSpacing "Metal2"
'widthRanges (
"<=0.3" "0.6" "0.8")
'extendBy 0.2
'sizeBy 0.1
0.3
)
); spacings

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.

Example 14—minEndOfLineSpacing with endToEndSpacing, extendBy and sizeBy

Format Example

Tcl

set_constraint_parameter -name widthRangeArray \
-RangeArrayValue {"<=0.3" "0.6" "0.8"}
set_constraint_parameter -name extendBy -Value 0.2
set_constraint_parameter -name sizeBy -Value 0.1
set_constraint_parameter -name endToEndSpacing -Value 0.3
set_layer_constraint -layer Metal2 -constraint minEndOfLineSpacing \
-Value 0.0

techfile

spacings(
( minEndOfLineSpacing "Metal2"
'widthRanges (
"<=0.3" "0.6" "0.8")
'extendBy 0.2
'sizeBy 0.1
'endToEndSpace 0.3
0.0
)
); spacings

Related Topics

Spacing Constraints


Return to top
 ⠀
X