概述
OpenROAD Flow 是完全基于开源工具构建的完整 RTL 到 GDS 流程。 该项目旨在实现自动化、无人参与的数字电路设计 24 小时周转时间。
基于Ubuntu20.04部署OpenROAD,使用OpenROAD构建蜂鸟E203处理器核GDS
注意!!
使用虚拟机或者主机安装时,请注意硬件要求,还有网络畅通;
最低要求:1 个 CPU 内核和 4GB RAM。
推荐:4 个 CPU 内核和 16GB 内存。
Ubuntu20.04详细安装步骤(基于虚拟机)
https://blog.csdn.net/qq_45456015/article/details/108046451
ubuntu20.04 使用root用户登录系统
https://blog.csdn.net/ht1032279753/article/details/107672004
如果内存实在不够可以增加swap交换空间达到要求
https://blog.csdn.net/littleRpl/article/details/92626436
安装依赖项
注:Ubuntu20.04自带了一些需要的库(或更高版本),所以有些库不需要配置。
1.安装编译环境一些常用的包,其中有gcc,g++,make等
sudo apt install build-essential
2.安装tcl
在对OpenROAD编译时,有些C代码头文件是导入了tcl.h,但是安装完的tcl库是存在于/usr/include/tcl8.6/下,所以会出现找不到tcl.h文件的情况,只要将tcl8.6下的头文件复制到/usr/include/下即可。除此之外,项目中需要libtcl8.5库文件,在运行时会报-ltcl8.5缺失,生成一个/usr/lib/x86_64-linux-gnu/libtcl8.6.so -> /usr/lib/x86_64-linux-gnu/libtcl8.5.so的软连接即可。解决库文件缺失的问题可参考Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的通用解决方法或者Ubuntu使用apt-file解决库或者文件缺失依赖
sudo apt install tcl-dev
sudo cp /usr/include/tcl8.6/*.h /usr/include/
sudo ln -s /usr/lib/x86_64-linux-gnu/libtcl8.6.so /usr/lib/x86_64-linux-gnu/libtcl8.5.so
3.安装readline,bison,flex,ffi,cmake,boost,swig,klayou
sudo apt install libreadline6-dev bison flex libffi-dev cmake libboost-all-dev swig klayout
4.安装eigen3
sudo apt install libeigen3-dev
5.安装lemon
wget http://lemon.cs.elte.hu/pub/sources/lemon-1.3.1.tar.gz
tar zxvf lemon-1.3.1.tar.gz
cd lemon-1.3.1
mkdir build && cd build && cmake .. && make -j 64 && sudo make install
6.安装git并与GitHub建立连接教程(引用自qq_38716242的博客)
https://blog.csdn.net/qq_38716242/article/details/79380825
7.从GitHub克隆OpenROAD源代码
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
如果clone 源码时,如果关联的三个代码块提示下载失败
,可以进入目录下删除文件夹,单独git clone
对应的源码;
git clone https://github.com/The-OpenROAD-Project/LSOracle.git
git clone https://github.com/The-OpenROAD-Project/OpenROAD.git
git clone https://github.com/The-OpenROAD-Project/yosys.git
在以后使用git下载GitHub项目时,将 git://
更换为 https://
会有意想不到的效果哦!!!!
如:
git clone --recursive git://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
换成
git clone --recursive https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
从本地源构建OpenROAD
1.安装依赖文件(很重要)
OpenROAD 应用程序的依赖项记录在下面的脚本中。 在初始设置期间,需进入OpenROAD-flow-scripts/tools/OpenROAD/etc
下运行脚本:
脚本在GitHub克隆源码中
# 要么以root用户运行,要么使用sudo
cd OpenROAD-flow-scripts/tools/OpenROAD
./etc/DependencyInstaller.sh -dev
2.打开源码文件进行构建
cd OpenROAD-flow-scripts
./build_openroad.sh --local
3.验证安装,需要在源代码目录下
source ./setup_env.sh
yosys -help
openroad -help
exit
OpenROAD配置安装完成
使用OpenROAD构建蜂鸟E203处理器核GDS
在进行上述验证之后,可以确认工具链可以正常工作,下一步就是要对蜂鸟处理器核GDS进行构建。首先,在镜像中克隆蜂鸟处理器的仓库,处理器核的verilog代码在/e200_opensource/rtl/e203/core
路径下。
git clone https://github.com/SI-RISCV/e200_opensource.git
cd e200_opensource/rtl/e203/core
pwd
/root/desktop/OpenROAD-flow-scripts/e200_opensource/rtl/e203/core
此处需要注意,为了实现简单,在源码中注释了处理器核中的SRAM部分,也就是/OpenROAD-flow-scripts/e200_opensource/rtl/e203/core/e203_cpu_top.v
文件中:
/*
e203_srams u_e203_srams(
`ifdef E203_HAS_DTCM //{
.dtcm_ram_sd (tcm_sd),
.dtcm_ram_ds (tcm_ds),
.dtcm_ram_ls (dtcm_ls),
.dtcm_ram_cs (dtcm_ram_cs ),
.dtcm_ram_we (dtcm_ram_we ),
.dtcm_ram_addr (dtcm_ram_addr),
.dtcm_ram_wem (dtcm_ram_wem ),
.dtcm_ram_din (dtcm_ram_din ),
.dtcm_ram_dout (dtcm_ram_dout),
.clk_dtcm_ram (clk_dtcm_ram ),
.rst_dtcm(rst_dtcm),
`endif//}
`ifdef E203_HAS_ITCM //{
.itcm_ram_sd (tcm_sd),
.itcm_ram_ds (tcm_ds),
.itcm_ram_ls (itcm_ls),
.itcm_ram_cs (itcm_ram_cs ),
.itcm_ram_we (itcm_ram_we ),
.itcm_ram_addr (itcm_ram_addr),
.itcm_ram_wem (itcm_ram_wem ),
.itcm_ram_din (itcm_ram_din ),
.itcm_ram_dout (itcm_ram_dout),
.clk_itcm_ram (clk_itcm_ram ),
.rst_itcm(rst_itcm),
`endif//}
.test_mode (test_mode)
);
*/
下面在nangate45平台上构建蜂鸟E203处理器核的RTL to GDS,由于仓库名称为e200_opensource
,所以各种路径名也都使用了e200
这个名称:
1 编写sdc文件
新建/OpenROAD-flow/flow/designs/src/e200
路径,并在路径下编写e200.sdc
约束文件,此处需要注意,get_ports
后的时钟名称需要与verilog中的时钟名称一致,蜂鸟E203中的名字为clk:
set_units -time ns
create_clock [get_ports clk] -name core_clock -period 5.6
2 编写mk文件
在/OpenROAD-flow/flow/designs/nangate45
路径下编写e200.mkmakefile
文档,此处需要注意把/OpenROAD-flow/e200_opensource/rtl/e203
/路径下的core
和general
都写入VERILOG_FILES
字段:
export DESIGN_NAME = e203_cpu_top
export PLATFORM = nangate45
export VERILOG_FILES = $(wildcard /OpenROAD-flow/e200_opensource/rtl/e203/core/*.v)
$(wildcard /OpenROAD-flow/e200_opensource/rtl/e203/general/*.v)
export SDC_FILE = ./designs/src/e200/e200.sdc
# These values must be multiples of placement site
# x=0.19 y=1.4
export DIE_AREA = 0 0 2774.76 2398.2
export CORE_AREA = 30.21 29.4 2744.55 2368.8
export CLOCK_PERIOD = 5.600
注意此处的DESIGN_NAME
要与顶层.v文件中的module名一致。关于 DIE_AREA
, CORE_AREA
以及CLOCK_PERIOD
字段的数值,我是参考其他示例中的数值进行赋值的,不知道是否合适,但是可以正常工作。
3 在Makefile
文件中指向e200.mk
文件
在/OpenROAD-flow/flow
路径下修改Makefile
文件,添加DESIGN_CONFIG
字段指向e200.mk
文件
# E200 design
DESIGN_CONFIG = ./designs/nangate45/e200.mk
4 运行Makefile
,构建GDS文件
cd OpenROAD-flow-scripts/flow
make
在/OpenROAD-flow/flow
路径下执行make
,然后构建好的.gds
文件会存放在/OpenROAD-flow/flow/results/nangate45/e203_cpu_top/base
路径中。
到此为止,就完成了使用OpenROAD构建蜂鸟E203处理器核RTL to GDS的流程。
最后可以使用Klayout软件可视化查看GDS文件的版图信息:
cd desktop/OpenROAD-flow-scripts/flow/results/nangate45/e203_cpu_top/base
klayout 6_final.gds
参考资料
OpenROAD-flow官方教程https://openroad.readthedocs.io/en/latest/index.html
OpenROAD-flow源码https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts
yosys源码https://github.com/YosysHQ/yosys
OpenROAD源码https://github.com/The-OpenROAD-Project/OpenROAD
TritonRoute源码https://github.com/The-OpenROAD-Project/TritonRoute
知乎 基于Ubuntu20部署OpenROAD-Flow(更新于2020.11.23)https://zhuanlan.zhihu.com/p/146586265
Ubuntu20.04详细安装步骤(基于虚拟机)https://blog.csdn.net/qq_45456015/article/details/108046451
ubuntu20.04 使用root用户登录系统https://blog.csdn.net/ht1032279753/article/details/107672004
最后
以上就是负责柜子为你收集整理的基于Ubuntu20.04部署OpenROAD,使用OpenROAD构建蜂鸟E203处理器核GDS基于Ubuntu20.04部署OpenROAD,使用OpenROAD构建蜂鸟E203处理器核GDS注意!!安装依赖项从本地源构建OpenROAD使用OpenROAD构建蜂鸟E203处理器核GDS参考资料的全部内容,希望文章能够帮你解决基于Ubuntu20.04部署OpenROAD,使用OpenROAD构建蜂鸟E203处理器核GDS基于Ubuntu20.04部署OpenROAD,使用OpenROAD构建蜂鸟E203处理器核GDS注意!!安装依赖项从本地源构建OpenROAD使用OpenROAD构建蜂鸟E203处理器核GDS参考资料所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复