min_edge_length

Every segment of the layer must be at least value long.

Semantics

On an edge layer this is the check that makes the channel-width family sayable (GF180 DF.2a): a transistor’s W is the length of the Activ boundary running under the gate, which is a property of that segment and of no region. Build the segment with edge_layers: (edges, then and against the gate outline), then bound it here. On a polygon layer it is “no edge shorter than so much”, a rule of its own in finer processes; the segments read are the merged region’s, the ones a mask sees.

A length is the root of a sum of two squares of integers and is compared squared against value rounded up to the grid, exactly. A segment seen from two tiles is reported once, by the tile owning its midpoint.

Layers

One layer: an edge layer declared under edge_layers: — boundary segments — or a polygon layer, in which case every segment of every merged region’s boundary is read, holes included.

Parameters

None beyond layers and value (µm).

Violation markers

One edge marker per offending segment, on the segment itself, so a marker lands on the boundary the rule is about rather than on the region behind it.

KLayout equivalent

edges.with_length(...) on the segments in question.

Example

- id: DF.2a_LV
  check: min_edge_length
  layers: [channel_edges_3p3v]
  value: 0.22