AMF and silterra foundry file added

This commit is contained in:
2026-05-04 17:34:46 +08:00
parent 37ecf0fab3
commit 15610b623c
3 changed files with 161 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
import nazca as nd
from .Foundry import Foundry
class AMF_Si220_Active(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={
'STRIP_COR' : ((10,0), 'RIB'),
'SRIB_COR' : ((11,0), 'GRAT'),
'RIB_COR' : ((12,0), 'SLAB'),
'SINWIN1' : ((53,0), 'SINWIN1'),
'SINWG1' : ((54,0), 'SINWG1'),
'HEATER' : ((115,0), 'HTR'),
'VIA_S2M' : ((100,0), 'VIA1'),
'VIA_H2M' : ((120,0), 'VIA2'),
'VIA_M2M' : ((120,0), 'VIA2'),
'METAL' : ((105,0), 'METAL'),
'METAL_2' : ((125,0), 'METAL_2'),
'PAD' : ((150,0), 'BONDPAD'),
'OPEN' : ((151,0), 'OX_OPEN'),
'ISL' : ((160,0), 'DT'),
### Active part
'PP' : ((21,0), 'PCONT'),
'PCONT' : ((21,0), 'PCONT'),
'NP' : ((22,0), 'NCONT'),
'NCONT' : ((22,0), 'NCONT'),
'PLD' : ((23,0), 'PIM'),
'NLD' : ((24,0), 'NIM'),
'PLD2' : ((25,0), 'IPD'),
'NLD2' : ((26,0), 'NPD'),
'GE' : ((40,0), 'GeEP'),
'PPPGE' : ((20,0), 'PPPGE'),
'NPPGE' : ((41,0), 'NPPGE'),
}):
super().__init__(layermap=layermap)
self._add_xsection_(xsection='strip',layers=['STRIP_COR'],growth=[0])
self._add_xsection_(xsection='rib',layers=['STRIP_COR','RIB_COR'],growth=[0,3]) ## Slab waveguide
self._add_xsection_(xsection='rib_s',layers=['STRIP_COR','SRIB_COR'],growth=[0,4]) ## Slab waveguide
self._add_xsection_(xsection='isl',layers=['ISL'],growth=[0])
self._add_xsection_(xsection='sn',layers=['SINWG1','SINWIN1'],growth=[0,21])
self._add_xsection_(xsection='pad',layers=['METAL_2','PAD'],growth=[0,-2.5]) ## DRC 4.2 - [AMF-QP-RND-006]
+71
View File
@@ -0,0 +1,71 @@
import nazca as nd
from .Foundry import Foundry
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\\'
# 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)
+25
View File
@@ -0,0 +1,25 @@
from .CUMEC import CUMEC_CSiP130Cu,CUMEC_CSiP180Al_PASSIVE
from .AMF import AMF_Si220_Active
from .ANT import ANT_Si220_MPW
from .IMEC import IMEC_Si220_Active
from .IMECAS import IMECAS_SiP
from .Foundry import Foundry
from .CompTek import CT_CU3ML
from .SITRI import SITRI_LSIN_SOI
from .Silterra import EOM1_2ML_CU