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