☰
搭建蜂鸟E203FLASH启动的仿真环境,运行Hello World例程
2026/10/31 10:43:17 网站建设 项目流程

一.前言

蜂鸟E203是支持FLASH启动的,可是官方并没有提供 FLASH 启动的仿真环境,只是提供了利用 HBird SDK 进行 FLASH 下载的编译,因此需要自行搭建 FLASH 启动的仿真环境。在这过程中也遇到很多问题,但最终也是成功运行 helloworld 例程,当然也可能有其他的方式,这里只是提供借鉴和参考,也欢迎大家批评和指正!

二.准备

需要我们了解蜂鸟E203的整个仿真过程,能完成ILM启动,运行helloworld。

这里可以参考官方文档以及芯王国博主的关于虚拟机以及蜂鸟E203系列的一些文章。

官方文档: 1. Overview — Hummingbirdv2 E203 Core and SoC 0.2.1 documentation

芯王国:芯王国-CSDN博客

三.搭建

1.将QSPI FLASH添加工程中

(1)需要一个QSPI FLASH仿真模型

链接:项目首页 - QSPIFLASHVerilog模型下载:QSPI FLASH Verilog模型下载 - GitCode

(2)新建IOBUF.v文件,将IOBUF.v,MX25L6473F.v(QSPI FLASH仿真模型)文件添加到e203_hbirdv2-master/rtl/e203/soc中

(3)修改MX25L6473F.v文件中的TOP_Add和tVSL(FLASH启动时间),TOP_Add可以改小一点,tVSL(FLASH启动时间)让其在芯片复位运行开始时间之前即可,这里直接改成0。

2.找到e203_hbirdv2-master/tb/tb_top.v文件。

(1)添加qspi内部信号线以及外部引脚线,将内部信号线添加到e203_soc_top模块调用中

(2)利用IOBUF将QSPI引脚信号引出,连接QSPI FLASH模块

(3)修改bootrom脚,使芯片从FLASH启动

(4)修改FLASH读取程序的代码,有两种方式

a.在tb_top.v文件中修改,将原本加载到ITCM的注释掉,改为加载到QSPI FLASH的数组里,readmemh里的路径名为(程序加载的绝对路径/程序.verilog),这里用的是helloworld例程,即为(helloworld的绝对路径/helloworld.verilog),可以在对应位置pwd一下,得到绝对路径。

b.在MX25L6473F.v中修改,将File_Name 的none改为(程序加载的绝对路径/程序.verilog),跟第一种是一样的,只是改的位置不同,两种方式选一个就行。

(5)修改总仿真时间,因为从FLASH运行时间相对较长,需要增加仿真时间

3.编译helloworld例程,方式是FLASHXIP,从FLASH运行。

source setup.sh echo $PATH which riscv-nuclei-elf-gcc make rm make help

cd application/baremetal/helloworld make dasm SOC=hbirdv2 BOARD=ddr200t CORE=e203 DOWNLOAD=flashxip

4.修改编译后生成的helloworld.verilog文件,将@2000全部替换为@0000,虽然芯片从FLASH启动的地址是0x20000000,但实际在FLASH里保存还是从0x00000000开始的,需要映射好。

5.进入到e203_hbirdv2-master/vsim目录下,开始仿真

make clean make install make compile SIM=vcs make run_test SIM=vcs

最终运行结果:

观看波形:

make wave SIM=vcs

四.总结

FLASH启动的仿真环境,其主要就是两步,

1.将QSPI flash通过蜂鸟E203的QSPI0接口与芯片连接。

2.用hbird-sdk编译出helloworld.verilog文件(下载模式为flashxip),并加载到QSPI flash的数组里。编译过程中下载模式改为flash也是可以的,从flash读出再加载到ILM运行,就是需要将tb_top.v文件的检测代码注释掉,不然仿真代码没运行完会被提前终止,显示FAIL。

其次就是注意一些细节:

(1)修改bootrom,让其从FLASH启动

(2)编译出的.verilog文件地址映射的更改

(3) QSPI flash启动时间要在芯片开始运行之前

后面就是正常的仿真过程。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询