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