在模塊劃分時(shí),我們通常會考慮解耦合,即盡量減少模塊間的交互,讓模塊間的接口盡量簡單。
在包處理過程中,因?yàn)閿?shù)據(jù)處理的需求,需要讀取某些信息(配置信息,狀態(tài)信息),如圖中讀取block_b中的ram,根據(jù)讀返回的結(jié)果后對數(shù)據(jù)包進(jìn)行處理。為了解耦合,我們可以采用一個(gè)fifo(pkt_fifo)存儲與ram請求(ram_req)無關(guān)的信息(數(shù)據(jù)包以及數(shù)據(jù)包的相關(guān)描述信息),等待response返回后,再從pkt_fifo讀取相應(yīng)的數(shù)據(jù)包信息對,從而對數(shù)據(jù)包進(jìn)行處理。
如果不采用pkt_fifo存儲包信息,那么會怎么設(shè)計(jì)呢?如非解耦設(shè)計(jì)圖所示,不需要額外的fifo,將包信息(pkt_data)與訪問請求(ram_req)一同傳遞給block_b模塊,再由block_b將包信息(pkt_data)和訪問響應(yīng)(ram_response)一同送到block_a模塊。
案例中的解耦合設(shè)計(jì)還有一個(gè)優(yōu)點(diǎn):節(jié)約資源和功耗。如果從發(fā)起ram_req到返回ram_reponse的流水比較長,例如需要幾十甚至上百個(gè)時(shí)鐘周期,在非解耦設(shè)計(jì)中,就需要使用寄存器對pkt_data進(jìn)行打拍,而解耦設(shè)計(jì)中采用fifo存儲pkt_data,雖然從存儲bit角度計(jì)算兩種設(shè)計(jì)需要的bit位幾乎相同,但是fifo(用ram實(shí)現(xiàn))面積更小,功耗更低。
-
接口
+關(guān)注
關(guān)注
33文章
8360瀏覽量
150530 -
IC設(shè)計(jì)
+關(guān)注
關(guān)注
37文章
1289瀏覽量
103615 -
RAM
+關(guān)注
關(guān)注
8文章
1351瀏覽量
114372 -
解耦
+關(guān)注
關(guān)注
0文章
40瀏覽量
11879
原文標(biāo)題:IC設(shè)計(jì):ram的應(yīng)用-一種常見的解耦設(shè)計(jì)
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論