This document describes how to install and use OpenLane2
without breaking or modifying existing OpenLane (v1) environments.
The primary goals are:
OpenLane2 is treated as a separate toolchain,
not a replacement for OpenLane (v1).
This project strictly follows these environment rules:
Violating any of these rules risks:
This setup has been verified under the following conditions:
Typical directory layout:
$HOME/
โโ OpenLane/ # Existing OpenLane v1 (unchanged)
โโ OpenROAD/
โโ pdks/
โ โโ sky130A/
โโ openlane2-sram/ # This repository
OpenLane2 must be installed inside a Python virtual environment.
cd openlane2-sram
python3 -m venv venv
source venv/bin/activate
After activation, the shell prompt should look like:
(venv) user@host:~/openlane2-sram$
Important: The virtual environment must be active.
# activate venv (if not already active)
source venv/bin/activate
# upgrade pip
pip install --upgrade pip
# install OpenLane2
pip install openlane
# verify installation
openlane --version
openlane command works inside the virtual environmentopenlane command is not available outside the virtual environmentThis confirms proper toolchain isolation and non-destructive coexistence.
export PDK_ROOT=$HOME/pdks
export PDK=sky130A
Expected directory structure:
$PDK_ROOT/sky130A/
These variables can be defined in:
~/.bashrc, orsource venv/bin/activate
openlane --version
cd $HOME/OpenLane
./flow.tcl -h
โ Both tools must work independently.
If OpenLane (v1) continues to operate normally,
the setup is confirmed to be non-destructive.
This project intentionally avoids:
These choices keep the environment:
Simple ยท Explicit ยท Debuggable
This ensures long-term reproducibility.
After completing this setup, proceed to:
โก docs/20_openlane2.md
Baseline OpenLane2 flow without SRAM macros
Last updated: OpenLane2 environment verified and used for final GDS generation โ