流水線技術在基于FPGA的DSP運算中的應用研究
在數(shù)字信號處理(DSP)領域,需要處理的數(shù)據(jù)量很大,并且實時性要求很高。傳統(tǒng)的DSP設計方法主要有采用固定功能的DSP器件和采用DSP處理器兩種,由于它們靈活性差以及軟件算法在執(zhí)行時的順序性,限制了它們在高速和實時系統(tǒng)中的應用。隨著深亞微米半導體制造工藝的不斷創(chuàng)新,百萬門可編程器件的不斷推出,為DSP提供了第3種有效的解決方案,即利用FPGA實現(xiàn)DSP運算硬件化。它能夠在集成度、速度和系統(tǒng)功能方面滿足DSP應用的需要。
然而在應用FPGA進行系統(tǒng)設計綜合過程中,選擇芯片的運行速度優(yōu)化和資源利用優(yōu)化常常是相互矛盾的,對速度指標要求高的設計優(yōu)化常常要占用較大的芯片資源,而減小芯片面積的設計又需要以降低系統(tǒng)速度為代價。從FPGA發(fā)展趨勢和DSP運算要求看,系統(tǒng)速度指標的意義比面積指標更趨重要,需要我們進一步深入研究提高芯片的最高工作速度的設計策略。本文討論在基于FPGA的DSP系統(tǒng)設計中采用流水線技術,充分利用硬件內(nèi)部的并行性,在FPGA有限資源芯片面積上提高單位時間里的數(shù)據(jù)處理能力即數(shù)據(jù)吞吐率(throughput),提高系統(tǒng)的工作速度的具體做法。
0 流水線技術基本原理和FPGA結構特征
流水線是一種在時間上串行,在空間上并行的技術,其基本原理如圖1所示。將整個電路劃分為若干個流水線級,流水線每級之間設置寄存器鎖存上一級輸出的數(shù)據(jù);每一級只完成數(shù)據(jù)處理的一部分;一個時鐘周期完成一級數(shù)據(jù)處理,然后在下一個時鐘到來時將處理后的數(shù)據(jù)傳遞給下一級;第一組數(shù)據(jù)進入流水線后,經(jīng)過一個時鐘周期傳到第二級,同時第二組數(shù)據(jù)進入第一級,數(shù)據(jù)隊列依次前進。每組數(shù)據(jù)都要經(jīng)過所有的流水級后才能得到最后的計算結果,但是對整個流水線而言,每個時鐘都能計算出一組結果,所以平均計算一組數(shù)據(jù)只需要一個時鐘周期的時間,這樣就大大提高了數(shù)據(jù)處理速度,電路在單位時間內(nèi)處理的數(shù)據(jù)量就愈大,即電路的吞吐量就越大,保證整個系統(tǒng)以較高的頻率工作。
FPGA的結構特點很適合采用流水線設計,以Altera低成本系列Cyclone II為例,不僅有最多達68416個邏輯單元(LE),而且提供嵌入式存儲資源支持各種存儲應用和低成本DSP應用(如乘法器模塊、PLL)。每個LE均含有一個四輸入查找表LUT、一個可編程觸發(fā)器等。一般設計中,這個觸發(fā)器或者沒有用到,或者用來存儲布線資源。設計中可將一個算術操作分解成一些小規(guī)模的基本操作配置到LUT中,將進位和中間值存儲在寄存器中,在下一個時鐘內(nèi)繼續(xù)運算。因此,在FPGA中采用流水線技術,只需要極少或者根本不需要額外的資源成本。特別是在需要進行大批量重復運算的場合,如數(shù)字信號處理中的卷積操作、FFT或FIR濾波器設計,采用流水線技術,可以大大提高系統(tǒng)運行速度。
1 FPGA中基本DSP運算的流水線設計與性能分析
加法器和乘法器是DSP中最基本的運算部件。在Quartus軟件平臺上設計加法器或乘法器可以采用原理圖法和VHDL語言兩種基本方法。考慮到參數(shù)可設置宏模塊(Library of Parameterrized Modtlles-LPM)經(jīng)過嚴格測試和優(yōu)化,可以發(fā)揮最佳性能,所以,我們采用原理圖設計方式,通過MegaWizard P1ug-In Manager工具引入1pm add sub和1pm mult兩種可設置流水線的LPM模塊,實現(xiàn)了不同位寬、不同流水線級數(shù)的加法器和乘法器設計,并選用CycloneII系列EP2C5Q208C7器件進行了綜合、布局布線、時序分析和仿真設計,以比較其性能的變化特征。
1.1 不同流水線級數(shù)的運算器性能比較
對16位加法器和8位乘法器分別選用不同的流水線級數(shù)進行設計,比較結果如表1、2所示。
由比較結果可見:
(1)采用流水線技術普遍比不用流水線工作速度顯著提高,體現(xiàn)流水線技術在高速DSP運算上的優(yōu)勢。
(2)采用流水線技術在資源耗用(邏輯單元與寄存器個數(shù)、存儲器位數(shù))上有所增加。
(3)采用不同的流水線級數(shù)在速度指標和資源耗用率上有所不同,流水線級數(shù)增加,速度指標不一定增加,但資源耗用大大增加,所以應注意速度和資源耗用指標的權衡。如對16位加法器,如不用M4K(專用存儲器資源),以采用2級流水線最佳;如選用M4K,則取6級流水最佳。8位乘法器則以2級或6級流水最佳。對于其他DSP運算,在設計時必須通過反復比較、設計,選擇符合系統(tǒng)性能要求的流水線級數(shù)。
1.2 不同位寬運算器相同流水線級數(shù)的性能比較
對采用6級流水的加法器和乘法器的數(shù)據(jù)位寬加以改變,通過綜合仿真,分析其性能指標的變化,見表3。
由比較結果可見:采用同樣的流水線級數(shù)時,工作速度基本相同,但耗用資源隨輸入位數(shù)的增加而急劇增加,加法器主要是邏輯單元LE個數(shù)的增加;乘法器則是存儲器位和嵌入式乘法器個數(shù)的增加。因此,對于不同的運算器電路,應根據(jù)需要選用不同型號的FPGA器件以滿足對不同資源的需要。如,僅作加法運算時,可以選用邏輯單元豐富的FPGA器件女HACEX系列、FLEX等系列;乘加運算則需要選擇內(nèi)嵌乘法器模塊和存儲器模塊的Cyclone、CycloneII等系列。
評論