GenericElectricalVia
- class ipkiss3.pcell.via.cell.GenericElectricalVia
Most generic class for electrical vias. Its purpose is to electrically connect two layers (
layer_top
andlayer_bottom
) that are defined in the Layoutview. Two ports/terms namedtop
andbottom
refer to the connection points on those respective layers.- Parameters:
- name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters
The unique name of the pcell
Views
- class Layout
Layout view of a generic via. Adds all the shapes contained in the property
shapes
onto layer defined in the propertylayers
.By default those properties are determined with the help of other properties refering to two layers (
top
andbottom
) that are most commonly used in vias. For each layer (top
andbottom
) 2 properties are defined:top_shape
top_layer
analogous properties are defined for the bottom layer.
- Parameters:
- layers: list and List with type restriction, allowed types: <class ‘ipkiss.primitives.layer.Layer’>
List of layers used to make the via
- shapes: list and List with type restriction, allowed types: <class ‘ipkiss.geometry.shape.Shape’>
List of shapes used to make the via
- bottom_shape: Shape
Shape used for the
bottom
of the via. Also used as shape in thebottom
port.- bottom_layer: Layer
Drawing layer for the
bottom
of the via.- top_shape: Shape
Shape used for the
top
of the via. Also used as shape in thetop
port.- top_layer: Layer
Drawing layer for the
top
of the via.- 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
Examples
import si_fab.all as pdk # noqa: F401 from ipkiss3 import all as i3 from ipkiss3.pcell.via.cell import GenericElectricalVia cell = GenericElectricalVia() # defining the shapes that are going to be used # For the top and bottom layer you can either define a layer or a combination of and a purpose. layout = cell.Layout( top_shape=i3.ShapeRegularPolygon(n_o_sides=3), bottom_shape=i3.ShapeRegularPolygon(n_o_sides=9), top_layer=i3.TECH.PPLAYER.M1.LINE, bottom_layer=i3.TECH.PPLAYER.M2.LINE, ) layout.visualize(annotate=True)
import si_fab.all as pdk # noqa: F401 from ipkiss3 import all as i3 from ipkiss3.pcell.via.cell import GenericElectricalVia cell = GenericElectricalVia() # defining the shapes that are going to be used shapes = [] for i in range(3): shapes.append(i3.ShapeRegularPolygon(n_o_sides=i + 3)) # defining the corresponding layers that are going to be used layers = [i3.TECH.PPLAYER.M1.LINE, i3.TECH.PPLAYER.V12.PILLAR, i3.TECH.PPLAYER.M2.LINE] # If you set the shape array you have to explicitly set the properties relating to the # top and bottom layers that are expected to be defined. layout = cell.Layout( shapes=shapes, layers=layers, top_shape=shapes[0], bottom_shape=shapes[2], top_layer=layers[0], bottom_layer=layers[2], ) layout.visualize()