diff --git a/submissions/KLayout Python/EBeam_LukasChrostowski_MZI_1310.py b/submissions/KLayout Python/EBeam_LukasChrostowski_MZI_1310.py index 7e9a9ac..f8737cf 100644 --- a/submissions/KLayout Python/EBeam_LukasChrostowski_MZI_1310.py +++ b/submissions/KLayout Python/EBeam_LukasChrostowski_MZI_1310.py @@ -65,7 +65,7 @@ waveguide_type_delay='SiN routing TE 1550 nm (compound waveguide)' # Load cells from library -cell_ebeam_gc = ly.create_cell('ebeam_GC_SiN_TE_1310_8deg', 'EBeam-SiN', {}) +cell_ebeam_gc = ly.create_cell('GC_SiN_TE_1310_8degOxide_BB', 'EBeam-SiN') cell_ebeam_y = ly.create_cell('ebeam_YBranch_te1310', 'EBeam-SiN') cell_ebeam_taper = ly.create_cell('taper_bezier', 'EBeam_Beta', {'wg_width1':0.75, @@ -76,7 +76,7 @@ # grating couplers, place at absolute positions -x,y = 60000, 16000 +x,y = 60000, 14500 t = Trans(Trans.R0,x,y) instGC1 = cell.insert(CellInstArray(cell_ebeam_gc.cell_index(), t)) t = Trans(Trans.R0,x,y+127000) diff --git a/submissions/KLayout Python/EBeam_LukasChrostowski_MZI_1550.py b/submissions/KLayout Python/EBeam_LukasChrostowski_MZI_1550.py index b95ac24..778f6a9 100644 --- a/submissions/KLayout Python/EBeam_LukasChrostowski_MZI_1550.py +++ b/submissions/KLayout Python/EBeam_LukasChrostowski_MZI_1550.py @@ -22,8 +22,9 @@ ''' designer_name = 'LukasChrostowski' -top_cell_name = 'EBeam_%s_test' % designer_name -export_type = 'static' # static: for fabrication, PCell: include PCells in file +top_cell_name = 'EBeam_%s_MZI' % designer_name +#export_type = 'static' # static: for fabrication, PCell: include PCells in file +export_type = 'PCell' # static: for fabrication, PCell: include PCells in file import pya from pya import * @@ -55,7 +56,7 @@ and Draw the floor plan ''' cell, ly = new_layout(tech_name, top_cell_name, GUI=True, overwrite = True) -floorplan(cell, 605e3, 410e3) +floorplan(cell, 1000e3, 410e3) dbu = ly.dbu @@ -65,53 +66,73 @@ # Load cells from library cell_ebeam_gc = ly.create_cell('GC_SiN_TE_1550_8degOxide_BB', 'EBeam-SiN') +cell_ebeam_y = ly.create_cell('ANT_MMI_1x2_te1550_3dB_BB', 'EBeam-SiN') +####################### +# Circuit #1 – Loopback +####################### # grating couplers, place at absolute positions -x,y = 60000, 20000 +x,y = 60000, 14500 t = Trans(Trans.R0,x,y) instGC1 = cell.insert(CellInstArray(cell_ebeam_gc.cell_index(), t)) t = Trans(Trans.R0,x,y+127000) instGC2 = cell.insert(CellInstArray(cell_ebeam_gc.cell_index(), t)) +# automated test label +text = Text ("opt_in_TE_1550_device_%s_MZI" % designer_name, t) +cell.shapes(ly.layer(ly.TECHNOLOGY['Text'])).insert(text).text_size = 5/dbu +# Waveguide: +connect_pins_with_waveguide(instGC1, 'opt1', instGC2, 'opt1', waveguide_type=waveguide_type1) +####################### +# Circuit #2 – MZI +####################### +x += 110e3 +# grating couplers, place at absolute positions +t = Trans(Trans.R0,x,y) +instGC3 = cell.insert(CellInstArray(cell_ebeam_gc.cell_index(), t)) +t = Trans(Trans.R0,x,y+127000) +instGC4 = cell.insert(CellInstArray(cell_ebeam_gc.cell_index(), t)) # automated test label text = Text ("opt_in_TE_1550_device_%s_loopback" % designer_name, t) cell.shapes(ly.layer(ly.TECHNOLOGY['Text'])).insert(text).text_size = 5/dbu - +# Y branches: +instY1 = connect_cell(instGC3, 'opt1', cell_ebeam_y, 'pin1') +instY2 = connect_cell(instGC4, 'opt1', cell_ebeam_y, 'pin1') # Waveguides: -connect_pins_with_waveguide(instGC1, 'opt1', instGC2, 'opt1', waveguide_type=waveguide_type1) +connect_pins_with_waveguide(instY1, 'pin2', instY2, 'pin3', waveguide_type=waveguide_type1) +connect_pins_with_waveguide(instY1, 'pin3', instY2, 'pin2', waveguide_type=waveguide_type1, turtle_A=[100,-90]) + +####################### +# Circuit #3 - MZI, with a very long delay line +####################### +cell_ebeam_delay = ly.create_cell('spiral_paperclip', 'EBeam_Beta', + {'waveguide_type':waveguide_type_delay, + 'length':325, + 'loops':8, + 'flatten':True}) +x,y = 60000, 14500+127e3*2 +t = Trans(Trans.R0,x,y) +instGC1 = cell.insert(CellInstArray(cell_ebeam_gc.cell_index(), t)) +t = Trans(Trans.R0,x,y+127e3) +instGC2 = cell.insert(CellInstArray(cell_ebeam_gc.cell_index(), t)) +# automated test label +text = Text ("opt_in_TE_1550_device_%s_MZI3" % designer_name, t) +cell.shapes(ly.layer(ly.TECHNOLOGY['Text'])).insert(text).text_size = 5/dbu +# Y branches: +instY1 = connect_cell(instGC1, 'opt1', cell_ebeam_y, 'pin1') +instY1.transform(Trans(20000,0)) +instY2 = connect_cell(instGC2, 'opt1', cell_ebeam_y, 'pin1') +instY2.transform(Trans(20000,0)) +# Spiral: +instSpiral = connect_cell(instY2, 'pin2', cell_ebeam_delay, 'optA') +instSpiral.transform(Trans(110e3,0)) +# Waveguides: +connect_pins_with_waveguide(instGC1, 'opt1', instY1, 'pin1', waveguide_type=waveguide_type1) +connect_pins_with_waveguide(instGC2, 'opt1', instY2, 'pin1', waveguide_type=waveguide_type1) +connect_pins_with_waveguide(instY1, 'pin2', instY2, 'pin3', waveguide_type=waveguide_type1) +connect_pins_with_waveguide(instY2, 'pin2', instSpiral, 'optA', waveguide_type=waveguide_type1) +connect_pins_with_waveguide(instY1, 'pin3', instSpiral, 'optB', waveguide_type=waveguide_type1,turtle_A=[50,90]) -if 0: - # 3rd MZI, with a very long delay line - cell_ebeam_delay = ly.create_cell('spiral_paperclip', 'EBeam_Beta', - {'waveguide_type':waveguide_type_delay, - 'length':200, - 'flatten':True}) - x,y = 60000, 205000 - t = Trans(Trans.R0,x,y) - instGC1 = cell.insert(CellInstArray(cell_ebeam_gc.cell_index(), t)) - t = Trans(Trans.R0,x,y+127000) - instGC2 = cell.insert(CellInstArray(cell_ebeam_gc.cell_index(), t)) - - # automated test label - text = Text ("opt_in_TE_1550_device_%s_MZI3" % designer_name, t) - cell.shapes(ly.layer(ly.TECHNOLOGY['Text'])).insert(text).text_size = 5/dbu - - # Y branches: - instY1 = connect_cell(instGC1, 'opt1', cell_ebeam_y_dream, 'opt1') - instY1.transform(Trans(20000,0)) - instY2 = connect_cell(instGC2, 'opt1', cell_ebeam_y_dream, 'opt1') - instY2.transform(Trans(20000,0)) - - # Spiral: - instSpiral = connect_cell(instY2, 'opt2', cell_ebeam_delay, 'optA') - instSpiral.transform(Trans(20000,0)) - - # Waveguides: - connect_pins_with_waveguide(instGC1, 'opt1', instY1, 'opt1', waveguide_type=waveguide_type) - connect_pins_with_waveguide(instGC2, 'opt1', instY2, 'opt1', waveguide_type=waveguide_type) - connect_pins_with_waveguide(instY1, 'opt2', instY2, 'opt3', waveguide_type=waveguide_type) - connect_pins_with_waveguide(instY2, 'opt2', instSpiral, 'optA', waveguide_type=waveguide_type) - connect_pins_with_waveguide(instY1, 'opt3', instSpiral, 'optB', waveguide_type=waveguide_type,turtle_B=[5,-90]) # Zoom out zoom_out(cell)