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

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

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

基于FPGA的DSP系統(tǒng)設(shè)計(jì)中流水線技術(shù)的主要應(yīng)用

FPGA設(shè)計(jì)論壇 ? 來源:FPGA設(shè)計(jì)論壇 ? 2024-03-14 15:40 ? 次閱讀

數(shù)字信號(hào)處理(DSP)領(lǐng)域,需要處理的數(shù)據(jù)量很大,并且實(shí)時(shí)性要求很高。傳統(tǒng)的DSP設(shè)計(jì)方法主要有采用固定功能的DSP器件和采用DSP處理器兩種,由于它們靈活性差以及軟件算法在執(zhí)行時(shí)的順序性,限制了它們?cè)诟咚俸蛯?shí)時(shí)系統(tǒng)中的應(yīng)用。隨著深亞微米半導(dǎo)體制造工藝的不斷創(chuàng)新,百萬門可編程器件的不斷推出,為DSP提供了第3種有效的解決方案,即利用FPGA實(shí)現(xiàn)DSP運(yùn)算硬件化。它能夠在集成度、速度和系統(tǒng)功能方面滿足DSP應(yīng)用的需要。

然而在應(yīng)用FPGA進(jìn)行系統(tǒng)設(shè)計(jì)綜合過程中,選擇芯片的運(yùn)行速度優(yōu)化和資源利用優(yōu)化常常是相互矛盾的,對(duì)速度指標(biāo)要求高的設(shè)計(jì)優(yōu)化常常要占用較大的芯片資源,而減小芯片面積的設(shè)計(jì)又需要以降低系統(tǒng)速度為代價(jià)。從FPGA發(fā)展趨勢(shì)和DSP運(yùn)算要求看,系統(tǒng)速度指標(biāo)的意義比面積指標(biāo)更趨重要,需要我們進(jìn)一步深入研究提高芯片的最高工作速度的設(shè)計(jì)策略。我們需要討論一下基于FPGA的DSP系統(tǒng)設(shè)計(jì)中的流水線技術(shù)主要應(yīng)用在哪些方面?

0 流水線技術(shù)基本原理和FPGA結(jié)構(gòu)特征

流水線是一種在時(shí)間上串行,在空間上并行的技術(shù),其基本原理如圖1所示。將整個(gè)電路劃分為若干個(gè)流水線級(jí),流水線每級(jí)之間設(shè)置寄存器鎖存上一級(jí)輸出的數(shù)據(jù);每一級(jí)只完成數(shù)據(jù)處理的一部分;一個(gè)時(shí)鐘周期完成一級(jí)數(shù)據(jù)處理,然后在下一個(gè)時(shí)鐘到來時(shí)將處理后的數(shù)據(jù)傳遞給下一級(jí);第一組數(shù)據(jù)進(jìn)入流水線后,經(jīng)過一個(gè)時(shí)鐘周期傳到第二級(jí),同時(shí)第二組數(shù)據(jù)進(jìn)入第一級(jí),數(shù)據(jù)隊(duì)列依次前進(jìn)。每組數(shù)據(jù)都要經(jīng)過所有的流水級(jí)后才能得到最后的計(jì)算結(jié)果,但是對(duì)整個(gè)流水線而言,每個(gè)時(shí)鐘都能計(jì)算出一組結(jié)果,所以平均計(jì)算一組數(shù)據(jù)只需要一個(gè)時(shí)鐘周期的時(shí)間,這樣就大大提高了數(shù)據(jù)處理速度,電路在單位時(shí)間內(nèi)處理的數(shù)據(jù)量就愈大,即電路的吞吐量就越大,保證整個(gè)系統(tǒng)以較高的頻率工作。

5f66b7c4-e1b4-11ee-a297-92fbcf53809c.jpg

FPGA的結(jié)構(gòu)特點(diǎn)很適合采用流水線設(shè)計(jì),以Altera低成本系列Cyclone II為例,不僅有最多達(dá)68416個(gè)邏輯單元(LE),而且提供嵌入式存儲(chǔ)資源支持各種存儲(chǔ)應(yīng)用和低成本DSP應(yīng)用(如乘法器模塊、PLL)。每個(gè)LE均含有一個(gè)四輸入查找表LUT、一個(gè)可編程觸發(fā)器等。一般設(shè)計(jì)中,這個(gè)觸發(fā)器或者沒有用到,或者用來存儲(chǔ)布線資源。設(shè)計(jì)中可將一個(gè)算術(shù)操作分解成一些小規(guī)模的基本操作配置到LUT中,將進(jìn)位和中間值存儲(chǔ)在寄存器中,在下一個(gè)時(shí)鐘內(nèi)繼續(xù)運(yùn)算。因此,在FPGA中采用流水線技術(shù),只需要極少或者根本不需要額外的資源成本。特別是在需要進(jìn)行大批量重復(fù)運(yùn)算的場(chǎng)合,如數(shù)字信號(hào)處理中的卷積操作、FFT或FIR濾波器設(shè)計(jì),采用流水線技術(shù),可以大大提高系統(tǒng)運(yùn)行速度。

1 FPGA中基本DSP運(yùn)算的流水線設(shè)計(jì)與性能分析

加法器和乘法器是DSP中最基本的運(yùn)算部件。在Quartus軟件平臺(tái)上設(shè)計(jì)加法器或乘法器可以采用原理圖法和VHDL語言兩種基本方法??紤]到參數(shù)可設(shè)置宏模塊(Library of Parameterrized Modtlles-LPM)經(jīng)過嚴(yán)格測(cè)試和優(yōu)化,可以發(fā)揮最佳性能,所以,我們采用原理圖設(shè)計(jì)方式,通過MegaWizard P1ug-In Manager工具引入1pm add sub和1pm mult兩種可設(shè)置流水線的LPM模塊,實(shí)現(xiàn)了不同位寬、不同流水線級(jí)數(shù)的加法器和乘法器設(shè)計(jì),并選用CycloneII系列EP2C5Q208C7器件進(jìn)行了綜合、布局布線、時(shí)序分析和仿真設(shè)計(jì),以比較其性能的變化特征。

1.1 不同流水線級(jí)數(shù)的運(yùn)算器性能比較

對(duì)16位加法器和8位乘法器分別選用不同的流水線級(jí)數(shù)進(jìn)行設(shè)計(jì),比較結(jié)果如表1、2所示。

5f76ccd6-e1b4-11ee-a297-92fbcf53809c.jpg

由比較結(jié)果可見:

(1)采用流水線技術(shù)普遍比不用流水線工作速度顯著提高,體現(xiàn)流水線技術(shù)在高速DSP運(yùn)算上的優(yōu)勢(shì)。

(2)采用流水線技術(shù)在資源耗用(邏輯單元與寄存器個(gè)數(shù)、存儲(chǔ)器位數(shù))上有所增加。

(3)采用不同的流水線級(jí)數(shù)在速度指標(biāo)和資源耗用率上有所不同,流水線級(jí)數(shù)增加,速度指標(biāo)不一定增加,但資源耗用大大增加,所以應(yīng)注意速度和資源耗用指標(biāo)的權(quán)衡。如對(duì)16位加法器,如不用M4K(專用存儲(chǔ)器資源),以采用2級(jí)流水線最佳;如選用M4K,則取6級(jí)流水最佳。8位乘法器則以2級(jí)或6級(jí)流水最佳。對(duì)于其他DSP運(yùn)算,在設(shè)計(jì)時(shí)必須通過反復(fù)比較、設(shè)計(jì),選擇符合系統(tǒng)性能要求的流水線級(jí)數(shù)。

1.2 不同位寬運(yùn)算器相同流水線級(jí)數(shù)的性能比較

對(duì)采用6級(jí)流水的加法器和乘法器的數(shù)據(jù)位寬加以改變,通過綜合仿真,分析其性能指標(biāo)的變化,見表3。

5f85a1b6-e1b4-11ee-a297-92fbcf53809c.jpg

由比較結(jié)果可見:采用同樣的流水線級(jí)數(shù)時(shí),工作速度基本相同,但耗用資源隨輸入位數(shù)的增加而急劇增加,加法器主要是邏輯單元LE個(gè)數(shù)的增加;乘法器則是存儲(chǔ)器位和嵌入式乘法器個(gè)數(shù)的增加。因此,對(duì)于不同的運(yùn)算器電路,應(yīng)根據(jù)需要選用不同型號(hào)的FPGA器件以滿足對(duì)不同資源的需要。如,僅作加法運(yùn)算時(shí),可以選用邏輯單元豐富的FPGA器件女HACEX系列、FLEX等系列;乘加運(yùn)算則需要選擇內(nèi)嵌乘法器模塊和存儲(chǔ)器模塊的Cyclone、CycloneII等系列。

2 基于FPGA實(shí)現(xiàn)DSP流水線設(shè)計(jì)中應(yīng)注意的其他問題

2.1 流水線設(shè)計(jì)方法的選擇

流水線設(shè)計(jì)可分為原理圖和VHDL兩種基本方法。

如前所述,用原理圖輸入法設(shè)計(jì)時(shí),為提高設(shè)計(jì)效率,應(yīng)充分利用帶有LPM_PIPELINE的LPM模塊,并利用QuartusII(提供了40多種LPM函數(shù))編譯器給出的LPM PIPELINE最佳數(shù)值(即最佳流水線級(jí)數(shù)),設(shè)定最佳LPM_PIPEINE值。

在無合適的I PM模塊可用時(shí),需要用VHDL作為設(shè)計(jì)輸入。

流水線技術(shù)的實(shí)質(zhì)就是在適當(dāng)?shù)牡胤郊尤爰拇嫫?,將前面的運(yùn)算結(jié)果或輸入數(shù)據(jù)暫存,并在下一個(gè)時(shí)鐘到來時(shí),將寄存值作為后一級(jí)運(yùn)算的輸入。因此在用VHDL描述流水線時(shí),只需對(duì)不含流水線的運(yùn)算器描述代碼作適當(dāng)改寫,施加必要的設(shè)計(jì)約束即可實(shí)現(xiàn)。一般通過在進(jìn)程中加入WAIT語句或IF_THEN語句來測(cè)試敏感信號(hào)邊沿,實(shí)現(xiàn)寄存器或鎖存器。

如使用WAIT語句,常用的描述形式為:

PROCESS

BEGIN

wait until clk’event and clk=’1’;(上升沿觸發(fā))

reg<=x;

END PROCESS;

其中的x是指輸入到所加流水線寄存器reg中的數(shù)據(jù)。

使用IF_THEN語句,常用描述方式為:

IF(clk’event and clk=’1’) THEN…

另外,用VHDL設(shè)計(jì)輸入時(shí)也可以利用Altera所提供的LPM函數(shù),但必須在設(shè)計(jì)實(shí)體前使LPM庫可現(xiàn),即加入以下語句:

LIBRARY lpm;

USE lpm.lpm_components.ALL;

2.2 流水線的首次延時(shí)和寄存器的觸發(fā)時(shí)間

對(duì)圖1所示系統(tǒng)進(jìn)行延時(shí)分析,圖中組合邏輯的延遲包括兩級(jí),合理設(shè)計(jì)的流水線結(jié)構(gòu)中,其延遲時(shí)間應(yīng)大致相等,設(shè)為2Tpd,插入每級(jí)寄存器組的觸發(fā)時(shí)間為Tco。因此,從輸入到輸出總的等待時(shí)延為:TDl=2(Tpd+Tco),稱為流水線設(shè)計(jì)的首次延時(shí)(First Latency)。對(duì)于連續(xù)的運(yùn)算,由于加上寄存器組后,每級(jí)計(jì)算后的中間結(jié)果都能暫時(shí)保存,下一個(gè)時(shí)鐘到來時(shí),可以直接參與下一級(jí)邏輯運(yùn)算,無需等待從系統(tǒng)的輸入端傳來數(shù)據(jù)。因此,第二個(gè)結(jié)果及以后的運(yùn)算結(jié)果的獲得只需要一個(gè)時(shí)鐘周期,等待的時(shí)延為:TD2=Tpd+TCO。

可見,流水線設(shè)計(jì)的首次延時(shí)與流水線正常延時(shí)相比要長得多。所以在選擇是否采用流水線技術(shù)時(shí),要分析DSP運(yùn)算的頻率。當(dāng)需要進(jìn)行連續(xù)運(yùn)算(即流水線一直是滿負(fù)荷)時(shí),采用流水線可以大大提高數(shù)據(jù)吞吐率;但如果只是偶爾需要加、乘運(yùn)算,由于首次延時(shí)大于非流水線方式下的pin to pin延時(shí),流水線應(yīng)用效果變差,而且還犧牲了額外的芯片資源,所以不推薦使用流水線。在FPGA/CPLD中,器件的延時(shí)Tpd要比寄存器的觸發(fā)時(shí)間TCO長得多,一般分析流水線吞吐延時(shí)可以忽略TCO。但是在高速運(yùn)算場(chǎng)合或流水線技術(shù)較多時(shí)(如視頻信號(hào)處理或無線通信中的數(shù)據(jù)處理),TCO與Tpd相比已不可忽略,必須仔細(xì)選擇流水線的級(jí)數(shù),防止TCO的影響造成流水線的瓶頸。

2.3 嵌入式存儲(chǔ)器塊資源的充分利用

在FPGA器件中,嵌入式存儲(chǔ)器塊(Embedded Memory)是為支持各種存儲(chǔ)器應(yīng)用和DSP應(yīng)用提供的專門資源。如Altera公司FLEX10K系列器件提供了3個(gè)嵌入式陣列塊EAB,每個(gè)EAB提供可靈活設(shè)置的2048位RAM,Cyclone系列提供了數(shù)十個(gè)M4K資源,每個(gè)M4K提供4608位RAM,可單獨(dú)使用,也可組合使用。使用EAB或M4K構(gòu)建運(yùn)算器如乘法器,實(shí)質(zhì)是構(gòu)成乘法查找表,其運(yùn)算速度比采用LPM的乘法器速度更快,只是由于資源有限,只能實(shí)現(xiàn)小型乘法器。如能把基于嵌入式陣列塊的小型乘法器和流水線技術(shù)相結(jié)合,則能夠?qū)崿F(xiàn)運(yùn)算量和速度的進(jìn)一步提高。

2.4 控制流水線和數(shù)據(jù)流水線的劃分

由于數(shù)字信號(hào)處理系統(tǒng)復(fù)雜性的不斷提高,在利用流水線技術(shù)實(shí)現(xiàn)DSP運(yùn)算設(shè)計(jì)時(shí),還有一個(gè)需要考慮的問題就是控制流水線和數(shù)據(jù)流水線的劃分問題。如在高速數(shù)據(jù)采集與處理系統(tǒng)中,采樣數(shù)據(jù)的處理主要涉及DSP運(yùn)算,可以歸入數(shù)據(jù)流水線。各輸入通道傳感器與信號(hào)調(diào)理電路的選通控制、模數(shù)轉(zhuǎn)換、數(shù)據(jù)緩沖與傳送、數(shù)據(jù)運(yùn)算控制則需要主控芯片完成,如圖2所示。高速主控芯片可以選用FPGA器件,采用流水線技術(shù),將數(shù)據(jù)采集與處理過程中的通道選擇、模數(shù)轉(zhuǎn)換、數(shù)據(jù)緩沖與發(fā)送、數(shù)據(jù)運(yùn)算四部分的控制過程設(shè)計(jì)為四級(jí)流水線進(jìn)程,以減少數(shù)據(jù)采集與處理的平均作業(yè)時(shí)間,實(shí)現(xiàn)高速率的數(shù)據(jù)采集。主控芯片的流水線技術(shù)可以歸入控制流水線范疇。

5f987516-e1b4-11ee-a297-92fbcf53809c.jpg

3 結(jié)論

通過實(shí)驗(yàn)對(duì)比,驗(yàn)證了利用流水線技術(shù)可以實(shí)現(xiàn)基于FPGA器件的高速DSP運(yùn)算。在具體運(yùn)算器設(shè)計(jì)中要通過綜合過程,比較和優(yōu)選流水線級(jí)數(shù)以滿足速度和資源優(yōu)化的需要。DSP系統(tǒng)在進(jìn)行流水線設(shè)計(jì)時(shí)要根據(jù)運(yùn)算頻率明確用否流水線,合理劃分控制流水線和數(shù)據(jù)流水線,還要注意合理選用原理圖和VHDL描述,充分利用帶有LPM_PIPELINE的LPM和EAB(M4K)等資源,最大限度提高系統(tǒng)數(shù)據(jù)吞吐率和設(shè)計(jì)效率。




審核編輯:劉清

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

    關(guān)注

    1625

    文章

    21619

    瀏覽量

    601162
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5290

    瀏覽量

    119789
  • 數(shù)字信號(hào)處理

    關(guān)注

    15

    文章

    553

    瀏覽量

    45758
  • DSP系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    12654
  • 觸發(fā)器
    +關(guān)注

    關(guān)注

    14

    文章

    1995

    瀏覽量

    61009

原文標(biāo)題:基于FPGA的DSP系統(tǒng)設(shè)計(jì)中的流水線技術(shù)主要應(yīng)用在哪些方面?

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)教verilog中流水線技術(shù)的用途?

    [table=98%][tr][td]看到很多資料里說“利用流水線的設(shè)計(jì)方法,可大大提高系統(tǒng)的工作速度。”這是一個(gè)教材里很常用的例程:(1)非流水線實(shí)現(xiàn)方式module adder_8bits
    發(fā)表于 09-26 23:29

    基于FPGADSP系統(tǒng)設(shè)計(jì)中的流水線技術(shù)主要應(yīng)用在哪些方面?

    以降低系統(tǒng)速度為代價(jià)。從FPGA發(fā)展趨勢(shì)和DSP運(yùn)算要求看,系統(tǒng)速度指標(biāo)的意義比面積指標(biāo)更趨重要,需要我們進(jìn)一步深入研究提高芯片的最高工作速度的設(shè)計(jì)策略。我們需要討論一下基于
    發(fā)表于 08-02 06:03

    FPGA中的流水線設(shè)計(jì)

    ,cina_reg[3:0]} + {1'b0,cinb_reg[3:0]} + cout1 ,sum1[3:0]} ;endendmodule這里講到的流水線,主要是一種硬件
    發(fā)表于 10-26 14:38

    流水線技術(shù)DSP運(yùn)算中有哪些應(yīng)用?

    流水線技術(shù)基本原理是什么?設(shè)計(jì)DSP流水線應(yīng)注意哪些問題?
    發(fā)表于 04-28 06:10

    現(xiàn)代RISC中的流水線技術(shù)

    流水線技術(shù)是提高系統(tǒng)吞吐率的一項(xiàng)強(qiáng)大的實(shí)現(xiàn)技術(shù),并且不需要大量重復(fù)設(shè)置硬件。20世界60年代早期的一些高端機(jī)器中第一次采用了流水線
    發(fā)表于 03-01 17:52

    FPGA重要設(shè)計(jì)思想及工程應(yīng)用之流水線設(shè)

    FPGA重要設(shè)計(jì)思想及工程應(yīng)用之流水線設(shè) 流水線設(shè)計(jì)是高速電路設(shè)計(jì)中的一 個(gè)常用設(shè)計(jì)手段。如果某個(gè)設(shè)計(jì)的處理流程分為若干步驟,而且整個(gè)數(shù)據(jù)處理 流程分
    發(fā)表于 02-09 11:02 ?52次下載

    基于流水線技術(shù)的并行高效FIR濾波器設(shè)計(jì)

    基于流水線技術(shù)的并行高效FIR濾波器設(shè)計(jì) 基于流水線技術(shù),利用FPGA進(jìn)行并行可重復(fù)配置高精度的FIR濾波器設(shè)計(jì)。使用VHDL可以很方便地
    發(fā)表于 03-28 15:12 ?804次閱讀
    基于<b class='flag-5'>流水線</b><b class='flag-5'>技術(shù)</b>的并行高效FIR濾波器設(shè)計(jì)

    什么是流水線技術(shù)

    什么是流水線技術(shù) 流水線技術(shù)
    發(fā)表于 02-04 10:21 ?3909次閱讀

    電鍍流水線的PLC控制

    電鍍流水線的PLC控制電鍍流水線的PLC控制電鍍流水線的PLC控制
    發(fā)表于 02-17 17:13 ?36次下載

    裝配流水線控制系統(tǒng)設(shè)計(jì)

    裝配流水線控制系統(tǒng)設(shè)計(jì)
    發(fā)表于 12-17 15:26 ?14次下載

    DSP設(shè)計(jì)中的流水線數(shù)據(jù)相關(guān)問題解析

    在航空微電子中心的某預(yù)研項(xiàng)目中,需要開發(fā)設(shè)計(jì)某32位浮點(diǎn)通用數(shù)字信號(hào)處理器(DSP)。本系統(tǒng)控制通路部分的設(shè)計(jì)采用超級(jí)哈佛及五級(jí)流水線結(jié)構(gòu)。本文分析了該流水線的設(shè)計(jì)過程,并對(duì)遇到的數(shù)據(jù)
    發(fā)表于 10-23 10:35 ?0次下載
    <b class='flag-5'>DSP</b>設(shè)計(jì)中的<b class='flag-5'>流水線</b>數(shù)據(jù)相關(guān)問題解析

    FPGA之為什么要進(jìn)行流水線的設(shè)計(jì)

    流水線又稱為裝配線,一種工業(yè)上的生產(chǎn)方式,指每一個(gè)生產(chǎn)單位只專注處理某一個(gè)片段的工作。以提高工作效率及產(chǎn)量;按照流水線的輸送方式大體可以分為:皮帶流水裝配線、板鏈線、倍速鏈、插件線、網(wǎng)帶線、懸掛線及滾筒
    的頭像 發(fā)表于 11-28 07:04 ?3561次閱讀

    各種流水線特點(diǎn)及常見流水線設(shè)計(jì)方式

    按照流水線的輸送方式大體可以分為:皮帶流水裝配線、板鏈線、倍速鏈、插件線、網(wǎng)帶線、懸掛線及滾筒流水線這七類流水線。
    的頭像 發(fā)表于 07-05 11:12 ?7188次閱讀
    各種<b class='flag-5'>流水線</b>特點(diǎn)及常見<b class='flag-5'>流水線</b>設(shè)計(jì)方式

    FPGA中流水線的原因和方式

    本文解釋了流水線及其對(duì) FPGA 的影響,即延遲、吞吐量、工作頻率的變化和資源利用率。
    的頭像 發(fā)表于 05-07 16:51 ?5919次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>中流水線</b>的原因和方式

    什么是流水線 Jenkins的流水線詳解

    jenkins 有 2 種流水線分為聲明式流水線與腳本化流水線,腳本化流水線是 jenkins 舊版本使用的流水線腳本,新版本 Jenkin
    發(fā)表于 05-17 16:57 ?1027次閱讀