0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

控制類寄存器2種實現(xiàn)方式

倩倩 ? 來源:CSDN ? 作者:CSDN ? 2022-09-05 14:54 ? 次閱讀

控制類寄存器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需要用到控制寄存器對處理進(jìn)行處理,client_id表示data的id號,模塊采用時分復(fù)用的方式處理不同id的data。

60356820-2cd0-11ed-ba43-dac502259ad0.png

實現(xiàn)方式1: 寄存器信號線輸出

通過寄存器信號線的方式輸出給需要的模塊,如圖方式1,cfg module把所有的控制信號都暴露出來,送給需要的模塊data_proc_a/b/c,data有效時,根據(jù)client_id選擇需要的控制信號。

優(yōu)點:

-此類設(shè)計簡單,容易理解與實現(xiàn)。

-此設(shè)計限制小,可以用于各類情況下的設(shè)計

缺點:

-控制信號線較多,高頻設(shè)計不利于布局布線

-不利于規(guī)模擴(kuò)展,例如client_id數(shù)量從8增加到16,需要修改大量的代碼。

實現(xiàn)方式2: 邏輯通過類ram接口主動獲取

此設(shè)計中,控制寄存器以ram(或者類似)的方式實現(xiàn),數(shù)據(jù)處理模塊data_proc_a主動讀取控制信號,當(dāng)有效數(shù)據(jù)來臨時,以client_id作為rdaddr讀取,一次讀取處理流程中所需的控制信號(rdata),進(jìn)行數(shù)據(jù)處理,并且將控制信號(rdata)進(jìn)行pipe與data對齊,提供給后期模塊data_proc_b/c

優(yōu)點:

-規(guī)模擴(kuò)展方便,例如client_id數(shù)量從8增加到16,僅限cfg_ram的規(guī)模修改,data_proc_a/b/c僅僅需要修改client_id位寬參數(shù)。

-控制信號線較少,有利于時序優(yōu)化和布局布線

缺點:

-此設(shè)計適用于數(shù)據(jù)的pipeline處理,并且ram讀出存在一定的讀延時,存在一定限制。

一種主動的流控實現(xiàn)方式

1、流控機(jī)制

在數(shù)據(jù)發(fā)送過程中,發(fā)送者向接收者發(fā)送數(shù)據(jù),通常需要接收者通知發(fā)送者自身是否可以接收數(shù)據(jù),當(dāng)接收者即將無法接收數(shù)據(jù)時(如FIFO快滿時),發(fā)送者需要停止發(fā)送數(shù)據(jù),這就是流控機(jī)制。

605c172c-2cd0-11ed-ba43-dac502259ad0.png

2、流控機(jī)制過程

初始化流程:

(1)復(fù)位釋放后,初始化,module b 通過信號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計算module b是否存在有效數(shù)據(jù),有則允許ren_ctrl產(chǎn)生讀使能

(6)ren_ctrl產(chǎn)生讀使能ren,并通知到tx_fc_ctrl,module b的有效fifo深度減一

(7)tx_fc_ctrl計算module b是否存在有效數(shù)據(jù),有則允許ren_ctrl產(chǎn)生讀使能,沒有則不允許ren_ctrl產(chǎn)生讀使能

(a)Module b模塊fifo已存在有效數(shù)據(jù),從fifo讀取一個數(shù)據(jù),此時已釋放出一個fifo深度

(b)Fc_update更新fc_update_signal,通知tx_fc_ctrl模塊module b已釋放一個fifo空間,tx_fc_ctrl記錄的有效深度加1

(c)此時tx_fc_ctrl允許ren_ctrl產(chǎn)生讀使能

3、特點說明

此種流控機(jī)制需要發(fā)送端和接收端配合管理有效緩存空間。相對比單一bit的flow ctrl信號來說,稍微復(fù)雜一些,但是有個顯著的優(yōu)點,相對于被動流控機(jī)制(見IC設(shè)計高級006:流控反壓機(jī)制導(dǎo)致的路徑延時),能夠有效減少module b中的Data fifo的深度。

如圖,data pipeline的深度是不確定的,可能是20~100個周期,而流控信號只有4個pipe,在考慮其他方面的延時有3拍,

不考慮性能的情況下:保證不溢出,module b的fifo深度最小需要:

本文流控機(jī)制:深度為1 ; 被動流控機(jī)制:深度為1+100+4+3

滿足最大性能的情況下,保證下游不斷流:module b的fifo深度需要:

本文流控機(jī)制:100+4+3+1 ; 被動流控機(jī)制:2*(100+4+3+1)

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119206
  • 控制信號
    +關(guān)注

    關(guān)注

    0

    文章

    153

    瀏覽量

    11917

原文標(biāo)題:IC設(shè)計知識點:控制類寄存器兩種實現(xiàn)方式等

文章出處:【微信號:IP與SoC設(shè)計,微信公眾號:IP與SoC設(shè)計】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    寄存器的類型和作用

    在計算機(jī)科學(xué)中,寄存器(Register)是一高速存儲單元,它位于CPU內(nèi)部,與CPU的運(yùn)算單元和邏輯控制單元緊密相連。寄存器的主要作用是暫時存儲指令、操作數(shù)和地址等臨時數(shù)據(jù),以便C
    的頭像 發(fā)表于 09-05 14:11 ?258次閱讀

    寄存器的輸入輸出方式

    寄存器的輸入輸出方式是數(shù)字電路設(shè)計中至關(guān)重要的部分,它決定了數(shù)據(jù)如何在寄存器中進(jìn)出以及處理的效率。下面將詳細(xì)探討寄存器的幾種主要輸入輸出方式
    的頭像 發(fā)表于 09-05 14:09 ?182次閱讀

    寄存器尋址和直接尋址的區(qū)別

    寄存器尋址和直接尋址是計算機(jī)指令系統(tǒng)中的兩基本尋址方式。它們在指令的執(zhí)行過程中起著至關(guān)重要的作用,決定了指令操作數(shù)的來源和目標(biāo)。下面我們將介紹這兩尋址
    的頭像 發(fā)表于 07-12 10:42 ?472次閱讀

    寄存器尋址的實現(xiàn)方式

    在計算機(jī)體系結(jié)構(gòu)中,寄存器尋址是一常見的尋址方式,它允許程序直接訪問CPU內(nèi)部的寄存器。寄存器尋址可以提高程序的執(zhí)行效率,因為它避免了對內(nèi)
    的頭像 發(fā)表于 07-12 10:36 ?364次閱讀

    寄存器分為基本寄存器和什么兩

    寄存器是計算機(jī)中用于存儲數(shù)據(jù)的高速存儲單元,它們是CPU內(nèi)部的重要組成部分。寄存器可以分為基本寄存器和擴(kuò)展寄存器兩種類型。 一、基本寄存器
    的頭像 發(fā)表于 07-12 10:31 ?635次閱讀

    具有三態(tài)輸出寄存器的 SN74HCT595-Q1 汽車8位移位寄存器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有三態(tài)輸出寄存器的 SN74HCT595-Q1 汽車8位移位寄存器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-11 10:59 ?0次下載
    具有三態(tài)輸出<b class='flag-5'>寄存器</b>的 SN74HCT595-Q1 汽車<b class='flag-5'>類</b>8位移位<b class='flag-5'>寄存器</b>數(shù)據(jù)表

    具有施密特觸發(fā)輸入和輸出寄存器的汽車8位移位寄存器SN74HCS594-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有施密特觸發(fā)輸入和輸出寄存器的汽車8位移位寄存器SN74HCS594-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-08 10:24 ?1次下載
    具有施密特觸發(fā)輸入和輸出<b class='flag-5'>寄存器</b>的汽車<b class='flag-5'>類</b>8位移位<b class='flag-5'>寄存器</b>SN74HCS594-Q1數(shù)據(jù)表

    具有三態(tài)輸出寄存器的汽車 8位移位寄存器SN74AHC165-Q1數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有三態(tài)輸出寄存器的汽車 8位移位寄存器SN74AHC165-Q1數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 05-06 11:20 ?0次下載
    具有三態(tài)輸出<b class='flag-5'>寄存器</b>的汽車<b class='flag-5'>類</b> 8位移位<b class='flag-5'>寄存器</b>SN74AHC165-Q1數(shù)據(jù)表

    CPU的6個主要寄存器

    CPU寄存器是中央處理內(nèi)的組成部分,是有限存貯容量的高速存貯部件。寄存器是CPU內(nèi)部的元件,包括通用寄存器、專用寄存器
    的頭像 發(fā)表于 02-03 15:15 ?2946次閱讀

    移位寄存器的工作原理 移位寄存器左移和右移怎么算

    移位寄存器是一用于在數(shù)字電路中實現(xiàn)數(shù)據(jù)移位操作的基本電路元件。它由多個觸發(fā)以及相關(guān)控制電路組成,具有存儲、接受和移動數(shù)據(jù)的功能。移位
    的頭像 發(fā)表于 01-18 10:52 ?6010次閱讀

    寄存器查看的功能和使用

    對于搞嵌入式底層開發(fā)的軟件或者硬件工程師來說,經(jīng)常會涉及到查看芯片手冊,比如某個芯片的串口控制器寄存器值,需要知道這個值對應(yīng)寄存器的哪些位,微軟計算的程序員模式雖然可以查看
    的頭像 發(fā)表于 11-28 12:26 ?1428次閱讀
    <b class='flag-5'>寄存器</b>查看<b class='flag-5'>器</b>的功能和使用

    寄存器開發(fā),HAL開發(fā)和LL開發(fā)的區(qū)別和參考代碼

    1,寄存器開發(fā)【難度值:難】寄存器開發(fā)是一直接訪問微控制器寄存器的編程方法,它提供了對硬件的極大靈活性和直接
    的頭像 發(fā)表于 11-17 08:00 ?1019次閱讀
    <b class='flag-5'>寄存器</b>開發(fā),HAL開發(fā)和LL開發(fā)的區(qū)別和參考代碼

    gic的寄存器 gicv3的LPI中斷

    (1)gicv2寄存器 gicv2寄存器,都是使用memory-mapped的方式去訪問的 ? ?GICD_: distributor的
    的頭像 發(fā)表于 11-08 16:09 ?563次閱讀

    STM32使用GPIO配置的5方式

    采用五不同的方式,具體如下: 一、使用直接寄存器訪問 這種方式是最原始的GPIO訪問方式,直接訪問GPIO的
    的頭像 發(fā)表于 10-26 17:42 ?1232次閱讀

    控制寄存器的兩實現(xiàn)方式

    在數(shù)據(jù)處理過程中,需要一些可配置的寄存器,用于控制數(shù)據(jù)處理過程中的行為,如果各類處理信號的使能信號,還有功能模塊的特定控制信號。
    的頭像 發(fā)表于 10-17 10:36 ?510次閱讀
    <b class='flag-5'>控制</b><b class='flag-5'>類</b><b class='flag-5'>寄存器</b>的兩<b class='flag-5'>種</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>方式</b>