超高速快速傅里葉變換(FFT)內(nèi)核是任何實(shí)時頻譜監(jiān)測系統(tǒng)的必要組成部分,。隨著各頻段無線設(shè)備數(shù)量的迅速增長,系統(tǒng)必須相應(yīng)加強(qiáng)對帶寬的監(jiān)測,。因此,,這些系統(tǒng)需要以更快的速度將時域轉(zhuǎn)換為頻域,這就要求進(jìn)行更加快速的FFT運(yùn)算,。實(shí)際上,,大多數(shù)現(xiàn)代監(jiān)測系統(tǒng)往往需要使用并行FFT,,實(shí)現(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也能在這方面有所裨益,,因?yàn)闀r延會隨著采樣率與時鐘速度之比成比例下降。
鑒于所有這些原因,,本文將深入介紹可在運(yùn)行中配置轉(zhuǎn)換長度的并行FFT(PFFT)設(shè)計(jì),,并說明使用并行FFT可實(shí)現(xiàn)的吞吐量和利用率。
FFT的硬件并行化
由于在邏輯中直接實(shí)現(xiàn)FFT較為復(fù)雜,,因此大量硬件設(shè)計(jì)人員使用各個廠商提供的現(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ù)倍,,但代價(jià)是增大了占位面積并提高了復(fù)雜性。因此,,要使用PFFT必須在吞吐量和面積之間進(jìn)行權(quán)衡,。典型Virtex-7 FPGA設(shè)計(jì)所需的權(quán)衡方案見圖1和表1。
在Virtex-7器件上實(shí)現(xiàn)并行FFT的典型性能和面積權(quán)衡
表1 - 面積的增加因硬件乘法器的使用造成,。吞吐量提升與占位面積之比略高于線性關(guān)系,,總體而言非常適用于將吞吐量增加至數(shù)千兆赫茲采樣率。
從權(quán)衡的角度,,可從表中看出一些普遍特點(diǎ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àn)椋@類應(yīng)用往往需要在進(jìn)行采集等其它操作時,,使用旁通道信息來改變FFT大?。ㄒ愿淖兎直鎺挘┗驎和?/span>FFT的運(yùn)行。從理論上說,,您可以通過在轉(zhuǎn)換操作前插入緩存的方式來實(shí)現(xiàn)流控制,。但是對于頻譜監(jiān)測這樣的采集驅(qū)動型操作而言,難以提前計(jì)算出所需要的緩存大小,,這樣就必須采用容量大,、速度快的高成本內(nèi)存條。
實(shí)現(xiàn)架構(gòu)
雖然實(shí)現(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ù)路徑和矢量運(yùn)算,,Radix2-MDC的并行化就會相對容易。MDC的結(jié)構(gòu)還便于實(shí)現(xiàn)流控制和動態(tài)長度重配置,,相反,,單路徑延遲反饋(SDF)結(jié)構(gòu)因?yàn)榧尤肓肆骺刂疲ㄍV梗┬盘枺瑫@著降低最大吞吐量,。
圖1 - 并行FFT一次可處理多個采樣,,使吞吐量超過目標(biāo)器件可實(shí)現(xiàn)的系統(tǒng)時鐘速率??蛇x特性包括流控制,、同步和動態(tài)長度可編程功能。
另一個會影響可擴(kuò)展性的因素是復(fù)雜乘法器的選擇,,即選擇4乘(4M)還是3乘(3M)結(jié)構(gòu),。選擇3M復(fù)雜乘法器可以減少設(shè)計(jì)的占位面積,,但代價(jià)是會降低時鐘速度。[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 啟用可選的流程控制和同步功能