控制類寄存器2種實(shí)現(xiàn)方式
在數(shù)據(jù)處理過(guò)程中,需要一些可配置的寄存器,用于控制數(shù)據(jù)處理過(guò)程中的行為,如果各類處理信號(hào)的使能信號(hào),還有功能模塊的特定控制信號(hào)。
例如:在ETH處理過(guò)程中,有數(shù)據(jù)流使能控制,最大包長(zhǎng)度控制信號(hào)。
例如:在PCIE中,存在bus master enable信號(hào),max payload size等控制信號(hào)。
那么這類可配置的控制類寄存器是如何在數(shù)據(jù)處理過(guò)程中起作用的呢?有哪些實(shí)現(xiàn)方式呢?
下圖所示,data_in為輸入數(shù)據(jù),data_out是處理后的數(shù)據(jù),處理過(guò)程中data_proc_a/b/c需要用到控制寄存器對(duì)處理進(jìn)行處理,client_id表示data的id號(hào),模塊采用時(shí)分復(fù)用的方式處理不同id的data。

實(shí)現(xiàn)方式1: 寄存器信號(hào)線輸出
通過(guò)寄存器信號(hào)線的方式輸出給需要的模塊,如圖方式1,cfg module把所有的控制信號(hào)都暴露出來(lái),送給需要的模塊data_proc_a/b/c,data有效時(shí),根據(jù)client_id選擇需要的控制信號(hào)。
優(yōu)點(diǎn):
-此類設(shè)計(jì)簡(jiǎn)單,容易理解與實(shí)現(xiàn)。
-此設(shè)計(jì)限制小,可以用于各類情況下的設(shè)計(jì)
缺點(diǎn):
-控制信號(hào)線較多,高頻設(shè)計(jì)不利于布局布線
-不利于規(guī)模擴(kuò)展,例如client_id數(shù)量從8增加到16,需要修改大量的代碼。
實(shí)現(xiàn)方式2: 邏輯通過(guò)類ram接口主動(dòng)獲取
此設(shè)計(jì)中,控制寄存器以ram(或者類似)的方式實(shí)現(xiàn),數(shù)據(jù)處理模塊data_proc_a主動(dòng)讀取控制信號(hào),當(dāng)有效數(shù)據(jù)來(lái)臨時(shí),以client_id作為rdaddr讀取,一次讀取處理流程中所需的控制信號(hào)(rdata),進(jìn)行數(shù)據(jù)處理,并且將控制信號(hào)(rdata)進(jìn)行pipe與data對(duì)齊,提供給后期模塊data_proc_b/c
優(yōu)點(diǎn):
-規(guī)模擴(kuò)展方便,例如client_id數(shù)量從8增加到16,僅限cfg_ram的規(guī)模修改,data_proc_a/b/c僅僅需要修改client_id位寬參數(shù)。
-控制信號(hào)線較少,有利于時(shí)序優(yōu)化和布局布線
缺點(diǎn):
-此設(shè)計(jì)適用于數(shù)據(jù)的pipeline處理,并且ram讀出存在一定的讀延時(shí),存在一定限制。
一種主動(dòng)的流控實(shí)現(xiàn)方式
1、流控機(jī)制
在數(shù)據(jù)發(fā)送過(guò)程中,發(fā)送者向接收者發(fā)送數(shù)據(jù),通常需要接收者通知發(fā)送者自身是否可以接收數(shù)據(jù),當(dāng)接收者即將無(wú)法接收數(shù)據(jù)時(shí)(如FIFO快滿時(shí)),發(fā)送者需要停止發(fā)送數(shù)據(jù),這就是流控機(jī)制。

2、流控機(jī)制過(guò)程
初始化流程:
(1)復(fù)位釋放后,初始化,module b 通過(guò)信號(hào)fc_update_signal 通知module a 自身fifo深度是多少
(2)Tx_fc_ctrl 收到初始化信息后,得知module b存在有效fifo 緩存,通知ren_ctrl允許產(chǎn)生讀使能ren
(3)ren_ctrl產(chǎn)生讀使能ren
(4)ren輸出給tx_fc_ctrl,module b的有效fifo深度減一
(5)tx_fc_ctrl計(jì)算module b是否存在有效數(shù)據(jù),有則允許ren_ctrl產(chǎn)生讀使能
(6)ren_ctrl產(chǎn)生讀使能ren,并通知到tx_fc_ctrl,module b的有效fifo深度減一
(7)tx_fc_ctrl計(jì)算module b是否存在有效數(shù)據(jù),有則允許ren_ctrl產(chǎn)生讀使能,沒(méi)有則不允許ren_ctrl產(chǎn)生讀使能
(a)Module b模塊fifo已存在有效數(shù)據(jù),從fifo讀取一個(gè)數(shù)據(jù),此時(shí)已釋放出一個(gè)fifo深度
(b)Fc_update更新fc_update_signal,通知tx_fc_ctrl模塊module b已釋放一個(gè)fifo空間,tx_fc_ctrl記錄的有效深度加1
(c)此時(shí)tx_fc_ctrl允許ren_ctrl產(chǎn)生讀使能
3、特點(diǎn)說(shuō)明
此種流控機(jī)制需要發(fā)送端和接收端配合管理有效緩存空間。相對(duì)比單一bit的flow ctrl信號(hào)來(lái)說(shuō),稍微復(fù)雜一些,但是有個(gè)顯著的優(yōu)點(diǎn),相對(duì)于被動(dòng)流控機(jī)制(見(jiàn)IC設(shè)計(jì)高級(jí)006:流控反壓機(jī)制導(dǎo)致的路徑延時(shí)),能夠有效減少module b中的Data fifo的深度。
如圖,data pipeline的深度是不確定的,可能是20~100個(gè)周期,而流控信號(hào)只有4個(gè)pipe,在考慮其他方面的延時(shí)有3拍,
不考慮性能的情況下:保證不溢出,module b的fifo深度最小需要:
本文流控機(jī)制:深度為1 ; 被動(dòng)流控機(jī)制:深度為1+100+4+3
滿足最大性能的情況下,保證下游不斷流:module b的fifo深度需要:
本文流控機(jī)制:100+4+3+1 ; 被動(dòng)流控機(jī)制:2*(100+4+3+1)
審核編輯 :李倩
-
寄存器
+關(guān)注
關(guān)注
31文章
5608瀏覽量
129968 -
控制信號(hào)
+關(guān)注
關(guān)注
0文章
200瀏覽量
12693
原文標(biāo)題:IC設(shè)計(jì)知識(shí)點(diǎn):控制類寄存器兩種實(shí)現(xiàn)方式等
文章出處:【微信號(hào):IP與SoC設(shè)計(jì),微信公眾號(hào):IP與SoC設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
SN74HC165QPWRQ1 汽車類 8 位并聯(lián)負(fù)載移位寄存器
深入解析CY74FCT399T:一款高性能的四2輸入寄存器
探索IDT74SSTUBF32866B:DDR2的25位可配置寄存器緩沖器
探索IDT74SSTUBF32866B:DDR2的25位可配置寄存器緩沖器
Renesas IDT74SSTUBF32866B:DDR2的25位可配置寄存器緩沖器詳解
什么是(UID)寄存器
嵌入式系統(tǒng)必懂的 20 個(gè)寄存器
蜂鳥內(nèi)核中DMA的硬件實(shí)現(xiàn)——寄存器配置
浮點(diǎn)寄存器的添加
NVMe高速傳輸之?dāng)[脫XDMA設(shè)計(jì)32:寄存器功能驗(yàn)證與分析2
?SN74HCT595 8位移位寄存器技術(shù)解析與應(yīng)用指南
SN74LV594A:2-5.5V帶輸出寄存器的8位移位寄存器技術(shù)解析
使用寄存器點(diǎn)亮LED燈
第四章 什么是寄存器
如何用C語(yǔ)言操作寄存器——瑞薩RA系列FSP庫(kù)開(kāi)發(fā)實(shí)戰(zhàn)指南(10)
控制類寄存器2種實(shí)現(xiàn)方式
評(píng)論