1.准备好编程环境,推荐使用VMware虚拟机,在虚拟机中安装Linux操作系统。在Linux操作系统的众多版本中推荐使用Ubuntu 18.04版本的Linux操作系统。
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
3.下载e203_hbirdv2项目到Linux环境中。有两种方法:
方法①:在Linux终端中,运行以下命令,直接就可以下载到Linux的桌面上。
git clone https://github.com/riscv-mcu/e203_hbirdv2.git
方法②在github官网上直接下载e203文件夹到windows系统下,然后拖到Linux系统中。进入github的步骤如图所示
4.由于编译汇编程序需要用到GUN工具链。可以到芯来科技官方网站的文档与工具页面中下载“RISC-V GNU Toolchain”,下载最新的即可,得到压缩包然后解压,拖到Linux操作系统中。
5.运行以下命令配置工具链:
cp nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2 ~/
cd ~/
tar -xjvf nuclei_riscv_newlibc_prebuilt_linux64_2020.08.tar.bz2
cd ~/project/e203_hbirdv2
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/* .
注意标红的是下载的GNU工具链解压以后的文档名,可以自行修改换成解压以后的文档名。
运行代码后可能会出现错误:“Syntax error:Bad fd number”。这个错误可能是由于在Ubuntu 18.04中/bin/sh被链接到了/bin/dash 而不是/bin/bash。如果出现如此错误,用以下命令修改即可。
sudo mv /bin/sh /bin/sh.orig
sudo ln -s /bin/bash /bin/sh
6.运行以下命令进行编译
cd ~/project/e203_hbirdv2/riscv-tools/riscv-tests/isa
source regen.sh
注意:此操作过程只是为了运行蜂鸟e203自带的测试用例,不修改任何的汇编测试程序的源代码,直接运行此source.regen.sh时,Makefile认为没有更新,什么都不用做(显示“make:Nothing to be done for defaule”),显示如此就是编译成功。
7.下载iverilog仿真工具。
蜂鸟E203处理器的仿真环境支持VCS和iverilog两款工具,因此在运行仿真前,请确保运行环境中已安装VCS或者iverilog仿真工具,若安装iverilog仿真工具,请确保其版本号为V12.0。这里推荐使用iverilog仿真工具,安装步骤如下:
# 从github下载
git clone https://github.com/steveicarus/iverilog.git
#进入iverilog目录
cd iverilog
#检测依赖文件、配置环境并编译
sh autoconf.sh
./configure
make
#运行测试demo检查是否编译成功
make check
#安装iverilog
sudo make install
#查看iverilog的版本
iverilog –v
8.编译RTL代码
使用如下命令进行编译
cd /vsim //进入e203_hbirdv2项目所在文件夹下面的vsim目录
make install //运行该命令会在vsim目录下生成一个install子文件夹,在其中配置仿真需要的文件
make compile SIM=iverilog
//选择iverlog工具,编译处理器核和SoC的RTL代码
//若选择VCS工具,则将上述命令中iverilog改为VCS
9.运行默认的一个测试用例。
使用如下命令
make run_test SIM=iverilog //选择VCS工具,运行仿真测试
运行成功以后终端显示结果如下图所示:
此测试用例只运行其中的一个默认测试用例。
10.运行所有回归(regression)测试用例,并查看回归结果。
make regress_run SIM=iverilog //逐个运行回归测试用例
make regress_collect //查看回归测试结果
至此蜂鸟e203自测试用例就运行完成。