蜂鸟E203仿真自定义代码段

蜂鸟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.verilogtb_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. 运行仿真即可

编译过程可看到命令行中程序打印的串口信息!

原创不易,转载必须注明!!!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值