原创 关于Quartus和ISE中ROM的初始化和仿真的一些小结

2014-4-3 20:04 4076 8 9 分类: FPGA/CPLD

最近在玩Altera的FPGA,当我用Quartus II自带的IP核生成ROM时,出现了各种问题,于是在网上各种查资料,终于解决了我的问题。这里做一下小结,方便自己日后查阅。

Quartus II 和ISE在仿真和初始化时有些些区别,这里简要介绍一下二者的初始化和仿真步骤:1、用Quartus II创建并仿真ROM

    Step1:在Quatus II工程下生成一个ROM

    Step2:编写.mif文件,作为ROM的初始化文件

    Step3:将.mif文件拷贝到Modelsim工程下

    Step4:进行Modelsim仿真

初始化文件.mif文件的编写需要按照一定的格式,很多文章都有介绍,我这里也总结一下:初始化文件一般有.hex文件和.mif文件,但是一般都是用文本文件写好初始化的数据,然后将后缀改为.mif,这样做简单方便,故使用的比较广泛。先看一个简单的mif文件的内容(可以用记事本将mif文件打开,看到里面的代码):

DEPTH=256;    %存储器的纵向容量,就是存多少个数据,本例中是256个

WIDTH=8 ;         %存储器的横向宽度,就是每个数据多少位,8位宽

ADDRESS_RADIX=DEC ;   %设置地址基值(实际就是地址用什么进制的数表示)   可以设为BIN(二进制),OCT(八进制),DEC(十进制),HEX(十六进制)

DATA_RADIX=DEC ; %设置数据基值 同上

%数据区里的地址和数据值要和这里设置的值一致,即这里如果设置了

%DEC那么,数据区的地址和数据都要用十进制来表示。

CONTENT   %开始数据区

BEGIN

       0:0;       %前面是地址,后面是数据,都是用十进制表示(上面的DEC)

       1:1;     

……%如果表示成这样 [0..255]:10; 意思就是从0到255都是数据10.

      255:255;

END;      %结束

2、用ISE创建并仿真ROM

    Step1:在ISE工程下生成一个ROM

    Step2:编写.coe文件,作为ROM的初始化文件

    这一步与Quartus II不同,因为Quartus II中ROM的初始化文件为.mif或者.hex,而在ISE中ROM的初始化文件是.coe文件,所以需要编写.coe文件。.coe文件的格式很简单,下面就是一个.coe文件的内容:

    MEMORY_INITIALIZATION_RADIX=16;     //表示ROM内容的数据格式是16进制
    MEMORY_INITIALIZATION_VECTOR=

    0a,      
    0b,
    0c;    //每个数据后面用逗号或者空格或者换行符隔开,最后一个数据后面加分号

    Step3:用Core Generator完成ROM的例化后会生成一个.mif文件,这是Modelsim进行ROM仿真时需要的初始化文件,将.mif文件拷贝到Modelsim工程下。

    Step4:进行Modelsim仿真

 

此篇博文参考了网上的资源,这里我把网址给出来,希望不会引起版权的纠纷问题。

Quartus II 与ISE仿真ROM的区别和步骤:http://blog.sina.com.cn/s/blog_6254a8ca0100i5y1.html

Quartus II中关于.mif文件的编写:

http://hi.baidu.com/chentao841117/item/3b924522a2ef21130975084b

文章评论1条评论)

登录后参与讨论

用户436812 2015-12-12 01:21

ISE的仿真与quartus差不多,注意下细节
相关推荐阅读
用户450906 2014-04-03 22:50
Modelsim仿真包含quartus ROM的工程文件的问题
最近在用Modelsim仿真包含Quartus IP核的工程时,发现了一系列问题,现在把我遇到的问题记录下来,一则便于以后可以查找,另一方面希望能给其他人一丢丢的帮助。 首先我直接在Quart...
用户450906 2013-11-06 23:25
新手感悟
从学数电开始我接触到了VHDL然后对FPGA 慢慢的有了了解,说实话,刚开始的时候真的像白痴一样什么都不懂,在官网上面看了个把星期的视频,然后发现自己还是什么都不会。然后开始在学校图书馆啃书,一天...
我要评论
1
8
关闭 站长推荐上一条 /2 下一条