在IC設(shè)計(jì)中,我們有時(shí)會(huì)使用深度很大,位寬很小的ram。例如深度為1024,位寬為4bit的ram。此類的ram有個(gè)明顯的缺點(diǎn):形狀狹長(zhǎng),不利于布局布線、導(dǎo)致讀寫接口走線過(guò)長(zhǎng),不利于時(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)容完全一致。
無(wú)論是否進(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è)讀請(qǐng)求同時(shí)產(chǎn)生,因此為了避免出現(xiàn)此沖突,需要2個(gè)128x32的ram才能實(shí)現(xiàn)。
審核編輯:劉清
-
IC設(shè)計(jì)
+關(guān)注
關(guān)注
38文章
1369瀏覽量
107848 -
RAM
+關(guān)注
關(guān)注
8文章
1398瀏覽量
119770
原文標(biāo)題:IC設(shè)計(jì):ram的折疊設(shè)計(jì)
文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
IC設(shè)計(jì):常見(jiàn)的ram訪問(wèn)沖突
用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)用

IC設(shè)計(jì):ram的折疊設(shè)計(jì)操作步驟
評(píng)論