在ASIC設(shè)計(jì)中,我們使用FIFO或者RAM的時(shí)候經(jīng)常會(huì)用到校驗(yàn)位,例如奇偶校驗(yàn)或者ECC(海明碼)校驗(yàn),當(dāng)然,也有可能不使用任何校驗(yàn)位。那么我們需要一個(gè)深度為32,數(shù)據(jù)位寬為119bit的ram(cfg_32x119_ram_wrapper),那么實(shí)際底層的ram尺寸到底是多少呢?就是32x119 嗎?大概率不是。
1.一個(gè)ram wrapper可能是拼接而成的
RAM的位寬和深度不是任意的,是根據(jù)設(shè)計(jì)人員的需求,然后由工具產(chǎn)生相應(yīng)的ram。我們需要的是32x119的ram,實(shí)際分配給設(shè)計(jì)人員的可能是兩個(gè)32x64的ram,深度和寬度都可能存在冗余。Ram的產(chǎn)生通常有兩種方式,由設(shè)計(jì)人員或者中端人員提供ram信息列表。至少包含如下信息:Memory生成工具會(huì)根據(jù)實(shí)際需要的位寬,深度,讀寫(xiě)時(shí)鐘頻率才進(jìn)行決策,產(chǎn)生相應(yīng)的Memory。
RAM_NAME | RAM_TYPE | DEPTH | WIDTH | ECC/PARITY | Wclk_freq | Rdclk_req |
afifo_16x72_wrapper | 1r1w | 16 | 72 | 1 | 1200 | 1000 |
一顆大的ram可能是有多個(gè)小的ram拼接起來(lái)的。在布局布線時(shí),多個(gè)小的方形的ram大概率會(huì)比長(zhǎng)條形狀的ram更容易擺放(不絕對(duì))。
2.ram/fifo 校驗(yàn)位需要額外的數(shù)據(jù)位寬
如圖所示為1r1w的ram為例,cfg_32x119_ram_wrapper為verilog代碼直接調(diào)用層次的ram_wrapper,表示了一個(gè)深度為32,數(shù)據(jù)位寬為119bit的ram。ram_asic.v為真實(shí)的ram IP。其中119bit的數(shù)據(jù)位寬緊張ECC計(jì)算需要7bit的校驗(yàn)位,因此物理IP最少需要126bit的ram IP。通常memory產(chǎn)生工具會(huì)更具時(shí)鐘頻率,深度位寬等因素對(duì)ram進(jìn)行切分,因此本例中,使用了2個(gè)32x64的ram ip。
在data_in寫(xiě)入ram_asic模塊之前,會(huì)經(jīng)過(guò)ecc_gen模塊,產(chǎn)生7bit的ecc校驗(yàn)位,隨著數(shù)據(jù)一同寫(xiě)入ram_asic,其中data_in[63:0]寫(xiě)入第一個(gè)ram_asic,{2’b0,ecc_in[6:0],data_in[118:64]}寫(xiě)入第二個(gè)ram_asic。從ram_asic讀出的數(shù)據(jù)會(huì)經(jīng)過(guò)ecc_out模塊經(jīng)過(guò)ecc校驗(yàn),輸出校驗(yàn)后的data_out[118:0]和2bit的ecc_err_out告警。
審核編輯:劉清
-
RAM
+關(guān)注
關(guān)注
8文章
1369瀏覽量
114870 -
ASIC設(shè)計(jì)
+關(guān)注
關(guān)注
0文章
33瀏覽量
10706 -
ECC
+關(guān)注
關(guān)注
0文章
97瀏覽量
20605 -
FIFO存儲(chǔ)
+關(guān)注
關(guān)注
0文章
103瀏覽量
6024
原文標(biāo)題:RAM:位寬與深度是這樣確定的
文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論