Texts, patterns, masks

Texts, patterns, masks

Texts are anchors plus a string, not ordinary shapes. texts and expand_text run. Pattern matching and multi-patterning are also Available.

← Language overview

texts

Available · yields texts

layer t = texts(68, 20)
layer t = texts(68, 20, "VDD*")

Text anchors on layer/datatype, optionally a name glob. Complement: texts(l,d) - texts(l,d,"VDD*"). Interaction with polygons: interacting(m1, t).

Input Result VDD n1 VDD n1

Notes

  • An empty string / only whitespace is still a text if the layout stores it.
  • Rotation/mirror in an instance: the anchor is transformed.

expand_text

Available · yields polygons

layer box = expand_text(t, 0.05 um)

A mini-box around the text anchor (bounding-box centre ± d; d ≤ 0 becomes 1 dbu). For AND with metal.

Input Result A

Notes

  • d = 0: a 2×2 dbu box.
  • A very large expansion overlaps neighbour texts.

match

Available · yields polygons

layer hits = match(m1, file="patterns.gds", cell="VIA_CHAIN", tolerance=10 dbu)

DRC+ pattern over an axis-aligned bounding box (90° rotations). orient=r0 only unrotated. Hits = the matched shapes in the search layer. cell= from the same layout or file= plus a cell.

Input Result

Notes

  • tolerance in dbu/µm: bounding-box width/height and origin.
  • No hit: empty layer; count(hits) > 0 as a check.

uncolorable / colored

Available · yields shapes / layer

check "DP" : uncolorable(m1, space=0.05 um, masks=2)
layer m1a = colored(m1, space=0.05 um, masks=2, mask=1)

Multi-patterning: conflict graph at distance < space, masks colours. uncolorable = not k-colourable. coloredmask=i one colour, then space on the same mask. masks=2 is exact bipartite, masks>2 uses exact backtracking k-colouring; components with more than 32 nodes are reported as not yet supported instead of guessed.

Input Result Two masks; the third is uncolorable (schematic)

Notes

  • An odd wheel / odd cycles at 2 masks: uncolorable.
  • space=0: only overlap-touch as an edge.