New forge coding added
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
|
||||
from typing import Any
|
||||
import nazca as nd
|
||||
import numpy as np
|
||||
|
||||
from .Foundry import Foundry
|
||||
from .layer_models import LayerSpec
|
||||
|
||||
class SITRI_LSIN_SOI(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
|
||||
|
||||
LAYERS = {
|
||||
|
||||
'RIB' : LayerSpec('RIB', (1,0), aliases=('STRIP_COR',)),
|
||||
|
||||
'GRAT' : LayerSpec('GRAT', (3,0), aliases=('SRIB_COR',)),
|
||||
|
||||
'SLAB' : LayerSpec('SLAB', (2,0), aliases=('RIB_COR',)),
|
||||
|
||||
'SINWIN1' : (53,0),
|
||||
'SINWG1' : (54,0),
|
||||
|
||||
'HTR' : LayerSpec('HTR', (45,0), aliases=('HEATER',)),
|
||||
|
||||
'VIA1' : LayerSpec('VIA1', (50,0), aliases=('VIA_H2M',)),
|
||||
'CS' : LayerSpec('CS', (35,0), aliases=('VIA_S2M',)),
|
||||
|
||||
'METAL' : (40,0),
|
||||
'METAL_2' : (55,0),
|
||||
|
||||
'BONDPAD' : LayerSpec('BONDPAD', (66,0), aliases=('PAD',)),
|
||||
'DT' : LayerSpec('DT', (71,0), aliases=('ISL',)),
|
||||
|
||||
'OX_OPEN' : LayerSpec('OX_OPEN', (151,0), aliases=('OPEN',)),
|
||||
|
||||
### Active part
|
||||
'PM_P' : LayerSpec('PM_P', (13,0), aliases=('P',), description='Legacy map used PM for this P implant layer.'),
|
||||
'PM_N' : LayerSpec('PM_N', (14,0), aliases=('N',), description='Legacy map used PM for this N implant layer.'),
|
||||
|
||||
'PM' : (15,0),
|
||||
'NM' : (16,0),
|
||||
|
||||
'PH' : (11,0),
|
||||
'NH' : (12,0),
|
||||
|
||||
'PP' : (17,0),
|
||||
'NP' : (18,0),
|
||||
|
||||
'GEN' : (21,0),
|
||||
'GEP' : (22,0),
|
||||
|
||||
'GeEP' : LayerSpec('GeEP', (20,0), aliases=('GE',)),
|
||||
|
||||
'CG' : (36,0),
|
||||
}
|
||||
|
||||
ROLES = {}
|
||||
|
||||
def __init__(self, layermap: Any=None, roles: Any=None) -> None:
|
||||
super().__init__(layermap=layermap or self.LAYERS, roles=roles or self.ROLES)
|
||||
self._add_xsection_(xsection='strip',layers=['STRIP_COR'],growth=[0])
|
||||
self._add_xsection_(xsection='rib',layers=['STRIP_COR','RIB_COR','SRIB_COR'],growth=[0,4,2]) ## 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]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user