Skip to content

Commit

Permalink
Merge branch 'master' into 162
Browse files Browse the repository at this point in the history
  • Loading branch information
joamatab committed Jun 21, 2022
2 parents 8efc836 + 8dde87e commit 74f8223
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 25 deletions.
1 change: 1 addition & 0 deletions ubcpdk/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
layer_stack=LAYER_STACK,
layer_colors=LAYER_COLORS,
sparameters_path=PATH.sparameters,
interconnect_cml_path=PATH.interconnect_cml_path,
)
PDK.register_cells_yaml(dirpath=pathlib.Path(__file__).parent.absolute())
PDK.activate()
Expand Down
15 changes: 7 additions & 8 deletions ubcpdk/components/cells.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ def y_splitter() -> Component:


um = 1e-6
add_siepic_labels = gf.partial(
add_siepic_labels, label_layer=LAYER.DEVREC, library="Design Kits/ebeam"
)
# add_siepic_labels = gf.partial(
# add_siepic_labels, label_layer=LAYER.DEVREC, library="Design Kits/ebeam"
# )

straight = gf.partial(
gf.components.straight,
Expand Down Expand Up @@ -70,11 +70,10 @@ def y_splitter() -> Component:
"ebeam_y_1550.gds",
doc="Y junction TE1550 50/50 power.",
name="ebeam_y_1550",
model="ebeam_y_1550",
layout_model_port_pairs=(
("opt1", "opt_a1"),
("opt2", "opt_b1"),
("opt3", "opt_b2"),
interconnect=dict(
model="ebeam_y_1550",
layout_model_port_pairs=dict(opt1="opt_a1", opt2="opt_b1", opt3="opt_b2"),
properties=dict(annotate=True),
),
)
crossing = gf.partial(
Expand Down
14 changes: 10 additions & 4 deletions ubcpdk/components/grating_couplers.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,27 +11,33 @@
import_gc = gf.partial(
gf.import_gds,
gdsdir=PATH.gds,
library="Design kits/ebeam",
decorator=decorator,
layout_model_port_pairs=(("opt1", "opt_wg"),),
)

gc_te1550 = gf.partial(
import_gc,
gdspath="ebeam_gc_te1550.gds",
polarization="te",
wavelength=1.55,
model="ebeam_gc_te1550",
name="ebeam_gc_te1550",
interconnect=dict(
model="ebeam_gc_te1550",
library="Design kits/ebeam",
layout_model_port_pairs=dict(opt1="opt_wg"),
),
)

gc_te1550_broadband = gf.partial(
import_gc,
gdspath="ebeam_gc_te1550_broadband.gds",
name="ebeam_gc_te1550_broadband",
model="ebeam_gc_te1550_broadband",
polarization="te",
wavelength=1.55,
interconnect=dict(
model="ebeam_gc_te1550_broadband",
library="Design kits/ebeam",
layout_model_port_pairs=dict(opt1="opt_wg"),
),
)


Expand Down
1 change: 1 addition & 0 deletions ubcpdk/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ class Path:
data = samples / "data"
gds = module / "gds"
sparameters = repo / "sparameters"
interconnect_cml_path = module / "simulation" / "lumerical" / "EBeam.cml"
modes = repo / "modes"
mask = module / "samples" / "extra" / "ubc1"

Expand Down
File renamed without changes.
19 changes: 8 additions & 11 deletions ubcpdk/tech.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,16 +113,13 @@ class Tech(BaseModel):

strip_wg_simulation_info = dict(
model="ebeam_wg_integral_1550",
library="Design kits/ebeam",
layout_model_property_pairs=(
# (layout_property_name, interconnect_property_name)
("length", "wg_length", 1e-6),
("width", "wg_width", 1e-6),
layout_model_property_pairs=dict(
# interconnect_property_name=(layout_property_name, scaling_value)
wg_length=("length", 1e-6),
wg_width=("width", 1e-6),
),
layout_model_port_pairs=(("o1", "port 1"), ("o2", "port 2")),
spice_params=["wg_length", "wg_width"],
component_type=["optical"],
properties=(("annotate", False),),
layout_model_port_pairs=dict(o1="port 1", o2="port 2"),
properties=dict(annotate=False),
)

get_sparameters_data_lumerical = gf.partial(
Expand All @@ -136,14 +133,14 @@ class Tech(BaseModel):
gf.cross_section.strip,
layer=LAYER.WG,
width=TECH.WG["width"],
info=strip_wg_simulation_info,
info=dict(interconnect=strip_wg_simulation_info),
add_pins=add_pins_siepic,
)
strip = gf.partial(
gf.cross_section.strip,
layer=LAYER.WG,
width=TECH.WG["width"],
info=strip_wg_simulation_info,
info=dict(interconnect=strip_wg_simulation_info),
add_pins=add_pins_siepic,
)
strip_no_pins = gf.partial(
Expand Down
5 changes: 3 additions & 2 deletions update_source.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export GIT_REPO=https://github.com/SiEPIC/SiEPIC_EBeam_PDK

export REPO_TECH=SiEPIC_EBeam_PDK-${VERSION}/klayout_dot_config/tech/EBeam
export UBC_TECH=ubcpdk/klayout/tech
export LUM_DIR=ubcpdk/simulation/lumerical
export GDS_DIR=ubcpdk/gds


Expand All @@ -17,8 +18,8 @@ tar -xvf v${VERSION}.tar.gz
# Copy files from tech
cp -r ${REPO_TECH}/klayout_Layers_EBeam.lyp ${UBC_TECH}/layers.lyp
cp -r ${REPO_TECH}/EBeam.lyt ${UBC_TECH}/tech.lyt
cp -r ${REPO_TECH}/EBeam_v${CML_VER}.cml ${UBC_TECH}/EBeam.cml
cp -r ${REPO_TECH}/lumerical_process_file.lbr ${UBC_TECH}/lumerical_process_file.lbr
cp -r ${REPO_TECH}/EBeam_v${CML_VER}.cml ${LUM_DIR}/EBeam.cml
cp -r ${REPO_TECH}/lumerical_process_file.lbr ${LUM_DIR}/lumerical_process_file.lbr

# TODO: Make this work with the naming used by SiEPIC
# gf gds layermap_to_dataclass ${UBC_TECH}/layers.lyp
Expand Down

0 comments on commit 74f8223

Please sign in to comment.