Skip to main content

python library to generate GDS layouts

Project description

gdsfactory 7.0.1

docs PyPI Conda Version Dockerhub PyPI Python Downloads MIT codecov Binder Colab

logo

gdsfactory: Your open source platform for end to-end chip design and validation.

Welcome to gdsfactory, a Python library designed for crafting chips (Photonics, Analog, Quantum, MEMs, and more), 3D printed objects, and PCBs. Here, you can code your hardware design in Python or YAML, perform verification through DRC, simulation, and extraction, and validate in the lab to ensure your fabricated chip meets your specifications.

workflow

We facilitate an end-to-end design flow for you to:

  • Design (Layout, Simulation, Optimization): Utilize parametric cell functions in Python or YAML to define components. Test component settings, ports, and geometry to avoid unwanted regressions, and capture design intent in a schematic.
  • Verify (DRC, DFM, LVS): Run simulations directly from the layout using our simulation interfaces, removing the need to duplicate geometry drawings. Conduct component and circuit simulations, study design for manufacturing, and ensure complex layouts match their design intent through Layout Versus Schematic verification.
  • Validate: Define layout and test protocols simultaneously for efficient chip analysis post-fabrication. Extract essential component parameters, and build a data pipeline from raw data to structured data, and dashboards for monitoring chip performance.

Your input: Python or YAML text. Your output: A GDSII or OASIS file for fabrication, alongside component settings (for measurement and data analysis) and netlists (for circuit simulations) in YAML.

layout_to_components

flow

We provide a common syntax for design (KLayout, gdstk, Ansys Lumerical, tidy3d, MEEP, MPB, DEVSIM, SAX, MEOW ...), verification, and validation.

tool interfaces

Numerous foundries have gdsfactory PDKs available. You may need to contact your foundry to access their gdsfactory PDK, as some are provided under NDA only.

Available foundries include:

You can also access:

foundry-pdks

Installation

We support Python 3.10 or 3.11, and VSCode as an IDE. If you do not have Python installed, you can download Anaconda.

Upon Python installation, open Anaconda Prompt as Administrator and install the latest gdsfactory core conda (from the conda-forge channel) and Optional cad visualization extras using pip.

anaconda prompt

conda install -c conda-forge gdsfactory -y
pip install "gdsfactory[cad]"--upgrade

Then you can install Klayout-live klive integration in the klayout GUI Tools --> Manage Packages --> Install New Packages --> Klive as well as the genericpdk layermap Tools --> Manage Packages --> Install New Packages --> gdsfactory and restart klayout.

Update gdsfactory

You can upgrade your gdsfactory package using the following command:

pip install gdsfactory[cad] --upgrade

Please note that some PDKs may only work for a specific version of gdsfactory. Ensure you install the correct gdsfactory version specified in the pyproject.toml file. This will automatically happen when you install gdsfactory as one of the PDK dependencies. For example, pip install gf180 will install the latest gdsfactory version tested for the GlobalFoundries180 PDK.

To determine your current gdsfactory version, use the following code:

import gdsfactory as gf

gf.config.print_version()

Docker container

As an alternative, you can use the pre-built Docker image from hub.docker.com/r/joamatab/gdsfactory or build it yourself with:

docker build -t joamatab/gdsfactory .

For instance, VS Code supports development inside a container. See Developing inside a Container for details.

Plugins

We maintain gdsfactory plugins in a separate package These plugins enable interfaces with different tools, and you might need to install some of the tools separately. For more details, please visit the gplugins documentation.

Getting started

Testimonals

"I've used gdsfactory since 2017 for all my chip tapeouts. I love that it is fast, easy to use, and easy to extend. It's the only tool that allows us to have an end-to-end chip design flow (design, verification and validation)."

Joaquin Matres - Google

"I've relied on gdsfactory for several tapeouts over the years. It's the only tool I've found that gives me the flexibility and scalability I need for a variety of projects."

Alec Hammond - Meta Reality Labs Research

"The best photonics layout tool I've used so far and it is leaps and bounds ahead of any commercial alternatives out there. Feels like gdsfactory is freeing photonics."

Hasitha Jayatilleka - LightIC Technologies

"As an academic working on large scale silicon photonics at CMOS foundries I've used gdsfactory to go from nothing to full-reticle layouts rapidly (in a few days). I particularly appreciate the full-system approach to photonics, with my layout being connected to circuit simulators which are then connected to device simulators. Moving from legacy tools such as gdspy and phidl to gdsfactory has sped up my workflow at least an order of magnitude."

Alex Sludds - MIT

"I use gdsfactory for all of my photonic tape-outs. The Python interface makes it easy to version control individual photonic components as well as entire layouts, while integrating seamlessly with KLayout and most standard photonic simulation tools, both open-source and commercial.

Thomas Dorch - Freedom Photonics

Contributors

Thanks to all the contributors that make this awesome project possible!

Meet our contributors!

Project details


Release history Release notifications | RSS feed

This version

7.0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gdsfactory-7.0.1.tar.gz (794.9 kB view hashes)

Uploaded Source

Built Distribution

gdsfactory-7.0.1-py3-none-any.whl (1.0 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page