quartus使用modelsim来仿真ROM

写在前面:大学四年生活结束,这是毕业设计用过的,把当时做的一些笔记发上来,也算是给自己一个交代。第一次写博客,如有问题,敬请担待:

正文开始:ROM的仿真和其他IP仿真不同,此时需要做一些修改,这个是因为modelsim无法识别mif文件,如果需要使用modelsim仿真,rom的初始值必须为hex文件。如果需要仿真ROM需要先做以下几个步骤:ROM的仿真和其他IP仿真不同,此时需要做一些修改,这个是因为modelsim无法识别mif文件,如果需要使用modelsim仿真,rom的初始值必须为hex文件。如果需要仿真ROM需要先做以下几个步骤:

1、  下载convert_hex2ver.dll

该文件功能为将hex转换为modelsim能够识别的ver文件,该文件可以在网上下载。

2、  修改modelsim.ini文件

1)、  将convert_hex2ver.dll文件放在modelsim安装路径目录下

2)、  修改ini文件,打开modimsim.ini,找到Veriuser = veriuser.sl这句话,在它下面添加一句Veriuser = xx\convert_hex2ver.dll,(是convert_hex2ver.dll文件路径),如

需要注意的是,网上有些教程是错误的!!!

3、首先使用quartus自带的IP核,新建一个ROM

几个需要手动设置的地方已经标出,其余的一路next即可,

需要注意图二中ROM的DEPTH与WIDTH关系到后面ROM初始数据存入,以及使用matlab创建.mif文件,参数的设置

 

4、使用matlab创建.mif文件,作为ROM中的初始数据

也可以使用Guagle_wave这个软件,不过该软件能仿真的波形有限,最好还是使用matlab自己编写,matlab程序在资源链接中已经给出。https://download.csdn.net/download/weixin_42790063/12474423

注意:.m文件在哪个目录下,mif文件就在那

创建完成后,将文件复制到自己建立的quartus工程下,然后使用quartus打开,接着将mif另存为hex文件

 

进行这一步的主要原因是因为modisim无法识别.mif文件,只能使用hex文件来仿真

另存为之后再打开rom,如上面第三张图,初始化选定该hex文件

5、编写testbench文件

这是modisim仿真的文件,直接使用quartus可以生成testbench,(quartus下processing//start//start testbech template writer),然后自己稍微添加激励信号。

6、全部编写完成后就进行仿真

接着就出仿真信号啦

 

注意事项!!!:

1、使用midisim进行仿真时,它是不能识别原理图文件的,所以需要将原理图文件(.bdf)转换成HDL文件(.v),直接File/Create Update/(将.v转成.bdf相反就行了),然后如图所示将.v文件添加进工程

如果需要将某一file设置为顶层文件

2、使用modisim仿真时,ROM的初始地址必须有个初值,否则会造成没有输出,输出值为STx,也就是不定态。

最简单的方法就是在你的程序中加一个rst信号,在rst条件下给定初值。编写testbench时把rst信号加入就行了

如果还有问题,可以给2776608541@qq.com发送邮件询问

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值