min_45_width¶
Minimum width for a metal trace that runs at 45°, checked only where the diagonal run is
longer than bent_length — short chamfers/corner cuts are exempt. Used e.g. for IHP’s
M5.g (Metal5 45°-bend minimum width).
Semantics¶
Reuses the shared facing-edge width scan (see min_width), but with the rectilinear
passes skipped entirely (oblique_only) — axis-aligned metal is already covered by an
ordinary min_width rule on the same layer, so this check only measures the oblique
(anti-parallel diagonal edge pair) pass, and only reports a pair whose projected overlap
run is longer than bent_length (converted to DBU). A short diagonal chamfer at a
corner, too short to be a real bent trace, is ignored regardless of how narrow it is.
Layers¶
A single layer, layers[0].
Parameters¶
bent_lengthMinimum run length (µm) a diagonal wall pair must have, projected onto its own direction, before its width is even considered. Optional, defaults to
0.5.
Violation markers¶
One edge marker for each of the two facing diagonal walls of any 45° width below
value (two markers per violation location), spanning the offending run.
KLayout equivalent¶
Region#width(value, angle_limit(45)) restricted to diagonal edges, combined with a
minimum-length filter on the edge pair — no single built-in operator does both at once,
so the reference deck composes it from several steps; gdscheck’s version folds the
length gate directly into the oblique width scan.
Example¶
- id: M5.g
check: min_45_width
layers: [Metal5]
value: 0.24
params:
bent_length: 0.50