1.控制類寄存器2種實現(xiàn)方式
在數(shù)據(jù)處理過程中,需要一些可配置的寄存器,用于控制數(shù)據(jù)處理過程中的行為,如果各類處理信號的使能信號,還有功能模塊的特定控制信號。
例如:在ETH處理過程中,有數(shù)據(jù)流使能控制,最大包長度控制信號。
例如:在PCIE中,存在bus master enable信號,max payload size等控制信號。
那么這類可配置的控制類寄存器是如何在數(shù)據(jù)處理過程中起作用的呢?有哪些實現(xiàn)方式呢?
下圖所示,data_in為輸入數(shù)據(jù),data_out是處理后的數(shù)據(jù),處理過程中data_proc_a/b/c需要用到控制寄存器對處理進行處理,client_id表示data的用戶id號,模塊采用時分復(fù)用的方式處理不同id的data。
2.實現(xiàn)方式1: 寄存器信號線輸出:
通過寄存器信號線的方式輸出給需要的模塊,如圖方式1,cfg module把所有的控制信號都暴露出來,送給需要的模塊data_proc_a/b/c,data有效時,根據(jù)client_id選擇需要的控制信號。
優(yōu)點:
此類設(shè)計簡單,容易理解與實現(xiàn)。
此設(shè)計限制小,可以用于各類情況下的設(shè)計
缺點:
控制信號線較多,高頻設(shè)計不利于布局布線
不利于規(guī)模擴展,例如client_id數(shù)量從8增加到800時,寄存器的數(shù)量會大量增加,且800選1的邏輯延時較大。
此設(shè)計中,控制寄存器以ram(或者類似)的方式實現(xiàn),數(shù)據(jù)處理模塊data_proc_a主動讀取控制信號,當(dāng)有效數(shù)據(jù)來臨時,以client_id作為rdaddr讀取,一次讀取處理流程中所需的控制信號(rdata),進行數(shù)據(jù)處理,并且將控制信號(rdata)進行pipe與data對齊,提供給后期模塊data_proc_b/c
優(yōu)點:
規(guī)模擴展方便,例如client_id數(shù)量從8增加到800,僅僅需要修改cfg_ram的規(guī)模,重新定義一下cfg_ram讀地址位寬,data_proc_a/b/c僅僅需要修改client_id位寬參數(shù)。
控制信號線較少,有利于時序優(yōu)化和布局布線
缺點:
此設(shè)計適用于數(shù)據(jù)的pipeline處理,并且ram讀出存在一定的讀延時,存在一定限制。
審核編輯:湯梓紅
-
寄存器
+關(guān)注
關(guān)注
31文章
5253瀏覽量
119206 -
接口
+關(guān)注
關(guān)注
33文章
8257瀏覽量
149960 -
信號
+關(guān)注
關(guān)注
11文章
2741瀏覽量
76180 -
PCIe
+關(guān)注
關(guān)注
15文章
1165瀏覽量
81988
原文標(biāo)題:IC設(shè)計:控制類寄存器2種實現(xiàn)方式
文章出處:【微信號:IP與SoC設(shè)計,微信公眾號:IP與SoC設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論