我是雪天鱼,一名FPGA爱好者,研究方向是FPGA架构探究。

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建

关注大众号,拉你进“IC规划交流群”。

OpenROAD 支持 RTL to GDS Flow ,即芯片规划的后端物理实现。

一、Code下载和编译

1.1 Code下载与依靠装置

翻开终端,输入

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

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
再装置依靠,输入:

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

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
会自动装置boost、swig、eigen、lemon、spdlog。
IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建

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

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

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
make install 所需时间比较久,耐性等候。然后我卡在了52%:
IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
这个问题我不知道怎么处理,库也下载了呀,但便是不可。 注:-DCMAKE_INSTALL_PREFIXDESTDIR 均是用来指定装置的文件夹途径。

2.2 官方脚本编译

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

./etc/Build.sh

注:默许时装置到 /usr/local 途径下,我硬盘空间足够,就直接默许位置了。

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
耐性等候编译完成。
IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
达到了100%,但又报了一些过错。 经测验,重复执行几次这个脚本就行,直到不报错停止。
IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建

2.3 功能测验

最后测验下是否真的编译成功了:

# 先对东西进行测验
./test/regression

测验的东西单元比较多,耐性等候:

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
没问题! 再对flow进行测验

# run all flow tests
./test/regression flow

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建

这个测验所需的时间就会比较长了,而且把我的电脑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	

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建

再装置依靠 pcre ,去官网下载 pcre,下载好后解压,翻开终端,输入:

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

检查swig版别:

swig -version

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
装置成功!

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

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
解压后进入该文件夹,翻开终端,输入:

mkdir build
cd build
cmake ..
make
sudo make install

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

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

IC后端物理实现自动化工具 OpenROAD系列(一)OpenROAD开发环境搭建
(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东西的生态也会越来越好。

  • 更多技术文章和学习资料,请关注我的大众号:【集成电路规划教程
  • 全渠道统一:【雪天鱼】