🔍 搜索帖子 / 资讯 / 芯片型号…
论坛/全国大学生集成电路创新创业大赛/芯来e203移植开发分享(二)——仿真文件简述与itcm固化程序
芯来e203移植开发分享(二)——仿真文件简述与itcm固化程序
全国大学生集成电路创新创业大赛 作者 发布于 2022-03-09 12:21(1675 天前) 8809 浏览

报名编号:CICC2520 团队名称:暗物质队

简单介绍

根据上次的分享,已经把e203成到verdi与vcs仿真环境下。这次简单介绍一下e203的仿真文件与itcm固化程序的仿真。

仿真文件

简单分析一下e203的自带的仿真文件,跟着上次的分享,我们可以在makefile中设置自己想要仿真的testcase,这里使用的rv32ui-p-add.verilog,这里我们把的这个文件复制的上次分享建立的文件testcase中,读取仿真。

图片alt

仿真主要流程,其实就是把rv32ui-p-add.verilog中16进制文件加载到itcm的ram中,需要主要的itcm中的ram是64bit宽度,.verilog的文件是由$readmemh读上来的8bit数据,所以itcm_mem暂存,然后转为64bit存入itcm中的ram运行。

同时tb文件中,也引出了pc值,每条指令在存储空间中所处的地址称为它的PC (Program Counter) 。在程序运行时我们可以同观察pc值,来判断程序运行到具体哪一步,这也是之后重要的debug地方。

程序固化

既然tb的主要功能是固化程序,那么我们可以把这个程序直接初始的时候就加载到itcm的ram中,这里主要有两个方法:
1、将itcm中的ram替换为vivado的bram ip核,通过ip核配置时,加载.verilog文件。
2、在/rtl/e203/general/sirv_sim_ram.v中,添加initial语句,使用readmemh语句读取需要固化的程序.verilog,这需要注意的宽度不一样。解决方法可以使用脚本修改.verilog文件,或者和tb中一样暂存一下。

同时在system.v模块中设置硬件启动方式
图片alt
如此,也可以不使用jtag下载程序,通过vivado综合后,e203就可以直接从itcm运行程序直接使用。

如有错漏与问题,欢迎讨论。

全部回复 3
m
markman1063 天前 · 1 楼
回复 H.H:

你好,我按照方式二进行的程序固化,将BIT流烧进开发板后没得任何反应,请问还需要其他操作么

可能是位宽不对,或者是大小端没对齐, 只能用小端存储

m
markman1063 天前 · 2 楼

vivado里面  $readmemh函数支持读取超过8bit的,只要是16进制的数据即可

H.H
H.H1266 天前 · 3 楼

你好,我按照方式二进行的程序固化,将BIT流烧进开发板后没得任何反应,请问还需要其他操作么

💡 请 登录 后参与讨论(微信扫码即登录/注册)