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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM