inside_boundary¶
Every shape on every other layer must lie inside the outer edge of a boundary layer
(typically the seal ring). Anything sticking out beyond it is a violation. Used for
IHP’s Seal.l: nothing in the design may extend past the die’s edge seal.
Semantics¶
The boundary layer (usually drawn as many segments) is merged; its largest merged region
by area is taken as the real ring, and the bounding box of that region’s outer contour is
the reference edge. Every vertex of every shape on every other GDS layer/datatype is
then checked against that bounding box (with a half-DBU tolerance); a shape with any
vertex outside is flagged once, at that vertex. Layers listed in the rule’s ignore
are skipped entirely — IHP, for instance, doesn’t check the edge-seal passivation ring
itself, or the pad layer, against this rule.
Layers¶
One layer — the boundary/seal ring. Every other layer in the design is checked against it implicitly (there’s no explicit “target” list).
Parameters¶
None beyond the rule’s ignore list (layer names to exempt from the boundary check
entirely — not a params entry, a top-level rule field alongside layers).
Violation markers¶
One point violation per offending shape (the first vertex found outside the boundary), tagged with the raw GDS layer/datatype it came from.
KLayout equivalent¶
Conceptually the inverse of ring_covers_boundary — every drawn shape outside
the seal ring’s bounding extent, across every layer in the layout, filtered by an
ignore-list.
Example¶
- id: Seal.l
check: inside_boundary
layers: [EdgeSeal]
value: 0.0
ignore:
- Passiv
- Pad
- EdgeSeal.boundary