CORE Generator里有很多的IP核,適合用于各方面的設(shè)計(jì)。一般來說,它包括了:基本模塊,通信與網(wǎng)絡(luò)模塊,數(shù)字信號(hào)處理模塊,數(shù)字功能設(shè)計(jì)模塊,存儲(chǔ)器模塊,微處理器,控制器與外設(shè),標(biāo)準(zhǔn)與協(xié)議設(shè)計(jì)模塊,語音處理模塊,標(biāo)準(zhǔn)總線模塊,視頻與圖像處理模塊等。
在Xilinx的IP核里有xilinx core generator 里面的memory interface generator 和block ram,使用這兩個(gè)可以使用FPGA內(nèi)部和外部的RAM。memory interface generator 是 ddr2/ddr3/qdr2 這些外部存儲(chǔ)器的接口,block ram 是 fpga 芯片內(nèi)部片上的存儲(chǔ)器。接下來介紹一下block ram。
block ram有三種:?jiǎn)慰赗Am、簡(jiǎn)化雙口RAM和真雙口RAM。
單口:
簡(jiǎn)化雙口,A寫入,B讀出:
真雙口,A和B都可以讀寫:
使用IP核,確定數(shù)據(jù)位寬和深度:(超出地址范圍將返回?zé)o效數(shù)據(jù),在對(duì)超出地址范圍的數(shù)據(jù)進(jìn)行操作的時(shí)候,不能夠set或者reset)。這里我選擇的是16位的位寬,128的深度。
設(shè)置操作模式:(寫優(yōu)先,讀優(yōu)先,不改變)
這里的寫優(yōu)先的意思就是你寫入的數(shù)據(jù),會(huì)出現(xiàn)在輸出端口,不管你給的地址是什么。這種好處就是保證了你讀出的數(shù)據(jù)是最新的。
讀優(yōu)先指的就是:不管你寫入的數(shù)據(jù),是先把你要讀的數(shù)據(jù)讀出。
不改變模式就是正常的模式,該讀的時(shí)候讀,改寫的時(shí)候?qū)懀海ㄒ话銢]有特殊要求就是選這個(gè))
接著寫coe文件,打開txt,輸入:
MEMORY_INITIALIZATION_RADIX=10;
MEMORY_INITIALIZATION_VECTOR=
512,515,518,522,525,528,531,535,538,54,......12,23;
保存之后為coe格式。
這個(gè)如果很少就自己輸入,如果比較大,比如一幅圖片,那就使用matlab吧!
舉個(gè)例子,你要生成ROM:
% 生成 ROM 的 .coe文件
clc clear all close all x = linspace(0, pi/2 ,1024); % 在區(qū)間[0,2pi]之間等間隔地取1024個(gè)點(diǎn) y_cos = cos(x); y_sin = sin(x); y_cos = y_cos * 2^16; y_sin = y_sin * 2^16; fid = fopen('D:/cos_coe.txt','wt'); fprintf(fid, ' .0f ' , y_cos); fclose(fid); fid = fopen('D:/sin_coe.txt','wt'); fprintf(fid, ' .0f ' , y_sin); fclose(fid);
比特寫功能(byte_write):
當(dāng)使用8bit一字節(jié)的時(shí)候沒有優(yōu)先級(jí),而存儲(chǔ)在寬度限定為8bit的倍數(shù)。當(dāng)使用9bit一字節(jié)的時(shí)候,每一個(gè)字節(jié)都包含一個(gè)優(yōu)先級(jí)位,存儲(chǔ)限定為9bit的倍數(shù)。9bit的一般不用于NO_CHANGE模式。對(duì)于雙口的RAM,只能是讀優(yōu)先或者寫優(yōu)先。
我們要設(shè)置為primitive原語的模式,還可以選擇增加復(fù)位等功能,但是復(fù)位不能異步,只能同步實(shí)現(xiàn)。
最后生成了IP核之后,點(diǎn)擊你的IP核的下方,然后可以看到你的instance,你就知道怎么用這個(gè)IP核了。另外對(duì)于IP核的使用,其實(shí)你看datasheet那就更好了。
原文標(biāo)題:FPGA開發(fā)之RAM IP的使用
文章出處:【微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
FPGA
+關(guān)注
關(guān)注
1620文章
21510瀏覽量
598904 -
Xilinx
+關(guān)注
關(guān)注
70文章
2137瀏覽量
120386 -
generator
+關(guān)注
關(guān)注
0文章
56瀏覽量
33045 -
Block
+關(guān)注
關(guān)注
0文章
26瀏覽量
14635
原文標(biāo)題:FPGA開發(fā)之RAM IP的使用
文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論