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.
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.
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.
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:
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.
§ 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.
*
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.
* 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.
None