pdaBBtypeItem

The BBType name is used for refences.

Structure

The attributes and 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.

<bbtype  
exportclass="..."  group="..."  library="..."  name="..."  priority="..."  symbolViewTemplate="..." ... > ...
  <LayoutInterfaceBB> ... </LayoutInterfaceBB>   list
  <ModelName> ... </ModelName>   list
  <doc> ... </doc>    optional
  <extends> ... </extends>   list
  <groupRef> ... </groupRef>   list
  <markup> ... </markup>   list
  <modelpriority> ... </modelpriority>   list
  <pycall> ... </pycall>   list
  <tex> ... </tex>   list
  <ticket> ... </ticket>   list
</bbtype>

XSD

The schema file can be downloaded or viewed at xPDK_CompactModel_List.

Details

LayoutInterfaceBB

Type LayoutInterfaceBB documentation: Define the BB mappings in the wxcfg class. It is ok to have multiple PDK elements map to the same wpcfg instance, for example depending on the wavelength band which is selected. The LayoutInterfaceCondition can then be used to select which version to pick, where the first is selected. Order is determined by LayoutInterfacePriority, highest is last.
This interface is added to simplify the creation of design modules by abstracting away the common parts of design kits. Often comparable BBs exist between foundries, so by hiding this away in an interface, you can build up foundry-transparant design modules.
For the argument/order you can look in the /*default:*/ below, which shows the curve that is used if you do not overrule it. wwg is the configured waveguide width for the bus, the wwr the default radius.
The setup is to have only a few common parameters in the interface, so you can easily use them with common parameters while not getting lost. In addition to that for the implementation, you can use: final function getWidth() TexDoc "Return width"
final function getRadius() TexDoc "Return radius"
final function getDistance() TexDoc "Return wg/wg distance"
final function getDistanceCenterCenter() TexDoc "Center - center distance of 2 waveguides"
final function getTaperAngle() TexDoc "Return default angle for tapers"

inside the code. Use the BB-configuration for fine-tuning the specifics of a design kit BB, see design manuals for some sample code (it varies per software).

ModelName

Define a list of models that this type supports.
The model list is related to the simulation information. Type pdaCompactModelItem documentation: Define a compact model per BB type.

doc

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

exportclass

Export control mark-up, use via bbtype_to_interfaceBB.xsl to auto-config data fast. Type pdaDeviceType documentation: This information is intented for export control as some combinations of BBs need legal validation. Design software can validate the devicetype combinations that are used in the design and report on possible export regulations.

extends

Define a list of basic bbtypes.
Using the extends allows to incorporate the models of the base class, like a multiple inheritance. Type pdaIdentifierExtended documentation:
Those names are mostly XML scope and thus for readability support more general naming then the pdaIdentifier.

group

This field is used for the documentation generation to group the BB-types into a list of categories. It is based on InPulse deliverable D4.4 and adds updates from the Stichting PDAFlow Foundation PDK workgroup. 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_])*

groupRef

Type groupRef documentation:

library

This field links the bbtype to typical library grouping, which standardizes the lists and shortens the enrich.pys - thus reduce maintenance.

markup

Type pdaMarkupDocumentation documentation: actual html.

modelpriority

Allow to annotate the respective models with a priority for measurements by the foundary. Type pdaModelPriority documentation:

name

Type pdaIdentifierExtended documentation:
Those names are mostly XML scope and thus for readability support more general naming then the pdaIdentifier.

priority

This field indicates its relative priority for a foundry to consider its models with respect to other BBs. Type pdaBBpriority documentation:

pycall

Type pycall documentation: This is intended for Luceda's data processing on the model data, so is used in the xPDK_CompactModel_List.

symbolViewTemplate

Type symbolViewTemplate documentation: Define the symbol view to use as basis.
When using this field, the PDK will use this shape as template and generate the symbol based on the pre-defined template. This is an alternative of using the symbolView use.

tex

Type pdaTexDocumentation documentation: doc , but tex can be a long text in LaTex format to document the layer in more detail if needed.

You can document anything relevant for the topic you want to define.

Multiple paragraphs is fine. Format is Latex, so more complex content is possible.

ticket

Type pdaTicket documentation: