pdaXsectionGridToLayerItem

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.


<pdaXsectionGridToLayerItem  accuracy="..."  lengthen="..."  lengthen_OptoDesigner="..."  pdkSelect="..."  widen="..."  widen_OptoDesigner="..."  width="..." ... > ... </pdaXsectionGridToLayerItem>

XSD

The schema file can be downloaded or viewed at xPDK_Base.

Details

Type pdaGDSlayerReference

Type pdaIdentifier


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

accuracy

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:
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

xmlCodeBlock("examples/mcslayer_grid_lengthen.xml",17,2); ?> Type pdaExpression documentation:
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

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.

pdkSelect

Type pdkSelect documentation: Use in layout.xml's to have a single foundry database, where you select layer/xsection/.. sub-sets for a given PDK.

widen

xmlCodeBlock("examples/mcslayer_grid_widen.xml",17,2); ?> Type pdaExpression documentation:
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

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: 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.

width

can be usefull in creating RF lines with fixed outer or inner width's that are used in derived layer processing. Type pdaExpression documentation: