class ipkiss.process.layer.ProcessPurposeLayer(process, purpose, **kwargs)

Combination of a ProcessLayer and a PatternPurpose, defining together a unique i3.Layer.

Used instead of i3.Layer when a 2D (layer, purpose) space is needed to fully describe layout drawings.


process: ProcessLayer, required

ProcessLayer associated with this process/purpose combination

purpose: PatternPurpose, required

PatternPurpose associated with this process/purpose combination

name: str, required

number: int, required


Layout primitives such as Rectangle, Circle, Boundary, Path have a layer associated with them. By using (layer, purpose) pairs, it is easier to discriminate between actual mask drawings and other data which is used for design automation, verification or designer documentation.

The technology settings contain mappings between PPLayer objects and file format or database specific primitives. For instance, when exporting to a GDSII file, the technology determines how PPLayer objects are mapped to GDSII layer numbers and datatype numbers.

ProcessPurposeLayer and PPLayer are synonyms. Use i3.PPLayer.


>>> import ipkiss3.all as i3
>>> wg = i3.ProcessLayer(name="waveguide", extension="WG")
>>> nofill= i3.PatternPurpose(name="no dummy filling", extension="NOFILL", name="NOFILL")
>>> wg_nofill = i3.PPLayer(process=wg, purpose=nofill)
>>> print(wg_nofill)