控制類寄存器2種實現方式
在數據處理過程中,需要一些可配置的寄存器,用于控制數據處理過程中的行為,如果各類處理信號的使能信號,還有功能模塊的特定控制信號。
例如:在ETH處理過程中,有數據流使能控制,最大包長度控制信號。
例如:在PCIE中,存在bus master enable信號,max payload size等控制信號。
那么這類可配置的控制類寄存器是如何在數據處理過程中起作用的呢?有哪些實現方式呢?
下圖所示,data_in為輸入數據,data_out是處理后的數據,處理過程中data_proc_a/b/c需要用到控制寄存器對處理進行處理,client_id表示data的id號,模塊采用時分復用的方式處理不同id的data。
實現方式1: 寄存器信號線輸出
通過寄存器信號線的方式輸出給需要的模塊,如圖方式1,cfg module把所有的控制信號都暴露出來,送給需要的模塊data_proc_a/b/c,data有效時,根據client_id選擇需要的控制信號。
優點:
-此類設計簡單,容易理解與實現。
-此設計限制小,可以用于各類情況下的設計
缺點:
-控制信號線較多,高頻設計不利于布局布線
-不利于規模擴展,例如client_id數量從8增加到16,需要修改大量的代碼。
此設計中,控制寄存器以ram(或者類似)的方式實現,數據處理模塊data_proc_a主動讀取控制信號,當有效數據來臨時,以client_id作為rdaddr讀取,一次讀取處理流程中所需的控制信號(rdata),進行數據處理,并且將控制信號(rdata)進行pipe與data對齊,提供給后期模塊data_proc_b/c
優點:
-規模擴展方便,例如client_id數量從8增加到16,僅限cfg_ram的規模修改,data_proc_a/b/c僅僅需要修改client_id位寬參數。
-控制信號線較少,有利于時序優化和布局布線
缺點:
-此設計適用于數據的pipeline處理,并且ram讀出存在一定的讀延時,存在一定限制。
一種主動的流控實現方式
1、流控機制
在數據發送過程中,發送者向接收者發送數據,通常需要接收者通知發送者自身是否可以接收數據,當接收者即將無法接收數據時(如FIFO快滿時),發送者需要停止發送數據,這就是流控機制。
2、流控機制過程
初始化流程:
(1)復位釋放后,初始化,module b 通過信號fc_update_signal 通知module a 自身fifo深度是多少
(2)Tx_fc_ctrl 收到初始化信息后,得知module b存在有效fifo 緩存,通知ren_ctrl允許產生讀使能ren
(3)ren_ctrl產生讀使能ren
(4)ren輸出給tx_fc_ctrl,module b的有效fifo深度減一
(5)tx_fc_ctrl計算module b是否存在有效數據,有則允許ren_ctrl產生讀使能
(6)ren_ctrl產生讀使能ren,并通知到tx_fc_ctrl,module b的有效fifo深度減一
(7)tx_fc_ctrl計算module b是否存在有效數據,有則允許ren_ctrl產生讀使能,沒有則不允許ren_ctrl產生讀使能
(a)Module b模塊fifo已存在有效數據,從fifo讀取一個數據,此時已釋放出一個fifo深度
(b)Fc_update更新fc_update_signal,通知tx_fc_ctrl模塊module b已釋放一個fifo空間,tx_fc_ctrl記錄的有效深度加1
(c)此時tx_fc_ctrl允許ren_ctrl產生讀使能
3、特點說明
此種流控機制需要發送端和接收端配合管理有效緩存空間。相對比單一bit的flow ctrl信號來說,稍微復雜一些,但是有個顯著的優點,相對于被動流控機制(見IC設計高級006:流控反壓機制導致的路徑延時),能夠有效減少module b中的Data fifo的深度。
如圖,data pipeline的深度是不確定的,可能是20~100個周期,而流控信號只有4個pipe,在考慮其他方面的延時有3拍,
不考慮性能的情況下:保證不溢出,module b的fifo深度最小需要:
本文流控機制:深度為1 ; 被動流控機制:深度為1+100+4+3
滿足最大性能的情況下,保證下游不斷流:module b的fifo深度需要:
本文流控機制:100+4+3+1 ; 被動流控機制:2*(100+4+3+1)
審核編輯 :李倩
-
寄存器
+關注
關注
31文章
5325瀏覽量
120044 -
控制信號
+關注
關注
0文章
162瀏覽量
11948
原文標題:IC設計知識點:控制類寄存器兩種實現方式等
文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論