Skip to content

Latest commit

 

History

History
63 lines (46 loc) · 4.64 KB

README.md

File metadata and controls

63 lines (46 loc) · 4.64 KB

SiEPIC_EBeam_PDK

##Objectives:

  • Use open-source layout tool (KLayout) to implement a sophisticated layout design environment for silicon photonics
  • Support for both GUI and script-based layout, or combinations of both.
  • Whereas a typical schematic-driven design flow includes a schematic, circuit simulation, layout, and verification (see Chapter 10 of the textbook), the approach taken here is Layout-driven, followed by verification, then a schematic (via a netlist) and simulations.

Demo video Lumerical INTERCONNECT simulations

##Package includes:

  • PCells: ring resonator; PCell test structure layout with grating couplers and instantiating the ring resonator PCell.
  • Script / Macro to create a layout, including waveguide generation functions.
  • GDS Library, updated with marker layers for verification/netlist generation.
  • Verification:
  • Scanning the layout. Finding waveguides, devices, pins.
  • Verification: Identifying if there are missing connections, mismatched waveguides, too few points in a bend, etc.
  • Example layouts using the library for verification (EBeam_LukasChrostowski_E_LVS.gds, SiEPIC_EBeam_PDK_Verification_Check.gds).
  • Circuit simulations:
  • Netlist generation
  • Creating a Spice netlist suitable for for circuit simulations. This includes extracting the waveguide length (wg_length) for all waveguides.
  • Menu item "Lumerical INTERCONNECT" will automatically: generate the netlist, launch Lumerical INTERCONNECT to perform the circuit simulations, and pop-up a plot of the transmission spectrum.
  • Waveguide functionality:
  • Menu item "W": selected paths are first snapped to the nearest pins, then converted to waveguides.
  • Menu item "Shift-W": selected waveguides are converted back to paths.
  • EBeam Layer definitions for KLayout (klayout_Layers_EBeam.lyp).

Download:

Zip file download of the PDK

This is posted on GitHub for 1) revision control, 2) so that others can contribute to it, find bugs, 3) easy download of the latest version.

##Installation instructions:

  • The files in the klayout_dot_config folder go into your KLayout configuration folder. On Linux and OSX, this is $HOME/.klayout
  • I don’t know what the equivalent is on windows.
  • Alternatively, you can import all the files one by one using the KLayout IDE. How to use the KLayout Python IDE for writing/debugging PCells/scripts/macros.
  • For Linux/OSX, you need Python (which comes with the Mac); for Windows, KLayout comes with Python built-in.

I am personally using GitHub desktop to synchronize my files. Then I created symbolic links in my .klayout folder to point to the local copy of this repository. This is useful to automatically update my local KLayout installation (e.g., multiple computers), as changes are made in GitHub.

##Contributing to this project:

  • On the GitHub web page, Fork a copy of the project into your own account.
  • Clone to your Desktop
  • Make edits/contributions
  • "Commit to master" (your own master)
  • Create a Pull Request -- this will notify me of your contribution, which I can merge into the main project

##Screenshots:

Screenshot1 Screenshot2 Screenshot3