• 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仿真

  • 相关阅读:
    Mysql集群
    JAVA 经典算法 40 例
    公司面试问题总结
    面试题6
    面试题5
    Java自学-JDK环境变量配置
    mybatis中#{}和${}的区别
    JVM系列(四)— 原子性、可见性与有序性
    JVM系列(三)— Java内存模型
    Java基础拾遗(一) — 忽略的 Integer 类
  • 原文地址:https://www.cnblogs.com/geekite/p/5040642.html
Copyright © 2020-2023  润新知