pdaElasticData
Set the value for "elastic BB" like connector elements.The properties are obtained from the schematic driven layout approach, where the layout software makes sure all things are connected properly. For this to work, it is often needed that some parts of the design are specified by the designer to be "elastic". Such elastic properties depend on the type of routing element that is used.
For example if a straight waveguide is used for routing, only the length is flexible. For a sine-bend shape both length and offset can be flexible.
This information is key for the circuit simulation / designer in a post-layout verification of the pre-layout simulations as the actual properties of the elastic building blocks may change their optical/electrical behaviour somewhat.
Structure
This element does not have elements. The attributes are shown below, in a sorted per type fashion.<pdaElasticData pdaNamedValue:name="..." pdaNamedValue:xsSpec="..." pdaValue:allowedValues="..." pdaValue:type="..." pdaValue:unit="..." pdaValueDouble:bbTestMax="..." pdaValueDouble:bbTestMin="..." pdaValueDouble:doc="..." pdaValueDouble:max="..." pdaValueDouble:min="..." pdaValueDouble:tex="..." ... > ... </pdaElasticData>
XSD The schema file can be downloaded or viewed at xPDK_Netlist.
Details
Type pdaNamedValue
Type pdaValue
none, and value is the expression in the content. The difference with attributes is that they are more like annotation; basically key/value string to add more information in a software specified way.Type pdaValueDouble
degrees for angles. The expression is in the content.Type pdaExpression
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.
name
Type pdaIdentifier documentation: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_])*
xsSpec
- function() style, so no arguments, to provide for defaults.
- function(xsection) for xsection specific values.
- function(xsection,default value) style to match with easy test pattern generation.
allowedValues
Type pdaStringList documentation: text (attribute or element).type
Type pdaValueType documentation: expression is an extension to what the 'simple code' can do, but runs partly in xPDK:expr spt.Allowed types:
boolean
:int
: xPDK:expr supportedunsigned
: xPDK:expr supporteddouble
: xPDK:expr supportedstring
:point
: xPDK:expr supportedcomplex
: xPDK:expr supported
unit
Type pdaUnit documentation:The use of units is strongly recommended to ensure that values are consistent between provider and user of data. The XSD schema allows a series of "basic units" with a
*
and /
them. A
basic unit uses the standard prefixes qryzafpnumckMGTPEZYRQ followed by its type and
an optional ^
. So a unit can be something like 1/cm*3kV/m^3/degree*dB
A few additional names are added. You can use them with the common prefixes.
Loss
: dB/cmbps
: byte/seconddegC
: temperature in degree Celciusdegree
ordeg
: angle in degree (0-360)radian
orrad
: angle in radians (0-2PI)dB
: DecibeleV
: Electron Volt (no prefix)none
: No type / dimensionless value (no prefix)
bbTestMax
the BB test files to make the design more clear, so not having bends with 359deg which are then shown as "racetrack". 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.
bbTestMin
the BB test files to make the design more clear, so not having bends with -359deg which are then shown as "racetrack". 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.
doc
max
rule checking or user interface aspects. 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.
min
rule checking or user interface aspects. 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.