Giter Club home page Giter Club logo

soen-pdk's Introduction

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 [email protected]: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

soen-pdk's People

Contributors

atait avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.