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]"
LLM Features Installation
pip install -e ".[llm]"
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/Large Language Model Framework
- 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
Metadata
Release files for glayout 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| glayout-0.2.0.tar.gz | 259.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| glayout-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 545.9 kB
Release files / glayout-0.2.0.tar.gz
| Download URL | glayout-0.2.0.tar.gz |
|---|---|
| Size | 259.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d253f09d52994c6cc60608cd9516ddb5362de5f4faef1f67b2f4ec34f932e9c9
|
|
BLAKE2b-256 checksum How to use checksums |
8aee5a5f5dec7416b7694ffd25abbc9c7bf6442f3b51793ddf472655d03149bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Release files / glayout-0.2.0-py3-none-any.whl
| Download URL | glayout-0.2.0-py3-none-any.whl |
|---|---|
| Size | 286.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
17de27253badd2dd8f26c60b686b77c660227a7085732b9d71bfe1c98443c3d9
|
|
BLAKE2b-256 checksum How to use checksums |
cd12bf8fd3b130e6d949f3b4d7dcafac310a9e8e999338dc5dc0cb732f780c66
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|