Layout Knowledge Base

Files

GDSII in plain language

A 1970s suitcase that still carries almost every chip drawing on Earth.

Three records from that kind of file, drawn so a person can see them: four numbers for a rectangle, a bent centerline, and a closed outline that is not a rectangle.

You need to hand a chip drawing to a factory that does not have your editor open.

What travels is a stream file of cells, layers, and integer points. A rectangle, a path, and a polygon are different records in that file, and a wrong header for the units puts the mask off by a factor of a thousand. The old name for the suitcase is Graphic Design System II. People shorten it to GDSII after the long name has been said. The short name is a file format, not a picture format. The picture at the top of this page is three records from that kind of file, drawn so a person can see them: four numbers for a rectangle, a bent centerline, and a closed outline that is not a rectangle. Colors are the editor’s paint. The records are numbers and names.

On a real file, check the top cell, the unit header, and whether a repeat is a stamp or a raw copy of the points. A screenshot of the three shapes would throw the structure away. The stream keeps the structure: which cell, which layer, which integers.

Three records, side by side

A box is the cheap rectangle. Four integers locate it. If one micrometer is a thousand integer steps in the file, a box two micrometers wide and one micrometer tall is two thousand by one thousand of those steps. The file stores the integers. It does not store the word micrometer. The header of the stream says how those integers map to meters. Ignore the header and a careful drawing can leave the building a thousand times too small, or a thousand times too big, and the glass will still look professional.

A path stores a centerline and a width. The bent shape in the picture has a centerline of at least three points: start, corner, end. The width is another number. The ribbon you see is the editor thickening that spine. Tools may later turn the path into a polygon. Until they do, the bend is a path record, which is why you can stretch the route without redrawing every corner of the outline.

A polygon that is not a rectangle stores every corner. The closed outline in the picture is that kind of record: a chain, more interesting than four square sides. The stream does not know that you think of it as a gate or a marker. It knows a layer number, a datatype beside that number, and the integers around the outline. The layer map is a separate letter you send with the file. Without the map, a shop can still plot the outline. They cannot know which mask it belongs on.

One child, two placements

Two stamps of one notched cell under a single navy strap

The second picture is how the stream avoids storing the same corners twice. A navy strap runs across the parent drawing. Under it sit two stamps of one notched cell. Both notches face the same way, because both placements read one child. The file stored that child once. Each placement is an instance: which cell, where it sits, and how it is turned. The navy strap is ordinary geometry in the parent. The notches are not a second copy of those points.

That split is the difference between a library and a pile. Edit the child and both placements change, because both read the same drawing. Copy the rectangle as raw points into the parent and you have two independent boxes, which is a different file even if the screen matches for a day. GDSII can store both choices. The second picture is the choice that stores the child once.

The stream can also store text records in other cells. This picture has none. There is no lettering on the strap, no label on the rectangles, and no title in the corner. The example is three kinds of shape at the top of the page, then a parent with one strap and two placements of one child.

What the factory actually receives

The factory receives every cell you wrote, on every layer that had shapes, at the units in the header, under the top cell you named. Hidden layers in your editor are still in the stream. Colors are not. The cell you happened to be viewing is not necessarily the top cell. A wrong top cell is how a shop builds a mask of a via instead of a mask of the chip.

A layer in the stream is a number, not a color name. The integers under your legend are what a checker and a mask writer share. When you open the file in another tool, the palette may change and the corners must not. If the corners moved, you did not send a view of the same stream. You sent a different drawing.

Before you send the file, name the top cell in the note, name the unit header, and open one repeated shape. If both copies are stamps of one child, as in the second picture, an edit to the child reaches both. If they are raw points, the file has already forgotten the repeat. A box that exploded into a huge rectangle is often that unit header. A path that lost its bend was converted, or it was never a path. A polygon that grew a twin was flattened from an instance into raw points. The picture at the top is the alphabet those placements are made from: four numbers, a bent centerline, and an outline that is not a rectangle.

Continue exploring