This script builds openlane and all its dependencies on an Ubuntu (only) System. The scripts in this repo are:
- openlane_script.sh
- openlane_script_wo_depends.sh
openlane_script.sh is a standalone script where it builds openlane (latest version) and all its dependencies; while openlane_script_wo_depends.sh works in conjunction with vsdflow script and builds only openlane (hence lesser run-time).
-
git clone https://github.com/nickson-jose/openlane_build_script
-
sudo -i
#switch to root user (or have root user password ready). -
Change directory to where openlane_build_script folder was cloned.
cd /path/to/openlane_build_script
-
Execute the script as below:
-
For standalone build
chmod 775 openlane_script.sh
./openlane_script.sh
-
For build in conjunction with vsdflow
- Copy the
openlane_script_wo_depends.sh
to vsdflow folder. chmod 775 openlane_script_wo_depends.sh
./openlane_script_wo_depends.sh
- Copy the
-
-
This script would create following directory structure:
- For build in conjunction with vsdflow
vsdflow/
└── work
└── tools
├── cmake-3.13.0
├── cmake-3.13.0.tar.gz
├── graywolf
├── magic-8.3.50
├── magic-8.3.50.tgz
├── netgen-1.5.134
├── netgen-1.5.134.tgz
├── openlane_working_dir
├── OpenSTA
├── OpenTimer
├── qflow-1.3.17
├── qflow-1.3.17.tgz
├── qrouter-1.4.59
├── qrouter-1.4.59.tgz
- For standalone build
Desktop/
...
└── work
└── tools
└── openlane_working_dir
|__ Openlane
-
Go to /path/to/openlane (i.e., ~/work/tools/openlane_working_dir/Openlane)
-
There are two ways of invoking openlane. The easiest of the two would be:
make mount
The second way would be to explicitly specify the path to PDK_ROOT and OPENLANE_IMAGE_NAME and invoking docker with these inputs
export PDK_ROOT=<absolute path to where skywater-pdk and open_pdks reside>
export OPENLANE_IMAGE_NAME=<docker image name>
docker run -it -v $(pwd):/openlane -v $PDK_ROOT:$PDK_ROOT -e PDK_ROOT=$PDK_ROOT -u $(id -u $USER):$(id -g $USER) $OPENLANE_IMAGE_NAME
-
Note: If you face "permission denied" during docker invocation in setup or in above step, do refer below link to resolve:
-
./flow.tcl -design spm
(the above flow.tcl command will run RTL2GDS flow for design named "spm". Same can be done for other designs which are present in ~/work/tools/openlane_working_dir/Openlane/designs) -
Refer to: https://github.com/efabless/openlane for detailed instructions.