當(dāng)前位置:首頁 > 模擬 > 模擬
[導(dǎo)讀]流水線技術(shù)是FPGA設(shè)計速度優(yōu)化的有效方法之一。通過不同流水線級數(shù)和不同位寬的加法器和乘法器綜合數(shù)據(jù)的對比,說明在用FPGA實現(xiàn)數(shù)字信號處理硬件化運(yùn)算中流水線技術(shù)的有效性和選擇方法。對流水線應(yīng)用中設(shè)計方法的選擇、流水線首次延時和寄存器觸發(fā)時間、嵌入式存儲器塊的使用、控制流水線和數(shù)據(jù)流水線的劃分等需要注意的關(guān)鍵問題進(jìn)行了簡要分析。

在數(shù)字信號處理(DSP)領(lǐng)域,需要處理的數(shù)據(jù)量很大,并且實時性要求很高。傳統(tǒng)的DSP設(shè)計方法主要有采用固定功能的DSP器件和采用DSP處理器兩種,由于它們靈活性差以及軟件算法在執(zhí)行時的順序性,限制了它們在高速和實時系統(tǒng)中的應(yīng)用。隨著深亞微米半導(dǎo)體制造工藝的不斷創(chuàng)新,百萬門可編程器件的不斷推出,為DSP提供了第3種有效的解決方案,即利用FPGA實現(xiàn)DSP運(yùn)算硬件化。它能夠在集成度、速度和系統(tǒng)功能方面滿足DSP應(yīng)用的需要。
    然而在應(yīng)用FPGA進(jìn)行系統(tǒng)設(shè)計綜合過程中,選擇芯片的運(yùn)行速度優(yōu)化和資源利用優(yōu)化常常是相互矛盾的,對速度指標(biāo)要求高的設(shè)計優(yōu)化常常要占用較大的芯片資源,而減小芯片面積的設(shè)計又需要以降低系統(tǒng)速度為代價。從FPGA發(fā)展趨勢和DSP運(yùn)算要求看,系統(tǒng)速度指標(biāo)的意義比面積指標(biāo)更趨重要,需要我們進(jìn)一步深入研究提高芯片的最高工作速度的設(shè)計策略。本文討論在基于FPGA的DSP系統(tǒng)設(shè)計中采用流水線技術(shù),充分利用硬件內(nèi)部的并行性,在FPGA有限資源芯片面積上提高單位時間里的數(shù)據(jù)處理能力即數(shù)據(jù)吞吐率(throughput),提高系統(tǒng)的工作速度的具體做法。

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

    流水線是一種在時間上串行,在空間上并行的技術(shù),其基本原理如圖1所示。將整個電路劃分為若干個流水線級,流水線每級之間設(shè)置寄存器鎖存上一級輸出的數(shù)據(jù);每一級只完成數(shù)據(jù)處理的一部分;一個時鐘周期完成一級數(shù)據(jù)處理,然后在下一個時鐘到來時將處理后的數(shù)據(jù)傳遞給下一級;第一組數(shù)據(jù)進(jìn)入流水線后,經(jīng)過一個時鐘周期傳到第二級,同時第二組數(shù)據(jù)進(jìn)入第一級,數(shù)據(jù)隊列依次前進(jìn)。每組數(shù)據(jù)都要經(jīng)過所有的流水級后才能得到最后的計算結(jié)果,但是對整個流水線而言,每個時鐘都能計算出一組結(jié)果,所以平均計算一組數(shù)據(jù)只需要一個時鐘周期的時間,這樣就大大提高了數(shù)據(jù)處理速度,電路在單位時間內(nèi)處理的數(shù)據(jù)量就愈大,即電路的吞吐量就越大,保證整個系統(tǒng)以較高的頻率工作。
    FPGA的結(jié)構(gòu)特點很適合采用流水線設(shè)計,以Altera低成本系列Cyclone II為例,不僅有最多達(dá)68416個邏輯單元(LE),而且提供嵌入式存儲資源支持各種存儲應(yīng)用和低成本DSP應(yīng)用(如乘法器模塊、PLL)。每個LE均含有一個四輸入查找表LUT、一個可編程觸發(fā)器等。一般設(shè)計中,這個觸發(fā)器或者沒有用到,或者用來存儲布線資源。設(shè)計中可將一個算術(shù)操作分解成一些小規(guī)模的基本操作配置到LUT中,將進(jìn)位和中間值存儲在寄存器中,在下一個時鐘內(nèi)繼續(xù)運(yùn)算。因此,在FPGA中采用流水線技術(shù),只需要極少或者根本不需要額外的資源成本。特別是在需要進(jìn)行大批量重復(fù)運(yùn)算的場合,如數(shù)字信號處理中的卷積操作、FFT或FIR濾波器設(shè)計,采用流水線技術(shù),可以大大提高系統(tǒng)運(yùn)行速度。

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

    由比較結(jié)果可見:
    (1)采用流水線技術(shù)普遍比不用流水線工作速度顯著提高,體現(xiàn)流水線技術(shù)在高速DSP運(yùn)算上的優(yōu)勢。
    (2)采用流水線技術(shù)在資源耗用(邏輯單元與寄存器個數(shù)、存儲器位數(shù))上有所增加。
    (3)采用不同的流水線級數(shù)在速度指標(biāo)和資源耗用率上有所不同,流水線級數(shù)增加,速度指標(biāo)不一定增加,但資源耗用大大增加,所以應(yīng)注意速度和資源耗用指標(biāo)的權(quán)衡。如對16位加法器,如不用M4K(專用存儲器資源),以采用2級流水線最佳;如選用M4K,則取6級流水最佳。8位乘法器則以2級或6級流水最佳。對于其他DSP運(yùn)算,在設(shè)計時必須通過反復(fù)比較、設(shè)計,選擇符合系統(tǒng)性能要求的流水線級數(shù)。
1.2 不同位寬運(yùn)算器相同流水線級數(shù)的性能比較
   
對采用6級流水的加法器和乘法器的數(shù)據(jù)位寬加以改變,通過綜合仿真,分析其性能指標(biāo)的變化,見表3。

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

2 基于FPGA實現(xiàn)DSP流水線設(shè)計中應(yīng)注意的其他問題
2.1 流水線設(shè)計方法的選擇
   
流水線設(shè)計可分為原理圖和VHDL兩種基本方法。
    如前所述,用原理圖輸入法設(shè)計時,為提高設(shè)計效率,應(yīng)充分利用帶有LPM_PIPELINE的LPM模塊,并利用QuartusII(提供了40多種LPM函數(shù))編譯器給出的LPM PIPELINE最佳數(shù)值(即最佳流水線級數(shù)),設(shè)定最佳LPM_PIPEINE值。 
    在無合適的I PM模塊可用時,需要用VHDL作為設(shè)計輸入。
    流水線技術(shù)的實質(zhì)就是在適當(dāng)?shù)牡胤郊尤爰拇嫫鳎瑢⑶懊娴倪\(yùn)算結(jié)果或輸入數(shù)據(jù)暫存,并在下一個時鐘到來時,將寄存值作為后一級運(yùn)算的輸入。因此在用VHDL描述流水線時,只需對不含流水線的運(yùn)算器描述代碼作適當(dāng)改寫,施加必要的設(shè)計約束即可實現(xiàn)。一般通過在進(jìn)程中加入WAIT語句或IF_THEN語句來測試敏感信號邊沿,實現(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è)計輸入時也可以利用Altera所提供的LPM函數(shù),但必須在設(shè)計實體前使LPM庫可現(xiàn),即加入以下語句:
    LIBRARY lpm;
    USE lpm.lpm_components.ALL;
2.2 流水線的首次延時和寄存器的觸發(fā)時間
   
對圖1所示系統(tǒng)進(jìn)行延時分析,圖中組合邏輯的延遲包括兩級,合理設(shè)計的流水線結(jié)構(gòu)中,其延遲時間應(yīng)大致相等,設(shè)為2Tpd,插入每級寄存器組的觸發(fā)時間為Tco。因此,從輸入到輸出總的等待時延為:TDl=2(Tpd+Tco),稱為流水線設(shè)計的首次延時(First Latency)。對于連續(xù)的運(yùn)算,由于加上寄存器組后,每級計算后的中間結(jié)果都能暫時保存,下一個時鐘到來時,可以直接參與下一級邏輯運(yùn)算,無需等待從系統(tǒng)的輸入端傳來數(shù)據(jù)。因此,第二個結(jié)果及以后的運(yùn)算結(jié)果的獲得只需要一個時鐘周期,等待的時延為:TD2=Tpd+TCO。
    可見,流水線設(shè)計的首次延時與流水線正常延時相比要長得多。所以在選擇是否采用流水線技術(shù)時,要分析DSP運(yùn)算的頻率。當(dāng)需要進(jìn)行連續(xù)運(yùn)算(即流水線一直是滿負(fù)荷)時,采用流水線可以大大提高數(shù)據(jù)吞吐率;但如果只是偶爾需要加、乘運(yùn)算,由于首次延時大于非流水線方式下的pin to pin延時,流水線應(yīng)用效果變差,而且還犧牲了額外的芯片資源,所以不推薦使用流水線。在FPGA/CPLD中,器件的延時Tpd要比寄存器的觸發(fā)時間TCO長得多,一般分析流水線吞吐延時可以忽略TCO。但是在高速運(yùn)算場合或流水線技術(shù)較多時(如視頻信號處理或無線通信中的數(shù)據(jù)處理),TCO與Tpd相比已不可忽略,必須仔細(xì)選擇流水線的級數(shù),防止TCO的影響造成流水線的瓶頸。
2.3 嵌入式存儲器塊資源的充分利用
   
在FPGA器件中,嵌入式存儲器塊(Embedded Memory)是為支持各種存儲器應(yīng)用和DSP應(yīng)用提供的專門資源。如Altera公司FLEX10K系列器件提供了3個嵌入式陣列塊EAB,每個EAB提供可靈活設(shè)置的2048位RAM,Cyclone系列提供了數(shù)十個M4K資源,每個M4K提供4608位RAM,可單獨使用,也可組合使用。使用EAB或M4K構(gòu)建運(yùn)算器如乘法器,實質(zhì)是構(gòu)成乘法查找表,其運(yùn)算速度比采用LPM的乘法器速度更快,只是由于資源有限,只能實現(xiàn)小型乘法器。如能把基于嵌入式陣列塊的小型乘法器和流水線技術(shù)相結(jié)合,則能夠?qū)崿F(xiàn)運(yùn)算量和速度的進(jìn)一步提高。
2.4 控制流水線和數(shù)據(jù)流水線的劃分
   
由于數(shù)字信號處理系統(tǒng)復(fù)雜性的不斷提高,在利用流水線技術(shù)實現(xiàn)DSP運(yùn)算設(shè)計時,還有一個需要考慮的問題就是控制流水線和數(shù)據(jù)流水線的劃分問題。如在高速數(shù)據(jù)采集與處理系統(tǒng)中,采樣數(shù)據(jù)的處理主要涉及DSP運(yùn)算,可以歸入數(shù)據(jù)流水線。各輸入通道傳感器與信號調(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ìn)程,以減少數(shù)據(jù)采集與處理的平均作業(yè)時間,實現(xiàn)高速率的數(shù)據(jù)采集。主控芯片的流水線技術(shù)可以歸入控制流水線范疇。

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉