Via

A via is an electrical connection between two different metal layers. SiFab contains two types of metal vias:

  • VIA_M1_M2: metal via between M1 and M2.
  • Contact: metal via between M1 and the doped Si regions.

VIA_M1_M2

It connects M1 and M2.

Reference

Click on the name of the component below to see the complete PCell reference.

si_fab.all.VIA_M1_M2 Square via from metal layer M1 to metal layer M2.

Example

from si_fab import all as pdk

# VIA

cell = pdk.VIA_M1_M2()
cell.Layout().visualize(annotate=True)
../../../../../../../../../_images/example_via.png

Contact

It connects M1 with the doped Si regions.

Reference

Click on the name of the component below to see the complete PCell reference.

si_fab.all.Contact Octagonal contact hole to connect metal layer M1 with the (doped) silicon.

Example

from si_fab import all as pdk
from ipkiss3 import all as i3

# Contact Hole
hole = pdk.Contact()
hole_lv = hole.Layout()
hole_lv.visualize(annotate=True)


class ContactHoleWithP(i3.PCell):
    class Layout(i3.LayoutView):

        def _generate_instances(self, insts):
            insts += i3.SRef(reference=hole)
            return insts

        def _generate_elements(self, elems):
            elems += i3.Rectangle(box_size=(2, 2), layer=i3.TECH.PPLAYER.PPLUS)
            return elems


hole_with_p_lv = ContactHoleWithP().Layout()
hole_with_p_lv.visualize_2d()
xs = hole_with_p_lv.cross_section(cross_section_path=i3.Shape([(0.0, -2.0), (0.0, 2.0)]))
xs.visualize()
../../../../../../../../../_images/example_contact_00.png
../../../../../../../../../_images/example_contact_01.png
../../../../../../../../../_images/example_contact_02.png