GDSII

GDS II is a database file format which is the industry standard for data exchange of integrated circuit or IC layout artwork. It is a binary file format representing planar geometric shapes, text labels, and other information about the layout in hierarchical form. The data can be used to reconstruct all or part of the artwork used in sharing layouts, transferring artwork between different tools, or creating photo masks. Initially, GDS II was designed as a format used to control integrated circuit photo mask plotting. Despite its limited set of features and low data density, it became the industry's default format for transfer of IC layout data between design tools of different vendors, all of which (at that time) operated with often incompatible and proprietary data formats. The file format was originally developed by Calma for its layout design software, "Graphic Data System" ("GDS") and "GDS II". Currently, the format is owned by Cadence Design Systems. GDS II files are usually the final output product of the IC design cycle and are given to silicon foundries for IC fabrication. GDS II files were originally placed on magnetic tapes. This point in production was fittingly called "tape out" though it is not the original root of the term. Objects contained in a GDS II file are grouped by assigning numerical attributes to them including "layer number", "datatype" or "texttype". These attributes were designed to correspond to the "layers of material" used in manufacturing an integrated circuit however, their meaning rapidly became more abstract to reflect the way that the physical layout is designed.

GDS II in the LayoutEditor

GDS II is the default file format for the LayoutEditor and is fully supported in all existing versions (version 3 to version 7). The GDS II structure is also used for internal data representation in the LayoutEditor. This enables fast performance and avoids any unecessary conversions. GDS II files can be read as normal files or gzip compressed files without an external decompresser. Some GDS II options can be set up via the setup dialog.

Handling of Layers in GDS II

The GDS II saves a layer number for each shape, such as a polygon, path, etc. By default the LayoutEditor keeps this number untouched. However, there is an option to set up layer mapping during load/save. Using this mapping, a combination of layer/datatype in the GDS II file can be mapped to a layernumber in the LayoutEditor. This can be done via the SetupDialog or via a macro. The GDS II specification is not designed to store layer names. The LayoutEditor can store layer names by a non-standard extension (see below).

Set Maximal Number of Points in Polygons

Version 3 of the GDS II file format limits the maximum size of polygons/path elements to 200 vertices. The technical limit of the file format structure is 8191 points, which is allowed in version 7. This limit can be set via the setup dialog or via a macro. If a polygon exceeds this limit, it will be split into two or more polygons when saving the file. The default setting is 8191. Polygons can be saved in multi-records to avoid this limitation. This is not part of the GDS standard, but supported by some viewers. Activate gdsMultiXYRecord to use it and avoid splitting any polygons.

Option: Padding the Filesize to N*2048

Some older software or tape devices can only handle GDS II files when the file size is a multiple of 2048 bytes. By activating this option, via the setup dialog or via a macro, all saved GDS II files will be padded to this length by adding a 0 at the end of the file. This option is rarely needed and the default for this function is off.

Option: Save Box as Polygon

Box elements were introduced with version 4 of the GDS II file format. After activating this option, using the SetupDialog or via a macro, all box elements will be saved as polygons. By default, this option is turned off.

Option: Save Path as Polygon

Path elements with a width greater than 0 will be saved as a polygon. This option is turned off by default, however it is useful if the mask vendor does not accept shapes other than polygons.

Option: Save Text as Polygon

GDS II does not specify fonts. Therefore, text elements may look different and are often ignored in mask production. By activating Save Text as Polygon - via the SetupDialog or via a macro - all text elements will be saved as polygons. The current design in memory is modified with any save operation. In the setup, select a non-zero default text size value in order to convert scale-independent text elements. By default, the Save Text as Polygon option is turned off.

Option: Text height is stored as magnification, width record is omitted

GDS allows the storage of a width and a magnification attribute to text elements. By default, the width element is used to define the text height. If this option is active the magnification is used instead of the width attribute.

Option: Multi XY Records

Due to the GDSII file format's block structure, the maximum size of polygons is limited to 8192. Larger polygons that conform to the GDSII standard cannot be saved. By default, a polygon exceeding this limit will be split. However, it is possible to save such a large polygon in multiple blocks. This method will allow an unlimited number of polygon points. The extension is not part of the GDSII standard, but is supported by some other GDSII software tools.

Option: Only Save Enabled Layers

If enabled, shapes on disabled layers are ignored and not stored during a GDSII save.

Option: Store Layer Names

By default GDSII only stores layer numbers. The name of the layer and its appearance in the design is not stored. By activating this option, the layer names will be store in the GDSII file. This is done by adding an additional cell to the design with the name 'LayerNames' that contains a text elements on each layer with the layer names. Colour and style of the layer are stored as attributes of the text element. If this option is activated, the additional cell will not be visible in the LayoutEditor. This option is not a part of the GDSII standard. However, it will not interference with any other GDSII tool as long as no cell with the mentioned named is used in the design.

Option: Validate File

A file validation is performed after any save operation. This is done by calculating an SHA1 checksum during the save process. The checksum is validated for the stored file in a second step to ensure that the GDSII file is correctly stored. The SHA1 checksum is stored in a file with the extension sha1 next to the GDSII file. It can also be used to validate a file with common checksum checkers like sha1sum.

Option: Store Raith Extensions

The mask writer from the company Raith uses some GDSII extensions which are not officially part of the GDSII specs. From release 20220323 the LayoutEditor supports these extensions. Raith circles will be converted to normal path and polygon elements. The data of so called MBMS-Paths will be stored as an attribute to normal path elements. If the corresponding GDSII option is enabled during the setup, the MBMS-paths are stored in the Raith format. The special attributes can be edited in an own dialog of path elements. Raith options can be accessed via macro as well.

Option: only save enabled layers

Only layers enabled in the user interface are stored to file.

Description of the GDSII File Format

The GDSII or Stream file format stores its information in records. Each record starts with two bytes containing the length of the record. The maximum size of a record is limited to 2^16 bytes. The indication of length record is followed by the record type and the data type byte. The GDSII specification includes the description of 69 different record types but less than half are normally used. Commonly used types are LAYER, BOUNDARY (=Polygon), PATH, SREF (=cell reference) or XY (to store coorinates). Seven stream data types are defined. Each record type must have one of the following data types: no data, bit array, two byte signed integer, four byte singed integer, four byte real, eight byte real and ASCII string. The raw data of a GDSII is in binary, however the integrated TextEditor of the LayoutEditor can convert it from/to readable text. Thus, the integrated TextEditor can be used for low-level manipulation of GDSII files.