min_space_prl¶
Width- and parallel-run-conditional spacing: a wider minimum space applies only between
lines that are both wide and run parallel for a long distance (e.g. IHP TM2.bR,
M5.e/M5.f, CntB.b1).
Semantics¶
Reuses the tiled region-pair spacing engine from min_space, gated by an extra
condition on each candidate pair: value only applies where some pair of facing edges
(one from each region) satisfies all of —
their perpendicular separation is under the gap being measured;
their projected overlap (“parallel run”) exceeds
parallel_run;at least one of the two edges has real metal depth behind it greater than
wide_width(the local line width at that edge, not the region’s bounding-box size — an L-shaped or stepped pad’s box can look wide for tens of microns while the metal running alongside a neighbour is actually narrow there, which must not trigger the wide-line spacing).
Because line width and parallel run are measured from real facing edges rather than bounding boxes, this stays exact for L-shaped, stepped, or comb-like layouts (common in I/O cells and pad rings), not just plain rectangles.
Layers¶
One layer (same-layer spacing) or two, exactly as in min_space.
Parameters¶
wide_widthRequired. µm. A facing edge only makes the pair “wide” if the metal depth behind it exceeds this.
parallel_runRequired. µm. The facing-edge pair’s projected overlap must exceed this for the conditional spacing to apply.
Violation markers¶
One edge marker per violating pair, drawn across the gap — same convention as min_space.
KLayout equivalent¶
Not a single built-in operator: KLayout decks typically express this with
Region#space(value, Region::Projection).with_angle(...) combined with a
width filter on each side, or an equivalent parallel-run/width-conditional
construction.
Example¶
- id: TM2.bR
check: min_space_prl
layers: [TopMetal2NotIND]
value: 5.00
params:
wide_width: 5.00
parallel_run: 50.00