乐趣区

关于区块链:IC后端物理实现自动化工具-OpenROAD系列一OpenROAD开发环境搭建

我是 雪天鱼,一名 FPGA 爱好者,钻研方向是 FPGA 架构摸索。

关注公众号,拉你进“IC 设计交换群”。

OpenROAD 反对 RTL to GDS Flow,即芯片设计的后端物理实现。

一、Code 下载和编译

1.1 Code 下载与依赖装置

关上终端,输出

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


再装置依赖,输出:

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



会主动装置 boost、swig、eigen、lemon、spdlog。

再装置编译所需的一些库:

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

二、代码编译

2.1 手动编译

OpenROAD 文件夹下关上终端,输出;

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 所需工夫比拟久,急躁期待。而后我卡在了 52%:

这个问题我不晓得如何解决,库也下载了呀,但就是不行。
注:-DCMAKE_INSTALL_PREFIXDESTDIR 均是用来指定装置的文件夹门路。

2.2 官网脚本编译

只能试试官网的一键式编译脚本了,在 OpenROAD 文件夹下输出:

./etc/Build.sh 

注:默认时装置到 /usr/local 门路下,我硬盘空间短缺,就间接默认地位了。

急躁期待编译实现。

达到了 100%,但又报了一些谬误。
经测试,反复执行几次这个脚本就行,直到不报错为止。

2.3 功能测试

最初测试下是否真的编译胜利了:

# 先对工具进行测试
./test/regression

测试的工具单元比拟多,急躁期待:

没问题!
再对 flow 进行测试

# run all flow tests
./test/regression flow

这个测试所需的工夫就会比拟长了,而且把我的电脑 CPU(i7)简直都快拉满了。
OK,有小问题,应该时 skywater130nm 的 PDK hd 没下载全,后续再调试,测试结束,能够确定 OpenROAD 编译实现,能够欢快的应用 OpenROAD 了,之后我将出博客解说如何应用 OpenROAD 进行 数字 IC 设计

2.4 遇到的问题和解决办法

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")

问题剖析 :短少 SWIG 库,下载安装即可
解决办法:去官网下载 SWIG,我下载的是 swig-4.0.0,下载好后先解压,再关上终端,输出:

./configure
make
sudo make install    


再装置依赖 pcre,去官网下载 pcre,下载好后解压,关上终端,输出:

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

查看 swig 版本:

swig -version


装置胜利!

(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.

问题剖析 :短少库 LEMON,下载安装即可
解决办法 :先去下载 LEMON,我抉择的是 lemon-1.2.4.tar.gz:

解压后进入该文件夹,关上终端,输出:

mkdir build
cd build
cmake ..
make
sudo make install

再在 OpenROAD/CMakeLists.txt 的首行设置 lemon 的门路变量:

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


(3)

OpenROAD/src/utl/CMakeFiles/utl.dir/LoggerTCL_wrap.cxx:166:10: fatal error: tcl.h: 没有那个文件或目录

问题剖析 :找不到 tcl,h,但明明我曾经装置过了 tcl。查看了下,在 /usr/include/tcl8.6 门路下。最终发现是这个 tcl8.6 不行。要装置另一个版本的。
解决办法:装置命令为:

sudo apt install tcl-dev

三、总结

感觉每次搭建一个开源工具,尤其是大工具时都很麻烦,很容易出错,但随着开发人员的共同努力,当初进去了 CMake 这样极大不便代码编译的跨平台工具,置信当前搭建开发环境肯定会越来越轻松的,开源 EDA 工具的生态也会越来越好。

  • 更多技术文章和学习材料,请关注我的公众号:【集成电路设计教程】
  • 全平台对立:【雪天鱼】
退出移动版