Neckdown Repair

The Neckdown Repair Action is designed to repair neckdowns generated by lines with round or square ends that are not fully covered by other lines or pads.  A neckdown occurs when the end of a line touches another line or pad and its end segment is not fully covered by the other feature.

To describe neckdown repair, we must first define the "end" and "end-segment" of a line.

Line End

The end of a round-ended line is the circle defining the rounded end. The end of a square-ended line is the square forming the end.

End Segment

For square-ended lines, the end-segment is the edge of the square butt. For round-ended lines, the end-segment is the diameter of the circle forming the end that is perpendicular to the line.

Neckdown Types

A neckdown occurs when the end of a line touches another line or pad, and its end segment is not fully covered by the other feature. There are two kinds of neckdowns:

Line neckdown  occurs when two lines touch each other but the end segment of the line is not fully covered by the other line.

Pad neckdown occurs when a line end touches a pad, but its end segment is not fully covered by the pad:

Round-ended lines are reported separately from square-ended lines.

Lines with a length to width ratio smaller than the ERF variable length_width_ratio will be ignored.

Only lines with significant length (end shapes do not touch each other) will be repaired. A short line is shown in the figure below:

Shaved lines will not be modified. The action repairs lines when end-points touch only one feature (line or pad). This is done to avoid the removal of teardrops. You may specify the "Ignore Nomenclature" parameter (on the Action popup) to determine whether lines with the .nomenclature attribute should be ignored.

Line Repair Principles

§         When two lines create a neckdown they will be stretched (or shrunk) so that their ends meet at the same point, preventing a neckdown. The angles of the two lines will be preserved

§         At the point where the end point touches the middle of a line, the necksown will be repaired by stretching the line until its end is fully covered.

§         A line will not be modified:

§         If the other line is a teardrop.

§         If both ends touch each other.

§         When the two lines are parallel.

*     Square lines that create neckdowns with other lines will be modified only if the modify_square2line ERF variable is set to Yes.
If an orthogonal square line becomes diagonal after its neckdown is repaired, it will not be modified (regardless of the value of modify_square2line ). It will also not be modified if it touches a line or a pad.

*     If a line with a round end touches a line with a square end, creating a neckdown, and the ERF variable modify_square2line is set to No, the round end of the line will be reported in the Square Line Neckdown category.

*     If a repair on a line causes it to be disconnected from a shape in the layer, or causes it to be connected to a shape that was not previously connected, then the line will be reported in the Connectivity Violation category. The line will be displayed as if it had been repaired, even though it is not.

Pad Repair Principles

*     A neckdown on a pad will be only be repaired if the pad is a circle. Other shaped pads will be reported in the "NeckDown to Non-round Pad" category, and will not be modified. Round pads are modified by stretching the end of a line into a pad until the line is fully covered.
If, after stretching a line, its end is not covered by the pad it will be reported in the category “Bad Entry to Round Pad”. If the diameter of the pad is smaller than the line, the line will not be modified.

Spacing Specification

*     If you provide a minimum spacing parameter value, the action will report lines with neckdown that create spacing violations less than the minimum spacing parameter value. These lines will not be modified but will be displayed as if modified. The spacing segment between the "modified" line to the other feature will be displayed.

*     If a line violates spacing before it is modified, a spacing violation will be reported and the line will not be modified. If you specify the minimum spacing parameter value as zero, then no spacing check will be done, but a connectivity check will be performed anyway.

Result Attributes

None