pdaMCSgridToLayerItem

The conversion from xsection to gdslayer is a key aspect. It is handled in this section where many map's can be defined.
Each mapping adds a possibly modified copy using the widening or lengthening of the data to the respective gdslayer.

Structure

This element does not have elements. The attributes are shown below, in a sorted per type fashion.


<map  accuracy="..."  lengthen="..."  lengthen_OptoDesigner="..."  widen="..."  widen_OptoDesigner="..." ... > ... </map>

XSD

The schema file can be downloaded or viewed at xPDK_Base.

Details

Type pdaGDSlayerReference

Reference on the GDS layer in the xPDK_Layout.xsd.

Type pdaIdentifier

Defines a valid name for an identifier.

Identifiers are used in the Python library for the getName() and setName() function and can thus be used to identify the different elements in lists.
In text the specification is a letter, followed by letters, numbers, underscore or dot. The XSD schema validation is a regular expression: [A-Za-z]([A-Za-z0-9_])*

accuracy

This defines how accurate (in um) a curve should be approximated and does not directly relate to a GDS database grid. For photonic waveguides the 0.001 default is typical, while metal routing can use a lower accuracy like 0.01 um.
A rule of thumb is that each 10x more accurate approximation gives about 3x data size increase.
full file

 <!-- define GDS layers for the <map> sections -->
<layer name="layer1">
 <gds_number>1</gds_number> <gds_datatype>0</gds_datatype>
</layer>

<!-- define MCS layers -->
 <xsection name="WG">
  <grid>
   <map accuracy="0.1">layer1</map>
  </grid>
 </xsection>
Type pdaExpression documentation: Define an expression.

Expression need to be commonly evaluated by many software, so having a restricted set of math / types and so on is key. In PDAFlow lib2/expr there is a yacc/lex parser available with some unit support as well as double / complex expressions. An alternative is tinyexpr, but this is more restrictive, so may be very unhandy for things like waveguide model expressions.

lengthen

Define a (curve) lengthening with a fixed value.
full file

 <!-- define GDS layers for the <map> sections -->
<layer name="layer1">
 <gds_number>1</gds_number> <gds_datatype>0</gds_datatype>
</layer>

<!-- define MCS layers -->
 <xsection name="WG">
  <grid>
   <map lengthen="2">layer1</map>
  </grid>
 </xsection>
Type pdaExpression documentation: Define an expression.

Expression need to be commonly evaluated by many software, so having a restricted set of math / types and so on is key. In PDAFlow lib2/expr there is a yacc/lex parser available with some unit support as well as double / complex expressions. An alternative is tinyexpr, but this is more restrictive, so may be very unhandy for things like waveguide model expressions.

lengthen_OptoDesigner

A lengthening extends the input and output of a curve.
It can be width-dependent in OptoDesigner, for example to auto-taper a RF GSG track correctly. Other software may or may not have this capability, but if so, they can use this field also.
For OptoDesigner the style should be one of: Note A lengthening is most often width independent.
Note If both lengthen_OptoDesigner and lengthen are available, OptoDesigner will use only the former.
full file

 <!-- define GDS layers for the <map> sections -->
<layer name="layer1">
 <gds_number>1</gds_number> <gds_datatype>0</gds_datatype>
</layer>

<!-- define MCS layers -->
 <xsection name="WG">
  <grid>
   <map lengthen_OptoDesigner="{functor= #+4}">layer1</map>
   <map lengthen_OptoDesigner="{functor= #^2+4}">layer1</map>
   <map lengthen_OptoDesigner="{w -> cos(w)+4}">layer1</map>
  </grid>
 </xsection>
Type Function documentation: Define an function for OptoDesigner.

This is vendor specific and can be defined as functor {functor #} or expression {a -> f(a)} style. These are used in the lengthening and widening of curves for example.

widen

Define a (curve) widening with a fixed value.
full file

 <!-- define GDS layers for the <map> sections -->
<layer name="layer1">
 <gds_number>1</gds_number> <gds_datatype>0</gds_datatype>
</layer>

<!-- define MCS layers -->
 <xsection name="WG">
  <grid>
   <map widen="4">layer1</map>
  </grid>
 </xsection>
Type pdaExpression documentation: Define an expression.

Expression need to be commonly evaluated by many software, so having a restricted set of math / types and so on is key. In PDAFlow lib2/expr there is a yacc/lex parser available with some unit support as well as double / complex expressions. An alternative is tinyexpr, but this is more restrictive, so may be very unhandy for things like waveguide model expressions.

widen_OptoDesigner

A widening of a track is with respect to the center of the curve.
It can be width-dependent in OptoDesigner, for example to auto-taper a RF GSG track correctly. Other software may or may not have this capability, but if so, they can use this field also.
For OptoDesigner the style should be one of: Note If both widen_OptoDesigner and widen are available, OptoDesigner will use only the former.
full file

 <!-- define GDS layers for the <map> sections -->
<layer name="layer1">
 <gds_number>1</gds_number> <gds_datatype>0</gds_datatype>
</layer>

<!-- define MCS layers -->
 <xsection name="WG">
  <grid>
   <map widen_OptoDesigner="{functor= #+4}">layer1</map>
   <map widen_OptoDesigner="{functor= #^2+4}">layer1</map>
   <map widen_OptoDesigner="{w -> cos(w)+4}">layer1</map>
  </grid>
 </xsection>
Type Function documentation: