Establishment of OpenROAD development environment for IC backend physical implementation automation tool OpenROAD series

Posted by clem_c_rock on Mon, 14 Feb 2022 04:58:08 +0100

I am snowy fish, an FPGA enthusiast, and my research direction is FPGA architecture exploration.

Pay attention to the official account and pull you into the IC design exchange group.

OpenROAD Support RTL to GDS Flow, which is the back-end physical implementation of chip design.

1, Code download and compilation

1.1 Code download and dependent installation

Open the terminal and enter

git clone --recursive

To reinstall the dependency, enter:

cd OpenROAD
sudo ./etc/ -run
sudo ./etc/ -dev

boost, swig, eigen, lemon and spdlog will be installed automatically.

Then install some libraries required for compilation:

sudo apt-get install libspdlog-dev
sudo apt install tcl-dev

2, Code compilation

2.1 manual compilation

Open the terminal under the OpenROAD folder and enter;

mkdir build
mkdir install 
cd build 
cmake .. -DCMAKE_INSTALL_PREFIX=/home/jc-cao/Disk_sda3/Fudan_FPGA/OpenROAD/install
make DESTDIR=/home/jc-cao/Disk_sda3/Fudan_FPGA/OpenROAD/install install

make install takes a long time. Wait patiently. Then I got stuck at 52%:

I don't know how to solve this problem. The library has also been downloaded, but it just can't.
Note: - DCMAKE_INSTALL_PREFIX and DESTDIR are used to specify the folder path of the installation.

2.2 official script compilation

You can only try the official one click compilation script. Enter in the OpenROAD folder:


Note: by default, it is installed in the path of / usr/local. If I have enough hard disk space, I will directly the default location.

Wait patiently for the compilation to complete.

Reached 100%, but reported some errors.
Repeat the script several times without reporting an error.

2.3 function test

Finally, test whether the compilation is really successful:

# Test the tool first

There are a lot of tool units to be tested. Wait patiently:

no problem!
Then test the flow

# run all flow tests
./test/regression flow

This test will take a long time, and my computer CPU (i7) is almost full.
OK, there's a small problem. skywater130nm PDK hd didn't download completely when it should be. After debugging and testing, it can be determined that OpenROAD has been compiled and can be used happily. Then I'll post a blog to explain how to use OpenROAD for Digital IC design

2.4 problems encountered and Solutions

CMake Error at /usr/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
  Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR) (Required is at
  least version "3.0")

Problem analysis: lack of SWIG library, download and install it
Solution: go to the official website to download SWIG , I downloaded swig-4.0.0. After downloading, decompress it first, then open the terminal and enter:

sudo make install    

Then install the dependent pcre and download it from the official website pcre , unzip after downloading, open the terminal and enter:

sudo make install
cd ./.libs
sudo mv -v* /usr/lib/

View swig version:

swig -version

Installation succeeded!


CMake Error at src/dpo/CMakeLists.txt:41 (find_package):
  By not providing "FindLEMON.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "LEMON", but
  CMake did not find one.

  Could not find a package configuration file provided by "LEMON" with any of
  the following names:


  Add the installation prefix of "LEMON" to CMAKE_PREFIX_PATH or set
  "LEMON_DIR" to a directory containing one of the above files.  If "LEMON"
  provides a separate development package or SDK, be sure it has been

Problem analysis: the LEMON library is missing. Download and install it
Solution: download it first LEMON , I chose lemon-1.2.4 tar. gz:

After decompression, enter the folder, open the terminal and enter:

mkdir build
cd build
cmake ..
sudo make install

Open road / cmakelists Txt to set the path variable of lemon:

set(LEMON_DIR /usr/local/include/lemon)


OpenROAD/src/utl/CMakeFiles/utl.dir/LoggerTCL_wrap.cxx:166:10: fatal error: tcl.h: There is no such file or directory

Problem analysis: I can't find tcl,h, but I have installed TCL. Check it out in / usr / include / tcl8 6 under the path. The final discovery is this tcl8 6 No. To install another version of.
Solution: the installation command is:

sudo apt install tcl-dev

3, Summary

I feel that it is troublesome and easy to make mistakes when building an open source tool, especially a large tool. However, with the joint efforts of developers, CMake, a cross platform tool that greatly facilitates code compilation, is coming out. I believe that the construction of the development environment will be easier and easier in the future, and the ecology of open source EDA tools will be better and better.

  • For more technical articles and learning materials, please pay attention to my official account: integrated circuit design course.
  • Unified across the platform: [snowy fish]

Topics: Blockchain