LayoutView

The Layout View of a parametric cell defines the drawings which are needed to obtain masks for fabrication of the IC. For more information visit our guide.

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

flatten(level=-1)

Flattens this LayoutView in place. (recursive)

Parameters:
levelHow many levels deep should the hierarchy be flattened. -1 means all levels (default)
flat_copy(level=-1)

Creates a flat copy of a layout, in a new cell.

Parameters:
level: How many levels deep should the hierarchy be flattened. -1 means all levels (default)
write_gdsii(filename_or_stream, unit=<ipkiss3.technology.TechValue object>, grid=<ipkiss3.technology.TechValue object>, layer_map=<ipkiss3.technology.TechValue object>, filter=<ipkiss3.technology.TechValue object>, timestamp=None)

Writes a LayoutView, including all its dependencies to a GDSII file.

Parameters:
filename_or_streamstring , file object

When a string is provided, a file object will be created When a stream of file object is passed, this will be used The file object should be binary and set in write mode.

unitpositive number

The User units to be used in the GDSII file. By default, the value is extracted from TECH.METRICS.UNIT

gridpositive number

The database units (grid) to be used in the GDSII file. By default, the value is extracted from TECH.METRICS.GRID the user unit should be an integer multiple of the grid

layer_mapdict or LayerMap object

A dictionary-like object to map the IPKISS layers onto GDSII layer numbers and data-types.

filter: Filter

Optional, a filter to be applied instead of the default.

timestamp: datetime.datetime or None

Optional, a fixed timestamp to apply to the library and all cells written. If None, the current date and time will be used.

Returns:
When running from a script, the method returns nothing.
When running in an IPython Notebook, the method returns a FileLink object that the user can use to
download the generated GDSII file.
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)

Visualize a layout.

Parameters:
canvas_size: list

Size of the canvas: [width, height]

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

Use the legacy version of visualize, default is False.

grid: boolean

Show the gridlines, default is True.

Returns:
A matplotlib Figure.
cross_section(cross_section_path, process_flow=<ipkiss3.technology.TechValue object>, path_origin=0.0)

Generate a cross section of the LayoutView along a path

Parameters:
cross_section_path: i3.Shape

shape, in layout coordinates, along which to take the cross-section

process_flow: VFabricationProcessFlow

virtual fabrication process flow. If not specified (None), TECH.VFABRICATION.PROCESS_FLOW will be used

path_origin: float

origin to use for the ordinate axis of the cross-section

visualize_3d_x_crosssection(x_co, resolution=10)

Generate a 3D cross-section along the y axis at a given x coordinate.

visualize_3d_y_crosssection(y_co, resolution=10)

Generate a 3D cross-section along the x axis at a given y coordinate.

visualize_2d(show=True, save_to_image=False, save_to_image_path='./', save_to_image_filename_without_ext=None, fig_size_factor=0.1, enter_mainloop=True, enter_tk_mainloop=None, aspect_ratio_equal=True, size=None, process_flow=None, legend_position='right', **kwargs)

Visualize a top-down view of the virtually fabricated layout.

Parameters:
enter_mainloopboolean

When True, hold the program flow until the figure has been closed by the user. When False, you have to manually plot the figure. This can be done by doing >>> from matplotlib.pyplot import show >>> show()

showboolean

Not used at the moment.

enter_tk_mainloopboolean

Deprecated. Use enter_mainloop.

save_to_imageboolean

When True, save the visualization as an svg + png image, in the save_to_image_path folder. All parameters below influence where / how the image is stored.

save_to_image_pathstring

Path to save the image to, when save_to_image==True.

save_to_image_filename_without_extstring

If not used (default = None), use the name of the component as filename. If a string, use that name.

fig_size_factorfloat

Deprecated, do not use.

aspect_ratio_equalboolean

When True, keep the aspect ratio of the saved image.

sizetuple of floats (float, float)

The width / height of the saved figure (in inches).

process_flow: VFabricationProcessFlow

The process flow to use. If not specified (None), TECH.VFABRICATION.PROCESS_FLOW will be used.

legend_position: str

Position of the legend relative to the figure, the options are “top”, “bottom”, “left”, “right”. The default value is “right”.

kwargs: dict

Any keyword arguments to SimulationVolumeVisualization2D

to_canvas(project_dir=None, project_name=None, library_name=None, show=True, annotate=None, netlist_extraction_settings=None, verbose=False)

Open a schematic representation of the layout in IPKISS Canvas.

Parameters:
project_dir: Path

Directory where the project and library files will be stored. When None, use the current working directory.

project_name: Optional[str]

Name of the project. When None, use the cell name.

library_name: Optional[str]

Name of the library that will contain the cell. When None, use the project name. In this case, the iclib and icproject will have the same name.

show: bool

When True (default), open IPKISS Canvas after exporting the PCell. If Canvas is already open, the design will be refreshed (check out the guide in the documentation for more details).

annotate: Optional[Dict]

A list of annotation functions to be used for specified view classes: {view_type: [annotation_function1, annotation_function2, …], …} The pcell and each of its subcells will be annotated with the specified annotation functions. If the layout view matches multiple view types, all specified annotation functions will be applied. If annotate is None, the default annotations will be used. To remove annotations, specify an empty dict.

netlist_extraction_settings: NetlistExtractionSettings

Settings that influence how the netlist is extracted. If None, by default extract electrical connections.

verbose: bool

When True, print some useful information about the export (i.e., schematic diffs when exporting to the same project)