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

    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.

  • Views

    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 i3.LayoutView, i3.NetlistView or a custom view you’ve provided yourself.

  • Library

    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.

Placement and Routing

Functions for placing PCells and routing between their ports according to a predefined set of constraints.

  • Importing from GDSII

    If you have existing GDSII layouts it is possible to import them into IPKISS.

  • Transformations

    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

    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

    Instances are the logical blocks of your design.

  • Nets

    Nets enable you to specify the connection between your logical blocks.

  • Terms

    Nets enable you to specify the connection between your logical blocks.


Connect two ports using a predefined algorithm.

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

    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

Technology Reference

PDK reference