What is IPKISS?¶
IPKISS is a parametric design framework for integrated circuits, and in particular for photonic integrated circuits. It revolves around the sound engineering concept that duplicating information in the design process is dangerous: at some point you will make an error (copy-pasting the wrong component, or forgetting to modify a parameter in one place). In IPKISS, you can define parametric cells (PCells) where all your design information is integrated into one place. IPKISS then handles the transition between the different steps in your design flow and makes sure that the necessary information is available and correct.
IPKISS is based on Python , an easy to learn yet very powerful programming language that is widely used in engineering, science, data science, and automation.
Photonic design happens at many different levels. A lot of the component design is still done using detailed electromagnetic simulations, tailoring geometries to a very detailed level. While at the same time, circuit design requires abstraction at a much higher level. Traditionally, these different steps in the design flow require very different tools, while at the heart they require the same component definition: at the end of your design you want the correct component to be placed on the mask for fabrication. IPKISS integrates the different aspects of photonic design into one framework, where you can define your component once as a parametric cell (PCell) and then use it throughout your design process:
- performing electromagnetic simulations,
- defining circuit models,
- connecting devices into a circuit,
- running circuit simulations,
- automate the testing of your devices at all stages of the design cycle,
- generate the mask layout that will be sent to the fab,
- and finally even process the testing of the fabricated devices.
Because the same component definition is used in the entire flow, design errors are significantly reduced. Also, the level of automation that can be achieved with this flow can enable more efficient and error-proof design flows.
IPKISS comes with Picazzo, a large library of predefined parametric components. While mainly developed for silicon photonics, the components are generic and can be applied to any planar photonic integration technology. Components include parametric grating couplers, Mach-Zehnder interferometers, (multi-)ring resonators and (optionally) advanced wavelength filters such as arrayed waveguide gratings (AWGs) and echelle gratings.
At the core of IPKISS is a power Python scripting framework. We opted for a scripting layer because it poses the minimum of constraints. The Python language is easy to read, is an accepted industry-standard, and comes with a rich ecosystem of scientific and engineering packages. Moreover, it makes IPKISS an open environment, where it is possible to integrate different design and simulation tools (even from other tool vendors) into your design flow.
IPKISS development originated at Ghent University and imec in 2002, to enable mask design of large silicon photonics circuits, which was difficult with any of the tools at that time. Over time, the framework evolved into much more than layout, incorporating multiple simulations tools (electromagnetic and circuit) and an entire test & measurement framework. In 2012, a limited version of IPKISS was open sourced, and was widely used for many tape-outs of silicon photonic chips. In 2014, Luceda Photonics was incorporated to bring the development of IPKISS up to industry standards and provide commercial support and services. This resulted in a major upgrade of the software that fully integrates layout and simulation and enables the integration with electronic design flows.
By now, IPKISS is the design tool of choice of a large base of designers world-wide and has been validated on many photonic IC foundry technologies including various silicon photonics, silicon nitride and indium phosphide based platforms.
The name IPKISS is not chosen as an acronym, although you could come up with meaningful expansions such as Integrated Photonics: Keep It Simple Stupid (although we’re not that fond of the last word at Luceda Photonics). The origin of the name lies in the original purpose of the framework, which was making really complex photonic mask layouts. IPKISS was named after Stanley Ipkiss, the key character in the comic books The Mask (and the movie with Jim Carrey). The name just stuck; we like it. The name of the PICAZZO component library is a tongue-in-cheek to the artist Pablo Picasso, who, during a period in his life, was an enthusiastic painter of masks.
- Introduction to Python
- Setting up the editor environment
- Quickstart: First simple circuit design
- What is IPKISS?
- Ipkiss 3 overview
- Layout: Basics
- Layout: Advanced (hierarchy and waveguides)
- Circuit models: Basics
- Circuit models: Advanced
- Circuit models based on S-parameter data
- Physical device simulation
- Interfacing with DS CST Studio Suite
- Interfacing with Lumerical FDTD Solutions