Skip to content

Commit

Permalink
Merge branch 'SiEPIC:main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
denizturan179 authored Nov 2, 2024
2 parents 0e092c9 + cc2a90d commit 9bc8ed7
Show file tree
Hide file tree
Showing 38 changed files with 130 additions and 3 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,5 +87,5 @@ The verification and merging is performed using GitHub actions. The repository i

## Latest Merge Layout File
<!-- start-link -->
https://github.com/SiEPIC/openEBL-2024-10-SiN/actions/runs/11607016781/artifacts/2126820564
https://github.com/SiEPIC/openEBL-2024-10-SiN/actions/runs/11633076785/artifacts/2133958056
<!-- end-link -->
Binary file modified framework/EBL_Framework_1cm_PCM_static.oas
Binary file not shown.
4 changes: 2 additions & 2 deletions merge/EBeam_merge.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,8 +128,8 @@ def log(text):
top_cell.insert(CellInstArray(cell_edXphot1x.cell_index(), t))
cell_FaML = layout.create_cell("FaML")
top_cell.insert(CellInstArray(cell_FaML.cell_index(), t))
cell_ELEC413 = layout.create_cell("ELEC413")
top_cell.insert(CellInstArray(cell_ELEC413.cell_index(), t))
#cell_ELEC413 = layout.create_cell("ELEC413")
#top_cell.insert(CellInstArray(cell_ELEC413.cell_index(), t))
cell_SiEPIC_Passives = layout.create_cell("SiEPIC_Passives")
top_cell.insert(CellInstArray(cell_SiEPIC_Passives.cell_index(), t))
cell_openEBL = layout.create_cell("openEBL")
Expand Down
Binary file added submissions/EBeam_EganaUgrinovic_SiN.gds
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified submissions/EBeam_LukasChrostowski_MZI2_1550_FaML.oas
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified submissions/EBeam_LukasChrostowski_MZI_loopback_1550_FaML.oas
Binary file not shown.
Binary file modified submissions/EBeam_LukasChrostowski_loopback_1550_FaML.oas
Binary file not shown.
Binary file added submissions/EBeam_Xin_rings_r50gapsweep10.oas
Binary file not shown.
Binary file added submissions/EBeam_Xin_rings_r50gapsweep20.oas
Binary file not shown.
Binary file added submissions/EBeam_Xin_rings_r50gapsweep30.oas
Binary file not shown.
Binary file added submissions/EBeam_Xin_rings_r50gapsweep40.oas
Binary file not shown.
Binary file added submissions/EBeam_Xin_rings_r50gapsweep50.oas
Binary file not shown.
Binary file added submissions/EBeam_Xin_rings_rsweepgapsweep250.oas
Binary file not shown.
Binary file added submissions/EBeam_Xin_rings_rsweepgapsweep450.oas
Binary file not shown.
Binary file added submissions/Ebeam_cael3_v1.gds
Binary file not shown.
127 changes: 127 additions & 0 deletions submissions/KLayout Python/EBeam_LukasChrostowski_MZI3_1550_FaML.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
'''
--- Simple MZI, tested using Facet-Attached Micro Lenses (FaML) ---
by Lukas Chrostowski, 2024
Example simple script to
- choose the fabrication technology provided by Applied Nanotools, using silicon nitride (SiN) waveguides
- use the SiEPIC-EBeam-PDK technology
- using KLayout and SiEPIC-Tools, with function including connect_pins_with_waveguide and connect_cell
- create a new layout with a top cell, limited a design area of 1000 microns wide by 410 microns high.
- create one Mach-Zehnder Interferometer (MZI) circuit with a small path length difference
- export to OASIS for submission to fabrication
- display the layout in KLayout using KLive
Test plan
- count lenses from the top (top is 1)
- laser input on top lens (1), detector on second (2)
Use instructions:
Run in Python, e.g., VSCode
pip install required packages:
- klayout, SiEPIC, siepic_ebeam_pdk, numpy
'''

designer_name = 'LukasChrostowski'
top_cell_name = 'EBeam_%s_MZI1_FaML' % designer_name
export_type = 'static' # static: for fabrication, PCell: include PCells in file
tech_name = 'EBeam'

import pya
from pya import *

import SiEPIC
from SiEPIC._globals import Python_Env
from SiEPIC.scripts import connect_cell, connect_pins_with_waveguide, zoom_out, export_layout
from SiEPIC.utils.layout import new_layout, floorplan, coupler_array
from SiEPIC.extend import to_itype
from SiEPIC.verification import layout_check

import os

if Python_Env == 'Script':
# For external Python mode, when installed using pip install siepic_ebeam_pdk
import siepic_ebeam_pdk

print('EBeam_LukasChrostowski_MZI1 layout script')

from packaging import version
if version.parse(SiEPIC.__version__) < version.parse("0.5.4"):
raise Exception("Errors", "This example requires SiEPIC-Tools version 0.5.4 or greater.")

'''
Create a new layout using the EBeam technology,
with a top cell
and Draw the floor plan
'''
cell, ly = new_layout(tech_name, top_cell_name, GUI=True, overwrite = True)
floorplan(cell, 600e3, 370e3)

waveguide_type1='SiN Strip TE 1550 nm, w=800 nm'
waveguide_type_delay='SiN routing TE 1550 nm (compound waveguide)'

# Load cells from library
cell_ebeam_y = ly.create_cell('ebeam_sin_dream_splitter1x2_te1550_BB', 'EBeam-Dream')
if not cell_ebeam_y:
raise Exception
cell_taper_750_800 = ly.create_cell('taper_bezier', 'EBeam_Beta',
{ 'wg_width1':0.75,
'wg_width2':0.8,
'wg_length':1,
}
)
if not cell_taper_750_800:
raise Exception

#######################
# Circuit #1 – MZI
#######################
# draw two edge couplers for facet-attached micro-lenses
inst_faml = coupler_array(cell,
cell_name = 'ebeam_dream_FaML_SiN_1550_BB',
cell_library = 'EBeam-Dream',
label = "opt_in_TE_1550_FaML_mzi3_%s" % designer_name,
#cell_params = None,
count = 3,
)
# Y branches:
inst_taper0 = connect_cell(inst_faml[0], 'opt1', cell_taper_750_800, 'opt1')
instY2 = connect_cell(inst_taper0, 'opt2', cell_ebeam_y, 'opt1')
inst_taper1 = connect_cell(inst_faml[1], 'opt1', cell_taper_750_800, 'opt1')
instY1a = connect_cell(inst_taper1, 'opt2', cell_ebeam_y, 'opt1')
instY1 = connect_cell(instY1a, 'opt2', cell_ebeam_y, 'opt1')
inst_taper2 = connect_cell(inst_faml[2], 'opt1', cell_taper_750_800, 'opt1')
# Waveguides:
# MZI
connect_pins_with_waveguide(instY1, 'opt2', instY2, 'opt3', waveguide_type=waveguide_type1)
connect_pins_with_waveguide(instY1, 'opt3', instY2, 'opt2', waveguide_type=waveguide_type1, turtle_A=[300,-90])
# loopback
connect_pins_with_waveguide(instY1a, 'opt3', inst_taper2, 'opt2', waveguide_type=waveguide_type1)


# Zoom out
zoom_out(cell)

# Export for fabrication, removing PCells
path = os.path.dirname(os.path.realpath(__file__))
for i in range(10):
filename, extension = os.path.splitext(os.path.basename(__file__))
filename+=f'_{i}'
if export_type == 'static':
file_out = export_layout(cell, path, filename, relative_path = '..', format='oas', screenshot=True)
else:
file_out = os.path.join(path,'..',filename+'.oas')
ly.write(file_out)

# Verify
file_lyrdb = os.path.join(path,filename+'.lyrdb')
num_errors = layout_check(cell = cell, verbose=False, GUI=True, file_rdb=file_lyrdb)
print('Number of errors: %s' % num_errors)

# Display the layout in KLayout, using KLayout Package "klive", which needs to be installed in the KLayout Application
if Python_Env == 'Script':
from SiEPIC.utils import klive
klive.show(file_out, lyrdb_filename=file_lyrdb, technology=tech_name)
Binary file modified submissions/openEBL_snewman_SiN_MRRA1.gds
Binary file not shown.
Binary file modified submissions/openEBL_snewman_SiN_MRRA2.gds
Binary file not shown.
Binary file modified submissions/openEBL_snewman_SiN_MRRA3.gds
Binary file not shown.
Binary file modified submissions/openEBL_snewman_SiN_MRRA4.gds
Binary file not shown.
Binary file modified submissions/openEBL_snewman_SiN_MRRA5.gds
Binary file not shown.
Binary file modified submissions/openEBL_snewman_SiN_MRRBC1.gds
Binary file not shown.
Binary file modified submissions/openEBL_snewman_SiN_MRRBC2.gds
Binary file not shown.

0 comments on commit 9bc8ed7

Please sign in to comment.