我是靠谱客的博主 负责柜子,最近开发中收集的这篇文章主要介绍基于Ubuntu20.04部署OpenROAD,使用OpenROAD构建蜂鸟E203处理器核GDS基于Ubuntu20.04部署OpenROAD,使用OpenROAD构建蜂鸟E203处理器核GDS注意!!安装依赖项从本地源构建OpenROAD使用OpenROAD构建蜂鸟E203处理器核GDS参考资料,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述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/路径下的coregeneral都写入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参考资料所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部