在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

RAM的兩種應用:統計計數和位寬轉換

sanyue7758 ? 來源:IC的世界 ? 2023-12-05 09:48 ? 次閱讀

應用1 統計計數

在進行模塊設計時,我們經常需要統計報文的數量,以供軟件(or 主機)讀取,有些統計僅僅用于debug,有些統計是協議要求,有些統計是為了便于功能實現。

當需要統計的數量較多時,為了降低功耗和減少面積,我們通常采用RAM去實現。

如下案例中,統計有效數據包的個數。

假設數據中存在pkt_id,pkt_id為0~63,則ram的深度為64。pkt_id用于作為讀寫地址。RAM讀延時為3個時鐘周期。

有數據來臨時,pkt_vld作為讀使能,讀出當前包計數rdata,三個周期后,rdata加1回寫到ram。

如下圖所示:需要有三個注意事項

NOTE1:需要有讀寫保護,因為可能出現連續4個周期內,pkt_vld為1,且pkt_id相同,此時會出現同一個周期對相同的地址進行讀寫,因此需要RAM需要添加讀寫保護模塊,保證數據能夠正確寫入,且讀出的都是最新值,否則就會出現統計錯誤。

NOTE2:圖中既有軟件讀、又存在硬件讀,且硬件讀優先級更高,軟件讀優先級低,因此為了保證軟件讀能夠在有效周期內得到響應,因此需要在主數據流上插入空拍,避免出現軟件讀長時間無法響應而產生超時。

wKgZomVugViATGPZAABdxDuAeHU769.png

應用2 位寬轉換

在進行模塊設計時,我們經常需要進行數據位寬的轉換,常見的兩種轉換場景有同步時鐘域位寬轉換和異步時鐘域位寬轉換。本文將介紹異步時鐘域位寬轉換

異步時鐘域的位寬轉換讀時鐘和寫時鐘屬于兩個時鐘。如下案例中,數據位寬由32bit轉40bit,寫時鐘頻率156.25MHz,讀時鐘頻率125Mhz,寫數據為32bit,讀數據位寬為40bit,通過計算得到入口數據速率和出口數據速率保持一致(156.2532==40125)。

存儲模塊是由寄存器搭建的。那么需要多大存儲模塊呢?32和40的最小公倍數為160,極限場景下,只需要160bit的寄存器作為存儲就夠了,但是讀操作通常晚于寫操作,并且考慮到時鐘有抖動有偏移,為了避免溢出,稍微增加一部分緩存,我們可以采用320bit作為存儲模塊。因此寫側32bit寫10次,讀側40bit讀8次,讀寫兩側所需的時間相等。

注意事項:寫地址(wr_addr)跳轉范圍是09,讀地址(rd_addr)跳轉范圍07。

wKgaomVugViAHCE3AACFx-wvlYA974.png

wKgaomVugViAIYjXAAFTzh9fxhU679.png

如圖所示:

buff_array為320bit的數據存儲。

vld_array為80bit的有效標志位存儲:vld_array[n]為1表示buff_array[4n+3:4n]存在4bit的有效數據。

wKgaomVugViAFRVZAABOda71nBA740.png

always @(posedge wr_clk or negedge wr_rst_n) begin
  if (~wr_rst_n) begin
    buff_array  <= {DATA_FIFO_DEPTH{1'b0}};
    vld_array <= {VALID_FIFO_DEPTH{1'b0}};
  end else begin
    if (wr_en) begin
        buff_array[ wr_addr*32  +: 32]  <= wr_data_i;
        vld_array[wr_addr*8 +: 8] <= {8{wr_valid_i}};
      end
    end
  end


reg [10-1:0] rd_valid_bus;
reg [40-1:0]  rd_data_bus;
always @(*) begin
  rd_data_bus[40-1:0]  = buff_array[  rd_addr*40  +: 40];
  rd_valid_bus[10-1:0] = vld_array[rd_addr*10 +: 10];
end
integer i;
reg [40-1:0] rd_data_valid_mask;
always @(*) begin
  for(i = 0; i < 40; i = i + 1) begin
      rd_data_valid_mask[i] = rd_valid_bus[i/4];
  end
end
always @(posedge rd_clk or negedge rd_rst_n) begin
  if (~rd_rst_n) begin
    rd_data_o  <= {40{1'b0}};
    rd_valid_o <= 1'b0;
  end else begin
    if (rd_en) begin
      rd_data_o  <= rd_data_bus & rd_data_valid_mask;
      rd_valid_o <= |rd_valid_bus;
    end else begin
      rd_data_o  <= {40{1'b0}};
      rd_valid_o <= 1'b0;
    end
  end
end

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5397

    瀏覽量

    122627
  • RAM
    RAM
    +關注

    關注

    8

    文章

    1384

    瀏覽量

    116216
  • 數據包
    +關注

    關注

    0

    文章

    269

    瀏覽量

    24806
  • 讀寫保護
    +關注

    關注

    0

    文章

    4

    瀏覽量

    5903

原文標題:ram的兩種應用~統計計數和位寬轉換

文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    測量開關電源轉換效率的兩種不同方法

    本文將向大家介紹測量開關電源轉換效率的兩種不同方法。
    發表于 08-09 16:45 ?4930次閱讀
    測量開關電源<b class='flag-5'>轉換</b>效率的<b class='flag-5'>兩種</b>不同方法

    IC設計:ram的應用-異步時鐘域轉換

    在進行模塊設計時,我們經常需要進行數據轉換,常見的兩種轉換場景有同步時鐘域
    的頭像 發表于 11-23 16:41 ?1068次閱讀
    IC設計:<b class='flag-5'>ram</b>的應用-異步時鐘域<b class='flag-5'>位</b><b class='flag-5'>寬</b><b class='flag-5'>轉換</b>

    OpenCV兩種不同方法實現粘連大米分割計數

    測試圖如下,圖中有個別米粒相互粘連,本文主要演示如何使用OpenCV用兩種不同方法將其分割并計數。
    的頭像 發表于 01-22 14:55 ?2164次閱讀
    OpenCV<b class='flag-5'>兩種</b>不同方法實現粘連大米分割<b class='flag-5'>計數</b>

    基于FPGA的HDTV視頻圖像灰度直方圖統計算法設計

    結構,即在內存中開辟一個整數數組來進行計數,但是在FPGA 中定義數組是非常消耗資源的,尤其是當數組成員的很大時。例如用觸發器來統計256 灰度的720p 圖像的直方圖,將消耗40
    發表于 05-14 12:37

    AVR的兩種操作及比較

    AVR的兩種操作的比較(域方式和移位宏方式) 測試環境如下: 硬件:AT90S2313 軟件: WiinAVR gcc3.3-Os級優化(最小size)。 說明: 由于AVR不支持
    發表于 09-06 10:24

    STC12系列單片機的定時器有兩種計數速率

    STC12系列單片機的定時器有兩種計數速率:一是12T模式,每12個時鐘加1,與傳統8051單片機相同;另一是1T模式,每個時鐘加1,速度是傳統8051單片機的12倍。
    發表于 11-25 06:13

    求分享S32G2內存映射系統計數器的地址

    計時器: ? 提供一個系統計數器,用于實時測量時間的流逝。 在同一參考文獻的 D7.1.1 節中,指出: 內存映射計數器模塊,需要 此模塊控制系統計數器。它有個框架: ? 一個控制
    發表于 05-12 06:18

    使用IP方法的獨特統計計數

      網絡路由器帶有用于性能監控、流量管理、網絡追蹤和網絡安全的統計計數器。計數器用來記錄數據包到達和離開的次數以及特定事件的次數,比如當網絡出現壞包時。數據包的到達會使多個不同的統計
    發表于 09-18 19:52 ?10次下載
    一<b class='flag-5'>種</b>使用IP方法的獨特<b class='flag-5'>統計</b><b class='flag-5'>計數</b>器

    FPGA設計中的RAM兩種實現方法

    大家好,又到了每日學習的時間了,今天我們來聊一聊在FPGA設計中RAM兩種使用方法,RAM是用來在程序運行中存放隨機變量的數據空間,使用時可以利用QuartusII的LPM功能實現RAM
    的頭像 發表于 06-08 11:30 ?2w次閱讀

    統計信號連接到定時器的兩種模式

    對于這種情況,我們可以將被統計信號連接到定時器的ETR腳,并作為定時器的計數時鐘。開啟定時器更新中斷對溢出次數進行統計,擇時讀取計數器的值和溢出次數即可。這樣既避免了CPU頻繁進中斷而
    的頭像 發表于 06-08 09:18 ?2805次閱讀

    電平轉換電路的兩種設計方法

    電平轉換針對的是個或者個以上的CPU之間的通訊需要進行的一轉換技術,個CPU如果供電電壓
    發表于 08-19 15:33 ?2244次閱讀
    電平<b class='flag-5'>轉換</b>電路的<b class='flag-5'>兩種</b>設計方法

    FPGA設計中這兩種情形該怎么約束

    在FPGA設計中,我們經常會碰到這樣的情形:從快時鐘域到慢時鐘域完成轉換,這時,這個時鐘是同步的。例如:源時鐘是400MHz,數據
    的頭像 發表于 09-07 09:47 ?732次閱讀
    FPGA設計中這<b class='flag-5'>兩種</b>情形該怎么約束

    IC設計:RAM的應用-統計計數

    在進行模塊設計時,我們經常需要統計報文的數量,以供軟件(or 主機)讀取,有些統計僅僅用于debug,有些統計是協議要求,有些統計是為了便于功能實現。
    的頭像 發表于 11-17 17:16 ?847次閱讀
    IC設計:<b class='flag-5'>RAM</b>的應用-<b class='flag-5'>統計</b><b class='flag-5'>計數</b>

    淺析多晶硅錠中錯存在的兩種來源

    根據晶體凝固生長與錯形成、運動與增殖的理論,多晶硅錠中錯存在兩種來源:原生和增殖。
    的頭像 發表于 03-27 11:09 ?729次閱讀
    淺析多晶硅錠中<b class='flag-5'>位</b>錯存在的<b class='flag-5'>兩種</b>來源

    同步計數器和異步計數器的區別

    在數字電子領域中,計數器是一用于統計脈沖信號數量的重要設備。其中,同步計數器和異步計數器是兩種
    的頭像 發表于 05-24 14:36 ?5498次閱讀
    主站蜘蛛池模板: 亚洲va久久久噜噜噜久久男同 | 欧美一区二区三区在线 | 精品少妇一区二区三区视频 | 六九视频在线观看 | 伊人网网 | 免费一级欧美片片线观看 | 成人亚洲精品 | 生活片一级性 | 一级毛片免费毛片一级毛片免费 | 闲人综合 | 婷婷色婷婷| www.亚洲色图.com | 欧美操操操操 | 日韩亚洲人成网站在线播放 | 欧美乱妇高清无乱码 | 手机看片自拍自自拍日韩免费 | 在线二区 | 成人免费午间影院在线观看 | 青草国内精品视频在线观看 | 性孕妇洗澡video国产 | 激情五月激情综合网 | 成人a级特黄毛片 | 色噜噜人体337p人体 | 午夜影院黄色片 | 在线视频网址免费播放 | 一区二区三区四区精品 | 天天干天天操天天摸 | 三级第一页 | 四虎东方va私人影库在线观看 | 天天插插插 | 久久婷婷一区二区三区 | 精品国产自在现线看久久 | 午夜精品免费 | 亚洲婷婷综合中文字幕第一页 | 国产三级黄色毛片 | 成人国产精品高清在线观看 | 国产高清视频在线播放www色 | 666夜色666夜色国产免费看 | 五月婷婷综合基地 | 日本一区二区三区视频在线 | 六月丁香婷婷天天在线 |