Known changes and backwards incompatibilities in 2025.06
Warnings in ConnectElectrical
If no VIAs are used in i3.ConnectElectrical
, a warning will be shown if the ports do not have matching layers:
from ipkiss3 import all as i3
from si_fab import all as pdk
example = i3.Circuit(specs=[i3.ConnectElectrical(
i3.ElectricalPort(name="1", position=(0, 0), angle=0, layer=i3.TECH.PPLAYER.M1.LINE),
i3.ElectricalPort(name="2", position=(100, 50), angle=180, layer=i3.TECH.PPLAYER.M2.LINE),
)])
example.Layout().visualize() # warning
Passing ports to GDS - Filters
In 2025.06 ports are now retrieved and passed to the GDS-filters. In case there’s errors in the port definition of your layout, this error might now be triggered and raise an error, where before this error would have gone unnoticed.
To resolve, the ports declaration needs to be corrected.
Visualizing a layout
Starting with version 2025.06 a new default visualizer is introduced to display layouts.
When calling visualize
on a LayoutView object, the IPKISS Layout Visualizer will be used by default.
Arguments previously passed to visualize
(e.g., related to plotting styles) will no longer affect the IPKISS Layout Visualizer, as these are now feature toggles handled directly by the new tool.
These arguments haven’t been removed, as the ‘matplotlib’ engine remains available.
You can specify which visualizer to use in two ways:
engine argument: Pass engine=’ipkiss-layout’, engine=’matplotlib’, or engine=’legacy’ to the :py:meth:visualize <ipkiss3.all.LayoutView.visualize>` method.
Enviornment variable: Set the IPKISS_VISUALIZER_ENGINE environment variable to a specific value.
Both of these methods respond to three values: ‘ipkiss-layout’, ‘matplotlib’ or ‘legacy’.
A a result of this change, the legacy argument of visualize
is now deprecated and has no effect anymore.
Circuit Analyzer model definitions
It is now no longer needed to define additional classes inside your IPKISS PCells to make them variability-aware.
To run circuit analyzer, now use the ca.setup
method.
Please check the table below on which classes are removed and how to migrate to the new syntax:
Before 2025.06 |
2025.06 |
---|---|
|
Can be removed. Use the new yaml syntax, see also
|
|
Can be removed. See also Circuit model based on S-parameters. |