Source code for ihp.cells.fixed

"""Bipolar transistor components for IHP PDK."""

from functools import partial

import gdsfactory as gf

from ihp.config import PATH

_add_ports_metal1 = partial(
    gf.add_ports.add_ports_from_markers_inside, pin_layer=(8, 2), port_layer=(8, 0)
)
_add_ports_metal2 = partial(
    gf.add_ports.add_ports_from_markers_inside, pin_layer=(10, 2), port_layer=(10, 0)
)
_add_ports = (_add_ports_metal1, _add_ports_metal2)
gdsdir = PATH.gds
import_gds = partial(gf.import_gds, post_process=_add_ports)


[docs] @gf.cell def CuPillarPad() -> gf.Component: """Returns CuPillarPad fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.CuPillarPad() c.plot() """ c = import_gds(gdsdir / "CuPillarPad.gds") width = 45 c.add_port( name="e1", center=(0, 0), width=width, orientation=180, layer="TOPMETAL2" ) c.add_port(name="e2", center=(0, 0), width=width, orientation=0, layer="TOPMETAL2") c.add_port(name="e3", center=(0, 0), width=width, orientation=90, layer="TOPMETAL2") c.add_port( name="e4", center=(0, 0), width=width, orientation=270, layer="TOPMETAL2" ) return c
[docs] @gf.cell def L2_IND_LVS() -> gf.Component: """Returns L2_IND_LVS fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.L2_IND_LVS() c.plot() """ return import_gds(gdsdir / "L2_IND_LVS.gds")
[docs] @gf.cell def M1_GatPoly_CDNS_675179387644() -> gf.Component: """Returns M1_GatPoly_CDNS_675179387644 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.M1_GatPoly_CDNS_675179387644() c.plot() """ return import_gds(gdsdir / "M1_GatPoly_CDNS_675179387644.gds")
[docs] @gf.cell def M2_M1_CDNS_675179387643() -> gf.Component: """Returns M2_M1_CDNS_675179387643 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.M2_M1_CDNS_675179387643() c.plot() """ return import_gds(gdsdir / "M2_M1_CDNS_675179387643.gds")
[docs] @gf.cell def M3_M2_CDNS_675179387642() -> gf.Component: """Returns M3_M2_CDNS_675179387642 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.M3_M2_CDNS_675179387642() c.plot() """ return import_gds(gdsdir / "M3_M2_CDNS_675179387642.gds")
[docs] @gf.cell def M4_M3_CDNS_675179387641() -> gf.Component: """Returns M4_M3_CDNS_675179387641 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.M4_M3_CDNS_675179387641() c.plot() """ return import_gds(gdsdir / "M4_M3_CDNS_675179387641.gds")
[docs] @gf.cell def M5_M4_CDNS_675179387640() -> gf.Component: """Returns M5_M4_CDNS_675179387640 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.M5_M4_CDNS_675179387640() c.plot() """ return import_gds(gdsdir / "M5_M4_CDNS_675179387640.gds")
[docs] @gf.cell def NoFillerStack() -> gf.Component: """Returns NoFillerStack fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.NoFillerStack() c.plot() """ return import_gds(gdsdir / "NoFillerStack.gds")
[docs] @gf.cell def SVaricap() -> gf.Component: """Returns SVaricap fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.SVaricap() c.plot() """ return import_gds(gdsdir / "SVaricap.gds")
[docs] @gf.cell def TM1_M5_CDNS_675179387645() -> gf.Component: """Returns TM1_M5_CDNS_675179387645 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.TM1_M5_CDNS_675179387645() c.plot() """ return import_gds(gdsdir / "TM1_M5_CDNS_675179387645.gds")
[docs] @gf.cell def TM2_TM1_CDNS_675179387646() -> gf.Component: """Returns TM2_TM1_CDNS_675179387646 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.TM2_TM1_CDNS_675179387646() c.plot() """ return import_gds(gdsdir / "TM2_TM1_CDNS_675179387646.gds")
[docs] @gf.cell def TSV() -> gf.Component: """Returns TSV fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.TSV() c.plot() """ return import_gds(gdsdir / "TSV.gds")
[docs] @gf.cell def ViaStack() -> gf.Component: """Returns ViaStack fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.ViaStack() c.plot() """ return import_gds(gdsdir / "ViaStack.gds")
[docs] @gf.cell def bondpad() -> gf.Component: """Returns bondpad fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.bondpad() c.plot() """ return import_gds(gdsdir / "bondpad.gds")
[docs] @gf.cell def chipText() -> gf.Component: """Returns chipText fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.chipText() c.plot() """ return import_gds(gdsdir / "chipText.gds")
[docs] @gf.cell def cmim() -> gf.Component: """Returns cmim fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.cmim() c.plot() """ return import_gds(gdsdir / "cmim.gds")
[docs] @gf.cell def colors_and_stipples() -> gf.Component: """Returns colors_and_stipples fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.colors_and_stipples() c.plot() """ return import_gds(gdsdir / "colors_and_stipples.gds")
[docs] @gf.cell def dantenna() -> gf.Component: """Returns dantenna fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.dantenna() c.plot() """ return import_gds(gdsdir / "dantenna.gds")
[docs] @gf.cell def diffstbprobe() -> gf.Component: """Returns diffstbprobe fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.diffstbprobe() c.plot() """ return import_gds(gdsdir / "diffstbprobe.gds")
[docs] @gf.cell def diodevdd_2kv() -> gf.Component: """Returns diodevdd_2kv fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.diodevdd_2kv() c.plot() """ return import_gds(gdsdir / "diodevdd_2kv.gds")
[docs] @gf.cell def diodevdd_4kv() -> gf.Component: """Returns diodevdd_4kv fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.diodevdd_4kv() c.plot() """ return import_gds(gdsdir / "diodevdd_4kv.gds")
[docs] @gf.cell def diodevss_2kv() -> gf.Component: """Returns diodevss_2kv fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.diodevss_2kv() c.plot() """ return import_gds(gdsdir / "diodevss_2kv.gds")
[docs] @gf.cell def diodevss_4kv() -> gf.Component: """Returns diodevss_4kv fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.diodevss_4kv() c.plot() """ return import_gds(gdsdir / "diodevss_4kv.gds")
[docs] @gf.cell def dpantenna() -> gf.Component: """Returns dpantenna fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.dpantenna() c.plot() """ return import_gds(gdsdir / "dpantenna.gds")
[docs] @gf.cell def dummy1() -> gf.Component: """Returns dummy1 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.dummy1() c.plot() """ return import_gds(gdsdir / "dummy1.gds")
@gf.cell def inductor2() -> gf.Component: """Returns inductor2 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.inductor2() c.plot() """ return import_gds(gdsdir / "inductor2.gds") @gf.cell def inductor3() -> gf.Component: """Returns inductor3 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.inductor3() c.plot() """ return import_gds(gdsdir / "inductor3.gds")
[docs] @gf.cell def iprobe() -> gf.Component: """Returns iprobe fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.iprobe() c.plot() """ return import_gds(gdsdir / "iprobe.gds")
[docs] @gf.cell def isolbox() -> gf.Component: """Returns isolbox fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.isolbox() c.plot() """ return import_gds(gdsdir / "isolbox.gds")
[docs] @gf.cell def lvsres() -> gf.Component: """Returns lvsres fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.lvsres() c.plot() """ return import_gds(gdsdir / "lvsres.gds")
@gf.cell def nmos() -> gf.Component: """Returns nmos fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.nmos() c.plot() """ return import_gds(gdsdir / "nmos.gds")
[docs] @gf.cell def nmosHV() -> gf.Component: """Returns nmosHV fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.nmosHV() c.plot() """ return import_gds(gdsdir / "nmosHV.gds")
[docs] @gf.cell def nmoscl_2() -> gf.Component: """Returns nmoscl_2 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.nmoscl_2() c.plot() """ return import_gds(gdsdir / "nmoscl_2.gds")
[docs] @gf.cell def nmoscl_4() -> gf.Component: """Returns nmoscl_4 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.nmoscl_4() c.plot() """ return import_gds(gdsdir / "nmoscl_4.gds")
[docs] @gf.cell def npn13G2() -> gf.Component: """Returns npn13G2 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.npn13G2() c.plot() """ return import_gds(gdsdir / "npn13G2.gds")
[docs] @gf.cell def npn13G2L() -> gf.Component: """Returns npn13G2L fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.npn13G2L() c.plot() """ return import_gds(gdsdir / "npn13G2L.gds")
[docs] @gf.cell def npn13G2V() -> gf.Component: """Returns npn13G2V fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.npn13G2V() c.plot() """ return import_gds(gdsdir / "npn13G2V.gds")
[docs] @gf.cell def npn13G2_base_CDNS_675179387640() -> gf.Component: """Returns npn13G2_base_CDNS_675179387640 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.npn13G2_base_CDNS_675179387640() c.plot() """ return import_gds(gdsdir / "npn13G2_base_CDNS_675179387640.gds")
[docs] @gf.cell def ntap() -> gf.Component: """Returns ntap fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.ntap() c.plot() """ return import_gds(gdsdir / "ntap.gds")
@gf.cell def ntap1() -> gf.Component: """Returns ntap1 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.ntap1() c.plot() """ return import_gds(gdsdir / "ntap1.gds") @gf.cell def pmos() -> gf.Component: """Returns pmos fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.pmos() c.plot() """ return import_gds(gdsdir / "pmos.gds")
[docs] @gf.cell def pmosHV() -> gf.Component: """Returns pmosHV fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.pmosHV() c.plot() """ return import_gds(gdsdir / "pmosHV.gds")
[docs] @gf.cell def pnpMPA() -> gf.Component: """Returns pnpMPA fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.pnpMPA() c.plot() """ return import_gds(gdsdir / "pnpMPA.gds")
[docs] @gf.cell def ptap() -> gf.Component: """Returns ptap fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.ptap() c.plot() """ return import_gds(gdsdir / "ptap.gds")
@gf.cell def ptap1() -> gf.Component: """Returns ptap1 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.ptap1() c.plot() """ return import_gds(gdsdir / "ptap1.gds")
[docs] @gf.cell def rfcmim() -> gf.Component: """Returns rfcmim fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.rfcmim() c.plot() """ return import_gds(gdsdir / "rfcmim.gds")
@gf.cell def rfnmos() -> gf.Component: """Returns rfnmos fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.rfnmos() c.plot() """ return import_gds(gdsdir / "rfnmos.gds")
[docs] @gf.cell def rfnmosHV() -> gf.Component: """Returns rfnmosHV fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.rfnmosHV() c.plot() """ return import_gds(gdsdir / "rfnmosHV.gds")
@gf.cell def rfpmos() -> gf.Component: """Returns rfpmos fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.rfpmos() c.plot() """ return import_gds(gdsdir / "rfpmos.gds")
[docs] @gf.cell def rfpmosHV() -> gf.Component: """Returns rfpmosHV fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.rfpmosHV() c.plot() """ return import_gds(gdsdir / "rfpmosHV.gds")
@gf.cell def rhigh() -> gf.Component: """Returns rhigh fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.rhigh() c.plot() """ return import_gds(gdsdir / "rhigh.gds") @gf.cell def rppd() -> gf.Component: """Returns rppd fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.rppd() c.plot() """ return import_gds(gdsdir / "rppd.gds") @gf.cell def rsil() -> gf.Component: """Returns rsil fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.rsil() c.plot() """ return import_gds(gdsdir / "rsil.gds")
[docs] @gf.cell def schottky_nbl1() -> gf.Component: """Returns schottky_nbl1 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.schottky_nbl1() c.plot() """ return import_gds(gdsdir / "schottky_nbl1.gds")
[docs] @gf.cell def scr1() -> gf.Component: """Returns scr1 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.scr1() c.plot() """ return import_gds(gdsdir / "scr1.gds")
[docs] @gf.cell def sealring_CDNS_675179387642() -> gf.Component: """Returns sealring_CDNS_675179387642 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.sealring_CDNS_675179387642() c.plot() """ return import_gds(gdsdir / "sealring_CDNS_675179387642.gds")
[docs] @gf.cell def sealring_complete() -> gf.Component: """Returns sealring_complete fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.sealring_complete() c.plot() """ return import_gds(gdsdir / "sealring_complete.gds")
[docs] @gf.cell def sealring_corner_CDNS_675179387641() -> gf.Component: """Returns sealring_corner_CDNS_675179387641 fixed cell. .. plot:: :include-source: import ihp c = ihp.cells.sealring_corner_CDNS_675179387641() c.plot() """ return import_gds(gdsdir / "sealring_corner_CDNS_675179387641.gds")
if __name__ == "__main__": from ihp import PDK PDK.activate() # c = sealring_corner_CDNS_675179387641() c = CuPillarPad() c.pprint_ports() c.show()