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

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

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

FPGA設(shè)計(jì)中幾種常見(jiàn)的反壓方式

CHANBAEK ? 來(lái)源: FPGA的現(xiàn)今未 ? 作者: FPGA的現(xiàn)今未 ? 2023-09-06 17:34 ? 次閱讀

FPGA的設(shè)計(jì)中,一個(gè)前級(jí)模塊A向下游模塊B發(fā)送數(shù)據(jù),如下圖所示,當(dāng)下游模塊B不能及時(shí)處理數(shù)據(jù)時(shí),希望前級(jí)模塊A停止發(fā)送數(shù)據(jù),這個(gè)時(shí)候模塊B會(huì)通過(guò)一個(gè)反壓信號(hào)給到模塊A,告訴模塊A,不要再給我發(fā)數(shù)據(jù)了。這就是一種最常見(jiàn),也是用得最普遍的一種發(fā)壓場(chǎng)景。

圖片

那究竟要如何設(shè)計(jì)反壓呢?看似簡(jiǎn)單,其實(shí)也不簡(jiǎn)單,處理不好的話對(duì)系統(tǒng)的穩(wěn)定性和性能會(huì)帶來(lái)一定的影響。本文介紹幾種常見(jiàn)的反壓方式,并給出他們的一些優(yōu)缺點(diǎn)。

立即反壓

所謂立即反壓,就是指下游模塊給出反壓后,前級(jí)模塊立即停止發(fā)包,如下圖所示:

圖片

一共有7個(gè)數(shù)據(jù),但是真正能被下游模塊接收的數(shù)據(jù)只有6個(gè),其中數(shù)據(jù)E在發(fā)送的時(shí)候因?yàn)閞eady無(wú)效,所以不能被接收。如果對(duì)axi_stream接口比較了解的話,可以看出,這就是axi_stream接口,只有在valid和ready同時(shí)有效的時(shí)候的數(shù)據(jù)才能被接收。

它的優(yōu)點(diǎn)就是能立即反壓,尤其是下游模塊沒(méi)有緩存的時(shí)候。另外就是這種接口是標(biāo)準(zhǔn)接口,和外部模塊對(duì)接的時(shí)候不會(huì)有歧義。缺點(diǎn)就是因?yàn)樾枰⒓捶磯海M合邏輯處理比較簡(jiǎn)單,如果用時(shí)序邏輯,控制起來(lái)不是很方便。

將滿(mǎn)反壓

如果下游接收模塊有緩存,一般是fifo或者ram。當(dāng)緩存快要滿(mǎn)的時(shí)候,會(huì)給前級(jí)模塊反壓,這就是將滿(mǎn)反壓。如下圖所示:

圖片

這種反壓的特點(diǎn)就是下游模塊給出反壓信號(hào)后,前級(jí)模塊還可以繼續(xù)寫(xiě)入一些數(shù)據(jù),一般不超過(guò)5拍。上圖中,雖然afull = 1了,但是前級(jí)模塊還會(huì)繼續(xù)寫(xiě)入2個(gè)數(shù)據(jù),數(shù)據(jù)F和數(shù)據(jù)G。同時(shí)下游模塊也要控制好緩存的水限,在給出反壓信號(hào)后還要預(yù)留一定的緩存空間,具體多少,需要和前級(jí)模塊配合好,筆者的經(jīng)驗(yàn),一般預(yù)留8個(gè)以上。

如下圖所示緩存的深度為128,當(dāng)數(shù)據(jù)寫(xiě)滿(mǎn)100以后給出反壓,此時(shí)緩存還可以寫(xiě)入28個(gè)數(shù)據(jù),該緩存的水限就為100。

圖片

這種將滿(mǎn)反壓的優(yōu)點(diǎn)就是處理非常方便,只要下游模塊不反壓,就可以不停地寫(xiě)入數(shù)據(jù),控制非常方便,另外下游模塊緩存的深度和前級(jí)模塊無(wú)關(guān),一般用于項(xiàng)目?jī)?nèi)部模塊之間。至于缺點(diǎn),如果一定要找一個(gè)缺點(diǎn),那就是下游模塊必須有緩存,而立即反壓可以不需要。

另外,對(duì)于緩存,到底是用ram還是用fifo,應(yīng)該根據(jù)場(chǎng)景來(lái)確定,通常情況下用fifo可以滿(mǎn)足大部分的應(yīng)用場(chǎng)景。

整包反壓

上述將滿(mǎn)反壓,如果反壓頻繁的話,會(huì)給前級(jí)模塊的處理帶來(lái)一點(diǎn)點(diǎn)的復(fù)雜度,為了簡(jiǎn)化這種反壓帶來(lái)的影響,還有一種叫整包反壓。和將滿(mǎn)反壓相比,就是下游模塊給出反壓信號(hào)后,前級(jí)模塊會(huì)把當(dāng)前的數(shù)據(jù)報(bào)文全部發(fā)送給下游模塊,如下圖所示:

圖片

當(dāng)數(shù)據(jù)在傳輸?shù)倪^(guò)程中,如果下游模塊給出反壓使得afull = 1,前級(jí)模塊會(huì)繼續(xù)發(fā)送報(bào)文,直到報(bào)文的eop為止。這種場(chǎng)景下,首先需要約定報(bào)文的最大長(zhǎng)度,假定為MAX_LEN,那么對(duì)下游的緩存就會(huì)有要求,其容量至少為MAX_LEN,考慮到流水性能,其容量要為2*MAX_LEN,同時(shí)水限的設(shè)置要保證反壓后的空間至少能存放一個(gè)報(bào)文。

這種方案的優(yōu)點(diǎn)是控制簡(jiǎn)單,只要開(kāi)始發(fā)送的時(shí)候不反壓,就可以把當(dāng)前的報(bào)文全部發(fā)送完。缺點(diǎn)就是當(dāng)約定的MAX_LEN比較大時(shí),需要較多的緩存開(kāi)銷(xiāo)。

小結(jié)

反壓是FPGA設(shè)計(jì)中的一個(gè)最基本且重要的話題,在實(shí)際應(yīng)用中,模塊與模塊之間的反壓要做好“逐級(jí)反壓”,當(dāng)反壓點(diǎn)與緩存較遠(yuǎn)的時(shí)候,尤其要考慮在途的數(shù)據(jù),反壓后的空間要能緩存住在途數(shù)據(jù)。除了上述的幾種方案外,請(qǐng)求應(yīng)答接口某種意義上也是一種反壓的設(shè)計(jì),只是性能較低罷了,一般不建議采用。

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

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601241
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2655

    瀏覽量

    47293
  • FPGA設(shè)計(jì)
    +關(guān)注

    關(guān)注

    9

    文章

    428

    瀏覽量

    26465
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    常見(jiàn)的虛擬中性點(diǎn)的重構(gòu)方式有哪幾種

    什么是虛擬中性點(diǎn)?常見(jiàn)的虛擬中性點(diǎn)的重構(gòu)方式有哪幾種?電阻網(wǎng)絡(luò)的虛擬中點(diǎn)與電機(jī)中點(diǎn)有何不同?直流母線虛擬中性點(diǎn)與電機(jī)中點(diǎn)有何不同?
    發(fā)表于 08-03 07:41

    伺服系統(tǒng)控制常見(jiàn)的加減速方式有哪幾種

    伺服系統(tǒng)控制常見(jiàn)的加減速方式幾種?分別是哪些?
    發(fā)表于 09-30 06:38

    電路保護(hù)的幾種常見(jiàn)類(lèi)型

    電路保護(hù)的幾種常見(jiàn)類(lèi)型1.過(guò)流保護(hù)2.過(guò)保護(hù)(電子通訊設(shè)備)3.過(guò)溫保護(hù)4.過(guò)溫過(guò)流保護(hù)5.過(guò)流過(guò)保護(hù)(處研發(fā)階段)過(guò)保護(hù)器件的選型1
    發(fā)表于 01-14 09:09

    TFT液晶屏控制常見(jiàn)方式有哪幾種?

    TFT液晶屏控制常見(jiàn)方式有哪幾種?
    發(fā)表于 02-11 06:24

    單片機(jī)常見(jiàn)的復(fù)位方式有哪幾種???

    單片機(jī)常見(jiàn)的復(fù)位方式有哪幾種???
    發(fā)表于 01-02 20:17

    缸啟動(dòng)方式

    缸啟動(dòng)是指采用再熱蒸汽進(jìn)入汽輪機(jī)缸后,將汽輪機(jī)沖轉(zhuǎn)的啟動(dòng)方式。以ALSTOM公司汽輪機(jī)為例,
    發(fā)表于 02-02 14:32 ?11次下載

    電池常見(jiàn)的充電方式有哪幾種?

    電池常見(jiàn)的充電方式有哪幾種? 1. 流充電:整個(gè)充電過(guò)程個(gè)中充電電流維持一定值不變 , 這種方法最常見(jiàn)。 2. 恒壓充電:充電過(guò)程充電
    發(fā)表于 10-21 11:00 ?2034次閱讀

    理解FPGA穩(wěn)態(tài)

    理解FPGA穩(wěn)態(tài) ? 本白皮書(shū)介紹FPGA 穩(wěn)態(tài),為什么會(huì)出現(xiàn)這一現(xiàn)象,它是怎樣導(dǎo)
    發(fā)表于 02-04 11:01 ?784次閱讀
    理解<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的<b class='flag-5'>壓</b>穩(wěn)態(tài)

    細(xì)數(shù)幾種常見(jiàn)的自動(dòng)駕駛的機(jī)器學(xué)習(xí)算法

    電子發(fā)燒友網(wǎng)站提供《細(xì)數(shù)幾種常見(jiàn)的自動(dòng)駕駛的機(jī)器學(xué)習(xí)算法.docx》資料免費(fèi)下載
    發(fā)表于 09-22 14:13 ?2次下載

    熔絲FPGA配置和編程方法

    熔絲FPGA制造困難且多用在特殊用途領(lǐng)域,因此有關(guān)其位流文件的研究很少.本文首先介紹了熔絲FPGAFPGA CAD軟件流程, 接著描
    發(fā)表于 11-18 11:19 ?1.1w次閱讀
    <b class='flag-5'>反</b>熔絲<b class='flag-5'>FPGA</b>配置和編程方法

    FPGA配置方式的特點(diǎn)與區(qū)別(1)

    FPGA的配置方式有以下幾種,JTAG,AS,PS,AP,F(xiàn)PP等幾種。
    的頭像 發(fā)表于 11-25 07:02 ?5144次閱讀

    木馬病毒常見(jiàn)的入侵方式都有哪些

    木馬病毒是比較常見(jiàn),需要提防的病毒,它的入侵方式也是有好幾種,今天小編就來(lái)講講,木馬病毒常見(jiàn)的入侵方式。
    發(fā)表于 10-14 17:05 ?6481次閱讀

    淺談FPGA單獨(dú)下載固化文件的幾種方式

    對(duì)于FPGA工程師除了日常的調(diào)試工作以外,批量生產(chǎn)時(shí)候指導(dǎo)生成人員下載我們生成的固化文件也是我們的工作,所以今天講一講FPGA單獨(dú)下載的幾種方式。
    發(fā)表于 01-16 09:34 ?1865次閱讀

    SiC SBD的高耐壓()特性

    SiC SBD的高耐壓()特性
    的頭像 發(fā)表于 12-13 15:27 ?558次閱讀
    SiC SBD的高耐壓(<b class='flag-5'>反</b><b class='flag-5'>壓</b>)特性

    bnc母頭法蘭的安裝幾種方式

      德索工程師說(shuō)道BNC母頭法蘭的安裝方式通常根據(jù)具體的應(yīng)用場(chǎng)景和需求有所不同,但一般可以分為以下幾種常見(jiàn)方式:   這種安裝方式簡(jiǎn)單快捷,不需要復(fù)雜的焊接工藝。   通過(guò)
    的頭像 發(fā)表于 08-17 09:26 ?328次閱讀
    bnc母頭法蘭的安裝<b class='flag-5'>幾種</b><b class='flag-5'>方式</b>