1、说明
阿里的平头哥在github上开源了riscv项目-wujian100_open。本文是使用windows下的modelsim对该项目进行仿真(原开源项目是使用linux下的开源软件iverilog进行仿真)。
由于wujian100没有使用xilinx ip(我看ram'是使用触发器数组写的),所以可能可以不编译xilinx的仿真库。我电脑上xilinx仿真库是编译好且放到了modelsim.ini文件的。
把c代码的编译结果,hex文件,通过工具转换为pat文件。然后通过tb.sv把pat数据初始化到指令RAM里面,开始执行(即开始仿真)。我使用的git代码是2019.10.22的,激励文件是inst.pat,后面代码把文件名改成test.pat了(把激励文件名改为test.pat,放到仿真目录下即可)。
c编译结果到pat的转换,另外一个文档单独描述。本文只介绍modelsim的仿真过程。
仿真遇到的问题有:1、sv语法;2、timescale定义;3、tc文件增加模块调用。
对应提交了仿真的do文件,可以在wujian100并列的目录,建立目录sim1,然后执行附件里的do文件。新版无剑代码,需要把inst.pat改名为test.pat。
2、仿真过程
使用modelsim仿真,我习惯先在vivado的项目里启动modelsim,目的是自动获得编译do文件和vsim的do文件。(好处是文件列表自动生产了)。
- vivado项目中加入仿真文件,解决语法问题
无论modelsim直接仿真,还是vivado里启动modelsim仿真,有2个文件出现语法错