Shapes
Text on a layout: labels, printed letters, and what the mask shop ignores
A GDS text record is a string on a layer; convert it to polygons before a mask shop must print it. SKY130 68/5 labels stay unchecked; 68/20 outlines are measured.
Last edited: October 23, 2026

You want the letters A1 on a metal strap so a person can find that pad later. The same typing gesture can also leave a remark that only editors should see. Which one you get depends on the layer you choose and on whether the letters stay a text record or become polygons.
The picture at the top shows those letters overlapping a teal strap. They are a text object on a layer, not a caption burned into this article. Someone placed a text record: the string A1, a position, a size, and a layer. If that layer becomes a photomask, the writer that shoots the mask may print A1 — or it may ignore the text record entirely.
Why it matters
A text record is a point, a string, and a layer. It is not a TrueType outline stored in the file. Layout editors pick a font at display time; the stream does not carry the glyphs. Many photomask systems therefore ignore text elements and only expose polygons and paths.
Foundry kits separate the two jobs with layer purposes. In SkyWater SKY130, met1 drawing is 68/20, met1.label is 68/5 (text type), met1.pin is 68/16, and a separate text.label sits at 83/44. A label on 68/5 names a pad for humans and for LVS; it is not metal. The same string converted onto 68/20 is metal, and design-rule checks measure it. See nets, pins, and labels and GDS layer and datatype.
On a printed circuit board the same fork appears as silkscreen ink versus copper. Ink on the soldermask is for reading. Letters drawn in copper are conductor: a 0.3 mm stroke of 5V across a 0.15 mm gap can short two nets after plating, while the silk layer stays empty.
How it works
What a GDS text record holds
In GDSII a text element is the record sequence TEXT, LAYER, TEXTTYPE, optional PRESENTATION, optional PATHTYPE and WIDTH, optional STRANS with magnification and angle, one XY point, and STRING. The string may be at most 512 characters. TEXTTYPE 0–255 plays the role that datatype plays for shapes. PRESENTATION bits 10–11 select font number 0–3; bits 12–13 set vertical justification (top, middle, bottom); bits 14–15 set horizontal justification (left, center, right). When PRESENTATION is omitted, the default is top-left, font 0. The file stores that font number, not the outlines of the letters. More on the stream in GDSII in plain language.
When the letters turn

The second picture is the same letters after a turn. The teal strap is vertical. A1 has rotated with a cell, so the letters turned when the instance turned. The text is not a sticker the editor keeps upright for reading comfort. It is an object inside the cell, and this placement asked it to follow the cell's rotation.
In GDSII the property that keeps letters upright under rotated instances is the absolute-angle flag: STRANS bit 14. Bit 0 is reflection about X before rotation; bit 13 is absolute magnification. Absolute angle is not combined with the rotations of instances above the text. You have to set that flag on purpose. The second picture shows the other case — the letters honored the instance.
LayoutEditor's setup option "Ignore Text Rotation" always displays text unrotated and unmirrored on screen. That option is display-only. Conversion to polygons still respects the stored orientation, so a screen that shows upright letters can still produce sideways outlines.
What the writer shoots
A text object is not a polygon until someone converts it. The stream stores the characters, the size, the position, and the layer. A mask shop may convert those characters into outlines, or it may refuse text on a manufacturing layer and ask you to convert it yourself. LayoutEditor's Text documentation states that the font cannot be saved with the design and that many photomask systems ignore text elements. The LayoutScript call textToPolygon exists for the case where the letters must be respected as geometry.
OASIS does not keep text size, rotation, alignment, or font. A GDSII-to-OASIS conversion removes that formatting; a round trip through OASIS therefore loses whether A1 was upright or sideways. Details of the format trade-off are in OASIS when GDS gets huge. Sideways-or-upright is a GDSII property in practice.
Keep comments off manufacturing layers. A note such as "leave this empty" has been printed in chrome by shops that took the layer seriously. Put remarks on a label purpose you and the factory agree is not a mask — in SKY130, 68/5 rather than 68/20. Put real pad names on purpose, at a size the process allows, and only where you want ink.
A1 as outlines, on the strap

Convert the text record to outlines before you trust the overlap. The third picture puts the two forms side by side on the same strap geometry. On the left, A1 remains a text element on a label purpose. On the right, the same string has been converted with LayoutEditor's built-in font at 1 µm height onto met1 drawing.
With LayoutEditor's built-in font and a SKY130-style deck (m1.1 / m1.2 = 0.140 µm, grid 0.005 µm, angles n×45°), the measured results were:
| Form | Height | Result |
|---|---|---|
| TEXT on met1.label 68/5 | 2 µm | 0 markers |
| Converted polygons on 68/20 | 2 µm | 0 width markers; 115 off-grid vertices; 97 edges not on n×45° |
| Converted polygons on 68/20 | 1 µm | "1" stem 0.116 µm (132 width markers); A→1 gap 0.112 µm |
At 2 µm the stem is 0.253 µm and the A→1 gap is 0.224 µm. In this font the stem is roughly one-eighth of the text height, so met1 letters need about 1.1–1.2 µm height or more before the stem alone clears 0.140 µm. The off-grid and off-angle counts come from the stepped glyph outlines; a Manhattan box font ships with LayoutEditor as a macro example and clears grid and angle, but corner-touching dots can still fail spacing.
Then turn one instance a quarter turn, as in the second picture, and read A1 again. Sideways letters that share the metal layer will print sideways. Upright letters are the absolute-angle property, set before you array a hundred copies. A mirrored stamp can reverse the string and still be legal geometry.
A common mix-up
Three habits confuse the fork. First, expecting a desktop font: the stream stores a font number 0–3, not Helvetica outlines, and every viewer may draw the letters differently. Second, treating everything visible on screen as shop data: rulers, instance names, and layer legends often never leave the editor. Third, putting a copyright or logo on every reticle layer "so it always shows" — those letters become chrome on every mask and can damage density or fill.
Things that go wrong
- Glyphs smaller than the process pitch fail width and space once converted; the 1 µm A1 above is the worked example.
- Fancy fonts explode into hundreds of vertices per letter and raise fracture cost.
- Mirror plus a stepper reticle flip can print a company name backwards on the wafer.
- Silkscreen over exposed pads hides the pad from inspection and can cause assembly rejection.
- Non-ASCII characters in STRING stop some readers; the rest of the cell may go unread.
- A remark left on 68/20 prints as metal; a pad name left only on a viewer decoration never reaches LVS.
In software
In LayoutEditor you place text with addText (layer, point, string) and set height with the text width. cell.textToPolygon(defaultWidth) turns text in the current cell into polygons; setup.gdsTextToPolygon can do the same on GDS save. Negative (scale-independent) text sizes cannot be converted until you give a positive default width. After conversion, run the same width, space, grid, and angle checks you use for any other metal. The layout editor draws the letters; the mask writer and the checker only see what you left as real geometry.
Continue exploring
-
What a layer is for: layer numbers, purposes, and hiding sheets
A layer is a sheet the factory spends a process step on. GDS layer/datatype pairs with real SKY130 numbers, drawn vs derived layers, and why hiding a layer is a filter, not a delete.
-
GDSII in plain language
A 1970s suitcase that still carries almost every chip drawing on Earth.
-
Layer and datatype: the two-number name
31/0 is not a street address. It is how GDS remembers two meanings on one film.
-
Nets, pins, and labels on a layout
Geometry alone is not a netlist: labels name joined metal, pins mark where a named net may enter a cell.
-
OASIS vs GDSII: when GDS gets huge
OASIS (SEMI P39) can store a repeated shape as one record plus a repetition, so contact, via, and fill fields take less space than in GDSII; unique polygons do not get smaller.
-
Who actually reads a layout?
The same drawing is read by your eyes, a geometry checker, a connectivity check, a mask shop, and scripts that never see your colors.
-
Process layers versus drawing layers
Some sheets become matter. Some sheets are notes to tools and humans. Do not chrome the notes.
-
PCB copper is a layer too
Board copper foil is still a named layer — traces, pads, and pours on a sheet, not chip metal film.
-
LVS: layout versus schematic, and how to read the report
Schematic and layout describe one circuit in two languages. How LVS extracts nets from polygons, a LayoutEditor script that checks a layout against a SPICE netlist and against a schematic, and how to read opens, shorts, and device mismatches.