minProtrusionSpacing
Specifies the required spacings between a wide wire and neighbor wires for the following conditions:
-
The wide wire width is greater than a specified width (
width). -
The neighbor wires have a parallel run length greater than a specified length (
parallelRunlength). -
The neighbor wires are within a specified distance (
oaDistanceWithin) of the wide wire.
The constraint applies under the following conditions:
-
If there is a jog/protrusion wire/edge between two convex corners in either the wide wire or the neighbor wires with continuous common projected length less than or equal to (<=) the specified jog width (
length), then the spacing between opposite metal shapes must be greater than or equal to the constraint’s short jog spacing. -
If the continuous common projected length is greater than (>) the specified jog width (
length), then the spacing between opposite metal shapes must be greater than or equal to the constraint’s long jog spacing. -
If there are two or more protrusion wires or edges with continuous common projected length that is less than or equal to (<=) the jog width (
length), and the spacing on the protrusion wires is less than (<) the long jog spacing, then the spacing between any two protrusion wires must be greater than or equal to the constraint’s jog-to-jog spacing.
minProtrusionSpacing Quick Reference
Value Type
minProtrusionSpacing constraints have a ValueArrayValue of three Value elements representing, in order, short jog spacing, long jog spacing, and jog-to-jog spacing.
The constraint can be specified for multiple wide widths and with various parallelRunLength, oaDistanceWithin, and length parameters, using an AND constraint group.
To determine the spacing requirements, find the largest values for width and parallelRunLength, where the wide wire width > width and the neighbor wire’s parallel run length > parallelRunLength, and the smallest value oaDistanceWithin where the neighbor wire is < oaDistanceWithin away from the wide wire. If excludeSpacing is given, wires that are within the given distance will be ignored.
-
If there is a jog/protrusion wire/edge between two convex corners in either the wide wire or the neighbor wires with continuous common projected length less than or equal to (<=) the specified jog width (
length), then the spacing between opposite metal shapes must be greater than or equal to the constraint’s short jog spacing. -
If the continuous common projected length is greater than (>) the specified jog width (
length), then the spacing between opposite metal shapes must be greater than or equal to the constraint’s long jog spacing. -
If there are two or more protrusion wires or edges with continuous common projected length that is less than or equal to (<=) the jog width (
length), and the spacing on the protrusion wires is less than (<) the long jog spacing, then the spacing between any two protrusion wires must be greater than or equal to the constraint’s jog-to-jog spacing.
The following figure shows the syntax for setting the minProtrusionSpacing constraint.
Parameters
-
width(Value, required) The constraint applies only when the wide wire width, in user units, is greater than this value. -
parallelRunLength(Value, required) The constraint applies only when the parallel run length, in user units, between the wide wire and the neighbor wires is greater than this value (parLength). -
oaDistanceWithin(Value, required) The constraint applies only when the neighbor wires are less than this distance, in user units, from the wide wire (parWithin). -
length(Value, required) The continuous common projected length (jogWidth) of the protrusion wire(s) is compared with this value to determine the constraint’s value. -
excludeSpacing(RangeValue, optional) specifies that any wire within the exclusion area given by this range parameter will be ignored. No spacing violation will be reported for such wires. For example,set_constraint_parameter -name excludeSpacing -RangeValue {"[0.2 0.9)"}
specifies that wires that are greater than or equal to 0.2 user units and less than 0.9 user units from the wide wire will be ignored. See Example 3—minProtrusionSpacing with excludeSpacing for a graphic example.
The following figure shows how these parameters are measured for this constraint. The green shaded region shows the area being checked.

Examples
This section includes the following examples:
- Example 1—minProtrusionSpacing (Two Widths)
- Example 2—minProtrusionSpacing (One Width)
- Example 3—minProtrusionSpacing with excludeSpacing
Example 1—minProtrusionSpacing (Two Widths)
Graphic examples for minProtrusionSpacing commands in the following table, which set two wide widths, are shown in Illustration for minProtrusionSpacing (Two Widths).

Example 2—minProtrusionSpacing (One Width)
Graphic examples for minProtrusionSpacing commands in the following table, which set one width, are shown in figures Illustration for minProtrusionSpacing (One Width) and Additional Illustrations for minProtrusionSpacing (One Width).
Table -1 Example 2—minProtrusionSpacing (One Width)


Example 3—minProtrusionSpacing with excludeSpacing
In this example, the required spacing between a wire that is within 0.5 user units of a > 0.8 wide wire with a protrusion and a parallel run length > 0.3 is dependent on the length of the protrusion (jogWidth). Short jog spacing is 0.08, long jog spacing is 0.15, and jog-to-jog spacing is 0.7. However, when the narrow wire is in the exclusion area, >= 0.25 and < 0.4 user units from the wide wire, the constraint does not apply.

Related Topics
Return to top