蜂鸟E203仿真自定义代码段
本文针对在蜂鸟E203v2学习过程中自定义代码在vcs+Verdi仿真中关键步骤做阐述
推荐仿真工具为vcs+Verdi,由于iverilog在仿真信息输出过程中不完备,因此不推荐!
本文的编译环境为Ubuntu18.04(其他linux操作系统亦可),仿真编译环境为Centos7
1. 安装芯来工具链
在芯来官方网站中下载GNU Toolchain,并解压到固定位置(位置路径不可含有中文),如图所示:
2.安装Hbird_sdk
- 在芯来官方sdk仓储中,下载完整sdk工程。
- 在sdk根目录下新建文件
setup_config.sh
,并输入GNU Toolchain的根目录。
touch setup_config.sh
echo "NUCLEI_TOOL_ROOT=/home/lxq/Desktop/nuclei_riscv_newlibc_prebuilt_linux64_2022.12" | cat >> setup_config.sh
- 每次打开命令行编译前须运行
setup.sh
或在/etc/profile
文件中添加启动执行命令,如下所示:
# source setup.sh # 单次执行
su root
echo "source /home/lxq/Desktop/hbird-sdk-master/setup.sh" | cat >> /etc/profile
# 重启即可正常工作
# source /etc/profile # 立即执行
3. 编译项目
本例程使用sdk中/application/baremetal/helloworld
例程演示:
# 使用ilm模式将指令加载到itcm中
make dasm CORE=e203 DOWNLOAD=ilm
编译结束后可在目录下看到如下几个文件:
helloworld.dump
为反汇编文件
helloworld.verilog
为tb_top.v
读入的指令格式文件
4. 确定程序结束运行地址
使用文本查看软件打开刚刚生成的helloworld.dump
找到如下所示语句:
可以看到,该语句为main函数执行结束后死循环位置,记录下该指令地址0x800000b2
5. 复制文件
将生成的helloworld.verilog
复制到e203_hbirdv2-master/riscv-tools/riscv-tests/isa/generated
目录下
6. 修改tb_top.v
修改该文件第16行为刚刚记录的死循环指令地址,如图所示(地址为0x800000b2,我使用的是另一个程序因此地址为0x800000b4)
注释掉如下语句(否则会出现无意义的FAIL)
7. 运行仿真即可
编译过程可看到命令行中程序打印的串口信息!