超高速快速傅里葉變換(FFT)內(nèi)核是任何實時頻譜監(jiān)測系統(tǒng)的必要組成部分。隨著各頻段無線設(shè)備數(shù)量的迅速增長,系統(tǒng)必須相應(yīng)加強(qiáng)對帶寬的監(jiān)測。因此,這些系統(tǒng)需要以更快的速度將時域轉(zhuǎn)換為頻域,這就要求進(jìn)行更加快速的FFT運算。實際上,大多數(shù)現(xiàn)代監(jiān)測系統(tǒng)往往需要使用并行FFT,實現(xiàn)數(shù)倍于尖端FPGA(例如賽靈思Virtex®-7)最高時鐘頻率的采樣吞吐量,充分發(fā)揮寬帶A/D轉(zhuǎn)換器的優(yōu)勢,其可輕松獲得12.5Gsps甚至更高的采樣率。[1]
同時,隨著通信協(xié)議日益數(shù)據(jù)包化,監(jiān)測信號的占空比在不斷降低。這種情況要求大幅度降低掃描重復(fù)時間,這就需要使用低時延FFT內(nèi)核。并行FFT也能在這方面有所裨益,因為時延會隨著采樣率與時鐘速度之比成比例下降。
鑒于所有這些原因,本文將深入介紹可在運行中配置轉(zhuǎn)換長度的并行FFT(PFFT)設(shè)計,并說明使用并行FFT可實現(xiàn)的吞吐量和利用率。
FFT的硬件并行化
由于在邏輯中直接實現(xiàn)FFT較為復(fù)雜,因此大量硬件設(shè)計人員使用各個廠商提供的現(xiàn)成FFT內(nèi)核。[2]但是,大多數(shù)現(xiàn)成的FFT內(nèi)核使用“流”或者“模塊”架構(gòu),每個時鐘周期只能處理一個或者幾個采樣,這就會把吞吐量限制在FPGA或者ASIC器件所能提供的最大時鐘速度內(nèi)。PFFT能夠提供速度更快的架構(gòu)。PFFT每個時鐘周期可接受多個采樣,進(jìn)行并行處理,并在每個時鐘周期內(nèi)輸出多個采樣。這種架構(gòu)可讓吞吐量達(dá)到器件最大時鐘速度的數(shù)倍,但代價是增大了占位面積并提高了復(fù)雜性。因此,要使用PFFT必須在吞吐量和面積之間進(jìn)行權(quán)衡。典型Virtex-7 FPGA設(shè)計所需的權(quán)衡方案見圖1和表1。
在Virtex-7器件上實現(xiàn)并行FFT的典型性能和面積權(quán)衡
表1 - 面積的增加因硬件乘法器的使用造成。吞吐量提升與占位面積之比略高于線性關(guān)系,總體而言非常適用于將吞吐量增加至數(shù)千兆赫茲采樣率。
從權(quán)衡的角度,可從表中看出一些普遍特點:
1. 隨著并行吞吐量的增加,乘法器(面積)的使用也在增加,但增加的速度稍低(好于線性關(guān)系)。
2. 隨著并行量的增加,系統(tǒng)時鐘速度和時序收斂速度的下降會導(dǎo)致吞吐量的提升低于線性關(guān)系。不過在現(xiàn)代FPGA上這種劣化現(xiàn)象正在減輕。
3. 鑒于上述兩個原因,吞吐量增長與面積增長的比率總體上要高于線性關(guān)系。
4. 時延隨著并行化的增大而降低。
請注意表1中的測量值只適用于特定的對象和FFT配置。這種情況針對的是長度為1024的情況,且具有16位輸入、動態(tài)長度可編程(最小可編程長度為4)和流控制。流控制對頻譜監(jiān)測這樣的應(yīng)用而言非常重要,因為,這類應(yīng)用往往需要在進(jìn)行采集等其它操作時,使用旁通道信息來改變FFT大?。ㄒ愿淖兎直鎺挘┗驎和?/span>FFT的運行。從理論上說,您可以通過在轉(zhuǎn)換操作前插入緩存的方式來實現(xiàn)流控制。但是對于頻譜監(jiān)測這樣的采集驅(qū)動型操作而言,難以提前計算出所需要的緩存大小,這樣就必須采用容量大、速度快的高成本內(nèi)存條。
實現(xiàn)架構(gòu)
雖然實現(xiàn)FFT的方法多種多樣,但并行版本的Radix2多路徑延遲換向器內(nèi)核(Radix2-MDC)[3] 作為一個模塊化方案在這里非常適用,可用于創(chuàng)建在先進(jìn)FPGA器件中具有良好擴(kuò)展能力的可配置并行FFT內(nèi)核。Radix2-MDC是一種用于創(chuàng)建各種長度流水線FFT的典型方法,圖2a是長度為16的FFT。它將輸入序列分解為兩個并行數(shù)據(jù)流,并在數(shù)據(jù)流向前流入蝴蝶算法單元(FFT算法的一個子元)的過程中采用恰當(dāng)?shù)难舆t對數(shù)據(jù)元進(jìn)行調(diào)度,以確保數(shù)據(jù)元之間保持恰當(dāng)?shù)?ldquo;間距”。如圖2b所示,使用較寬的數(shù)據(jù)路徑和矢量運算,Radix2-MDC的并行化就會相對容易。MDC的結(jié)構(gòu)還便于實現(xiàn)流控制和動態(tài)長度重配置,相反,單路徑延遲反饋(SDF)結(jié)構(gòu)因為加入了流控制(停止)信號,會顯著降低最大吞吐量。
圖1 - 并行FFT一次可處理多個采樣,使吞吐量超過目標(biāo)器件可實現(xiàn)的系統(tǒng)時鐘速率??蛇x特性包括流控制、同步和動態(tài)長度可編程功能。
另一個會影響可擴(kuò)展性的因素是復(fù)雜乘法器的選擇,即選擇4乘(4M)還是3乘(3M)結(jié)構(gòu)。選擇3M復(fù)雜乘法器可以減少設(shè)計的占位面積,但代價是會降低時鐘速度。[4]這方面的權(quán)衡也主要依賴于FPGA器件的DSP硬件部分。下面是我們即將介紹的案例研究所使用的最重要的參數(shù)和選擇:
l 長度=1024
l 輸入精度=16位
l 使用4乘5加復(fù)雜乘法器的Radix2-MDC架構(gòu)
l 數(shù)據(jù)路徑精度=每級增加1位(對1024長度為10級/位)
l 包含動態(tài)長度可編程功能
l 啟用可選的流程控制和同步功能