RISC-V MCU中文社区

【分享】 Hummingbirdv2 E203 仿真排坑之路

发表于 全国大学生集成电路创新创业大赛 2021-04-17 21:37:37
1
191
1

参照[官方文档](https://doc.nucleisys.com/hbirdv2/quick_start/simulation.html)中Quick Start 4.1 “How to run simulation”部分,中途遇到很多坑,特来记录一番。


1.环境设置

1.1 强烈建议用 ubuntu 18.04,安装时要点“下载更新”


我的是vmware 15.5pro虚拟机。这里有两个坑:


  • - 第一次用20.04,最后在运行`make run_test SIM=iverilog`的时候,老是出现`lxt2 support disabled since zlib not available`的错误。
  • - 第二次用18.04,但安装的时候没有选择**下载更新**的选项,之后下一步安装依赖的时,老是需要卸载原来包,装新包。而且git也下载不了,出现`Failed to connect to github.com port 443: Connection refused`的错误


1.2 软件依赖


sudo apt-get install autoconf automake autotools-dev curl device-tree-compiler libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev git


这里又有一个坑:

复制的时候千万要注意,官网复制时是两行,导致gawk后面的软件没有装上,也可能是导致`lxt2 support disabled since zlib not available`的原因。


2.下载e203_hbirdv2 project



git clone https://github.com/riscv-mcu/e203_hbirdv2.git
# or
git clone https://gitee.com/riscv-mcu/e203_hbirdv2.git



3.编译riscv指令


/riscv-tools/riscv-tests/isa 目录下有riscv的汇编测试指令,需要编译成二进制文件,这样才能在仿真时读入rom,判断功能是否正确。


3.1编译工具


编译需要用riscv的GNU工具,可以在[官网下载](https://nucleisys.com/download.php): RISC-V GNU, Centos/Ubuntux86-64

下载下来的文件是`nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2`,和官方写的`rv_linux_bare_9.21_centos64.tgz.bz2`的不同。


cp nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2 ~/
cd ~/
tar -xjvf nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2
cd /
mkdir -p ./riscv-tools/prebuilt_tools/prefix/bin
cd ./riscv-tools/prebuilt_tools/prefix/bin/
# 建立riscv gcc的链接
ln -s ~/nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2/gcc/bin/* .


3.2 编译


cd /riscv-tools/riscv-tests/isa
source regen.sh



 4 跑仿真


这里仅以iverilg为例

4.1 iverilog 安装


这里有个大坑:

 不能直接用sudo 安装,因为这样安装的版本是10,我们需要版本12。这个地方卡了我最长时间!


git clone https://github.com/steveicarus/iverilog.git
# 安装依赖
sudo apt-get install autoconf gperf flex bison build-essential
# 安装
cd iverilog
sh autoconf.sh
./configure
make
sudo make install


安装波形查看工具:


sudo apt-get install gtkwave


4.2 综合网表


cd /vsim
make clean
make install
make compile SIM=iverilog


4.3 跑仿真

4.3.1单个测试


make run_test SIM=iverilog


保证iverilog的版本是12,否则会一直卡住,运行不出结果。大概1min之后,会出现大大的“PASS”字样。

4.3.2波形查看


make wave SIM=iverilog


 4.3.3回归测试


make regress_run SIM=iverilog


这会持续比较久,每个样例需要1~3min。


 4.3.4查看回归结果


make regress_collect



5.小结


按照指南运行时,需要弄清楚它的基本逻辑,系统和软件的版本确实非常折磨人,如果有docker就能方便很多。回顾一下这个过程,最大的坑是ubunbu18.04的版本和iverilog 12的版本。

喜欢1
用户评论 (1)
关于作者
何志帆

何志帆 未通过人工认证

懒的都不写签名

问答
粉丝
1
关注
0
  • 早春营|RISC-V处理器嵌入式开发
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
早春营|RISC-V处理器嵌入式开发