Xilinx公司的FPGA中有著很多的有用且對(duì)整個(gè)工程很有益處的IP核,比如數(shù)學(xué)類的IP核,數(shù)字信號(hào)處理使用的IP核,以及存儲(chǔ)類的IP核,本篇文章主要介紹BRAM IP核的使用。
BRAM是FPGA定制的RAM資源,有著較大的存儲(chǔ)空間,且在日常的工程中使用較為頻繁。BRAM以陣列的方式排布于FPGA的內(nèi)部,是FPGA實(shí)現(xiàn)各種存儲(chǔ)功能的主要部分,是真正的雙讀/寫端口的同步的RAM。
本片文章是基于Vivado的 2017.1的版本,其他版本都大同小異。
首先在Vivado界面的右側(cè)選擇IP Catalog 選項(xiàng)。
然后就可以在IP 目錄中,選擇想要的IP核,此處在搜索框輸入BRAM,選擇我們要使用的BRAM IP核。
即最下方的Block Memory Generator,顧名思義,塊狀RAM。
我們常用的是單口BRAM,單口寫,單口讀。可配置Memory Type 為Simple Dual Port RAM。如下圖所示:
其中Component Name 可以自定義自己所需要的模塊名稱。類型定義完成后,可以看到左側(cè)顯示的模塊端口,端口的使用后面再細(xì)說。
設(shè)置完成后,開始設(shè)置端口的位寬以及深度,選擇Port A Options選項(xiàng),可以看到下面的界面。
Port A Width即位寬,也就是你存儲(chǔ)數(shù)據(jù)的有多少位,Port A Depth即深度,也就是你要存多少個(gè)數(shù)據(jù)。端口A設(shè)置好后,還需要點(diǎn)擊Port B Options,點(diǎn)擊完進(jìn)入Port B Options選項(xiàng)后,系統(tǒng)會(huì)幫你自動(dòng)設(shè)置好端口B的寬度和深度,因?yàn)锽肯定是和A一樣的。
可以看到端口B也設(shè)置完成,同時(shí)在Port B Optional Output Registers有一個(gè)Primitives OutputRegisters選項(xiàng)。如果這個(gè)選項(xiàng)不勾上,那么正常的情況下,當(dāng)?shù)谝粋€(gè)時(shí)鐘時(shí)候,送來地址,那么數(shù)據(jù)會(huì)在第二個(gè)時(shí)鐘取好送出RAM。但是當(dāng)勾上這個(gè)選項(xiàng)后,那么數(shù)據(jù)就會(huì)延遲兩個(gè)時(shí)鐘,在第三個(gè)時(shí)鐘送出。這是取數(shù)據(jù)情況下的時(shí)序。當(dāng)存數(shù)據(jù)時(shí)候,那么只需要地址和數(shù)據(jù)在同一個(gè)時(shí)鐘下即可。
當(dāng)我們?cè)谝话闶褂肦AM時(shí)候,如果需要事先存到RAM里的數(shù)據(jù)量不大,我們可以在Testbench里面寫一下即可。但是如果數(shù)據(jù)量較大時(shí),那么我們可以使用.coe文件事先將數(shù)據(jù)導(dǎo)入到RAM 之中,如下圖所示。
在Other Options選項(xiàng)中,有一個(gè)Load Init File選項(xiàng),即加載初始化文件,在這里勾上后,即可加載已存儲(chǔ)好數(shù)據(jù)的.coe文件。關(guān)于.coe文件的制作,網(wǎng)上有很多教程,在此不再贅述。然后點(diǎn)擊下方OK,然后再點(diǎn)擊彈出來的窗口的Generate即可生成BRAM 的IP核。
至此,常用情況下的BRAM的配置選項(xiàng)以及設(shè)置介紹完成。
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1626文章
21665瀏覽量
601802 -
Xilinx
+關(guān)注
關(guān)注
71文章
2163瀏覽量
120999
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論