在IC設(shè)計(jì)中,我們有時(shí)會(huì)使用深度很大,位寬很小的ram。例如深度為1024,位寬為4bit的ram。此類的ram有個(gè)明顯的缺點(diǎn):形狀狹長,不利于布局布線、導(dǎo)致讀寫接口走線過長,不利于時(shí)序收斂。
此時(shí)為了方便布局布線和時(shí)序收斂,我們通常會(huì)進(jìn)行折疊設(shè)計(jì)。
如下圖所示,深度為1024,位寬為4bit的雙端口1r1w的ram,有一個(gè)讀接口,一個(gè)寫接口,支持同時(shí)讀寫操作,出于以上考慮,我們會(huì)進(jìn)行折疊設(shè)計(jì),采用2個(gè)128x32的1r1w的ram實(shí)現(xiàn)。
如圖所示:兩個(gè)2個(gè)128x32存儲(chǔ)的內(nèi)容完全一致。
無論是否進(jìn)行折疊設(shè)計(jì),ram接口信號(hào)位寬均一致。讀寫地址位寬為10bit,讀寫數(shù)據(jù)位寬為4bit。部分ram讀寫接口信號(hào)如下
信號(hào) | 位寬 | 描述 |
waddr | 10 | 寫地址 |
wen | 1 | 寫使能信號(hào),1表示寫有效 |
wdata | 4 | 寫數(shù)據(jù) |
raddr | 10 | 讀地址 |
ren | 1 | 讀使能信號(hào),1表示讀有效 |
rdata | 4 | 讀數(shù)據(jù) |
進(jìn)行寫操作時(shí):
使用waddr[9:5] 作為讀地址,讀128x32_ram_u0,獲得rdata[31:0] 使用waddr[4:0] 選擇rdata[31:0]中一個(gè)bit,使用wdata[0:0]進(jìn)行替換,得到寫入數(shù)據(jù)wdata_inter[31:0] 使用waddr_dly[9:5] 作為寫地址,將wdata_inter[31:0]作為寫數(shù)據(jù)同時(shí)寫入128x32_ram_u0和128x32_ram_u1。
進(jìn)行讀操作時(shí): 使用raddr[9:5] 作為讀地址,讀128x32_ram_u1,獲得rdata1[31:0] 使用raddr[4:0] 選擇rdata1[31:0]中一個(gè)bit,賦值給o_rdata。 ? ? ? ? ?
為什么需要用兩個(gè)128x32的ram?
因?yàn)?024x1_1r1w_ram_wrapper需要同時(shí)支持讀寫操作,而在折疊設(shè)計(jì)中,寫操作需要先讀ram,讀操作也需要讀ram,如果僅僅使用1個(gè)128x32的ram,就會(huì)出現(xiàn)有兩個(gè)讀請求同時(shí)產(chǎn)生,因此為了避免出現(xiàn)此沖突,需要2個(gè)128x32的ram才能實(shí)現(xiàn)。
審核編輯:劉清
-
IC設(shè)計(jì)
+關(guān)注
關(guān)注
38文章
1343瀏覽量
105053 -
RAM
+關(guān)注
關(guān)注
8文章
1386瀏覽量
116433
原文標(biāo)題:IC設(shè)計(jì):ram的折疊設(shè)計(jì)
文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
IC設(shè)計(jì):常見的ram訪問沖突

用Jlink和J-Flash RAM讀取單片機(jī)程序和燒錄單片機(jī)程序操作步驟
不止于大,如何打造優(yōu)秀的折疊屏應(yīng)用體驗(yàn)
折疊屏有什么意義
RAM的項(xiàng)目設(shè)計(jì)需求與操作步驟
IC的焊接步驟與用注意哪些基本事項(xiàng)
如何使用FPGA內(nèi)部的RAM以及程序?qū)υ?b class='flag-5'>RAM的數(shù)據(jù)讀寫操作

TANDY WP 2 RAM IC卡開源分享

IC設(shè)計(jì)中關(guān)于ram的應(yīng)用

評(píng)論