xilinx IP核之ROM
背景
xilinx的IP核中比較常用的還有ROM核,同CMT IP核一樣,xilinx也提供了用于實現ROM功能的IP核較Block Memor Generator IP 核,這個IP核繼承了單/雙端口的ROM和RAM IP核。這里我們就以單端口ROM IP核為例子。
應用
1、coe文件的創建方法
在開始創建工程之前,先介紹一下coe文件的創建方法,它是用來配置RAM或者ROM中的數據。但是與Alteral公司的Quartus II 軟件使用的HEX和MIF文件相比,Xilinx ISE軟件使用的coe文件不支持matlab等軟件直接生成,只能通過文本編輯器人工輸入。coe文件與HEX文件實質上是相同數據的不同表達方式,都只在IP核新建時起作用。IP核生成以后,ISE軟件會生成與之命名相同的MIF文件,利用modelsim軟件仿真時只識別調用mif文件。總之,coe文件與mif文件只是格式上的區別,仿真只使用mif文件,原先導入數據的ce文件不再發揮作用。
我們可以使用下面的方法來建立.coe格式文件;
1、利用C語言、matlab或者一些實用的軟件工具生成我們想要的波形的數據。
2、新建一個txt文本文件,雙擊打開;
3、在第一行寫入“MEMORY_INITIALIZATION_RADIX=10;”,表示ROM里的數據以10進制表示。
4、在第二行寫入“MEMORY_INITIALIZATION_VECTOR=",在這之后就可以寫入波形的數據了。
5、保存txt文本文件,將文件的后綴名改為.coe
其實,說白了,其實我們可以繼續使用mif文件,然后把生成的數據都拷貝出來。
比如說如上圖所示,我們可以生成一個正弦波信號。
2、使用ISE軟件創建ROM IP核
創建好了coe文件,接下來我們就來創建ROM IP核。
在該頁面中,我們在“search IP catalog”欄中輸入“BLOCK”,然后在“VIEW by Function”中可以看到“Block Memory Generator”了,選中“Block Memory Generator”后點擊next,啟動IP配置
配置頁面1
配置頁面2
在這個頁面中,我們首先需要選擇存儲器的類型為“Single Port ROM”。然后還有2個可供修改的標簽“Addressing Option”(尋址選項)和“Algorithm”(算法)。關于“Addressing Options”欄,我們可以選擇是否使能32bit的地址長度。在“Algorithm”欄,有以下三種選項;
在這個頁面中,我們選擇存儲器的類型為“single port ROM”,然后點擊next進入第三個頁面
配置頁面3
在這個頁面中,我們設置“Read width”為8bits,“Read Depth”為512個,設置“Enable”欄為“Always Enabled”。然后點擊【next】進入第四個頁面。
配置頁面4
在這個頁面中,我們選中load init file 欄,設置“coe file”欄的路徑。然后其余的頁面我們使用默認設置即可。創建好了ROM IP核之后,我們需要在頂層模塊中實例化我們的ROM IP核。如果coe文件正常無誤,那么路徑是黑色,否則是紅色。
配置頁面5
配置頁面6
在這個頁面中,只有1個可供修改的標簽“ower estimate option”(功耗估計選項)的“output reset option”(輸出復位選項)的“port A”(端口A)可以選擇是否添加一個“RSTA”引腳。
最終我們可以看到本質上,ISE軟件又將其coe文件轉換成了mif文件
實例化ROM IP
如上圖所示
然后將其例化即可
總結
以上是生活随笔為你收集整理的xilinx IP核之ROM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: verilog基础篇--常用的信号生成模
- 下一篇: Xilinx RAM IP核的使用