Visualizing Layouts

Once a LayoutView is created, you can visualize and inspect it using the IPKISS Layout visualizer via the .visualize() method, as shown below:

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

mmi = pdk.MMI1x2Optimized1550()
mmi_layout = mmi.Layout()

mmi_layout.visualize()
../../../_images/visualize_mmi.png

Within the IPKISS Layout visualizer, you can explore your layout and perform a range of actions, such as

  • toggling labels, the grid, and port labels

  • snapping the layout to the grid

  • hiding or showing layers

The .visualize() method accepts several parameters (see visualize) that were previously used to customize the layout display in the earlier matplotlib-based visualizer. These parameters have no effect in the newer IPKISS Layout visualizer, since layout display customization is now handled directly through the GUI.

Using the matplotlib visualizer

To use a different visualizer, such as the earlier visualizer based on matplotlib, you can do so by either:

  • setting the engine argument in the .visualize() call

  • setting the IPKISS_VISUALIZER_ENGINE environment variable

In this case, all parameters of .visualize() can be used to customize the layout appearance.

The example below shows how to visualize a layout using matplotlib, with annotations enabled:

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

mmi = pdk.MMI1x2Optimized1550()
mmi_layout = mmi.Layout()

mmi_layout.visualize(engine="matplotlib", annotate=True)
../../../_images/visualize_mmi_matplotlib.png

visualize

class ipkiss3.all.LayoutView
Parameters:
view_name: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3.

The name of the view

visualize(canvas_size=None, box=None, show=True, display_styles=<ipkiss3.technology.TechValue object>, default_display_style=None, annotate=False, labels=True, figure=None, legacy=False, grid=True, engine=None)

Visualize a layout.

NOTE: None of these parameters interact with the new IPKISS Layout Visualizer.

One can decide to use another visualizer, by following one of two methods.

  1. setting the engine argument in the visualize call

  2. setting the env variable IPKISS_VISUALIZER_ENGINE

Both can receive three values: ‘ipkiss-layout’, ‘matplotlib’, ‘legacy’

Parameters:
canvas_size: list

Size of the canvas: [width, height]

box: list

(deprecated) Box size, [north, east, south, west]

show: boolean

Show the image, default is True.

display_styles: DisplayStyleSet

The display style set, default is TECH.DISPLAY.DEFAULT_DISPLAY_STYLE_SET.

default_display_style: DisplayStyle

The default display style in case a layer is not associated with one, the default is DisplayStyle(alpha=0.4).

annotate: boolean

Whether to annotate the ports, default is False.

labels: boolean

Whether to show the labels, default is True.

figure: Figure

Reuse an existing matplotlib Figure. By default, a new Figure will be created.

legacy: boolean

(deprecated, use engine instead) Use the legacy version of visualize

grid: boolean

Show the gridlines, default is True.

engine: EngineType | None

Decide which engine the visualizer uses. See the NOTE in this docstring.

Returns:
None, if applicable a matplotlib Figure.