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

minNeighborExtension

Specifies the minimum extension of a shape on layer1 past a shape on layer2 on opposite pairs of sides, when the layer2 cut shape has a neighbor wire within less than the specified parallel within distance (parallelEdgeWithinRange), and a common parallel run length (parallelEdgeLengthRange) with the layer2 cut shape greater than or equal to the specified parallel run length on only one side.

If the parallel run length is a negative value, then the distance between the layer2 cut shape and the neighbor wire should be less than the absolute value of the specified parallel run length.

In addition, a second parallel within distance and parallel run length may be specified. The second parallel run length must be less than the first parallel run length and the second parallel within distance must be greater than the first parallel within distance. In this case, the constraint would be violated if there is a neighboring wire in the parallel within range (within within2) having a common parallel run length to the cut either less than the first parallel run length and greater than or equal to the second parallel run length on any one or both sides.

Also, the extensions required for wide wires are usually larger, but the minNeighborExtension can be even larger. Unless a cut is completely inside a wide wire, the minNeighborExtension constraint should also be checked. The minNeighborExtension constraint can optionally apply only when the layer1 wire containing the layer2 cut is less than a given width (maxWidth).

Optionally, the minimum neighbor extension only applies if the extension of the shape on the metal layer below is less than the specified other extension value (otherExtension) on either side perpendicular to the side of the layer2 cut having neighbors or the wire direction containing the cut on the metal layer above.

minNeighborExtension Quick Reference

Constraint Type

Layer pair (Symmetric: no)

Value Types

DualValue

Database Types

Design, Technology

Scope

design, foundry

Category

Extension

Parameters

Examples

Example—minNeighborExtension with One parallelEdgeLengthRange and parallelEdgeWithinRange

In this example, if there is a Metal2 neighbor wire less than 0.11um (parallelEdgeWithinRange) from a V2 cut with a common parallel run length greater than or equal to 0.08um (parallelEdgeLengthRange) on only one side of the cut, and the cut is on a Metal2 wire that is less than 0.1um in width (width), then the cut must have Metal2 extensions greater than or equal to 0.09um on all four sides. Otherwise, one of the following must be satisfied:

Example—minNeighborExtension with Two parallelEdgeLengthRange and parallelEdgeWithinRange

In this example, one of the following must be satisfied:

In addition, it is only legal to have Metal2 neighbor wires on both sides that are less than 0.04um from the cut with common parallel run length to the cut less than 0.08um (within the small search window in the following figure, or, no neighbor on either side that is less than 0.06um from the cut with common parallel run length less than 0.1um (within the large search window in the following figure.

Format Example

Tcl

set_constraint_parameter -name cutClass -DualValue {0.03 0.03}
set_layerpair_constraint -layer1 Metal2 -layer2 V2 \
-constraint minDualExtension -DualValue {0.02 0.00} \
-create true -group m2_v2
set_constraint_parameter -name cutClass -DualValue {0.03 0.03}
set_constraint_parameter -name parallelEdgeLengthRange \
-RangeValue { "[-0.08 -0.1]"}
set_constraint_parameter -name parallelEdgeWithinRange \
-RangeValue { "[0.04 0.06]"}
set_layerpair_constraint -layer1 Metal2 -layer2 V2 \
-constraint minNeighborExtension -DualValue {0.015 0.015}

techfile

orderedSpacings(
(
minOppExtension "Metal2" "V2"
'cutClass 0.03 0.03
(0.02 0.0)
)
) ;spacingTables
orderedSpacings(
(
minNeighborExtension "Metal2" "V2"
'cutClass 0.03 0.03
'paraLengthRange "[-0.08 -0.1]"
'withinRange "[0.04 0.06]"
(
0.015 0.015)
)
); orderedSpacings
Illustration of minNeighborExtension with Two parallelEdgeLengthRange and parallelEdgeWithinRange

Example—minNeighborExtension with Two parallelEdgeLengthRange and parallelEdgeWithinRange and otherExtension

In this example, if a V2 0.03x0.03 cut has Metal1 extensions less than 0.05um on either side perpendicular to either the side having Metal2 neighbors or the Metal2 wire containing the cut, then the following applies:

Otherwise, Metal2 extensions past V2 0.03x0.03 cuts must be greater than or equal to 0.02um on two opposite sides, with zero extension required on the two other sides.

Format Example

Tcl

set_constraint_parameter -name cutClass -DualValue {0.03 0.03}
set_layerpair_constraint -layer1 Metal2 -layer2 V2 \
-constraint minDualExtension -DualValue {0.02 0.00} \
-create true -group m2_v2
set_constraint_parameter -name cutClass -DualValue {0.03 0.03}
set_constraint_parameter -name parallelEdgeLengthRange \
-RangeValue { "[-0.08 -0.1]"}
set_constraint_parameter -name parallelEdgeWithinRange \
-RangeValue { "[0.04 0.06]"}
set_constraint_parameter -name otherExtension -Value 0.05
set_layerpair_constraint -layer1 Metal2 -layer2 V2 \
-constraint minNeighborExtension -DualValue {0.015 0.015}

techfile

orderedSpacings(
(
minOppExtension "Metal2" "V2"
'cutClass 0.03 0.03
(0.02 0.0)
)
) ;spacingTables
orderedSpacings(
(
minNeighborExtension "Metal2" "V2"
'cutClass 0.03 0.03
'otherExtension 0.05
'paraLengthRange "[-0.08 -0.1]"
'withinRange "[0.04 0.06]"
(
0.015 0.015)
)
); orderedSpacings
Illustration of minNeighborExtension with Two parallelEdgeLengthRange and parallelEdgeWithinRange and otherExtension

Related Topics

Extension Constraints


Return to top
 ⠀
X