XILINX ROM 使用教程

admin @ 2014-03-26 , reply:0

概述
   FPGA內部有BLOCKRAM和分散式RAM,這些資源都可以作為ROM(ROM只是有初始值的RAM,而且該初始值不能改變)。有些低端的FPGA可能沒有BLOCKRA……

    FPGA內部有BLOCK RAM和分散式RAM,這些資源都可以作為ROM(ROM只是有初始值的RAM,而且該初始值不能改變)。有些低端的FPGA可能沒有BLOCK RAM。本文主要介紹ROM的使用方法,RAM的使用方法類同。
    打開XILINX的ISE,NEW SOURCE中選擇IP,寫好NAME,點擊下一步。
 
在下圖中選擇你要的IP核。
 
第一個是使用分散式ROM-如果你的ROM不是很大的話,而且內部BLOCK RAM資源有限的情況下,使用分散式ROM可以為你節約不少BLOCK RAM,但是它會佔用一些邏輯資源。
第二個是雙口BLOCK RAM.
第三個是單口BLOCK RAM.
選擇你想要使用的IP核,(以常用的單口BLOCK RAM為例)點擊NEXT:
 
點擊完成。
進入如下圖界面。
 
在component name內填寫模塊名(要小寫)
第二項選擇READ ONLY(選READ AND WRITE 就是RAM),表示要生成只讀的ROM。
Memory size 里填好ROM的寬度和深度,上圖是一個256×16BIT的ROM。
點擊NEXT進入下圖。
 
這裡默認就可以了。
再NEXT:
 
這裡可以選擇是CLK上升沿讀數據還是下降沿讀。
繼續NEXT:
 
這裡比較關鍵,要導入ROM的值。
在LOAD INIT FILE 項上打勾,點擊LOAD FILE……出現下圖,要你選擇一個文件。
 
這個文件就是你要放在ROM中的數據,文件的後綴名是.COE。你可以自己建一個空的文本文件,然後把後綴名該為.COE即可。
文件內容的格式如下:
MEMORY_INITIALIZATION_RADIX=10;
MEMORY_INITIALIZATION_VECTOR=
32767,
32766,
32766,
32765,
32764,
32763,
32761,
32759,
32757,
……
32754;
注意:
第一行定義文件中的數據採用什麼進位。可以使用10進位,2進位,16進位,數據大小不能超過你定義的數據寬度。
第二行照抄。
第三行開始就是數據了,每個數據用逗號","隔開,可以不分行,建議分行寫,便於統計個數。
最後一個數據後用分號";"結束。
數據的個數必須和你定義的數據深度相同,否則會出錯。
寫好這個文件后,保存。
然後在點擊LOAD FILE……,選擇這個文件,點打開。
如果沒有錯誤,可以點擊旁邊的show coefficients查看數據。如果數據很多(>512),建議不要使用此功能,可能會因數據太大而無法響應。

現在,可以點擊GENERATE,產生代碼了。
產生的代碼中有個.MIF文件,就是ROM的數據的二進位文件。
其中的.V文件或.VHD就是生成的可綜合的代碼。
 
如上圖的ROM_COS.XCO,選擇它,雙擊VIEW HDL FUNCTIONAL MODEL
就可查看Verilog代碼。
接下來,要刪除ROM_COS.XCO,然後把ROM_COS.V添加進來。
接下來就可以綜合了。
 
本文僅供參考學習,不得用於商業用途。




[admin via 研發互助社區 ] XILINX ROM 使用教程已經有3019次圍觀

http://www.cocdig.com/docs/show-post-43205.html