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

minCenterLineExtension

Specifies whether a centerline algorithm must be used to identify valid locations for via placement on a given cut layer and metal above or below. By definition, these locations guarantee that correct enclosures are available. The algorithm is applied to rectangles or polygons of connected/merged metal shapes.

The valid locations are based on via anchor points. By default, the center of a cut shape, regardless of dimension, is a valid anchor point.

The parameters for this constraint are used to specify the following:

minCenterLineExtension Quick Reference

Constraint Type

Layer pair

Value Types

BoolValue

Database Types

Design, Technology

Scope

design, foundry

Category

Extension

Value Type

minCenterLineExtension constraints have a BoolValue.

Parameters

The following parameters specify conditions for alternate anchor points:

The following parameters determine the valid via locations at joints or bends:

Typically, both viaToJointDistance and viaToBothJointDistance are specified. A violation occurs only when a via fails both conditions. viaToJointDistance is usually greater than viaToBothJointDistance and forces the via farther from the corner if one joint distance is small.

The following parameter determines when redundant cuts can cause an exception:

Examples

This example sets minCenterLineExtension constraints for three cut classes in an OR group for Metal1/V2 and Metal2/V2. The parameter settings are the same for both metal/via pairs.

# For Metal1/V2
create_constraint_group -name m1_v2 -optype or -db design
# for cutClass 0.10 0.10 (VxLarge), see Figure minCenterLineExtension Example for cutClass VxLarge.
set_constraint_parameter -name centerLineDef -IntValue 1
set_constraint_parameter -name mbMaxWidth -Value 0.3
set_constraint_parameter -name cutClass -DualValue {0.10 0.10}
set_constraint_parameter -name mbMaxWidthPullBack -DualValue {0.025 0.025}
set_constraint_parameter -name eombWidthPullBack -OneDDualTblValue {0 0.025 0.025}
set_layerpair_constraint -constraint minCenterLineExtension \
-layer1 Metal1 -layer2 V2 -symmetric false -BoolValue true -group m1_v2
# for cutClass 0.05 0.10 (VxBar), see Figure minCenterLineExtension Example for cutClass VxLarge.
set_constraint_parameter -name centerLineDef -IntValue 1
set_constraint_parameter -name mbMaxWidth -Value 0.3
set_constraint_parameter -name cutClass -DualValue {0.05 0.10}
set_constraint_parameter -name mbMaxWidthPullBack -DualValue {0.025 0.025}
set_constraint_parameter -name redundantCutCenterAnchor \
-ValueArrayValue {0.20 0.20 0.08}
set_constraint_parameter -name eombWidthPullBack -OneDDualTblValue \
{0 0.025 0.025 \
0.10 0 0.025 \
0.25 0.025 0.025}
set_layerpair_constraint -constraint minCenterLineExtension \
-layer1 Metal1 -layer2 V2 -symmetric false -BoolValue true -group m1_v2
# for cutClass 0.05 0.05 (Vx), see Figure minCenterLineExtension Example for cutClass VxLarge.
set_constraint_parameter -name centerLineDef -IntValue 1
set_constraint_parameter -name mbMaxWidth -Value 0.3
set_constraint_parameter -name cutClass -DualValue {0.05 0.05}
set_constraint_parameter -name mbMaxWidthPullBack -DualValue {0.025 0.025}
set_constraint_parameter -name eombWidthPullBack -OneDDualTblValue \
{0 0.05 0.05 \
0.30 0.025 0.025}
set_constraint_parameter -name jointWidth -Value 0.15
set_constraint_parameter -name spanLength -Value 0.12
set_constraint_parameter -name viaToJointDistance -Value 0.05
set_constraint_parameter -name viaToBothJointDistance -Value 0.025
set_constraint_parameter -name redundantCutDistance -Value 0.15
set_layerpair_constraint -constraint minCenterLineExtension \
-layer1 Metal1 -layer2 V2 -symmetric false -BoolValue true -group m1_v2
# For Metal2/V2
create_constraint_group -name m2_v2 -optype or -db design
# for cutClass 0.10 0.10 (VxLarge), see Figure minCenterLineExtension Example for cutClass VxLarge.
set_constraint_parameter -name centerLineDef -IntValue 1
set_constraint_parameter -name mbMaxWidth -Value 0.3
set_constraint_parameter -name cutClass -DualValue {0.10 0.10}
set_constraint_parameter -name mbMaxWidthPullBack -DualValue {0.025 0.025}
set_constraint_parameter -name eombWidthPullBack -OneDDualTblValue {0 0.025 0.025}
set_layerpair_constraint -constraint minCenterLineExtension \
-layer1 Metal2 -layer2 V2 -symmetric false -BoolValue true -group m2_v2
# for cutClass 0.05 0.10 (VxBar), see Figure minCenterLineExtension Example for cutClass VxLarge.
set_constraint_parameter -name centerLineDef -IntValue 1
set_constraint_parameter -name mbMaxWidth -Value 0.3
set_constraint_parameter -name cutClass -DualValue {0.05 0.10}
set_constraint_parameter -name mbMaxWidthPullBack -DualValue {0.025 0.025}
set_constraint_parameter -name redundantCutCenterAnchor \
-ValueArrayValue {0.20 0.20 0.08}
set_constraint_parameter -name eombWidthPullBack -OneDDualTblValue \
{0 0.025 0.025 \
0.10 0 0.025 \
0.25 0.025 0.025}
set_layerpair_constraint -constraint minCenterLineExtension \
-layer1 Metal2 -layer2 V2 -symmetric false -BoolValue true -group m2_v2
# for cutClass 0.05 0.05 (Vx), see Figure minCenterLineExtension Example for cutClass VxLarge.
set_constraint_parameter -name centerLineDef -IntValue 1
set_constraint_parameter -name mbMaxWidth -Value 0.3
set_constraint_parameter -name cutClass -DualValue {0.05 0.05}
set_constraint_parameter -name mbMaxWidthPullBack -DualValue {0.025 0.025}
set_constraint_parameter -name eombWidthPullBack -OneDDualTblValue \
{0 0.05 0.05 \
0.30 0.025 0.025}
set_constraint_parameter -name jointWidth -Value 0.15
set_constraint_parameter -name spanLength -Value 0.12
set_constraint_parameter -name viaToJointDistance -Value 0.05
set_constraint_parameter -name viaToBothJointDistance -Value 0.025
set_constraint_parameter -name redundantCutDistance -Value 0.15
set_layerpair_constraint -constraint minCenterLineExtension \
-layer1 Metal2 -layer2 V2 -symmetric false -BoolValue true -group m2_v2
minCenterLineExtension Example for cutClass VxLarge

minCenterLineExtension Example for cutClass VxBar

minCenterLineExtension Example for Vx

Related Topics

Extension Constraints


Return to top
 ⠀
X