python library to generate GDS layouts
Project description
gdsfactory 6.94.1
gdsfactory: An open source platform for end to-end photonic chip design and validation.
gdsfactory is a python library to design chips (Photonics, Analog, Quantum, MEMs, ...), objects for 3D printing or PCBs.
You can describe your hardware in code (python or YAML), verify them (DRC, simulation, extraction) and validate them (to make sure they meet the specifications after fabrication).
It provides you and end to end design flow to:
- Design (Layout, Simulation, Optimization)
- Define Components using parametric cells functions in python or YAML.
- Test component settings, ports and geometry to avoid unwanted regressions.
- Capture design intent in a schematic.
- Verify (DRC, DFM, LVS)
- Run simulations directly from the layout thanks to the simulation interfaces. No need to draw the geometry more than once.
- Run Component simulations (solve modes, FDTD, EME, TCAD, thermal ...)
- Run Circuit simulations from the Component netlist (Sparameters, Spice ...)
- Build Component models and study Design For Manufacturing.
- Create DRC rule decks in Klayout.
- Ensure complex layouts match their design intent (Layout Versus Schematic).
- Run simulations directly from the layout thanks to the simulation interfaces. No need to draw the geometry more than once.
- Validate
- Define layout and test protocols simultaneously, so when the chips come back you already know how to test and analyze them.
- Model extraction: extract the important parameters for each component.
- Build a data pipeline from raw data, to structured data and dashboards for monitoring your chip performance.
As input, you write python or YAML code.
As output you write a GDSII or OASIS file that you can send to your foundry for fabrication. It also exports component settings (for measurement and data analysis) and netlists (for circuit simulations) in YAML.
It provides you a common syntax for design (KLayout, gdstk, Ansys Lumerical, tidy3d, MEEP, MPB, DEVSIM, SAX, MEOW ...), verification and validation.
Multiple foundries have gdsfactory PDKs available. Talk to your foundry to access their gdsfactory PDK as some are only provided under NDA:
- AIM photonics PDK
- AMF photonics PDK
- TowerSemi PH18 photonics PDK
- GlobalFoundries 45SPCLO Photonics PDK
- IMEC photonics PDK
- GlobalFoundries 180nm MCU CMOS PDK (open source)
- SiEPIC Ebeam UBC PDK (open source)
- Skywater130 CMOS PDK (open source)
You can also access:
- instructions on how to build your own PDK
- instructions on how to import a PDK from a library of fixed GDS cells
Installation
You have 2 options to install gdsfactory:
1. Installation for new users
If you don't have python installed on your system you can download the gdsfactory installer that includes python3, miniconda and all gdsfactory plugins.
You can also install python with mamba package manager (faster than conda):
OS | Architecture | Download |
---|---|---|
Linux | x86_64 (amd64) | Mambaforge-Linux-x86_64 |
Linux | aarch64 (arm64) | Mambaforge-Linux-aarch64 |
Linux | ppc64le (POWER8/9) | Mambaforge-Linux-ppc64le |
OS X | x86_64 | Mambaforge-MacOSX-x86_64 |
OS X | arm64 (Apple Silicon) | Mambaforge-MacOSX-arm64 |
Windows | x86_64 | Mambaforge-Windows-x86_64 |
Once you have python installed, open Anaconda Prompt and then install the latest gdsfactory using pip.
pip install gdsfactory --upgrade
gf install klayout-integration
Then you need to restart Klayout to make sure you activate the klayout gdsfactory integration.
2. Installation for developers
For developers you need to fork the GitHub repository, git clone it (download it), git add, git commit, git push your improvement. Then pull request your changes to the main branch from the GitHub website.
For that you can install gdsfactory locally on your computer in -e
edit mode.
git clone https://github.com/gdsfactory/gdsfactory.git
cd gdsfactory
pip install -e . pre-commit
pre-commit install
gf install klayout-integration
Update gdsfactory
- Users can
pip install gdsfactory --upgrade
- Developers can
git pull
the GitHub repository you downloaded and installed on your computer.
Some PDKs may require a specific versions of gdsfactory, so make sure 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 that has been tested for the GlobalFoundries180 PDK.
This code will tell you which gdsfactory you are using:
import gdsfactory as gf
gf.config.print_version()
Plugins
You need to install the plugins separately.
You can install most plugins with:
pip install "gdsfactory[full,gmsh,tidy3d,devsim,meow,database]" --upgrade
Or you can install only the ones you need.
pip install "gdsfactory[full]"
for 3D rendering.pip install "gdsfactory[tidy3d]"
tidy3d plugin for FDTD simulations on the cloud.pip install "gdsfactory[gmsh]"
for mesh plugins.pip install "gdsfactory[devsim]"
for TCAD simulations.pip install "gdsfactory[meow]"
for EME (Eigen Mode Expansion) simulations.mamba install pymeep=*=mpi_mpich_* -y
for open source FDTD MEEP simulations. Notice that it works for MacOS and Linux, so for Windows you need to use the WSL (Windows Subsystem for Linux).
- Optimization
- Meshing
- Device Simulators
- Mode Solvers & Eigenmode Expansion (EME)
- Electromagnetic Wave Solvers using Finite Difference Time Domain (FDTD)
- S-Parameter Circuit Solvers
- Database
Docker container
Alternatively, one may use the pre-built Docker image from hub.docker.com/r/joamatab/gdsfactory or build it yourself with:
docker build -t joamatab/gdsfactory .
For example, VS Code supports development inside a container, see Developing inside a Container for details.
Getting started
- Run notebooks on
- See slides
- Read docs
- See announcements on GitHub, google-groups or LinkedIn
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)."
"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."
"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."
"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."
"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.
Contributors
Thanks to all the contributors that make this awesome project possible!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for gdsfactory-6.94.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a313dcbbcd226668679cd3e160edb9e744d4166e3fa0a5c3f00a593ae339745 |
|
MD5 | 639f988cd9c91d786c58099b61f2bc9d |
|
BLAKE2b-256 | ceff35a7f642443f3a0ad85c328943dd4b55ba5ceaaa2c8f075b40a875c7ba13 |