初識(shí)FPGA CLB之LUT實(shí)現(xiàn)RAM
一. 概述
在文章《初識(shí)FPGA CLB之LUT實(shí)現(xiàn)邏輯函數(shù)》里面我們講過(guò)了LUT的原理,實(shí)現(xiàn)邏輯函數(shù)時(shí),相當(dāng)于一個(gè)ROM將結(jié)果預(yù)存,然后把通過(guò)輸入信號(hào)當(dāng)作地址對(duì)預(yù)存的結(jié)果進(jìn)行尋址。因此同樣借助LUT加幾個(gè)端口,就可以實(shí)現(xiàn)RAM。SLICEM里面的LUT就可以用來(lái)實(shí)現(xiàn)RAM資源。
二. 原理介紹
SLICEM里面的LUT跟SLICEL里面的LUT相比多了DI2,WA[6:1],CLK,WE這幾個(gè)端口。做RAM用的時(shí)候,其中DI1,DI2是寫數(shù)據(jù)輸入端口,O5,O6同樣是數(shù)據(jù)輸出端口,支持一次性兩bit或者單bit讀寫。A[6:1]為讀地址,WA[6:1]為寫地址,WE為寫使用,CLK為時(shí)鐘端口。
從這可以看出,一個(gè)LUT具有2^6=64bit的存儲(chǔ)空間。
故一個(gè)LUT可以作為64x1bits的RAM(內(nèi)存大小為64bit,1bit讀寫),地址為6位。當(dāng)讀寫地址共用一個(gè)端口時(shí)為單端口RAM,不共用時(shí)則為雙端口RAM(SLICEM里面第一個(gè)LUT的WA與A是連在一起的,故第一個(gè)LUT做不了雙端口RAM)。輸出數(shù)據(jù)可以經(jīng)過(guò)SLICEM里面的Register資源打一拍以提高時(shí)序特性(在工具里面可以自己設(shè)置)。
或者作為32x2bits的RAM(2bit讀寫),地址為5位,A[6]拉高。輸出為O5,O6。
三. 擴(kuò)展與提升
一個(gè)SLICEM里面有4個(gè)LUT,他們可以組合得到多種大小的RAM。首先就是四端口的32x2bits的RAM,支持一次性讀寫2bits,原理如下圖。四個(gè)LUT的寫數(shù)據(jù)端口DI1,DI2,寫使能WE,寫地址WA共用,稱為寫控制信號(hào)共用。讀地址A分別控制。
如下圖,4個(gè)LUT構(gòu)成32x6bits的RAM,支持6bits讀寫操作。當(dāng)讀寫共用一個(gè)地址時(shí),就是單端口RAM,當(dāng)讀寫不共用地址時(shí)就是雙端口RAM。可以看到第一個(gè)LUT其實(shí)沒用到,是因?yàn)榈谝粋€(gè)LUT的A與WA是連到一起的不能改變,所以做不了雙端口。其實(shí)現(xiàn)原理就是3個(gè)LUT的并行2bit讀寫。
當(dāng)然大家自己開動(dòng)腦筋想一下也就知道了還可以組成其它什么類型的RAM,這里我們?cè)倥e個(gè)例子就是借助選擇器實(shí)現(xiàn)128x1bits的RAM。
同樣借助選擇器在一個(gè)SLICEM里面還可以構(gòu)成256x1bit的RAM,這里就不贅述,大家可以自行思考。總之在一個(gè)SLICEM里面可以實(shí)現(xiàn)的RAM有如下表中的幾種。
多個(gè)SLICEM資源配合就可以構(gòu)成更多內(nèi)存大小種類的RAM。
-
RAM
+關(guān)注
關(guān)注
8文章
1354瀏覽量
114444 -
輸出數(shù)據(jù)
+關(guān)注
關(guān)注
0文章
4瀏覽量
6123
原文標(biāo)題:初識(shí)FPGA CLB之LUT實(shí)現(xiàn)RAM
文章出處:【微信號(hào):LF-FPGA,微信公眾號(hào):小魚FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論