Layers
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.
Last edited: October 10, 2026

A layer is a named sheet of geometry that the factory will spend a process step on. One step deposits and patterns metal, another etches contact holes, another defines the transistor gate. All of those steps share one coordinate system, and the layers are how a drawing keeps them apart. Every shape lives on exactly one layer. The factory does not build "the picture"; it builds one sheet at a time.
The picture at the top of this page is a small stack with every sheet visible: a navy metal strap across the top, a gold gate strip crossing a teal conductor, contact squares at both ends, and two separate teal bars below. Where sheets cross, the screen goes dark because two inks overlap. Nothing has merged there. It is two shapes on two sheets at the same coordinates.
Numbers, names, and purposes
In the file the factory reads, a layer is not a word. GDSII stores every shape with two small integers, a layer number and a datatype, written together as layer/datatype. The original GDSII format allowed values from 0 to 255 for each; OASIS keeps the same pair. The name you see in the editor ("met1", "poly") comes from a layer map the process kit provides.
The open SKY130 kit is a good example of how the two numbers split the work:
| Sheet | Drawing | Pin | Label |
|---|---|---|---|
| nwell | 64/20 | — | — |
| diff (active) | 65/20 | — | — |
| poly | 66/20 | 66/16 | 66/5 |
| li1 (local interconnect) | 67/20 | 67/16 | 67/5 |
| met1 | 68/20 | 68/16 | 68/5 |
The layer number is the physical film; the datatype is the purpose. Datatype 20 is the geometry that becomes the mask, 16 marks pin areas for extraction and routing tools, and 5 carries text labels that name nets. Cut layers get their own numbers: the contact from diffusion and poly to local interconnect is licon at 66/44, and the cut from local interconnect to metal 1 is mcon at 67/44. Purposes go further than drawing, pin, and label: 68/10 is a metal 1 blockage used when integrating IP blocks. The drawn sheets are also not the mask files themselves. The fab's mask data for metal 1, cmm1, lives at its own number (36/0) and is generated from what you drew. A shape on 68/5 never reaches the mask, even though it sits on the metal 1 film number. The names are local: your editor can say "poly" while a colleague's says "gate", and both point at 66/20. The shapes only know their numbers. See reading a layer map and GDS layer and datatype for how those maps are written.
Drawn layers and derived layers
Not every mask is drawn corner by corner. Many sheets are computed by recipes from the drawn ones. A transistor gate is not a drawn layer at all; it is the overlap of poly and active, which the SKY130 layer reference defines as "poly AND diff" and a KLayout DRC or LVS script writes as gate = input(66, 20) & input(65, 20). Implant masks, fill, and well extensions are often generated the same way, by growing, combining, or subtracting drawn sheets. A derived layer is still a layer, but if you edit it by hand and keep the recipe, the next run rebuilds it and your edit disappears. If a recipe owns a sheet, leave that sheet to the recipe. The split between what you draw and what the fab builds is covered in process layers vs drawing layers.
Hiding is a filter, not a delete

The second picture is a denser cell with every sheet on. At this point the drawing is close to illegible: purple, green, black, red, and teal shapes stack on each other, and you cannot tell which strap you are following. Experienced designers spend most of their time with most sheets switched off.

The third picture shows the same coordinates twice. On the left, every sheet; on the right, only the teal conductor, its pads and bars, and the small red contact squares. The teal shapes have not moved. The device sheets are not on the screen, but they are still in the file. In KLayout this is the visibility checkbox in the layer panel, and the panel's context menu can show only the selected layers or hide all of them.
Hiding is how you audit a sheet. Turn everything off except the contact sheet, and you should see only the contact squares. If the squares vanish with the contact sheet, they were contacts. If they stay when only metal is visible, they were drawn on the metal sheet by mistake. That error is common and expensive: the contact mask goes out empty, the metal mask carries extra squares that are not holes, and the gate never connects to the metal.
The order of sheets in the layer list changes which color paints last on screen. It does not change coordinates, and the fab ignores it.
Two mistakes hiding causes
A short you cannot see. A reviewer hides the gate sheet to check the metal, the metal looks finished, and the cell is signed off. Two gate fingers on the hidden sheet still touch, off to the side. A design-rule check run on the whole file reports the short anyway, because checks read every layer in the file, not the pixels on the screen. The fix is a small gap on the gate sheet; the metal never needed to change. A review of pixels is not a review of the file.
A delete that reaches hidden sheets. Editors differ in whether a region delete also removes shapes on hidden or non-selectable layers. Never use a filtered view as a deletion guide unless you have confirmed how your editor behaves. Clearing "extra metal" in a box can also erase contacts you could not see.
The hide test before you ship
Before calling a cell done:
- Turn every sheet on and compare with the full stack you started from. Nothing should have moved.
- Solo each cut layer (contacts, vias) and count the squares. They should be exactly the cuts you meant, and nothing on the metal sheets should appear.
- Solo the pin and label purposes and check that each label sits on the conductor it names. Extraction attaches a label to the shape under it on the matching film.
- Run DRC with a layer map that includes every sheet, hidden or not.
Layers are how one drawing tells the factory dozens of separate jobs. Keep each shape on the sheet whose job it is, check by hiding, and ship the full stack.
Continue exploring
-
Process layers versus drawing layers
Some sheets become matter. Some sheets are notes to tools and humans. Do not chrome the notes.
-
Layer and datatype: the two-number name
31/0 is not a street address. It is how GDS remembers two meanings on one film.
-
Reading a layer map
How to turn a factory's table of number pairs into names, purposes, and masks — so you know which shapes become metal and which are only 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.
-
What is a layout, really? Shapes, layers, units, and cells
Not a picture of a chip: a file of integer coordinates on numbered layers, grouped into cells, that a factory turns into masks. What GDSII stores, why a screenshot is not a layout, and what to check before you send one.
-
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.