pdaDrcCellLocation

Define a location rule for main designer cell

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.

<CellLocationRule  
align="..."  pdaDrcGeneralRule:DFM="..."  pdaDrcGeneralRule:drcExclude="..."  pdaDrcGeneralRule:level="..."  pdaDrcGeneralRule:rule="..." ... > ...
  <location> ... </location>
  <pdaDrcGeneralRule:doc> ... </doc>    optional
  <pdaDrcGeneralRule:groupRef> ... </groupRef>   list
  <pdaDrcGeneralRule:msg> ... </msg>    optional
  <pdaDrcGeneralRule:tex> ... </tex>    optional
  <pdaDrcGeneralRule:ticket> ... </ticket>   list
</CellLocationRule>

XSD

The schema file can be downloaded or viewed at xPDK_Layout.

Details

Type pdaDrcGeneralRule

Define a design rule that is not layer or "polygon" / "geometric" based.
Design rules are available in different flavors, some of which can not be associated with layers; for example the name of the GDS cell that is required to be used for the design.
The rule is described in text and software may (or not) be able to implement them. Using the rule field gives designers an easy way to find more information on the DRC fail if it appears.

align

Type pdaShapeAlign documentation: portref. Using "bic" is good for input ports on symetric devices. Using "boc" is good for the outputs.
For DC/RF pads the "bcc" is a likely candidate.

Allowing shapes to relate to ports saves a lot of equations being re-used and thus makes the file more readable. An example is the polar bend, where the end point is [R*cos(a),R*sin(a)] so if you need to define a small rectangle on the "inside" of the bend, you need lots of equations.
The alignment values are shown below and refer to a rectangle that will fit just around the shape you work on; so for a circle the bil will not be on the bic location but at [-R,R] compared to the center of such a circle.
--------------------
|bil     bcl    bol|
|                  |
|bic     bcc    boc|
|                  |
|bir     bcr    bor|
--------------------
    

location

Type pdaPointXY documentation:

DFM

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

Short documentation on the why of the rule.
This information is useful for a design manual but can also be used in the user interface as additional information, like a 'on-hoover mouse move'. Type pdaDocumentation documentation:
This field allows some (short, few lines) documentation to be written. It can be a long string, but the idea is not to replace a design manual.
This fields is like tex which allows documentation in LaTex format; doc is restricted to plain text.

drcExclude

Type pdaGDSlayerReference documentation:

groupRef

Use this field to combined related topics into groups. 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_])*

level

Type pdaDrcWarningLevel documentation: Error/warning level for a DRC message.
Normal use is: warning / error.

msg

DRC message to display in the user interface.
It is recommended that this is a short text as it may appear many times in the display (so much shorter then the 'doc' field).

rule

tex

Possibly long documentation on the why of the rule in LaTeX format. 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: