如何跑通平头哥RISC-V E902的仿真验证

引言

身边很多朋友在跑平头哥的RISC-V开源项目中的case仿真时,或多或少都碰到了一些问题,现在我用E902作为例子,来介绍下仿真流程,并且可能碰到的问题,以及解决方法。

一、源代码结构

E902的开源代码位于:

https://github.com/T-head-Semi/opene902

目录结构如下:

|--E902_RTL_FACRORY/
  |--gen_rtl/     ##the source verilog code of E902 
  |--setup/       ##set the environment variables
|--smart_run/     ##the RTL simulation environment
  |--impl/        ##sdc file
  |--logical/     ##the SoC demo and test bench to run the simulation 
  |--setup/       ##GNU tool chain setting
  |--tests/       ##include the test suit, linker file, boot code and so on
  |--work/        ##the working directory
  |--Makefile     ##the simulation script
|--doc/           ##the user and integration manual of E902

官方文档里有一个RAEDME.md可供参考。接下来我们按照官方的流程走一遍,其中有些地方需要注意。

二、下载源码

官方文档里有一个RAEDME.md可供参考。接下来我们按照官方的流程走一遍,其中有些地方需要注意。

$ cd  E902_RTL_FACTORY
$ source  setup/setup.cs

接着进入smart_run目录,这是跑case的目录:

cd ../smart_run

三、下载工具链

在跑仿真之前还需要先下载并设置工具链,最新的版本是2.6.1,工具链的官网地址是:

https://occ.t-head.cn/community/download?id=4090445921563774976

红色位置标出
下载解压后,打开smart_run下的example_setup.csh,将TOOL_EXTENSION的值进行修改:

在这里插入图片描述

设置好之后,然后source下setup/example_setup.csh,可能会看到如下问题

在这里插入图片描述

我们将开头Line1-14的注释删掉,然后重新source就可以了,这样工具链就设置好了

四、编译仿真

接着就可以开始跑仿真了,如果不知道输入什么命令,可以输入make help看一下
在这里插入图片描述

我们先执行make showcase查看一下有哪些case可以跑

在这里插入图片描述

如果我现在想跑hello_world这个case,在终端输入如下命令

$ make runcase CASE=hello_world SIM=vcs DUMP=on

Makefile中默认使用的仿真工具是,而我用的是vcs,所以需要用SIM=vcs来指定使用vcs进行仿真,同时我希望可以dump波形,所以加了DUMP=on,执行上述命令之后,我们会看到如下结果

在这里插入图片描述
提示没有work目录,需要我们手动mkdir work,新建一个work目录,然后再重新执行上述命令,这个时候我们会看到另外一个问题

在这里插入图片描述

重新设置下tests目录下文件的权限

$ chmod 744  -R tests

然后再重新执行仿真命令,恭喜你,这时我们会看到仿真成功了

在这里插入图片描述

五、查看波形

仿真完成之后,我想使用verdi查看波形,Makefile中并没有添加verdi相关的设置,因此需要先进行相应的设置

  1. 先修改SIMULATION_OPT
    在这里插入图片描述
  2. 然后再新加一个target
    在这里插入图片描述

以上两步设置完成之后,就可以在终端输入以下命令来启动Verdi

$ make verdi SIM=vcs

有一些朋友会碰到verdi打开波形之后,tb下hierarchy有问题的情况

在这里插入图片描述

如果是verdi2018以下的版本,建议将Makefile中line37的-debug_access换成-debug_all,如果是2018以上版本,则不用管,重新仿真之后,打开verdi就可以看到hierarchy了

在这里插入图片描述

总结

由于我使用的仿真工具是vcs,且我希望默认都dump波形,所以我对makefile做了如下的修改,这样在make的时候就不需要指定那么多参数了

在这里插入图片描述
关于makefile的知识点,后面我们会再单独介绍。对于上面流程,有什么不清楚的地方,欢迎私信我,更多更好的文章,请关注我的微信公众号 : Verifier_road

  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值