SiEPIC / SiEPIC-Tools

Package for KLayout to add integrated optics / silicon photonics functionality (waveguides, netlist extraction, circuit simulations, etc)
Other
181 stars 90 forks source link

Crossing auto #176

Closed jevillegasd closed 1 year ago

jevillegasd commented 2 years ago

Waveguide crossings tool

The waveguide crossings tool allows to .... insert waveguide crossings automatically.

It can be tested using the attached file, to generate the other attached file: crossings.zip

crossing_example

Know issues

Also in this merge:

Update layer reading:

A small change in the reading part of the layer information, in the form of a recursive call to allow deeper structures in the layer deck. Tested against AMF_PDK and is working well (I think that's the only PDK library initialization that is using this function currently). Nested groups in the layer deck can with this be used to allow extra categorization. For example: example

mustafacc commented 1 year ago

Hi Juan,

Apologies for the delay - I forgot to address this pull request. This is a very useful feature. I'm trying to implement this in the EBeam_PDK and I'm not seeing the expected crossings in your example file. image

The main change that I made to the PDK is that I added a definition in the waveguides.xml to include a parameter. I have included this definition in the EBeam_PDK waveguides.xml. (on that note: can you include a definition as well? similar to compound waveguides> image

Is there anything else that I need to change?

jevillegasd commented 1 year ago

Hey @mustafacc , sorry I was disconnected for the past month. Yes that should be the only change needed, let me check if this is still working with the latest release of SiPEIC tools or if anything else is needed.

lukasc-ubc commented 1 year ago

Thanks Juan! Indeed, a useful feature. I believe the GSiP PDK hasn’t been tested for a while so might need some fixing / upgrading.

jevillegasd commented 1 year ago

Hey @mustafacc it should be working now. In the Waveguide XML, you need to include any of the following:

For a complete definition of library and cell offset:

<crossing>
        <crossing_cell>ebeam_crossing4</crossing_cell>
        <crossing_library>EBeam</crossing_library>
        <crossing_offset>(0,0)</crossing_offset>
</crossing>

Or you can also just add the cell name, in which case the script will assume it is part of the current technology

<crossing_cell>ebeam_crossing4</crossing_cell>

I've udptaded this commit to the current version of SiEPIC tools, so it should work fine (I've tested it for both GSiP and EBeam)

lukasc-ubc commented 1 year ago

lovely!

image