# Measurement of Spacing Checks

1. Introduction

In previous versions of Guardian DRC there were only two ways of measuring the distance between two segments: the ordinary, Euclidean metric, and the square metric, which behaves differently when measuring distances from a corner of a shape. With decreasing feature sizes Euclidean metric does not always provide the adequate measurement of tolerances required during the IC fabrication. Therefore various DRC systems introduced other types of measurement. This article describes how Guardian DRC system performs measurements required for the execution of DRC spacing checks, which are based on separations between line segments (“width”, “indistance”, “outdistance”, “ovdistance”, “distance”, “compdistance”).

2. Types of Measurement

Every spacing check for each layer(s) has to have a constraint that is evaluated for each particular edge of layout object of layer(s) that participate in this check. The full list of these constraints for all spacing checks is:

Old syntax New syntax Meaning

 Old syntax New syntax Meaning LT a limits < a x < a LE a limits <=a x <=a EQ a limits ==a x ==a RANGE a,b limits >a = a x >= a GT a limits > a x > a GE_LE a,b limits >= a <=b a <= x <= b GE_LT a,b limits >= a < b a <= x < b GT_LE a,b limits >a <=b a < x <= b GT_LT a,b limits > a < b a < x < b

Graphically, these constraints can be depicted as shown in Figures 1 through 4.

Figure 1. Graphical representation of constraints:LT, LE

Figure 2. Graphical representation of constraints NE, EQ.

Figure 3. Range relation

Figure 4. Graphical representation of constraints: GE. GT.

If the edges (points) of another evaluated object fall into a violation (“gray”) zone then these edges (points) are considered as errors that violate the checked rule. The side of an edge to construct the violation zone is chosen according to the particular check operation.

3. Other metrics

Figures 1 through 4 show the violation zones when the Euclidean metric is used.

There are several other metrics used by Guardian DRC. The easiest way to explain the differences between these metrics is by means of the violation zones shown on graphical examples in figures 5 through 7. For the Euclidean metrics, the violation zone may be constructed as the union of circles (or donuts) centered at each point of the checked segment and then cut by the appropriate half-plane. As a result, the violation zone is a rectangle along the checked edge augmented by two quarter-cycles (or quarter-donuts), see, e.g., Figures 1, 3 and 4. The violation zone for checks of type GT and GE are the complements of the violation zones of type LE and LT respectively.

Square metric is evaluated by replacing the circle (donut) by the square. As a result, the violation zone is a rectangle along the checked edge augmented by “quarter-squares”, see Figure 5.

Figure 5. Graphical representation of Check operator
with Square metric: LT a, Metric=Square

In the opposite metric the violation zone is not extended past the ends of the checked edge, see Figure 6.

Figure 6. Graphical representation of Check operator
with Opposite metric: LT a, Metric=Opposite

The extended opposite metric is the generalization of both the square and the opposite metrics: the violation zone is extended past the ends of the checked edge by the specified value, see Figure 7. (In the square and Euclidean metrics, the extension value(s) is the same as the check limit value(s)).

Figure 7. Check operator with Extended Opposite
metric: LT a, Metric Extended=Opposite(b)

4. Reported Subsegments

Guardian DRC system may report DRC violations in several forms. They may be classified into two main groups: full segment report and subsegment report. For the first group, the report is based on the pair of complete edges for which a distance violation is detected. In the second group, only edge subsegments that fall into the violation zone of some edge are reported.

In some cases when a violation is reported for a pair of edges, it is not immediately clear how the subsegments on the two edges are related to each other. For example, consider the case of checking for limits 7 <x < 10, shown in Figure 8. It is not immediately clear why point B is not reported, since the distance from A to B is clearly between 7 and 10. The reason becomes evident if we draw the violation zones for this check, see Figure 9.

Figure 10 shows a more complex interaction of two segments with reported violations.

Figure 8. Example error subsegments for limits >=7 <= 10

Figure 9. Violation zones for the example from Figure 8

Figure 10. Violation zones for limits >=7 <=10