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.
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":
Verify that you can drag and drop the new Custom::ebeam_user element to the canvas:
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:
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:
Select the PCell, and flatten it: Edit > Selection > Flatten Instances, and "All hierarchical levels"
Select all:
Edit properties ("q"), and cycle through them using the "Next" button to find Lumerical_INTERCONNECT_library=Design kits/ebeam_v1.2:
Replace with Lumerical_INTERCONNECT_library=Custom/ebeam_user, then "Apply":
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
Save the layout so that KLayout can access it as a new Library, in the "libraries" folder.
In Windows, the path is C:\Users\USERNAME\KLayout\libraries
In OSX the folder is hidden and is a pain to get to: in KLayout, do Save As; leave this dialog open. Run Terminal.App, and type in:
cd $HOME/.klayout/libraries
open .
Drag the "libraries" folder to the KLayout dialog
Save the file as ebeam_taper_475_500_te1550.gds
Under GDS2 Writer Options, Library name, type in ebeam_user
Exit KLayout
Open KLayout, and create a new layout.
add an Instance. Under Library, you should see the new library you created:
Place the component.
Create a test circuit consisting of pairs of tapers: 500 to 475, then 475 to 500. Rotate as necessary:
Add the ebeam_gc_te1550 grating couplers, paths, path-to-waveguides, Laser, Detector. Verify that there are no errors:
Click on Circuit Simulation:
Observe the simulated results:
Step 3: Publishing / sharing
If you wish to share your Compact Model Library and GDS cell:
Publish the CML:
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
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.
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:
Step 1: Compact model
Load the S-parameters into an "Optical N Port S-Parameter" element:![image](https://cloud.githubusercontent.com/assets/15843200/14770571/91644a04-0a29-11e6-9177-e5c29bafa93b.png)
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](https://cloud.githubusercontent.com/assets/15843200/14770621/64e820a8-0a2a-11e6-95ca-2ab6120f7ad0.png)
Create an icon, in the SVG format (taper.svg, open and right-click, save as), and add it to the element:![image](https://cloud.githubusercontent.com/assets/15843200/14770625/7ce86a78-0a2a-11e6-9166-f227a0a3d541.png)
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](https://cloud.githubusercontent.com/assets/15843200/14770661/dbf2c030-0a2b-11e6-92e1-76152a7accfb.png)
Verify that you can drag and drop the new Custom::ebeam_user element to the canvas:
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](https://cloud.githubusercontent.com/assets/15843200/14770677/43ea6ab2-0a2c-11e6-9a00-6361b0afbab6.png)
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:
Select the PCell, and flatten it: Edit > Selection > Flatten Instances, and "All hierarchical levels"![image](https://cloud.githubusercontent.com/assets/15843200/14770702/b2cd3ec8-0a2c-11e6-9654-2771914e0b45.png)
Select all:
Edit properties ("q"), and cycle through them using the "Next" button to find Lumerical_INTERCONNECT_library=Design kits/ebeam_v1.2:![image](https://cloud.githubusercontent.com/assets/15843200/14770713/f045e426-0a2c-11e6-8aed-75df78ba9861.png)
Replace with Lumerical_INTERCONNECT_library=Custom/ebeam_user, then "Apply":![image](https://cloud.githubusercontent.com/assets/15843200/14770717/089a36da-0a2d-11e6-94c0-96f40775b4f4.png)
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
Save the layout so that KLayout can access it as a new Library, in the "libraries" folder.
Exit KLayout
Open KLayout, and create a new layout.
add an Instance. Under Library, you should see the new library you created:![image](https://cloud.githubusercontent.com/assets/15843200/14770763/55b542ec-0a2e-11e6-8c80-1af3b595b9d2.png)
Place the component.
Create a test circuit consisting of pairs of tapers: 500 to 475, then 475 to 500. Rotate as necessary:
Add the ebeam_gc_te1550 grating couplers, paths, path-to-waveguides, Laser, Detector. Verify that there are no errors:![image](https://cloud.githubusercontent.com/assets/15843200/14770790/cd2f0d26-0a2e-11e6-9d62-18834595fb92.png)
Click on Circuit Simulation:
Observe the simulated results:![image](https://cloud.githubusercontent.com/assets/15843200/14770805/f68bbd18-0a2e-11e6-8a14-5f909049323a.png)
Step 3: Publishing / sharing
If you wish to share your Compact Model Library and GDS cell:
Publish the CML:
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](https://cloud.githubusercontent.com/assets/15843200/14770875/9b807fd4-0a2f-11e6-8230-ebb802b88c4d.png)
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.