xPDK GDS Layer

The typical GDS type of thing, but including some coloring etc. In addition to the basic layer info, there is typical design rule definitions (min/max width, space etc) and derived layers (grow, size, not, xor, …).

Basic definition

full file
<layer name="layer1">
   <gds_number>1</gds_number>
   <gds_datatype>0</gds_datatype>
   <grid>0.001</grid>
   <purpose>Waveguide layer</purpose>
   <color R="10" G="20" B="30"/>
   <visible>true</visible>
   <fillstyle>open</fillstyle>
   <linestyle>fill</linestyle>
   <extend>
    <!-- Show extension -->
    <myprop>1</myprop>
   </extend>
</layer>

name

The name must be defined, be unique and be "identifier".

XSD(name):
Defines a valid name for an identifier.
In text this is a letter, followed by letters, numbers, underscore or dot. The check is regular expression: [A-Za-z]([A-Za-z0-9_])*

purpose

The purpose is a (short, single line) text describing the purpose of the layer in the foundry.
XSD(purpose):

doc

The doc can be a longer text (few paragraphs) to document the layer in more detail if needed.

XSD(doc):
Document anything relevant for the topic you want to define.

Multiple paragraphs is fine. Format is plain text.

tex

The tex can be a long text in LaTex format to document the layer in more detail if needed.

XSD(tex):
Document anything relevant for the topic you want to define.

Multiple paragraphs is fine. Format is Latex, so more complex content is possible.

gds_number

The gds_number and gds_datatype specify the gds details. The combination should be unique per technology file.

XSD(gds_number):

gds_datatype

The gds_number and gds_datatype specify the gds details. The combination should be unique per technology file.
The gds_datatype is often zero in foundries for actual data, while annotations have a non-zero number, but this is not a requirement.

XSD(gdslayer):

polarity

Define the polarity of the mask.

XSD(polarity):
Define the polarity of the mask.
This field is only allowed once and should be one of DF, LF, DarkField, LightField.

grid

This defines the GDS database accuracy for this layer.

XSD(grid):

color

Use a RGB color for the default settings in software; this is intended to have more consistent look over different software.

XSD(xPDK_color):
Define a RGB color using the attributes R, G and B.
Each of R, G and B is required and be between 0 and 256.

visible

Set visibility default settings in software; this is intended to have more consistent look over different software.

fillstyle

Set fillstyle (polygon area) default settings in software; this is intended to have more consistent look over different software.

XSD(fillstyle):
      fillstyle is default unfilled
      

linestyle

Set linestyle (polygon contour) default settings in software; this is intended to have more consistent look over different software.

XSD(linestyle):
      linestyle is default filled
      

SingleLayerOps

This section describes single layer operations, see xPDK GDS Layer - single layer operations

masksupplier

Define the supplier info for the mask.

XSD(masksupplier):
Define the (list of) suppliers for this mask and/or other ordering information like mask-grade, style (laser beam or ebeam) and so on.
This field can be any string, for example a reference to the (foundry) internal supplier database. It allows the xPDK layout file to contain all mask related information the foundry needs.
This field is not used by OptoDesigner.

extend

Allows to extend with any (complex) data for enriching a design kit. The sub-data of an extend will normally be vendor or provider specific, but may span multiple software vendors or suppliers.
Provider extensions can be references to (or embedded) reporting scripts or their versions; source database references and so on. Such data is helpful in cross-referencing production issues or differences between export snapshots. Embedding such data in the XML rather then side-files enhances tracebility and reduces errors.

More details on extensions
naming & conventions.