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