zoukankan      html  css  js  c++  java
  • 49.关于Quartus和ISE中ROM的初始化和仿真的一些小结

    最近在玩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仿真

  • 相关阅读:
    【翻译二十二】java-并发之集合与原子变量
    【翻译二十一】java-并发之分拆和合并
    【翻译二十】-java线程池
    【翻译十九】-java之执行器
    【翻译十八】java-并发之锁对象
    【翻译十七】java-并发之高性能对象
    【翻译十六】java-固定对象的定义方法
    【翻译十五】-java并发之固定对象与实例
    情人节-程序员的乐趣
    【翻译十四】java-并发之保护块儿
  • 原文地址:https://www.cnblogs.com/geekite/p/5040642.html
Copyright © 2011-2022 走看看