Files
mxpic_forge/mxpic/components/pdks/AMF_pdk.py
T
2026-06-04 23:21:39 +08:00

44 lines
1.8 KiB
Python

import nazca as nd
from ..gds_devices import gds_lib_load
class GC_TE_1550(gds_lib_load) :
'''
CUMEC TE Grating Coupler at 1550nm.
'''
def __init__(self,pdk_path: str="AMF_IPKISS_PDK") -> None:
lib_path = pdk_path
lib_name = "AMF_PDK_BB"
cell_name = "AMF_Si_GC1D_Cband_v3p0"
super().__init__(lib_path=lib_path, lib_name=lib_name, cell_name=cell_name, rename=cell_name+"_WithPin", instantiate=False)
self.w_wg = 0.5
self.add_pin(pin_name="a0", xya=(0,0,180))
self.add_pin(pin_name="g1", xya=(0,0,180), width=0.5)
class GC_TE_1310(gds_lib_load) :
'''
CUMEC TE Grating Coupler at 1310nm.
'''
def __init__(self,pdk_path: str="AMF_IPKISS_PDK") -> None:
lib_path = pdk_path
lib_name = "AMF_PDK_BB"
cell_name = "AMF_Si_GC1D_Oband_v3p0"
super().__init__(lib_path=lib_path, lib_name=lib_name, cell_name=cell_name, rename=cell_name+"_WithPin", instantiate=False)
self.w_wg = 0.41
self.add_pin(pin_name="a0", xya=(0,0,180))
self.add_pin(pin_name="g1", xya=(0,0,180), width=0.41)
class PD_Cband_Cell(gds_lib_load) :
'''
AMF Ge Power Monitor Cell at Cband.
'''
def __init__(self,pdk_path: str="AMF_IPKISS_PDK") -> None:
lib_path = pdk_path
lib_name = "AMF_PDK_BB"
cell_name = "AMF_Ge_PowMonitor_Cband_Cell_v3p0"
super().__init__(lib_path=lib_path, lib_name=lib_name, cell_name=cell_name, rename=cell_name+"_WithPin", instantiate=False)
self.w_wg = 0.5
self.add_pin(pin_name="a0", xya=(0,0,180))
self.add_pin(pin_name="a1", xya=(0,0,180), width=0.5)
self.add_pin(pin_name="ep1", xya=(129.8,0,0), width=5)
self.add_pin(pin_name="en1", xya=(129.8,(9+5.3)/2,0), width=3.7)
self.add_pin(pin_name="en2", xya=(129.8,-(9+5.3)/2,0), width=3.7)