91 lines
2.5 KiB
Python
91 lines
2.5 KiB
Python
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) |