ElectricalVia

class ipkiss3.pcell.via.cell.ElectricalVia(*args, **kwargs)

Class for common electrical vias. Its purpose is to electrically connect two layers (layer_top and layer_bottom) that are defined in the Layoutview. Two ports/terms named top and bottom refer to the connection points on those respective layers. The connection is done with a connection layer(layer_via)

Parameters:

cell_instances: _PCellInstanceDict, optional

name: optional

The unique name of the pcell

Views

Layout

A standard electrical via is made of a boundary on three layers(layer_top, layer_bottom and layer_via). For each layer (top, bottom and via) 2 properties are defined:

  • top_shape
  • top_layer

analogous properties are defined for the other layers.

Parameters:

grids_per_unit: optional

Number of grid cells per design unit

units_per_grid: optional

Ratio of grid cell and design unit

via_layer: Layer, optional

Drawing layer for the via layer of the via.

via_shape: Shape, optional

via shape of the via.

view_name: str, optional

The name of the view

bottom_layer: Layer, optional

Drawing layer for the bottom of the via.

bottom_shape: Shape, optional

Shape used for the bottom of the via. Also used as shape in the ``bottom``port.

top_layer: Layer, optional

Drawing layer for the top of the via.

top_shape: Shape, optional

Shape used for the top of the via. Also used as shape in the ``top``port.

grid: float and number > 0, optional

design grid. Extracted by default from TECH.METRICS.GRID

unit: float and number > 0, optional

design unit. Extracted by default from TECH.METRICS.UNIT

layers: locked

shapes: locked

Examples

from technologies import silicon_photonics
from ipkiss3 import all as i3
from ipkiss3.pcell.via.cell import ElectricalVia

cell = ElectricalVia()
# defining the shapes that are going to be used
# For the top bottom layer and via layer you can either define a layer or a combination of a process and a purpose.

layout = cell.Layout(top_shape=i3.ShapeRegularPolygon(n_o_sides=3),
                     bottom_shape=i3.ShapeRegularPolygon(n_o_sides=9),
                     via_shape=i3.ShapeRegularPolygon(n_o_sides=5),
                     top_layer=i3.TECH.PPLAYER.M1.LINE,
                     bottom_layer=i3.TECH.PPLAYER.M2.LINE,
                     via_layer=i3.TECH.PPLAYER.V12.PILLAR
                     )

layout.visualize()
../../../../_images/ipkiss3-pcell-via-cell-ElectricalVia-1.png