Layout Reference
The Layout of a PCell represents the physical implementation of your design. This means it’s made of a set of geometrical elements that belong to a certain layer. It’s also possible to add additional information like port and device labels.
All layout information of your PCell is captured in the i3.LayoutView
.
Typically the structure of a PCell with a LayoutView will look as follows:
import ipkiss3.all as i3
class MyCell(i3.PCell):
class Layout(i3.LayoutView):
# some layout specific properties
length = i3.PositiveNumberProperty(default=10, doc="length")
width = i3.PositiveNumberProperty(default=2, doc="some width")
def generate(self, layout):
# In generate, we'll specify the references to child layouts,
# add geometrical elements, and specify the component's input & output
IPKISS’ capabilities in terms of layout definition are quite extensive, which is why the reference manual is split into different themes below. For a condensed guide about layout you can visit the layout guide.
- Elements, Layers & Instances
Elements are the basic building blocks of the layout. These can be geometric data drawn on a certain layer, or instances to other PCells for building hierarchical layouts.
- Shapes & Geometry
All layoutviews are in the end composed of a set of the geometrical primitives. Use this part of the reference to find out how to build the geometry of your layout.
- Ports
Ports are locations on the layout where connections are made.
- Placement and Routing
Functions for placing PCells and routing between their ports according to a predefined set of constraints.
- Transformations
Predefined transformations in IPKISS used to transform (i.e., rotate, translate) layout instances and geometrical primitives.
- Importing from GDSII
If you have existing GDSII layouts it is possible to import them into IPKISS.
- Exporting to GDSII
If you have a layout, it is possible to export it to GDSII.
- IoColumn
Used to place components on top of each other and connect them to grating or edge couplers on the side.
- Shape modifiers
Predefined shape modifiers for modifying existing shapes.
- Operations
Useful functions to check and manipulate elements and Layout data.
- Filters
Filters can be used to change how GDSII output is generated from Layout data.