如何跑通平头哥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

<think>好的,用户之前问过关于RISC-V架构芯片有哪些,现在接着问一般用什么软件开发,是否用Keil。首先,我需要确认用户对开发工具的了解程度,可能他之前接触过ARM开发,比如Keil,所以想知道RISC-V是否也用同样的工具。 接下来,我需要回想RISC-V的常用开发工具。Keil主要是ARM的开发环境,虽然支持部分RISC-V芯片,但可能不是主流。RISC-V因为是开源的,社区支持更多开源工具,比如GCC、Clang,以及各种IDE如PlatformIO、VSCode插件。此外,厂商自家工具也很重要,比如SiFive的Freedom Studio,平头的CDK,赛昉的Sword SDK等。 用户可能想知道有没有类似Keil那样集成化的环境,所以需要列出常见的IDE,并比较它们的特点。同时,是否需要提到调试工具,比如OpenOCD和J-Link,因为这些也是开发流程的一部分。还要注意区分嵌入式和高性能应用的不同工具链,比如嵌入式可能用GCC,高性能可能用LLVM。 另外,用户可能关心学习门槛,是否容易上手,是否需要特定硬件支持。比如有些开发板可能需要特定的IDE或配置,这时候需要提到具体的例子,比如HiFive开发板用Freedom Studio,嘉楠K210用PlatformIO等。 还要考虑用户可能的误区,比如以为Keil是唯一选择,需要说明RISC-V生态的多样性,以及开源工具的优势。同时,提醒用户根据具体芯片型号选择工具,因为不同厂商可能有自己的SDK和推荐环境。 最后,总结一下推荐的开发工具链,从代码编写到调试,覆盖整个流程,并给出实际项目的例子,帮助用户更好地理解如何开始。需要保持结构清晰,分点说明,便于用户逐步了解。</think>以下是针对RISC-V架构芯片开发的常用软件工具及环境,分层次说明其应用场景和特点: --- ### 一、**主流RISC-V开发工具链** 1. **编译器与工具链** - **GNU工具链(GCC + OpenOCD)** - **用途**:基础编译、调试和烧录 - **特点**:开源免费,支持RISC-V指令集扩展(如RV32/64IMAC),适用于嵌入式开发 - **示例命令**: ```bash riscv-none-elf-gcc -march=rv32imac -o program.elf program.c ``` - **LLVM/Clang** - **用途**:高性能代码优化,适用于复杂算法或操作系统级开发 - **特点**:支持RISC-V向量扩展(V扩展),适合AI加速芯片开发 2. **集成开发环境(IDE)** - **PlatformIO(基于VS Code)** - **优势**:支持多平台(Windows/Linux/macOS),内置RISC-V调试插件 - **适用场景**:IoT设备开发(如Kendryte K210芯片) - **SiFive Freedom Studio** - **厂商专用**:针对SiFive芯片优化,集成调试器和性能分析工具 - **典型应用**:HiFive开发板(如HiFive Unmatched) - **Segger Embedded Studio** - **商业工具**:支持J-Link调试器,提供图形化调试界面 - **适用性**:对实时性要求高的工业控制项目 --- ### 二、**厂商定制化工具** 1. **平头(T-Head)CDK** - **适配芯片**:玄铁系列(如C910、E902- **功能**:一键生成裸机/RTOS工程,支持AliOS Things操作系统 2. **赛昉科技(SOPHGO)Sword SDK** - **特点**:针对惊鸿系列芯片优化,集成AI推理框架(如TensorFlow Lite) 3. **嘉楠科技Kendryte IDE** - **专用性**:为Kendryte K230芯片定制,内置AI模型部署工具链 --- ### 三、**调试与仿真工具** 1. **调试器硬件** - **J-Link(Segger)**:支持RISC-V的J-Trace协议,适用于实时跟踪 - **SiFive Debug Probe**:专为HiFive开发板设计 2. **仿真工具** - **QEMU**:开源虚拟化工具,支持RISC-V指令集仿真(如运行Linux系统) - **Verilator**:用于RISC-V内核的硬件仿真验证 --- ### 四、**Keil是否支持RISC-V?** - **有限支持**:Keil MDK从v5.37版本开始过**Arm Compiler for Embedded(AC6)**插件支持部分RISC-V芯片(如GD32V系列),但需额外安装RISC-V插件包。 - **局限性**:Keil的RISC-V生态覆盖远不如ARM全面,**更推荐使用开源工具链或厂商专用IDE**。 --- ### 五、**开发流程示例(以Kendryte K210为例)** 1. **环境搭建** - 安装PlatformIO插件(VS Code) - 配置RISC-V工具链:`pio platform install kendryte210` 2. **代码编写** - 使用C/C++或MicroPython开发 - 调用K210专用库(如KPU加速AI推理) 3. **编译与烧录** ```bash pio run -t upload # 过USB直接烧录到开发板 ``` 4. **调试** - 使用OpenOCD + GDB进行断点调试 -过串口工具(如PuTTY)查看日志 --- ### 六、**工具选择建议** | **需求场景** | **推荐工具** | |----------------------|--------------------------| | 嵌入式开发(裸机) | GCC + OpenOCD + VS Code | | 高性能计算(Linux) | LLVM + QEMU | | 快速原型开发 | PlatformIO | | 厂商定制功能开发 | 平头CDK/SiFive Freedom Studio | --- 若需针对特定芯片(如玄铁C910或K230)的详细配置教程,可进一步说明需求!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值