gate_connected_min_area¶
Net-aware — needs electrical connectivity (the default; disabled by --no-connectivity,
in which case this check is skipped with a message) and a PDK connect graph
(connectivity: in pdk.yml) that reaches from the gate layer to the marker layer(s).
Flags a marker-layer region that is (a) electrically connected to a gate and (b) smaller
than a minimum area. Its motivating use is the antenna-protection diode (Ant.g): a
dantenna/dpantenna device tied to a gate must be at least 0.16 µm² to actually
bleed off enough charge to protect it — an undersized “protection” diode is really no
protection at all.
Semantics¶
For each region of every marker layer:
Compute its area (µm²); skip it if it already meets
value— only undersized regions are candidates.Resolve its net through
marker_net_layer(a diode sits on diffusion).Flag it only if that net also carries at least one gate region, resolved through
gate_net_layer(a gate sits onGatPoly).
So a small marker region that isn’t electrically tied to any gate is not an error — the rule only cares about undersized structures that were meant to protect a gate.
Layers¶
Positional: [gate, marker layers…] — one gate layer, then one or more marker layers
(checked independently, sharing the same gate-net lookup).
Parameters¶
gate_net_layer/gate_net_layer_dtRaw GDS layer/datatype a gate region’s net is resolved through. Defaults to the gate layer itself.
marker_net_layer/marker_net_layer_dtRaw GDS layer/datatype a marker region’s net is resolved through (e.g.
1forActiv, since a diode sits on diffusion). Defaults to(0, 0)— almost always worth setting explicitly.
Violation markers¶
One point marker per undersized, gate-connected marker region, at its centroid, reporting its area and the required minimum.
KLayout equivalent¶
Equivalent to filtering a marker layer by area < value and then by
interacting/net-membership against the gate net — the net-membership part needs
KLayout’s connectivity extraction (antenna/net DRC), the same engine
antenna_ratio uses.
Example¶
- id: Ant.g
check: gate_connected_min_area
layers: [GatPolyOverActiv, AntDantenna, AntDpantenna]
value: 0.16
params:
gate_net_layer: 5
marker_net_layer: 1