I am Xuetianyu, a FPGA enthusiast, and my research direction is FPGA architecture exploration.

Pay attention to the public number, pull you into the “IC design communication group”.

OpenROAD supports RTL to GDS Flow, a back-end physical implementation of chip design.

Download and compile Code

1.1 Code Download and Dependent Installation

Open the terminal and enter

git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD.git
Copy the code

To install dependencies, type:

cd OpenROAD
sudo ./etc/DependencyInstaller.sh -run
sudo ./etc/DependencyInstaller.sh -dev
Copy the code

Boost, SWIg, Eigen, lemon, and spdlog will be automatically installed.

Install some libraries for compilation:

sudo apt-get install libspdlog-dev
sudo apt install tcl-dev
Copy the code

Second, code compilation

2.1 Manual Compilation

Open the terminal in the OpenROAD folder and type;

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
Copy the code

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 been downloaded, but it just doesn’t work. Note:-DCMAKE_INSTALL_PREFIXDESTDIRAre used to specify the installation folder path.

2.2 Official Script Compilation

Instead, try the official one-click compilation script. Type in the OpenROAD folder:

./etc/Build.sh 
Copy the code

Note: Install to by default/usr/localIn the path, I have enough space on my hard drive, so I’ll go to the default location.Wait patiently for compilation to complete.It reached 100%, but some errors were reported. After testing, repeat the script several times until no error is reported.

2.3 Functional Test

Finally, test whether the compilation is successful:

Test the tool first. /test/regression
Copy the code

There are many tool units for the test, so wait patiently:No problem! Then test the flow

# run all flow tests. /test/regression flow
Copy the code

This test will take a long time, and my computer CPU (i7) is almost full. OK, there is a small problem, skywater130nm PDK hd was not downloaded at the time, we will debug later, after the test, we can confirm that OpenROAD compilation is complete, you can use OpenROAD happily, then I will 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 (the message) : Could NOT find SWIG (missing: SWIG_EXECUTABLE SWIG_DIR) (Required is at least version"3.0")
Copy the code

Solution: Go to the official website to download SWIG, I downloaded swiG-4.0.0, after downloading, first decompress, then open the terminal, enter:

./configure
make
sudo make install	
Copy the code

To install the pcRE, go to the official website to download pcRE, decompress the download, open the terminal, enter:

./configure
make
sudo make install
cd ./.libs
sudo mv -v libpcre.so.* /usr/lib/
Copy the code

Check the swig version:

swig -version
Copy the code

Installation successful!

(2)

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:

    LEMONConfig.cmake
    lemon-config.cmake

  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
  installed.
Copy the code

Problem analysis: Library LEMON is missing. Download and install itThe solution: Go download it firstLEMONAnd I chose yesLemon - 1. Tar. Gz: After decompressing, enter the folder, open the terminal, and enter:

mkdir build
cd build
cmake ..
make
sudo make install
Copy the code

Then set lemon’s path variable in the first line of OpenROAD/ cmakelists. TXT:

set(LEMON_DIR /usr/local/include/lemon)
Copy the code

(3)

OpenROAD/SRC/utl/CMakeFiles/utl dir/LoggerTCL_wrap CXX: 166:10: fatal error: TCL. H: don't have that file or directoryCopy the code

Problem analysis: CAN’t find TCL, H, but CLEARLY I have installed TCL. /usr/include/tcl8.6 It turns out that TCL8.6 won’t work. Another version will be installed. Solution: The installation command is:

sudo apt install tcl-dev
Copy the code

Third, summary

Feeling every time to build an open source tools, especially when large tool is very troublesome, very easy to get wrong, but with the joint efforts of developers, now out CMake such great convenient code compilation, cross-platform tools, believe that later set up development environment will be more and more relaxed, open source EDA tools of ecological will be getting better and better.

  • For more technical articles and learning materials, please follow my official account: [Integrated Circuit Design Tutorial]
  • Unified platform: [Snow Fish]