由于github的原因,这里的源码下载在linux里面往往需要连接外网,一般会出现连接超时的情况,那么这里分享一个国内克隆github源码的好方法:
github源码转gitee仓库高速下载
#打开linux终端输入
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD.git
# 要访问外网,没有VPN就很麻烦
这里克隆git clone的时候记得加 --recursive,否则会导致有些submodule没跟着克隆下来
如果加了–recursive 下载不下来,进行下面步骤:
sudo apt-get purge git
sudo apt-get install git
在编译安装OpenROAD之前需要检查自己的系统环境是否已经满足以下条件:
# 检查gcc版本
gcc --version
gcc版本小于8.3.0,则需要进行升级!建议在linux内直接下载并安装
gcc升级11.2.0
gcc11.2.0下载
2、安装依赖
注意:在安装OpenROAD之前必须保证依赖已经安装成功,否则OpenROAD安装总会出错
cd OpenROAD # 进入OpenROAD目录
sudo ./etc/DependencyInstaller.sh -run
这里如果出现错误:
Package libtcl is a virtual package provided by:
libtcl8.5 8.5.19-4
libtcl8.6 8.6.8+dfsg-3
You should explicitly select one to install.
代表着你需要自己选择一个libtcl版本进行安装
此时,我们打开依赖安装脚本DependencyInstaller.sh进行修改:
vi ./etc/DependencyInstaller.sh
找到libtcl,在后面补上版本号8.6,然后:wq保存并退出
再次运行:
sudo ./etc/DependencyInstaller.sh -run
接下来,运行:
sudo ./etc/DependencyInstaller.sh -dev
这一部分将自动安装boost、swig、eigen、lemon、spdlog等库。
在这里,如果出现安装某个库不成功,可以再次运行上面命令,如果出现下图问题:
说明安装该库时连接不上github,那么可以进行上面提到的github源码转gitee仓库高速下载
我们需要将依赖安装脚本DependencyInstaller.sh中安装库的链接进行替换:
vi ./etc/DependencyInstaller.sh #打开依赖安装脚本DependencyInstaller.sh
将安装该库的代码中的github链接替换为我们gitee的链接,:wq保存并退出
再次运行:
sudo ./etc/DependencyInstaller.sh -dev
再安装编译所需的一些库:
sudo apt-get install libspdlog-dev
sudo apt install tcl-dev
有两种安装方式,手动编译和官方脚本编译,还是使用官方脚本好一点
1、官方脚本编译
在OpenROAD目录下输入:
./etc/Build.sh
#注:默认时安装到 /usr/local 路径下
#也可以自己指定安装路径:
./etc/Build.sh -cmake="-DCMAKE_INSTALL_PREFIX=安装路径"
在这里如果已确保源码克隆完全、gcc满足版本、依赖安装成功的话,编译安装可以成功进行到100%,安装编译过程需要一些时间,等着就可以了。
mkdir build
mkdir install
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=安装路径
make -j8 # 加上了多线程
make DESTDIR=安装路径 install
确定编译安装环节已经进行到100%且没有报错!
此时可以运行OpenROAD了,输入:
openroad -gui # 打开OpenROAD软件界面
如果出现openroad命令找不到的情况
此时需要进行软连接:建立软连接
openroad的可执行文件在/OpenROAD/build/src目录下
此时只需建立软连接即可
sudo ln -s /home/hkx/OpenROAD/build/src/openroad /usr/bin/
再次运行就可以打开gui了
运行下面命令可以查看openroad命令指南:
openroad -help
# 先对工具进行测试
./test/regression
# run all flow tests
./test/regression flow
测试完毕,可以确定OpenROAD编译完成,可以愉快的使用OpenROAD。