A PDK-agnostic layout automation framework for analog circuit design
Project description
Glayout
A PDK-agnostic layout automation framework for analog circuit design.
Overview
Glayout is a powerful layout automation tool that generates DRC-clean circuit layouts for any technology implementing the Glayout framework. It is implemented as an easy-to-install Python package with all dependencies available on PyPI.
Key features:
- PDK-agnostic layout generation
- Support for multiple technology nodes (sky130, gf180)
- DRC-clean layout generation
- Natural language processing for circuit design
- Integration with Klayout for visualization and verification
Installation
Basic Installation
pip install .
Development Installation
git clone https://github.com/your-username/glayout.git
cd glayout
pip install -e ".[dev]"
ML Features Installation
pip install -e ".[ml]"
Quick Start
from glayout import sky130, gf180, nmos ,pmos,via_stack
# Generate a via stack
#met2 is the bottom layer. met3 is the top layer.
via = via_stack(sky130, "met2", "met3", centered=True)
# Generate a transistor
transistor = nmos(sky130, width=1.0, length=0.15, fingers=2)
# Write to GDS
via.write_gds("via.gds")
transistor.write_gds("transistor.gds")
Documentation
For detailed documentation, please visit our documentation site.
Features
PDK Agnostic Layout
- Generic layer mapping
- Technology-independent design rules
- Support for multiple PDKs (sky130, gf180)
Circuit Generators
- Via stack generation
- Transistor generation (NMOS/PMOS)
- Guard ring generation
- And more...
Natural Language Processing
- Convert natural language descriptions to layouts
- Support for standard components
- Custom component definitions
Supported Open Source PDKs
- SkyWater SKY-130A
- GlobalFoundries GF-180mcuD
Contributing
We welcome contributions! Please see our Contributing Guide for details.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Citation
If you use Glayout in your research, please cite our papers:
@article{hammoud2024human,
title={Human Language to Analog Layout Using Glayout Layout Automation Framework},
author={Hammoud, A. and Goyal, C. and Pathen, S. and Dai, A. and Li, A. and Kielian, G. and Saligane, M.},
journal={Accepted at MLCAD},
year={2024}
}
@article{hammoud2024reinforcement,
title={Reinforcement Learning-Enhanced Cloud-Based Open Source Analog Circuit Generator for Standard and Cryogenic Temperatures in 130-nm and 180-nm OpenPDKs},
author={Hammoud, A. and Li, A. and Tripathi, A. and Tian, W. and Khandeparkar, H. and Wans, R. and Kielian, G. and Murmann, B. and Sylvester, D. and Saligane, M.},
journal={Accepted at ICCAD},
year={2024}
}
Contact
For questions and support, please contact:
- Email: mehdi_saligane@brown.edu
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file glayout-0.1.2.tar.gz.
File metadata
- Download URL: glayout-0.1.2.tar.gz
- Upload date:
- Size: 181.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38cca8bc2b38a020730b8a40f1412a66e5c4958f9aef33609450f85e1649f948
|
|
| MD5 |
cfdd2a81a4cefb5afe7e2c115d889a2c
|
|
| BLAKE2b-256 |
37bc843ef4723ba1eebe4db57d089bac201ff8738a0ccb51f25852224bad3ff5
|
File details
Details for the file glayout-0.1.2-py3-none-any.whl.
File metadata
- Download URL: glayout-0.1.2-py3-none-any.whl
- Upload date:
- Size: 193.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afb8754c03123919065d4eb1dab4cd506f248f717773c50cef03c4e00791b651
|
|
| MD5 |
521425af6339e169d123f544aa56f573
|
|
| BLAKE2b-256 |
0ac47d5684bb495dc9252339eeebb58fbec93e5f606c5d50c7a26de82287483d
|