pdaSingleLayerOPS

Define single layer operations.

Single layer operations are grouped in design rule checking (DRC) and derived layer operations.

Single layer "derived"

For general comments - please refer to
multi layer operations.
Some "single layer derived" layers are shown here.
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>
</layer>

<layer name="layer2">
  <gds_number>3</gds_number>
  <gds_datatype>8</gds_datatype>
  <grid>0.01</grid>
  <purpose>Deeper and deeper</purpose>
  <SingleLayerOps>
   <!-- not making sense, just to show the setuip  -->
    <layerSize extentSize="2.0" A="layer1">
     <msg>sizing</msg>
    </layerSize>
    <layerGrow growSize="2.0" A="layer1">
     <msg>grow</msg>
    </layerGrow>
    <layerShrink shrinkSize="2.0" A="layer1">
     <msg>shrinking</msg>
    </layerShrink>
  </SingleLayerOps>
</layer>
Here the layerGrow, layerSize and layerShrink fill up content in this layer from another one. The A-reference should be to a GDS layer.

Design rule checking

For general comments - please refer to Multi layer DRC.
In short - be careful with the layer operations to make sure your DRC deck runs fast enough. And talk with your software partners to implement rules.

A simple exapmle is shown here.
full file

<layer name="layer1">
   <gds_number>1</gds_number>
   <gds_datatype>0</gds_datatype>
   <purpose>Waveguide layer</purpose>
   <!-- DRC -->
   <SingleLayerOps>
     <drcConvex/>
     <drcMinSpace value="0.2">Min dist between gides</drcMinSpace>
   </SingleLayerOps>
</layer>

Structure

This element does not have attributes. The elements are shown below, in a sorted per type fashion.
In case a list is printed after an element, it indicates that you can have many, otherwise it should be a single element. With a optional it tells the element is not required.

<SingleLayerOps> ...
  <countLayer> ... </countLayer>   list
  <doc> ... </doc>    optional
  <drcAngleCheck> ... </drcAngleCheck>   list
  <drcConvex> ... </drcConvex>   list
  <drcGlobalDensity> ... </drcGlobalDensity>   list
  <drcLocalDensity> ... </drcLocalDensity>   list
  <drcMaxArea> ... </drcMaxArea>   list
  <drcMaxVertices> ... </drcMaxVertices>   list
  <drcMaxWidth> ... </drcMaxWidth>   list
  <drcMinArea> ... </drcMinArea>   list
  <drcMinCornerSpacing> ... </drcMinCornerSpacing>   list
  <drcMinCornerWidth> ... </drcMinCornerWidth>   list
  <drcMinNotch> ... </drcMinNotch>   list
  <drcMinSpace> ... </drcMinSpace>   list
  <drcMinVertices> ... </drcMinVertices>   list
  <drcMinWidth> ... </drcMinWidth>   list
  <drcNoOverlap> ... </drcNoOverlap>   list
  <drcShortEdgeCheck> ... </drcShortEdgeCheck>   list
  <drcSingularPoint> ... </drcSingularPoint>   list
  <layerGrow> ... </layerGrow>   list
  <layerNot> ... </layerNot>   list
  <layerOr> ... </layerOr>   list
  <layerShrink> ... </layerShrink>   list
  <layerSize> ... </layerSize>   list
  <tex> ... </tex>    optional
</SingleLayerOps>

XSD

The schema file can be downloaded or viewed at xPDK_Layout.

Details

countLayer

Select polygons in the layer specified by A, where the overlap count is the same as given by the attribute count.
This operation splits the layer in polygons that are not overlapping; so all unique polygons. For each of these polygons it counts in how many "source" polygons this unique polygon is in the given layer; if it matches the count then in the output layer you will see the unique polygon.
For example if you want to see where exactly 2 polygons in A overlap, use count=2. Attributes: count.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_countLayer.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
  </layer>
  <layer name="layer2">
    <gds_number>2</gds_number>
    <gds_datatype>0</gds_datatype>
    <grid>0.001</grid>
    <purpose>Waveguide layer</purpose>
    <color R="255" G="20" B="20"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <countLayer count="2" A="layer1">
        <doc>Overlap search</doc>
      </countLayer>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaOPSlayerCount documentation: Count amount of polygons in layer.

doc

This field can be a reasonable text (many paragraphs) to document the layer operations in more detail. This is often helpful to give an idea of the layer logic, in particular when complex DRC rules are defined. Your colleques will be happy if it is easy to follow what happens.
Type pdaDocumentation documentation: Document anything relevant for the topic you want to define.

This field allows some (short, few lines) documentation to be written. It can be a long string, but the idea is not to replace a design manual.
This fields is like tex which allows documentation in LaTex format; doc is restricted to plain text.

drcAngleCheck

Validate sharp angles.

Calculate edge-edge angle values on all (healed) polygons and validate they are in the specified range. The attribuites Amax and Amin should be set, the defaults are 75.0 and 285.0 degrees.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcAngleCheck.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcAngleCheck Amin="angle" Amax="360.0-angle">No sharp angles</drcAngleCheck>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcAngleCheck documentation: Define angular DRC check.

drcConvex

This test ensures that all polygons can easily be splitted using any polygon splitter.
For convex polygons many algorithms exist that are slower or less reliable for concave polygons, so if you need to do further GDS processing, you can test this.
The algoritms that split up polygons is examples of this, but the code in OptoDesigner supports concave polygons also. Splitting up polygons is needed for large polygons as GDSII is very limited - polygon size is limited to roughly 4000 points, which is often not enough for healed (waveguide / metal) layers. So even a single large bend may already be more.
This operation performs a layer-heal first, so polygons are merged prior to the test.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcConvex.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcConvex>Require convex</drcConvex>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerNoArgument documentation: Define a single layer DRC test without argument.

drcGlobalDensity

The polygon density per layer can be important for a uniform process. This tests performs the density check on the complete layer.
Attributes: This test is currently not supported by OptoDesigner.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcGlobalDensity.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcGlobalDensity MinDensity="0.3" MaxDensity="0.6">Layer density</drcGlobalDensity>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcGlobalDensity documentation: Single layer DRC check on global density.

drcLocalDensity

The density per layer can be important for a uniform process. This version of the test checks density per area.
Attributes: This test is currently not supported by OptoDesigner.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcLocalDensity.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcLocalDensity MinDensity="0.3" MaxDensity="0.6" width="25" length="20" windowStep="5">Layer density</drcLocalDensity>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLocalDensity documentation: Single layer DRC check on local density.

drcMaxArea

Validate the maximum area of (healed) polygons.

This test is oriented at process steps where loading-effects occur; therefore the area should not be too big, to avoid bad etch behaviouir.
Value is the maximum area (um^2).

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMaxArea.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMaxArea value="4.0">Min. area</drcMaxArea>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerArgument documentation: Define a single layer DRC test with argument.

drcMaxVertices

Ensure that polygons have a maximum amount of vertices.
N is the maximum amount of vertices

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMaxVertices.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMaxVertices N="6">Max 6</drcMaxVertices>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerUnsignedArguement documentation: Define a single layer DRC test with unsigned-int as argument.

drcMaxWidth

Validate the line width of (healed) polygons.
This is often used to make sure that waveguides or metal tracks are not causing loading-effects, see also drcMaxAreas. This ensures reliable processing.
Value is the maximum width (um).

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMaxWidth.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMaxWidth value="0.5">DRC</drcMaxWidth>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerArgumentDirection documentation:

drcMinArea

Validate the minimum area of polygons.

This test allows to make sure polygons survive processing and should thus not be too small.
Value is the minimum area (um^2).

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMinArea.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMinArea value="4.0">Min. area</drcMinArea>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerArgument documentation: Define a single layer DRC test with argument.

drcMinCornerSpacing

Validate the space between two corners on the same layer.
Value is the minimum corner spacing (um).

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMinCornerSpacing.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMinCornerSpacing value="0.5">DRC</drcMinCornerSpacing>
    </SingleLayerOps>
  </layer>
Spt:
Note: this test is not yet implemented in OptoDesigner. Type pdaDrcLayerArgument documentation: Define a single layer DRC test with argument.

drcMinCornerWidth

Test the width of a corner.
Value is the minimum corner width (um).

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMinCornerWidth.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMinCornerWidth value="0.5">DRC</drcMinCornerWidth>
    </SingleLayerOps>
  </layer>
Spt:
Note: this test is not yet implemented in OptoDesigner. Type pdaDrcLayerArgument documentation: Define a single layer DRC test with argument.

drcMinNotch

Test for the minimum space between the outer boundaries of a single polygon on the layer.
Value is the minimum notch (um).

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMinNotch.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMinNotch value="1.0">DRC</drcMinNotch>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerArgument documentation: Define a single layer DRC test with argument.

drcMinSpace

Validate the space between (healed) polygons.
This test is needed to make sure the etched lines are homogenous; in too thin tracks etching becomes different then.
Value is the minimum space (um).

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMinSpace.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMinSpace value="2">DRC</drcMinSpace>
    </SingleLayerOps>
  </layer>
Spt:
Type drcMinSpaceType documentation: Validate the space between the center of (healed) polygons.
Value is the minimum space (um) between the centers.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMinSpace.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMinSpace value="2">DRC</drcMinSpace>
    </SingleLayerOps>
  </layer>
Spt:

drcMinVertices

Ensure that polygons have a minimum amount of vertices.
N is the minimum amount of vertices

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMinVertices.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMinVertices N="6">Require 6</drcMinVertices>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerUnsignedArguement documentation: Define a single layer DRC test with unsigned-int as argument.

drcMinWidth

Validate the line width of (healed) polygons.
This is often used to make sure that waveguides or metal tracks are mechanically stable and can be processed reliably.
Value is the minimum width (um).

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcMinWidth.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcMinWidth value="0.5">DRC</drcMinWidth>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerArgumentDirection documentation:

drcNoOverlap

Ensure that a layer is not self-overlapping.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcNoOverlap.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcNoOverlap>No self overlap</drcNoOverlap>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerNoArgument documentation: Define a single layer DRC test without argument.

drcShortEdgeCheck

Check edge length.
This checks all (healed) polygon edges for a certain length. This can be specified with attribute minLength (in um, default 0.1).
The maxAngle attribute (degree, default 45).

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcShortEdgeCheck.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcShortEdgeCheck minLength="0.5" maxAngle="45.">DRC</drcShortEdgeCheck>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcShortEdgeCheck documentation: Define short-edge DRC check.

drcSingularPoint

Ensure that no singular points are there.
Singular points (two polygons touching each other in a single point) are typically not allowed in foundries as such sharp points can not be produced. Therefor the results on chip is not as intended.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_drcSingularPoint.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <drcSingularPoint>No singular points</drcSingularPoint>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaDrcLayerNoArgument documentation: Define a single layer DRC test without argument.

layerGrow

Grow the source layer.
A layerGrow is a "round / ellips" operation. Attributes: growSize (in um, default 1.0), grid (in um, default 0.001) and numpointsperbend (>=3)
Output to this layer.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_layerGrow.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
  </layer>
  <layer name="layer2">
    <gds_number>2</gds_number>
    <gds_datatype>0</gds_datatype>
    <grid>0.001</grid>
    <purpose>Waveguide layer</purpose>
    <color R="255" G="20" B="20"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <layerGrow growSize="2" grid="1e-3" A="layer1" numpointsperbend="7">
        <doc>Round grow</doc>
      </layerGrow>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaOPSlayerGrow documentation: Single layer GROW operation.

layerNot

Perform the NOT operation on the source layer. Attributes: dx, dy (in um, default 1.0).
Output to this layer.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_layerNot.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
  </layer>
  <layer name="layer2">
    <gds_number>2</gds_number>
    <gds_datatype>0</gds_datatype>
    <grid>0.001</grid>
    <purpose>Waveguide layer</purpose>
    <color R="255" G="20" B="20"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <layerNot dx="2" dy="3" A="layer1"/>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaOPSLayerNot documentation: Single layer NOT operation.

layerOr

Perform the OR operation on a series of layers.
Output to this layer.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_layerOr.xml
full file
  <layer name="layer1">
    <gds_number>1</gds_number>
    <gds_datatype>0</gds_datatype>
    <grid>0.001</grid>
    <purpose>Software A</purpose>
    <color R="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
  </layer>
  <layer name="layer2">
    <gds_number>2</gds_number>
    <gds_datatype>0</gds_datatype>
    <grid>0.001</grid>
    <purpose>Software B</purpose>
    <color R="255" G="200" B="100"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
  </layer>
  <layer name="layer3">
    <gds_number>3</gds_number>
    <gds_datatype>0</gds_datatype>
    <grid>0.001</grid>
    <purpose>Software C</purpose>
    <color R="100" G="255" B="100"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
  </layer>
  <layer name="layerTgt">
    <gds_number>10</gds_number>
    <gds_datatype>0</gds_datatype>
    <grid>0.001</grid>
    <purpose>Output</purpose>
    <color R="255" G="20" B="20"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <layerOr>
        <layer>layer1</layer>
        <layer>layer2</layer>
        <layer>layer3</layer>
      </layerOr>
    </SingleLayerOps>
  </layer>
  <xsection name="Software_A">
    <color R="100" G="200" B="255"/>
    <grid>
      <map accuracy="0.01">layer1</map>
    </grid>
  </xsection>
  <xsection name="Software_B">
    <color R="255" G="200" B="100"/>
    <grid>
      <map accuracy="0.01">layer2</map>
    </grid>
  </xsection>
  <xsection name="Software_C">
    <color R="100" G="255" B="100"/>
    <grid>
      <map accuracy="0.01">layer3</map>
    </grid>
  </xsection>
Spt:
Type pdaGDSlayerReferenceList documentation: List of references on the GDS layer in the xPDK_Layout.xsd.

layerShrink

Shrink the source layer.
A layerShrink is a "manhattan" operation. Attributes: shrinkSize, grid, numpointsperbend.
Output to this layer.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_layerShrink.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
  </layer>
  <layer name="layer2">
    <gds_number>2</gds_number>
    <gds_datatype>0</gds_datatype>
    <grid>0.001</grid>
    <purpose>Waveguide layer</purpose>
    <color R="255" G="20" B="20"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <layerShrink shrinkSize="0.4" grid="1e-3" A="layer1" numpointsperbend="7">
        <doc>Shrink layer</doc>
      </layerShrink>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaOPSlayerShrink documentation: Single layer SHRINK operation.

layerSize

Size the source layer.
A layerSize is a "manhattan" operation. Attributes: extentSize (um, default 1.0), grid (in um, default 0.001) and numpointsperbend (>=3)
Output to this layer.

Download the xsl/xml/xsd's and run the (bash) command line below to convert the XML to a SPT example in OptoDesigner (see short docu):

xsltproc --xinclude -stringparam standalone true -stringparam example drc0 xPDK_toOptoDesigner02.xsl layer_layerSize.xml
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="100" G="200" B="255"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
  </layer>
  <layer name="layer2">
    <gds_number>2</gds_number>
    <gds_datatype>0</gds_datatype>
    <grid>0.001</grid>
    <purpose>Waveguide layer</purpose>
    <color R="255" G="20" B="20"/>
    <visible>true</visible>
    <fillstyle>open</fillstyle>
    <linestyle>fill</linestyle>
    <SingleLayerOps>
      <layerSize extentSize="1.5" grid="1e-3" A="layer1" numpointsperbend="7">
        <doc>Manhattan grow</doc>
      </layerSize>
    </SingleLayerOps>
  </layer>
Spt:
Type pdaOPSlayerSize documentation: Single layer SIZE operation.

tex

Type pdaTexDocumentation documentation: