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)