OpenROAD
The OpenROAD project provides an open source flow from rtl to gds2.
Install
The OpenROAD code is available on github. OpenROAD provides several install methods like docker, nix, bazel and cmake.
Install via bazel
Bazel promises reproducable builds which I liked. I tried it on a virtual (via UTM) debian 13 (trixie) arm64 machine. The openroad binary is a gui application which relies on qt. It seems quite difficult to have system independent gui application. OpenROAD uses prebuild libraries, for example the xcd libraries which are from OpenROADS qt_bazel_prebuilts/interface_libs. It turns out that prebuild libraries are build in a ubuntu docker container and the copied to the repository. Therefore they are x86_64 and do not work on the arm64 machine.
I gave up on that one for the time being.
Install via cmake
I stole the following from the Dockerfile to build a local version on a debian 12 machine in the lab.
git clone --recurse-submodules https://github.com/The-OpenROAD-Project/OpenROAD.git
cd OpenROAD
cp etc/DependencyInstaller.sh /tmp
sudo /tmp/DependencyInstaller.sh -ci -base
sudo /tmp/DependencyInstaller.sh -ci -common -save-deps-prefixes=/etc/openroad_deps_prefixes.txt
DEPS_ARGS=$(cat /etc/openroad_deps_prefixes.txt)
echo $DEPS_ARGS
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release -DOPENROAD_VERSION=${fredo} $DEPS_ARGS
cmake --build build -- -j 8
Regression Test
To be sure that the compiled tools are actually working as expected on possibly different platforms, a regression test is a good idea. The README.md mentions some tests. Run:
./test/regression flow ctest --test-dir build -j 8
Build Results
Some collected build results: