IPKISS Reference

The reference is a detailed documentation of the full IPKISS API. Its main goal is to help you to discover all functionality and explain how use it. We structured all functionality by topic, so it is easy to find the methods and classes you need.


A parametric cell or PCell provides the base on which you can start building your designs. This section of the reference will help you in using pcells effectively in your designs.

Properties are used in virtually every component of IPKISS. They are used to store variables and to restrict the range & type of values that can be assigned to an object.
We use views to store all data related to your design, views are a ‘view’ on a certain part of your design. This might be a LayoutView, NetlistView or a custom view you’ve provided yourself.
Cells are stored in a library.


The physical implementation of your design, or layout is represented in IPKISS using the LayoutView. A LayoutView will typically contain geometric elements & layers.

Elements & Layers
Elements are the basic building blocks you put on a certain layer. You use these elements to construct the layout of your design. These Elements can be references to layoutviews or basic geometric blocks.
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.
Functions for placing PCells according to a predefined set of constraints.
Importing from GDSII
If you have existing GDSII layouts it is possible to import them into IPKISS.
Predefined transformations in IPKISS used to transform (i.e., rotate, translate) layout instances and geometrical primitives.
Shape modifiers
Predefined shape modifiers for modifying existing shapes.
Ports are locations on the layout where connections are made.


The NetlistView defines the logical structure of your design, when defining a netlist you’ll specify the connectivity, the logical blocks and the ‘endpoints’ ( terms ) of your pcell.

Instances are the logical blocks of your design.
Nets enable you to specify the connection between your logical blocks.
Nets enable you to specify the connection between your logical blocks.

Circuits & Caphe

Defining CircuitModel
This documents the basic circuit model API, which allows you to define basic linear frequency models based on S-parameters.
Simulation using caphe
The caphe solver is used to simulate the behavior of your cell. Based on the compact models of your design.

Waveguides & Traces

Waveguide concepts
Waveguides and other ‘traces’ are based on powerful templating concepts.
Routing allows you to connect your components, The IPKISS API provides various ways to connect components. This sections lists them & documents their behavior

Device simulation

Defining device simulations
Device simulations with physics solvers (e.g. FDTD) can be specified and run from IPKISS.

Technology Reference

PDK reference

PDK structure reference
How to structure a PDK for use with IPKISS.