# 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__()