import nazca as nd from .Foundry import Foundry class EOM1_2ML_CU_RDL(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\\' # show_pins = False def __init__(self, layermap={ 'WG_HM' : ((275,0)), 'WG_STRIP' : ((101,251)), 'WG_LOWRIB' : ((100,90)), 'WG_HIGHRIB' : ((232,0)), 'HEATER' : ((29,30)), 'CT_SI' : ((268,0)), 'CT_GE' : ((35,0)), 'UTV' : ((172,0)), 'RDL_VIA' : ((194,0)), 'UTM' : ((173,0)), 'UTM2' : ((197,0)), 'RDL_MET' : ((195,0)), 'PAD_ELE' : ((100,170)), 'PAD_OPTICAL' : ((100,160)), "PAD_AL" : ((145,0)), "WG_N" : ((263,0)), "SiN_Rib_WG" : ((63,30)), "SSIN0" : ((283,0)), "SSIN1" : ((289,0)), "SSIN2" : ((290,0)), "SSIN3" : ((291,0)), "EXCLUSION" : (57,0), "SALICIDE" : ((128,60)), "DM_EXL" : ((23,0)), "DM_EXL_FE" : ((23,40)), "DM_EXL_BE" : ((23,41)), "OXIDE_FACET" : ((90,0)), "DT" : ((404,0)), ### Active part 'P' : ((256,0)), 'N' : ((257,0)), 'PP' : ((258,0)), 'NP' : ((259,0)), 'PPP' : ((260,0)), 'NPP' : ((261,0)), 'PD_SIPP' : ((100,140)), 'PD_SINP' : ((100,150)), }): super().__init__(layermap=layermap) ## add cross sections nd.add_xsection("strip") nd.add_layer2xsection("strip",layer="WG_HM",growx=0,growy=0) nd.add_layer2xsection("strip",layer="WG_STRIP",growx=4,growy=4) nd.add_xsection("rib_low") nd.add_layer2xsection("rib_low",layer="WG_HM",growx=0,growy=0) nd.add_layer2xsection("rib_low",layer="WG_SRIB",growx=3,growy=3) nd.add_layer2xsection("rib_low",layer="WG_STRIP",leftedge=(-0.5,-3),rightedge=(-0.5,-3.5)) nd.add_layer2xsection("rib_low",layer="WG_STRIP",leftedge=(0.5,3.5),rightedge=(0.5,3)) nd.add_xsection("metal_1") nd.add_layer2xsection("metal_1",layer="UTM",growx=0,growy=0) nd.add_layer2xsection("metal_1",layer="SSIN0",growx=2.5,growy=2.5) nd.add_xsection("metal_2") nd.add_layer2xsection("metal_2",layer="UTM2",growx=0,growy=0) nd.add_layer2xsection("metal_2",layer="SSIN1",growx=2.5,growy=2.5)