# 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

**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”).**

*Guardian*

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 <b | a < x < b |

NE a | limits != a | x != a |

GE a | limits >= 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