Release notes Luceda Photonics Design Platform 2024.12.0

The Luceda 2024.12 release introduces several improvements across the whole platform, improving design kits installation, PDK technology definition, design rule checks (DRC) and expanding online tutorials.

Key highlights:

  • Design rule checks (DRC): The Link for Check Mate DRC lets you call Spark Photonics’ Check Mate DRC tool directly from IPKISS. Additionally, you can now run KLayout DRC decks straight from IPKISS, and easily visualize the results in KLayout.

  • Design kit installation: Design kits (PDK, ADK, TDK) can now be installed globally via the Luceda Control Center. This way they are automatically recognized by your preferred code editor (IDE) without requiring manual PYTHONPATH configuration.

  • PDK improvements: The process of defining a PDK technology is now more efficient with the introduction of TECH default values. Additionally, TECH code completion has been implemented to accelerate PDK development.

  • Luceda Academy improvements: Explore the new SpectrumAnalyzer tutorial that illustrates how to analyze simulation and measurement data, compare them between each other and obtain key performance indices. Additionally, we have also introduced a demonstration of a MQW (multi-quantum well) EAM (electro-absorption modulator) simulated by interfacing with NextNano++.

  • IPKISS Canvas improvements: Fixing rotations when generating Python code from schematic, made several improvements to the styling of IPKISS Canvas, and made codelets easier to share by referencing them using relative paths.

For all features, improvements and bugfixes please consult the changelog.

Design Rule Checking (DRC)

This release introduces the ability to perform design rule checks (DRC) directly from IPKISS using two tools:

To help you get started, we’ve included a DRC example deck for the SiFab demonstration PDK. This example showcases how to run DRC checks using KLayout and provides a practical illustration of the workflow.

Example output from running a DRC check in KLayout.

Result of a DRC run displayed in KLayout.

For availability of DRC decks for either Check Mate DRC or KLayout, please check with the foundry.

Design kit installation

This release introduces the concept of globally installed design kits (PDK, ADK, TDK), simplifying the process of setting up a design project.

To more easily manage and use design kits, we’ve added a new “Design kit” tab in the Luceda Control Center. From there, you can easily add or remove new design kits directly from a zip file. Design kits added to the Luceda Control Center are stored in the user home folder under luceda/libraries and are automatically recognized whenever an IPKISS script is run in an IPKISS environment. This eliminates the need for manual configuration and makes it easier to integrate design kits into projects.

Below is an example of the Luceda Control Center interface, displaying the default installed design kits. The software ships with a predefined set of open-source design kits as well as SiFab, our demonstration PDK that is widely used in Luceda Academy training materials.

Design kit tab in Luceda Control Center.

Manage design kits from the new Design kit tab in the Luceda Control Center.

If users install multiple versions of the same PDK, all versions are displayed in the LCC, and the most recent version is automatically recognized by the code editor (IDE) and used in your designs.

For those who prefer a custom setup, the original method of manually setting the PYTHONPATH to refer to a specific design kit is still supported.

PDK improvements

TECH default values

Luceda PDKs provide a lot of flexibility for defining a technology for a foundry process. However, until now, creating a new PDK required specifying all this information upfront.

With this release, we’ve relaxed this requirement by introducing default values for TECH keys. PDK developers can now start building and testing their PDKs much faster without needing to provide all TECH keys from the outset. This also means that keys that are not relevant to a particular PDK no longer need to be defined at all.

This improvement also reduces the complexity of handling cyclic dependencies during technology definition, making PDK development more straightforward and efficient.

TECH code completion

In addition to simplifying the TECH definiton, PDKs now offer code completion for the TECH object. This is achieved through a small __init__.pyi (stub) file, which is added to the PDK alongside the __init__.py ofile during the build process.

To take advantage of this feature, users need to import the TECH directly from the PDK instead of from i3.

import si_fab.all as pdk
import ipkiss3.all as i3

i3.TECH  # This doesn't have code completion
pdk.TECH # This will have code completion

Luceda Academy improvements

This release introduces two new tutorials:

Canvas improvements

When you build a schematic in Canvas and generate the corresponding Python code using the code templates, rotations will be properly applied.

Also, several styling improvements have been made so working with Canvas is more intuitive and pleasant:

Improved styling in IPKISS Canvas.

Improved styling in IPKISS Canvas 2024.12.

Finally, codelets in libraries (iclib) can be stored with a relative path (relative to the library file). For instance, if a library designs.iclib is stored in C:\projects\project1\designs.iclib, and a codelet is stored in C:\projects\project1\codelet\run_nonlinear_sweep.py, then we only store the codelet\run_nonlinear_sweep.py path in the design.iclib file (instead of an absolute path). This facilitates sharing codelets together with the libraries they are stored in.