SiEPIC / SiEPIC_EBeam_PDK

SiEPIC EBeam PDK & Library, for SiEPIC-Tools and KLayout
http://www.siepic.ubc.ca
Other
199 stars 142 forks source link

Tutorial on creating a custom component for the KLayout-INTERCONNECT integration #96

Closed lukasc-ubc closed 8 years ago

lukasc-ubc commented 8 years ago

Tutorial on creating a custom component for the KLayout-INTERCONNECT integration.

This tutorial demonstrates how to create a custom component in both KLayout and INTERCONNECT, so that you can perform verification and circuit simulations.

Requirements:

Desired Outcome:

Load the S-parameters into an "Optical N Port S-Parameter" element: image

After loading, turn off "load from file" for the S-parameters.

Set the parameters on the component:

[Optional] Set the S-Parameters to be enforced passive & reciprocal: image

Create an icon, in the SVG format (taper.svg, open and right-click, save as), and add it to the element: image

Select "Custom" in the Elements Library, right-click and "New folder", and call it "ebeam_user". Then right-click on your new component, and "Copy to Element Library": image

Verify that you can drag and drop the new Custom::ebeam_user element to the canvas:

image

Test it using an Optical Network Analyzer to make sure it works. This S-parameter set shows insertion loss of about 0.002 and reflection of -65 dB: image

Close INTERCONNECT. Next time INTERCONNECT opens, you should find your new component under Element Library > Custom::ebeam_user

Step 2: KLayout cell

Use the PCell ebeam_taper_te1550, and configure as per the design of the component:

screenshot 2016-04-24 14 30 30

Select the PCell, and flatten it: Edit > Selection > Flatten Instances, and "All hierarchical levels" image

Select all:

image

Edit properties ("q"), and cycle through them using the "Next" button to find Lumerical_INTERCONNECT_library=Design kits/ebeam_v1.2: image

Replace with Lumerical_INTERCONNECT_library=Custom/ebeam_user, then "Apply": image

Continue using the "Next" button. Similarly, replace Lumerical_INTERCONNECT_component=ebeam_taper_te1550 with Lumerical_INTERCONNECT_component=ebeam_taper_475_500_te1550, and "Apply".

Rename the top cell in your layout (the one that contains the taper) to be ebeam_taper_475_500_te1550

image

image

Save the layout so that KLayout can access it as a new Library, in the "libraries" folder.

image

Exit KLayout

Open KLayout, and create a new layout.

image

add an Instance. Under Library, you should see the new library you created: image

Place the component.

Create a test circuit consisting of pairs of tapers: 500 to 475, then 475 to 500. Rotate as necessary:

image

Add the ebeam_gc_te1550 grating couplers, paths, path-to-waveguides, Laser, Detector. Verify that there are no errors: image

Click on Circuit Simulation:

image

Observe the simulated results: image

Step 3: Publishing / sharing

If you wish to share your Compact Model Library and GDS cell:

Publish the CML:

image

This will generate a CML file which others can install under "Design kits".

Update and share the GDS:

The GDS label needs to be updated to read "Design Kits" instead of "Custom": Lumerical_INTERCONNECT_library=Design Kits/ebeam_user image

Save the GDS.

Distribute the two files: ebeam_user.cml, and the gds. Installation of the two files by the users is similar, namely INTERCONNECT > Element Library > Design Kits > Install, and in KLayout, place the GDS in the "libraries" folder and restart KLayout.

lukasc-ubc commented 8 years ago

Added this as a wiki page:

https://github.com/lukasc-ubc/SiEPIC_EBeam_PDK/wiki/Example-of-KLayout-INTERCONNECT-custom-component