An infrastructure for implementing chip design flows
Project description
Efabless 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 stable 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, 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:
- Python 3.8 or higher with PIP, Venv and Tkinter
- 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
Docker
Works for Windows, macOS and Linux. Easier to set up, but less integrated with your filesystem. Recommended for general users.
See Docker-based installation in the docs.
Nix
Works for macOS and Linux. A bit more complex to set up, but more integrated with your filesystem and overall less upload and download deltas.
See Nix-based installation in the docs.
Conda
TBA
Python-only Installation
You'll need to bring your own compiled tools, but otherwise, simply install OpenLane as follows:
python3 -m pip install --upgrade openlane
To quickly test your installation, run openlane --smoke-test
. This may take up to 10 minutes depending on your computer's speed and internet connection.
Troubleshooting
With a typical Python 3.8 or higher installation with PIP, installing OpenLane is usually as simple as a pip install
.
Despite that, there are some peculiarities with PIP itself: For example, you may see a warning among these lines:
WARNING: The script openlane is installed in '/home/test/.local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
The solution is as simple as adding something like this to your shell's profile:
export PATH="/home/test/.local/bin:$PATH"
Do note that the path (/home/test/.local/bin
in this example) varies depending on your operating system and version of Python you install, and whether you use sudo
(absolutely not recommended) or not, so ensure that you actually read the warning and add the correct path.
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.0a4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d32cdaa2a73b5adde8ca00c23d09c21c6cefdd24ce408ae8e20c82d609520eb0 |
|
MD5 | 749ded9679fdc52681e10cdba6bda977 |
|
BLAKE2b-256 | aa458f090b3d41994662b43e7c8dd484b888e7892684a1feaa3bf0f24c9b4b59 |