xPDK BB - GUI fields
Standardizing look & feel (from a foundry / designer perspective) can be helpful too. This allows quicker understanding of what to find where in different software and facilitates communication between foundry and design teams as well as within design teams.BB changes / version
To get an idea of the maturity of the BB design, you can add a lastChangedDate in the BB definition. It does not imply that it needs to have run on many wafers since that change. Another option to show this is the use of the version tag.
<bb name="myDate">
<lastChangedDate>2022-04-29</lastChangedDate>
<version>1.2.3</version>
</bb>
XSD(lastChangedDate):
This date allows a foundry to define the date that the BB really changed, so things like new layout, changes in layer stack and so on. Doing new measurements is not part of this. The date is specified in the following form "YYYY-MM-DD" where: YYYY indicates the year MM indicates the month DD indicates the day
XSD(version):
Version information.
The version can be defined as:
The version can be defined as:
- major.minor
this is the short-hand version number. This can be a YYYY.MM (year.month) value also. - major.minor.patch
adds the patch to indicate small changes. This can be a YYYY.MM.DD (year.month.day) value also. - major.minor.patch.iteration
where the iteration is often relating to a (software) implementation and thus less typical in PDK or BB versions. It can be useful in the compact model files to indicate that the same measurements or simulations have received a new model instance.
Export control & library
The devicetype in the BB can be used for export control as some combinations need (legal) validation.
<bb name="myBB2" devicetype="source">
<library>Advanced components/Using parameters</library>
</bb>
XSD(TdeviceType):
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.
XSD(library):
Defines the location in an library / element tree. In OptoDesigner it is used as dlgname and thus populates the Element dialog.
Icon & drawing
Icon’s can be fully embedded as base64 encoded data. This avoids the need for external file references.
<bb name="myIcon1" devicetype="amplifier">
<icon> <!-- this data is not actually a PNG ! -->
<file format="png">4oVIUNDopNMHqhuzLaDOFXnzCT+cRkQM/NroSIdxnALeS1kYcYMKeRGrdRnc
yXtMtUAk6Xmnoje2X6EnYll/Zn0+GEfFl/6birD2W6ZVc3HhoRQ5Fnl8DObg
WhiGthy1dwNPhKULEzVoDEsffEilx1FfnRWaNSQr0sMfVPIUXH5Gpfb0+zvn
69+xutJmQa9cCrUgsNpYPQFZQLNj7B/gxzYywQHlNQPjO2OakXW7zruTfrgU
TYJlSTSmdJXwdBNN0Vbbn0giRM7RHDgJy/XA6Yvm2BIJci4K41fu+DEhtq+e
L8zzN6cDA6SzeOBcSDd4LWf6nvdmKdX9tIBw5zPlDO+kFSg/ldUPiSJG5udy
PnoaiBfw6faCyV3lTMD13w+HR0EUZCYWF+pu5swDlYstQidbSO59isRQsi7j
+VZb+D/l8SI0JpB2HCpw97gePmXuVKIKuXKmfpOqSWC9nSRlc1qm+++m270p
b2sdpETAstnriFLgcn98jrvKzbCQPRyLJteBzqBOyIaTe50zcDjwENSoVTzI
gwquDVYndjqZIR/ZrcCG7R3ic0LqFzuznQB0BIFN3sbBaVwquCS5Fd9vr0hp
96HXjpSz3NQouc5fMYPYcwK2QU1m+w5L/e5DFqLzbTpbWKO2MvGz5tlPuqoR
1hi7iZHduuKAwyba1acptLGw9zp6ZmtSFaqWKHHcQFV2Uu+vFnM24lunQHW/
VfpLIx5joVsncxfVDYbDcqlffKM3RmszKIt/NRVRbNwKTRteO3EhE4SrRKNi
FX19GlCWXz9vjqFDBvq4cRf+4XLG6IHk6lLxo6QY4zzRNo1p</file>
</icon>
</bb>
<bb name="myIcon2" devicetype="amplifier">
<icon>
<!-- use fixed files -->
<filename format="png">icon.png</filename>
<filename format="svg">icon.svg</filename>
<!-- call some drawing code, specific per software -->
<function software="Software1">call_something_to_draw();</function>
<function software="Software2">draw_me();</function>
</icon>
</bb>
XSD(Tpicture):
Define a picture. The picture can be provided as embedded (use file) or file reference (so external file, use reffile) and for some software via function calls (use function).
- XSD(file):
Picture for use in schematic designs. Specify the type of icon data via the format attribute, default is a png.
- XSD(filename):
Picture for use in schematic designs in external file. Specify the type of icon data via the format attribute, default is a png.
- XSD(function):
Call a function in a specified software to draw / display the picture.