Skip to content

Process design kit for NIST superconducting optoelectronic technologies

License

Notifications You must be signed in to change notification settings

usnistgov/SOEN-PDK

Repository files navigation

SOEN PDK

NIST Superconducting Optoelectronic Networks (SOEN) Process Design Kits (PDK).

This kit defines the OLMEC process, which combines superconducting electronics, such as SNSPDs and three-terminal devices, active optoelectronics, such as LEDs and modulators, and passive optics, such as waveguides and resonators.

This project in in a preliminary stage. Major updates are planned before first release, and anything (including the project name) is subject to change.

Installation

git clone git@github.com:usnistgov/SOEN-PDK.git
pip install lygadgets
lygadgets_link SOEN-PDK/tech/OLMAC

If you are a Windows/Anaconda user, you must do these commands within an Anaconda 3 prompt with administrator privileges.

Salt package to come.

PyPI release is not planned.

Activation

On the klayout menu bar, there is a "T" in a circle which has a down triangle. In the dropdown list, select OLMAC. When you restart KLayout, this technology should stay selected.

Documentation

Main documentation on NIST pages.

Developers who are modifying the docs can rebuild them with make docs. The output is in _site/index.html.

Feature Summary

  • Superconducting optoelectronic PCells
  • Layer properties
  • DRC specification
  • Xsection specification
  • "tech" package that can be understood by and loaded into KLayout application
  • XML properties for WAVEGUIDES, VIAS, etc.
  • Data preparation specifications to be used with lymask

Testing

Test that PCells produce the expected geometry and that dataprep is working, run make test in the repo root.

Using PCells

PCells are implemented in phidl, so that must be installed.

pip install phidl

Despite this, the PCells can be used in pya, SiEPIC-type projects, and the klayout GUI by wrapping the implementation with the appropriate interface.

To have the pcells appear in the KLayout GUI and the klayout.db standalone

lygadgets_link lygadgets

Go to klayout's Cell placement icon. "OLMAC" should appear in the list of available libraries. By changing parameters and clicking "Apply," the outline will update live.

To use the PCells in a script, you must first specify the pcell location.

from lygadgets.technology import Technology
olmac_path = Technology.technology_by_name('OLMAC').base_path()
import sys
sys.path.append(olmac_path)

This will allow you to see olmac_pcells. They are ready to use in phidl right away

from olmac_pcells import wg_to_snspd
D = wg_to_snspd(wgnw_length=200)  # this is a phidl.Device object

To use them in a pya-based script,

from lygadgets.autolibrary import WrappedPCell
WgToSNSPD = WrappedPCell(wg_to_snspd)  # This is a subclass of PCellDeclarationHelper

How it is used varies depending on whether you use raw pya or SiEPIC-style KlayoutPCells. An example of the latter, assuming that layout is defined:

wg_cell, wg_ports = WgToSNSPD('My_SNSPD').pcell(layout, params={'wgnw_length': 200})

ToDo

  • move the README pcell discussion to the pages documentation
  • also update the installation page with this readme
  • more pcell data and implementations
  • run DRC from command line and make tests
  • document DRC in slides and move to pages
  • document process steps in slides and move to pages

Authors: Alex Tait, Sonia Buckley, Jeff Shainline, Adam McCaughan, Jeff Chiles, Rich Mirin, Sae Woo Nam

National Institute of Standards and Technology, Boulder, CO, USA

About

Process design kit for NIST superconducting optoelectronic technologies

Resources

License

Stars

Watchers

Forks

Packages

No packages published