- OpenROAD is the core application and the engine of the flow. It is a unified executable that performs the actual physical design work.
- OpenROAD (Open Rapid Object-Oriented Design) is an open-source, fully autonomous, end-to-end RTL-to-GDSII digital physical design toolchain developed primarily for ASIC implementation.
- Its objective is to enable push-button, timing-closed layout generation without proprietary software dependencies.
- OpenROAD integrates multiple components that collectively perform synthesis, floorplanning, placement, clock tree synthesis, routing, and signoff analysis.
- The tool leverages key open-source engines such as Yosys for logic synthesis, and OpenSTA for static timing analysis.
- To install the openroad on Ubuntu 24 is liitle bit complex and tricky 👿.
- The default compiler version (GCC 11+) often causes internal C++ conflicts with OpenROAD's dependencies. We force the use of GCC-9.
## Update repositories and install the build essentials
$ sudo apt update
$ apt install build-essential git cmake swig python3-dev -y
# Install the compatible compiler (GCC-9)
$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
$ sudo apt update
$ sudo apt install g++-9 -y- Need to build and install OR-Tools to /usr/local so OpenROAD's final configuration can find it.
# Clone the repository. Have patience it takes almost more than an `hour`.
$ git clone [https://github.com/google/or-tools.git](https://github.com/google/or-tools.git)
$ cd or-tools
# Build and install OR-Tools
$ mkdir build
$ cd build
$ cmake -DBUILD_DEPS=ON -DCMAKE_BUILD_TYPE=Release ..
$ make -j$(nproc)
$ sudo make install
# installation outside openroad folder
$ cd ~
$ git clone -b v1.11.0 [https://github.com/gabime/spdlog.git](https://github.com/gabime/spdlog.git)
$ cd spdlog
$ cmake -DCMAKE_BUILD_TYPE=Release -DSPDLOG_FMT_EXTERNAL=OFF .
$ make -j$(nproc)
$ sudo make install- Because we manually cloned spdlog (and commented out the system find_package), we must patch two files to tell CMake how to link the internal files directly
src/CMakeLists.txt(To stop searching for system package)- Open the file: sudo gedit
src/CMakeLists.txt - Find the line find_package(spdlog REQUIRED) (around line 235) and comment it
- Patch Root
CMakeLists.txt(To build the dependency target) - Open the file:
sudo gedit CMakeLists.txt - Add the line
add_subdirectory(third-party/spdlog)immediately after the existingadd_subdirectory(third-party)line, and beforeadd_subdirectory(src).
# --- ADD THIS LINE immediately after the existing `add_subdirectory(third-party)` ---
add_subdirectory(third-party/spdlog)# just move to the below folder and do cmake and make that will copy gtest and gmonk in the `usr/lib`
$ cd /usr/src/gtest
$ sudo cmake .
$ sudo make
$ sudo cp lib/libgtest*.a /usr/lib/
ScreenShot: The Dependencies all met.
✋ note- we will clone the openroad and built seperatly
- These steps ensure a complete and clean repository, resolving initial build issues like missing submodules.
- Clone OpenROAD and Fix Submodule Corruption
git submodule update --init --recursive - This ensures all required third-party libraries (like spdlog and sta) are fully downloaded.
# Clone OpenROAD repository (replace <path> with your chosen directory)
$ cd $HOME/vsdflow git clone [https://github.com/The-OpenROAD-Project/OpenROAD.git](https://github.com/The-OpenROAD-Project/OpenROAD.git)
$ cd OpenROAD
$ mkdir build
$ cd build
# Run CMake (using g++-9 and pointing to OR-Tools)
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-Wno-error"
or
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-Wno-error" \
-DCMAKE_PREFIX_PATH="/usr/local" \
-DCMAKE_CXX_COMPILER=/usr/bin/g++-9ScreenShot: The picture shows that openroad cmake is complete.
# 🕡 the cmake will take enough time to complete
# Compile and Install OpenROAD
$ <Build Folder path > make -j$(nproc)
$ sudo make installScreenShot: The picture shows that openroad after Make and install.
ScreenShot: The picture shows that openroad after Make 100% done!!.
ScreenShot: The picture shows that openroad is successfully Installed.
ScreenShot: The picture shows that openroad is successfully Installed on Ubuntu 24 WSL.
ScreenShot: The picture shows that openroad test folder contains PDK and example which we will take in PART-2
- VSD and Kunal Sir
- General Chat VSD
- Chat GPT and all Internet user working on OPENROAD Installation.
- ALL friends.