美文网首页
Hummingbirdv2 E203 仿真排坑之路

Hummingbirdv2 E203 仿真排坑之路

作者: icfg66 | 来源:发表于2021-03-05 21:49 被阅读0次

参照官方文档中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指令

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

3.1编译工具

编译需要用riscv的GNU工具,可以在官网下载: 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 <your_e203_dir>/
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 <your_e203_dir>/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 <your_e203_dir>/vsim
make clean
make install
make compile SIM=iverilog

4.3 跑仿真

4.3.1单个测试

make run_test SIM=iverilog

保证iverilog的版本是12,否则会一直卡住,运行不出结果。大概1min之后,会出现大大的“PASS”字样。
这里还有可能的一个bug是“bash”的问题

# 查看shell类型,需要将dash改成bash
ls -l /bin/sh
sudo dpkg-reconfigure dash
#选择 no

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的版本。

之后还要装vivado和软硬件调试工具,开发起来还真是麻烦。

原文

相关文章

  • Hummingbirdv2 E203 仿真排坑之路

    参照官方文档[https://doc.nucleisys.com/hbirdv2/quick_start/simu...

  • 203

    E203 An illegal alien who shot a woman in broad daylight ...

  • Unity3D之DontDestroyOnLoad的坑

    最近在做一个虚拟仿真的项目,用到了DontDestroyOnLoad总结下这个坑。DontDestroyOnLoa...

  • Spring排坑

    总结一些前人踩过的雷后续可以深入分析一下 spring mvc 对于返回 void的方法会调用默认的视图解析器 这...

  • tensorboard排坑

    按照官方文档的说法做,在显示graph时提示“No graph definition files were fou...

  • centos系统搭建redis集群

    排坑 坑1 更换境内gem源 坑2 ruby版本升级 在安装redis官方给的工具:redis-trib.rb 这...

  • 日读3《象棋的故事》《醒来的女性》

    前者看完了。 后者刚看。 去了沙河,志愿者前期准备。在路上看kindle。 没有仿真。 看韩剧《三流之路》。 风雨...

  • 初入币圈

    话说自从订阅得到的李笑来<财富自由之路>,就开始入各种各样的坑,活在未来的坑、成长率的坑、长期的坑,还有007的坑...

  • NoClassDefFoundError排坑经历

    1. 前言 实习做NLP任务时,在离线train获得模型bin文件后,在部署到线上之前经常需要测试一下QPS等指标...

  • Flutter使用排坑

    1.运行flutter_console.bat文件提示无法找到该文件的问题 解决方法是右键点击以管理员身份运行该文...

网友评论

      本文标题:Hummingbirdv2 E203 仿真排坑之路

      本文链接:https://www.haomeiwen.com/subject/jpydqltx.html