流水線技術(shù)在基于FPGA的DSP運(yùn)算中的應(yīng)用
在數(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)新,百萬(wàn)門可編程器件的不斷推出,為DSP提供了第3種有效的解決方案,即利用FPGA實(shí)現(xiàn)DSP運(yùn)算硬件化。它能夠在集成度、速度和系統(tǒng)功能方面滿足DSP應(yīng)用的需要。
然而在應(yīng)用FPGA進(jìn)行系統(tǒng)設(shè)計(jì)綜合過(guò)程中,選擇芯片的運(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ù),充分利用硬件內(nèi)部的并行性,在FPGA有限資源芯片面積上提高單位時(shí)間里的數(shù)據(jù)處理能力即數(shù)據(jù)吞吐率(throughput),提高系統(tǒ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í)鐘到來(lái)時(shí)將處理后的數(shù)據(jù)傳遞給下一級(jí);第一組數(shù)據(jù)進(jìn)入流水線后,經(jīng)過(guò)一個(gè)時(shí)鐘周期傳到第二級(jí),同時(shí)第二組數(shù)據(jù)進(jìn)入第一級(jí),數(shù)據(jù)隊(duì)列依次前進(jìn)。每組數(shù)據(jù)都要經(jīng)過(guò)所有的流水級(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)以較高的頻率工作。
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ā)器或者沒(méi)有用到,或者用來(lái)存儲(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語(yǔ)言兩種基本方法??紤]到參數(shù)可設(shè)置宏模塊(Library of Parameterrized Modtlles-LPM)經(jīng)過(guò)嚴(yán)格測(cè)試和優(yōu)化,可以發(fā)揮最佳性能,所以,我們采用原理圖設(shè)計(jì)方式,通過(guò)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所示。
由比較結(jié)果可見(jiàn):
(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í)必須通過(guò)反復(fù)比較、設(shè)計(jì),選擇符合系統(tǒng)性能要求的流水線級(jí)數(shù)。
1.2 不同位寬運(yùn)算器相同流水線級(jí)數(shù)的性能比較
對(duì)采用6級(jí)流水的加法器和乘法器的數(shù)據(jù)位寬加以改變,通過(guò)綜合仿真,分析其性能指標(biāo)的變化,見(jiàn)表3。
評(píng)論