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.
<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>
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.
<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.
<pdaSingleLayerOPS> ...
<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
<od_sptFooter> ... </od_sptFooter> optional
<od_sptHeader> ... </od_sptHeader> optional
<tex> ... </tex> optional
</pdaSingleLayerOPS>
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
<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>
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
<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>
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
<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>
drcGlobalDensity
The polygon density per layer can be important for a uniform process. This tests performs the density check on the complete layer.Attributes:
- MinDensity Use a fraction (0-1) to define the minimum density, default 0.45.
- MaxDensity Use a fraction (0-1) to define the maximum density, default 0.55.
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
<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>
drcLocalDensity
The density per layer can be important for a uniform process. This version of the test checks density per area.Attributes:
- width(in um)
- length(in um)
- MinDensity Use a fraction (0-1) to define the minimum density, default 0.45.
- MaxDensity Use a fraction (0-1) to define the maximum density, default 0.55.
- windowStep(in um, default half the width)
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
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
<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>
od_sptFooter
This section is copied into the '02' file below the (gds/mcs) layer definitions in the single-layer operation block. It is intended for more complex single/multi layer derived operations or DRC.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_singleSpt.xml
<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>
<od_sptFooter>
// println("hi");
</od_sptFooter>
</SingleLayerOps>
</layer>
od_sptHeader
This section is copied into the '02' file below the (gds/mcs) layer definitions in the single-layer operation block. It is intended for more complex single/multi layer derived operations or DRC.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_singleSpt.xml
<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>
<od_sptFooter>
// println("hi");
</od_sptFooter>
</SingleLayerOps>
</layer>