next up previous contents index
Next: The !polycheck Command: Check Up: Layout Information Previous: The !dups Command: Select   Contents   Index


The !wirecheck Command: Check Wires

Syntax: !wirecheck [layer ...]
Wire database objects have the property that their geometric shape is not unambiguously specified. Every tool contains code that generates a polygon from the wire vertex list, which can be displayed and further processed. The details of how corners are handled, and how the ``rounded'' end style is handled, can vary slightly between tools.

Some wires are difficult to represent as a polygon, and in fact may cause failure with some tools (and possibly not others). Although wires sensibly created by hand would rarely if ever cause trouble, wires generated by format converters or some other program might cause failures, for example when ``fracturing'' the layout file during mask generation. Even wires that look reasonable on-screen may not be renderable on other tools, thus Xic provides some tests that can be applied to flag potential problems.

Wires can be ``questionable'' or ``bad''. Bad wires can not be rendered, and will never be included in the Xic database. These wires are always flagged as errors when seen.

Wires that are ``questionable'' have vertices that are closely spaced compared to the wire width, and trigger an edge-clipping fix-up in the wire-to-polygon function. Such wires may cause rendering difficulty in other tools. In addition, wires whose polygon representation requires more than 600 vertices are flagged as questionable.

When reading a layout file, questionable wires will be reported as warnings in the log file.

This command can be used to find questionable wires in the current cell. It takes a list of layer names as arguments, which will limit the testing to wires on those layers. If no arguments are given, all layers will be used.

If wires are selected before the command is given, only the selected wires on the given layers (or on any layer, if no arguments are given) will be checked. If no wires are selected, all wires on the layers given (or on any layer if no arguments are given) will be checked.

If a wire is determined to be questionable, it will be, or remain, selected. The Info command in the View Menu can be used to determine the exact nature of the defect.

The flags that might be listed in the info for wires have the following explanations.

ONEVERT
The wire consists of a single vertex only. The interpretation of this case may be tool-dependent.

ZEROWIDTH
The wire has zero width. Zero width wires have no physical significance and should not appear in a physical layout, though generally they are simply ignored.

CLOSEVERTS
The wire contains at least two vertices whose spacing is less than half of the wire width. This may not be a problem, however wires that are difficult to render will always have this condition.

CLIPFIX
This flag indicates that special fix-up code was triggered when the representing polygon was created, which indicates that rendering requires non-trivial processing. Wires that have this flag are suspect (they will also always have CLOSEVERTS set).

BIGPOLY
This flag indicates that the representing polygon contains more than 600 vertices. This is not really a problem, by does indicate that the wire may be overly complex.

Wires that are determined to be questionable will have one or more of ZEROWIDTH, CLIPFIX, or BIGPOLY set.


next up previous contents index
Next: The !polycheck Command: Check Up: Layout Information Previous: The !dups Command: Select   Contents   Index
Stephen R. Whiteley 2022-05-28