The setup.sh
script installs all of the dependencies, including OpenROAD dependencies, if they are not already installed.
Supported configurations are: Ubuntu 20.04, Ubuntu 22.04, Ubuntu 22.04(aarch64), RHEL 8, RockyLinux 9 and Debian 11.
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
cd OpenROAD-flow-scripts
sudo ./setup.sh
./build_openroad.sh --local
:::{Note}
There is a build_openroad.log
file that is generated with every
build in the main directory. In case of filing issues, it can be uploaded
in the "Relevant log output" section of OpenROAD-flow-scripts repo
issue form.
:::
The binaries should be available on your $PATH
after setting
up the environment. The make
command runs from RTL-GDSII generation for default design gcd
with nangate45
PDK.
source ./env.sh
yosys -help
openroad -help
cd flow
make
You can view final layout images in OpenROAD GUI using this command.
make gui_final
Set up environment variables using dev_env.sh
, then start Visual Studio Code. Please ensure CMake plugins are installed.
. ./dev_env.sh
code tools/OpenROAD/
Local use case:
- Install Bazelisk and no other dependencies, no need to run
sudo ./setup.sh
- Modify & build OpenROAD
- Test built OpenROAD with a few ORFS flows
The Bazel support in OpenROAD and ORFS is work in progress and some Bazel experience is recommended before going spelunking in the Bazel builds.
Contributions welcome!
To build designs/asap7/gcd:gcd_floorplan
:
cd flow
(cd ../tools/OpenROAD && bazel build :openroad -c opt) && bazelisk build designs/asap7/gcd:gcd_floorplan
Or to run all flows currently available in Bazel
cd flow
(cd ../tools/OpenROAD && bazel build :openroad -c opt) && bazelisk build ...
Note! ORFS uses the OpenROAD Bazel built binary in stop-gap way until OpenROAD has been switched to bzlmod, after which to build all flows becomes simpler as ORFS will build the requisite OpenROAD directly:
cd flow
bazelisk build ...
ORFS uses bazel-orfs to implement the flow and gets some depedencies, like yosys, from the Docker image. Over time, all dependencies should be built with Bazel and the dependency on the ORFS Docker image will be phased out.
Run:
bazelisk run @bazel-orfs//:bump
Then commit MODULE.bazel and MODULE.bazel.lock.