66 lines
1.9 KiB
Python
66 lines
1.9 KiB
Python
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]
|