# 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.

PCell

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.

Layout

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.

Netlist

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.

Connectors

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