An infrastructure for implementing chip design flows
Project description
OpenLane 2 is in early access and all APIs are, presently, highly unstable and subject to change without notice. If you don't know why you're here, you're probably looking for the previous version of OpenLane at https://github.com/The-OpenROAD-Project/OpenLane.
OpenLane
OpenLane is a RTL to GDSII infrastructure library based on several components including OpenROAD, Yosys, Magic, Netgen, CVC, SPEF-Extractor, KLayout and a number of custom scripts for design exploration and optimization. A reference flow performs all ASIC implementation steps from RTL all the way down to GDSII.
from openlane import Flow
Classic = Flow.get("Classic")
flow = Classic.init_with_config(
{
"PDK": "sky130A",
"DESIGN_NAME": "spm",
"VERILOG_FILES": ["./src/spm.v"],
"CLOCK_PORT": "clk",
"CLOCK_PERIOD": 10,
},
design_dir=".",
)
flow.start()
Installation
Binary Dependencies
You'll need the following:
- Yosys 0.23+ (preferably 0.26+) from https://github.com/YosysHQ/Yosys
- A reasonably modern version of OpenROAD from https://github.com/The-OpenROAD-Project/OpenROAD
- A reasonably modern version of Magic from https://github.com/RTimothyEdwards/Magic
- A reasonably modern version of Netgen from https://github.com/RTimothyEdwards/netgen
- KLayout 0.28.5+ from https://github.com/KLayout/klayout
- Python 3.8 or higher with PIP, Venv and Python-Tk
Docker
TBD
Conda
TBD
Nix
- Install Nix. [Package manager. Takes around 3 minutes.]
- On Linux, invoke
sh <(curl -L https://nixos.org/nix/install) --daemon
and follow the instructions. - On Mac, invoke
sh <(curl -L https://nixos.org/nix/install)
and follow the instructions.
- On Linux, invoke
- Install Cachix. [Binary caching tool. Takes around a minute.]
nix-env -iA cachix -f https://cachix.org/api/v1/install
- Set up the OpenLane Cachix [Package manager. Takes around a minute.]
cachix use openlane
- You may see a message about your user not being trusted. In that case, it will print out a command. Please run that command then re-run
cachix use openlane
.
That's it. Whenever you want to use OpenLane, nix-shell
in the repository root directory and you'll have a full OpenLane environment. The first time might take around 10 minutes while binaries are pulled from the cache.
To quickly test your installation, simply run openlane --smoke-test
.
Other Methods
You'll need to bring your own compiled tools.
To set up the Python deps, simply type make venv
to create a virtual environment
with all the Python dependencies installed. To activate the virtual environment,
type source ./venv/bin/activate
in your terminal.
Usage
In the root folder of the repository with the VENV activated, you may invoke:
openlane --pdk-root <path/to/pdk> </path/to/config.json>
To start with, you can try:
openlane --pdk-root $HOME/.volare ./designs/spm/config.json
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 openlane-2.0.0a1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ba4bc47ae7df2676cbef1577a565be31c0c8d1cd2f60d7fdd6cca985ef8f167 |
|
MD5 | 342e5820078077853578838c5ff27285 |
|
BLAKE2b-256 | 65c39078222252ed5041006fdb1e2d85bd0bc479c6c9e9aa80cce2676233d78a |