396 lines
13 KiB
Python
396 lines
13 KiB
Python
# LEGACY TECHNOLOGY MODULE - DISABLED
|
|
# This source was moved out of the active technology package.
|
|
# Technologies are now loaded from foundry-local YAML manifests via Foundry(manifest).
|
|
#
|
|
# from .Foundry import Foundry
|
|
#
|
|
#
|
|
# class EOM1_2ML_CU(Foundry):
|
|
# MANIFEST = "silterra/EMO1_2ML_CU.yml"
|
|
#
|
|
#
|
|
# # ----------------------------------------------------------------------
|
|
# # LEGACY INLINE TECHNOLOGY SOURCE - DISABLED
|
|
# # Kept for traceability while YAML manifests are the source of truth.
|
|
# # ----------------------------------------------------------------------
|
|
# # from .Foundry import Foundry
|
|
# # from .layer_models import LayerSpec, XSectionLayerSpec, XSectionSpec
|
|
# #
|
|
# #
|
|
# # LBR_SOURCE_FILE = "EMO1 process file 2ML Cu + Al RDL Rev1 2023R2.lbr"
|
|
# # PROCESS_REVISION = "c47fe0e44735e170addb3f68fa8b4387"
|
|
# # OPTICAL_MATERIAL_REVISION = "77d93f81a36e99288ae982ff91bfedca"
|
|
# #
|
|
# # SI = "Layer Builder Si (Silicon) - Palik"
|
|
# # FE_PECVD_NITRIDE = "SilTerra Front End PECVD Nitride"
|
|
# # FE_LPCVD_NITRIDE = "SilTerra Front End LPCVD Nitride"
|
|
# # GERMANIUM = "SilTerra Germanium"
|
|
# # TUNGSTEN = "W (Tungsten) - Palik"
|
|
# # BE_OXIDE = "SilTerra Back End Oxide"
|
|
# # BE_NITRIDE = "SilTerra Back End Nitride"
|
|
# # COPPER = "Cu (Copper) - Palik"
|
|
# # TIN = "TiN - Palik"
|
|
# # ALUMINIUM = "Al (Aluminium) - Palik"
|
|
# # ETCH = "etch"
|
|
# #
|
|
# #
|
|
# # class EOM1_2ML_CU(Foundry):
|
|
# #
|
|
# # ## Generall parameters
|
|
# # STD_SMWG_WIDTH = 0.45
|
|
# # SLAB_GROWTH = 2
|
|
# # W_METAL_MIN = 5
|
|
# # SPACING_HEATER_MIN = 2
|
|
# # SPACING_METAL_MIN = 4
|
|
# # W_HEATER_MIN = 3
|
|
# #
|
|
# # lib_path = "GDS_lib\\"
|
|
# #
|
|
# # PROCESS_NAME = "EMO1"
|
|
# # PROCESS_REVISION = PROCESS_REVISION
|
|
# # OPTICAL_MATERIAL_REVISION = OPTICAL_MATERIAL_REVISION
|
|
# # LBR_SOURCE_FILE = LBR_SOURCE_FILE
|
|
# #
|
|
# # LAYERS = {
|
|
# # "WG_HM": LayerSpec(
|
|
# # name="WG_HM",
|
|
# # layer=(275, 0),
|
|
# # material=SI,
|
|
# # z_start=0.0,
|
|
# # thickness=0.22,
|
|
# # sidewall_angle=83.0,
|
|
# # process="Grow",
|
|
# # description="Strip Waveguide",
|
|
# # ),
|
|
# # "WG_STRIP": LayerSpec(
|
|
# # name="WG_STRIP",
|
|
# # layer=(101, 251),
|
|
# # description="Legacy/layout-only strip waveguide layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "WG_LOWRIB": LayerSpec(
|
|
# # name="WG_LOWRIB",
|
|
# # layer=(100, 90),
|
|
# # material=SI,
|
|
# # z_start=0.0,
|
|
# # thickness=0.07,
|
|
# # sidewall_angle=83.0,
|
|
# # process="Grow",
|
|
# # description="Low Rib Waveguide",
|
|
# # ),
|
|
# # "WG_HIGHRIB": LayerSpec(
|
|
# # name="WG_HIGHRIB",
|
|
# # layer=(232, 0),
|
|
# # material=SI,
|
|
# # z_start=0.0,
|
|
# # thickness=0.15,
|
|
# # sidewall_angle=83.0,
|
|
# # process="Grow",
|
|
# # description="High Rib Waveguide",
|
|
# # ),
|
|
# #
|
|
# # "HEATER": LayerSpec(
|
|
# # name="HEATER",
|
|
# # layer=(29, 30),
|
|
# # material=TIN,
|
|
# # z_start=1.22,
|
|
# # thickness=0.12,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="Heater",
|
|
# # ),
|
|
# # "CT_SI": LayerSpec(
|
|
# # name="CT_SI",
|
|
# # layer=(268, 0),
|
|
# # material=TUNGSTEN,
|
|
# # z_start=0.22,
|
|
# # thickness=1.0,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="Contact Silicon",
|
|
# # ),
|
|
# # "CT_GE": LayerSpec(
|
|
# # name="CT_GE",
|
|
# # layer=(35, 0),
|
|
# # material=TUNGSTEN,
|
|
# # z_start=0.72,
|
|
# # thickness=0.5,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="Contact Germanium",
|
|
# # ),
|
|
# # "GE_EPI": LayerSpec(
|
|
# # name="GE_EPI",
|
|
# # layer=(264, 0),
|
|
# # material=GERMANIUM,
|
|
# # z_start=0.22,
|
|
# # thickness=0.5,
|
|
# # process="Grow",
|
|
# # description="Composite Germanium Epitaxy drawing layer from bot/top .lbr rows.",
|
|
# # ),
|
|
# #
|
|
# # "UTV": LayerSpec(
|
|
# # name="UTV",
|
|
# # layer=(172, 0),
|
|
# # material=COPPER,
|
|
# # z_start=2.05,
|
|
# # thickness=1.23,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="UTV",
|
|
# # ),
|
|
# # "RDL_VIA": LayerSpec(
|
|
# # name="RDL_VIA",
|
|
# # layer=(194, 0),
|
|
# # material=ALUMINIUM,
|
|
# # z_start=5.51,
|
|
# # thickness=1.33,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="RDL Via",
|
|
# # ),
|
|
# #
|
|
# # "UTM": LayerSpec(
|
|
# # name="UTM",
|
|
# # layer=(173, 0),
|
|
# # material=COPPER,
|
|
# # z_start=1.22,
|
|
# # thickness=0.83,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="UTM",
|
|
# # ),
|
|
# # "UTM2": LayerSpec(
|
|
# # name="UTM2",
|
|
# # layer=(197, 0),
|
|
# # material=COPPER,
|
|
# # z_start=3.28,
|
|
# # thickness=2.23,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="UTM2",
|
|
# # ),
|
|
# # "RDL_MET": LayerSpec(
|
|
# # name="RDL_MET",
|
|
# # layer=(195, 0),
|
|
# # material=ALUMINIUM,
|
|
# # z_start=6.84,
|
|
# # thickness=1.2,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="RDL Aluminium",
|
|
# # ),
|
|
# #
|
|
# # "PAD_ELE": LayerSpec(
|
|
# # name="PAD_ELE",
|
|
# # layer=(100, 170),
|
|
# # material=ETCH,
|
|
# # z_start=8.04,
|
|
# # thickness=1.0,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="Pad Electrical",
|
|
# # ),
|
|
# # "PAD_OPTICAL": LayerSpec(
|
|
# # name="PAD_OPTICAL",
|
|
# # layer=(100, 160),
|
|
# # material=ETCH,
|
|
# # z_start=7.34,
|
|
# # thickness=0.5,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="Pad Optical",
|
|
# # ),
|
|
# # "PAD_AL": LayerSpec(
|
|
# # name="PAD_AL",
|
|
# # layer=(145, 0),
|
|
# # description="Legacy/layout-only aluminium pad layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# #
|
|
# # "WG_N": LayerSpec(
|
|
# # name="WG_N",
|
|
# # layer=(263, 0),
|
|
# # material=FE_PECVD_NITRIDE + " / " + FE_LPCVD_NITRIDE,
|
|
# # z_start=0.62,
|
|
# # thickness=0.4,
|
|
# # sidewall_angle=85.0,
|
|
# # process="Grow",
|
|
# # description="PECVD/LPCVD Nitride Waveguide",
|
|
# # ),
|
|
# # "SiN_Rib_WG": LayerSpec(
|
|
# # name="SiN_Rib_WG",
|
|
# # layer=(63, 30),
|
|
# # description="Legacy/layout-only SiN rib waveguide layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# #
|
|
# # "SSIN0": LayerSpec(
|
|
# # name="SSIN0",
|
|
# # layer=(283, 0),
|
|
# # material=BE_NITRIDE,
|
|
# # z_start=1.22,
|
|
# # thickness=0.13,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="SSIN0",
|
|
# # ),
|
|
# # "SSIN1": LayerSpec(
|
|
# # name="SSIN1",
|
|
# # layer=(289, 0),
|
|
# # material=BE_NITRIDE,
|
|
# # z_start=2.05,
|
|
# # thickness=0.13,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="SSIN1",
|
|
# # ),
|
|
# # "SSIN2": LayerSpec(
|
|
# # name="SSIN2",
|
|
# # layer=(290, 0),
|
|
# # material=BE_NITRIDE,
|
|
# # z_start=3.28,
|
|
# # thickness=0.13,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="SSIN2",
|
|
# # ),
|
|
# # "SSIN3": LayerSpec(
|
|
# # name="SSIN3",
|
|
# # layer=(291, 0),
|
|
# # material=BE_NITRIDE,
|
|
# # z_start=5.51,
|
|
# # thickness=0.13,
|
|
# # sidewall_angle=90.0,
|
|
# # process="Grow",
|
|
# # description="SSIN3",
|
|
# # ),
|
|
# #
|
|
# # "EXCLUSION": LayerSpec(
|
|
# # name="EXCLUSION",
|
|
# # layer=(57, 0),
|
|
# # description="Legacy/layout-only exclusion layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "SALICIDE": LayerSpec(
|
|
# # name="SALICIDE",
|
|
# # layer=(128, 60),
|
|
# # description="Legacy/layout-only salicide layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# #
|
|
# # "DM_EXL": LayerSpec(
|
|
# # name="DM_EXL",
|
|
# # layer=(23, 0),
|
|
# # description="Legacy/layout-only dummy exclusion layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "DM_EXL_FE": LayerSpec(
|
|
# # name="DM_EXL_FE",
|
|
# # layer=(23, 40),
|
|
# # description="Legacy/layout-only front-end dummy exclusion layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "DM_EXL_BE": LayerSpec(
|
|
# # name="DM_EXL_BE",
|
|
# # layer=(23, 41),
|
|
# # description="Legacy/layout-only back-end dummy exclusion layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# #
|
|
# # "OXIDE_FACET": LayerSpec(
|
|
# # name="OXIDE_FACET",
|
|
# # layer=(90, 0),
|
|
# # material=ETCH,
|
|
# # z_start=-3.0,
|
|
# # thickness=11.64,
|
|
# # sidewall_angle=98.0,
|
|
# # process="Grow",
|
|
# # description="Deep Oxide Trench; GDS is shared with Deep Silicon Trench in the .lbr.",
|
|
# # ),
|
|
# # "DT": LayerSpec(
|
|
# # name="DT",
|
|
# # layer=(404, 0),
|
|
# # description="Legacy/layout-only deep-trench layer; EMO1 .lbr uses 90:0 for deep trench rows.",
|
|
# # ),
|
|
# #
|
|
# # ### Active part
|
|
# # "P": LayerSpec(
|
|
# # name="P",
|
|
# # layer=(256, 0),
|
|
# # description="Legacy/layout-only implant layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "N": LayerSpec(
|
|
# # name="N",
|
|
# # layer=(257, 0),
|
|
# # description="Legacy/layout-only implant layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "PP": LayerSpec(
|
|
# # name="PP",
|
|
# # layer=(258, 0),
|
|
# # description="Legacy/layout-only implant layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "NP": LayerSpec(
|
|
# # name="NP",
|
|
# # layer=(259, 0),
|
|
# # description="Legacy/layout-only implant layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "PPP": LayerSpec(
|
|
# # name="PPP",
|
|
# # layer=(260, 0),
|
|
# # description="Legacy/layout-only implant layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "NPP": LayerSpec(
|
|
# # name="NPP",
|
|
# # layer=(261, 0),
|
|
# # description="Legacy/layout-only implant layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# #
|
|
# # "PD_SIPP": LayerSpec(
|
|
# # name="PD_SIPP",
|
|
# # layer=(100, 140),
|
|
# # description="Legacy/layout-only photodiode implant layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # "PD_SINP": LayerSpec(
|
|
# # name="PD_SINP",
|
|
# # layer=(100, 150),
|
|
# # description="Legacy/layout-only photodiode implant layer; not present in the EMO1 .lbr stack.",
|
|
# # ),
|
|
# # }
|
|
# #
|
|
# # XSECTIONS = {
|
|
# # "strip": XSectionSpec(
|
|
# # name="strip",
|
|
# # layers=(
|
|
# # XSectionLayerSpec(layer="WG_HM", growx=0, growy=0),
|
|
# # XSectionLayerSpec(layer="WG_STRIP", growx=4, growy=4),
|
|
# # ),
|
|
# # ),
|
|
# # "rib_low": XSectionSpec(
|
|
# # name="rib_low",
|
|
# # layers=(
|
|
# # XSectionLayerSpec(layer="WG_HM", growx=0, growy=0),
|
|
# # XSectionLayerSpec(layer="WG_LOWRIB", growx=3, growy=3),
|
|
# # XSectionLayerSpec(
|
|
# # layer="WG_STRIP",
|
|
# # leftedge=(-0.5, -3),
|
|
# # rightedge=(-0.5, -3.5),
|
|
# # ),
|
|
# # XSectionLayerSpec(
|
|
# # layer="WG_STRIP",
|
|
# # leftedge=(0.5, 3.5),
|
|
# # rightedge=(0.5, 3),
|
|
# # ),
|
|
# # ),
|
|
# # ),
|
|
# # "metal_1": XSectionSpec(
|
|
# # name="metal_1",
|
|
# # layers=(
|
|
# # XSectionLayerSpec(layer="UTM", growx=0, growy=0),
|
|
# # XSectionLayerSpec(layer="SSIN0", growx=2.5, growy=2.5),
|
|
# # ),
|
|
# # ),
|
|
# # "metal_2": XSectionSpec(
|
|
# # name="metal_2",
|
|
# # layers=(
|
|
# # XSectionLayerSpec(layer="UTM2", growx=0, growy=0),
|
|
# # XSectionLayerSpec(layer="SSIN1", growx=2.5, growy=2.5),
|
|
# # ),
|
|
# # ),
|
|
# # }
|
|
# #
|
|
# # def __init__(self) -> None:
|
|
# # super().__init__()
|