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_length

Minimum 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