基于WiMax及其派生標準的新興寬帶無線協(xié)議需要越來越高的吞吐量和數(shù)據(jù)速率。這些協(xié)議提出的快速芯片速率和數(shù)字射頻處理可以在使用FPGA方案的硬件上得到最佳的實現(xiàn)。
FPGA非常適合作為高性能、高性價比的解決方案來實現(xiàn)這些物理層協(xié)議中的數(shù)字功能,因為它們包括以下豐富的資源:
1.DSP模塊,可以用來實現(xiàn)各種FIR濾波和FFT/IFFT操作所要求的乘法器和加法器/累加器功能;
2. SERDES收發(fā)器,可以支持無線前端與基帶數(shù)字板之間的CPRI和OBSAI接口;
3. 重要的FPGA嵌入式RAM塊存儲器(EBR),可以用來存儲濾波器系數(shù),執(zhí)行塊交錯以及實現(xiàn)FEC解碼(Turbo、維特比、Reed-Solomon等);
4. 高速LVDS I/O,分別支持到DAC和來自ADC的寬并行接口。這些轉(zhuǎn)換器定義了射頻/模擬功能和廉價數(shù)字基帶邏輯之間的界限。接口的速率越高,低成本FPGA解決方案便能集成更多的數(shù)字上變頻/數(shù)字下變頻功能。
本文重點討論第一種資源,即DSP乘法模塊。通過減少和優(yōu)化DSP乘法模塊在FFT和FIR中的實現(xiàn),設(shè)計師可以在盡量減少資源使用的條件下滿足吞吐量要求,從而允許用戶使用最具性價比的現(xiàn)成FPGA器件。下面對這四種乘法器節(jié)省技術(shù)進行介紹。
用于WiMaxOFDM功能的高效復(fù)數(shù)乘法
WiMax系統(tǒng)設(shè)計的一個重要特征是支持正交頻分復(fù)用(OFDM)。FPGA使得分別使用IFFT和FFT在離散時間內(nèi)實現(xiàn)OFDM發(fā)送器和接收器變得特別容易。諸如802.16a等協(xié)議需要256樣點的FFT。而802.16e這些協(xié)議要求多種FFT樣點,或者可以靈活調(diào)整的FFT樣點以適應(yīng)動態(tài)信道和帶寬要求(可擴展OFDMA)。
復(fù)數(shù)乘法
在執(zhí)行256和1024樣點FFT時,可通過Radix-4結(jié)構(gòu)獲得乘法器的最高效使用。FFT算法通過復(fù)用4樣點離散傅里葉變換(DFT)蝶形結(jié)構(gòu)進行分解。例如,一個16點的FFT可以通過按時間抽取、按頻率抽取或其他相關(guān)分解方式用2級Radix-4 DFT結(jié)構(gòu)實現(xiàn)。第1級由4個4樣點DFT組成,第2級同樣由4個4點DFT組成。由于每個DFT的輸出要求在饋送給下一級之前為結(jié)果提供3個相位因子,因此第1級和第2級之間的9個相位因子需要9次復(fù)數(shù)乘法。
初看起來,執(zhí)行一次復(fù)數(shù)乘法需要4個乘法器和2個加法/減法器。然而,該表達式可以重新寫成另外一種只需3個乘法器、3個加法器和2個減法器的表達式。值得注意的是,加法器是在FPGA的內(nèi)核邏輯中實現(xiàn)的,使用了豐富的逐位進位模式(ripple mode)的通用可編程邏輯單元(PLC)片。
如果D=Dr+jDi是復(fù)數(shù)數(shù)據(jù),C=Cr+jCi是復(fù)數(shù)系數(shù),那么復(fù)數(shù)乘法的標準表達式如下:
E1:R=D*C=(Dr+jDi)*(Cr+jCi)=Rr+jRi (1)
其中Rr=Dr*Cr-Di*Ci, Ri=Dr*Ci+Di*Cr
上述標準表達式要求使用4個乘法器。該表達式可以通過代數(shù)方法重新整理為:
E2: Rr=Dr*Cr-Di*Ci (2)
E3: Rr=Dr*Cr-Di*Ci+0 (3)
E4: Rr=Dr*Cr-Di*Ci+(Dr*Ci-Di*Cr)-(Dr*Ci-Di*Cr) (4)
E5: Rr=(Dr*Cr-Dr*Ci+Di*Cr-Di*Ci)+(Dr*Ci-Di*Cr) (5)
復(fù)數(shù)結(jié)果的新表達式是:
E6: Rr=[(Dr+Di)*(Cr-Ci)]+(Dr*Ci-Di*Cr) (3次乘法) (6)
E7: Ri=Dr*Ci+Di*Cr (復(fù)用來自Rr的乘積) (7)
如圖1所示,最優(yōu)的復(fù)數(shù)乘法可以用3個乘法器、3個加法器和2個減法器實現(xiàn)。值得注意的是,在FPGA中,加法/減法模塊所用的相對裸片面積要小于18×18的乘法器模塊。
圖1:采用4個和3個乘法器的復(fù)數(shù)乘法
總之,所用乘法器數(shù)量減少25%可以帶來下面兩大好處之一:
1.在相同F(xiàn)FT吞吐量的條件下可以少用乘法器;
2.在乘法器數(shù)量不變的條件下可以提高FFT吞吐量。
數(shù)字上變頻/下變頻器中FIR濾波器的高效實現(xiàn)
如下的三個高效乘法器技術(shù)可用于實現(xiàn)FPGA中的數(shù)字上變頻和下變頻。這已經(jīng)成為優(yōu)化的重點領(lǐng)域,因為無線設(shè)計師需要滿足將數(shù)據(jù)從非常高的采樣速率向芯片處理速率轉(zhuǎn)移的要求。數(shù)字下變頻器/上變頻器(DDC/DUC)子系統(tǒng)是基站內(nèi)發(fā)送器/接收器的主要數(shù)字器件,以前是用昂貴的模擬/混合信號器件實現(xiàn)的。共有三種技術(shù)可以用來減少FPGA實現(xiàn)方案中的乘法器數(shù)量。
1.系數(shù)對稱的FIR濾波器可節(jié)省乘法器;
2.分布式運算操作使用嵌入式塊存儲器;
3.級聯(lián)積分梳狀濾波器使用加法器。
上變頻/下變頻概述
如圖2中上半部分描述的那樣,DDC由以下器件組成:一個基于數(shù)控振蕩器(NCO)的I/Q分離器,它通過兩個混頻器將來自射頻部分的輸入信號用正弦和余弦波進行調(diào)制;一個抽取部分,可以由3級FIR抽取濾波器或后接級聯(lián)積分梳狀(CIC)濾波器的FIR抽取濾波器進行配置。
圖2:DDC/DUC結(jié)構(gòu)。
圖2中的DUC由以下器件組成:3級FIR內(nèi)插濾波器或后面接FIR內(nèi)插濾波器的CIC濾波器;一個基于NCO和兩個混頻器的I/Q混頻器,其在I、Q輸出信號到達射頻部分前對它們進行解調(diào)。請記住,抽取用于采樣刪除以達到較低的采樣率,而內(nèi)插用于增加外推樣本以提高采樣率。
變頻器的通用實現(xiàn)指南
DDC/DUC系統(tǒng)是一個需要大量乘法器的系統(tǒng)。抽取和內(nèi)插濾波器通常由乘法器和加法器陣列實現(xiàn),而混頻功能就是一個乘法器。利用面積優(yōu)化方法實現(xiàn)NCO要基于使用復(fù)數(shù)乘法器的相移。
克服需要大量乘法器的系統(tǒng)所帶來的挑戰(zhàn)首先是要分解和級聯(lián)濾波器:
1. 一個抽取/內(nèi)插系數(shù)為N的大型FIR抽取濾波器或FIR內(nèi)插濾波器可以分解成兩個或三個抽取/內(nèi)插系數(shù)分別為N1、N2和N3的較小、較簡單的級聯(lián)濾波器。抽取/內(nèi)插系數(shù)滿足以下等式:
E8: N=N1*N2*N3
2. 將FIR抽取濾波器或FIR內(nèi)插濾波器分解成兩個或三個獨立濾波器可以減少實現(xiàn)整個濾波器所需的抽頭總數(shù)。抽取或內(nèi)插系數(shù)為N的單個濾波器需要大量的抽頭(乘法器)才能滿足基本的濾波器衰減和噪聲特性要求。將濾波器分解成兩個或三個更小和更簡單的濾波器可以減少整個濾波系統(tǒng)的抽頭數(shù)量。另外,第二和第三級聯(lián)濾波器的較低采樣率可以實現(xiàn)時間復(fù)用,從而進一步縮小實現(xiàn)的尺寸。
當(dāng)濾波器階數(shù)確定好后,還可以采取多種措施減少實際濾波器中的乘法器數(shù)量。下面將對此進行介紹。
表1:可減少WiMax系統(tǒng)設(shè)計中乘法器數(shù)量的四種技術(shù)。
三種專用于變頻器的乘法器節(jié)省技術(shù)
1. 對稱抽取和內(nèi)插濾波器
系數(shù)對稱的DDC抽取濾波器和DUC內(nèi)插濾波器可以用來獲得最多50%的乘法器節(jié)省效果。在對稱條件下,n個抽頭的FIR濾波器系數(shù)h(0)、h(1)、…、h(n)滿足h(k)=h(n-k){0≤k≤n}.
由于h(k)=h(n-k)、h(k)與兩個相關(guān)樣本之和的乘積可以一次完成,因此所需乘法器的數(shù)量可以最多減少2倍(對于偶數(shù)個系數(shù))。在FPGA中,可以利用低成本的逐位進位邏輯實現(xiàn)使用相同系數(shù)的兩個數(shù)據(jù)樣本的加法。
2. 通過分布式運算功能并利用EBR存儲器塊實現(xiàn)FIR濾波器
對乘法器密集應(yīng)用(如DDC或DUC)來說,F(xiàn)PGA資源的高效使用特別重要。將存儲器和LUT結(jié)構(gòu)資源用作乘法器可以顯著提升實現(xiàn)效率。EBR和這種結(jié)構(gòu)的分布式存儲器可以用作使用分布式存儲器技術(shù)的FIR濾波器乘法器。分布式存儲器技術(shù)也被稱為軟乘法技術(shù),使用這種技術(shù)通??梢允笷PGA器件中的乘法器數(shù)量增加2到5倍。
從圖3可以看出如何使用EBR實現(xiàn)使用分布式算術(shù)技術(shù)的FIR濾波器。樣本被串行移位進EBR地址總線。在EBR內(nèi)部有一個預(yù)計算的結(jié)果乘法表以及帶合適系數(shù)的各個輸入樣本比特(地址比特)總和。累加器將累加n個(n是樣本比特分辨率)中間結(jié)果,并在n個時鐘周期后提供完整的FIR濾波結(jié)果。
圖3:將塊存儲器用作FIR乘法器
3. CIC濾波器使用加法器而不是乘法器
用CIC乘法器代替某些內(nèi)插/抽取FIR濾波器鏈部分是另一種減少實現(xiàn)所需乘法器數(shù)量的方法。CIC乘法器沒有乘法器,而是使用加法器和減法器。數(shù)字上變頻/下變頻通常要求數(shù)百階的大范圍速率變化。高速率變化內(nèi)插或抽取濾波器在硬件方面非常昂貴。CIC濾波器也被稱為Hogenauer濾波器,可以用作低成本的高因數(shù)抽取或內(nèi)插濾波器。它們可以用來在數(shù)字系統(tǒng)中取得任意的和很大的速率變化,并能夠僅使用加法器和減法器高效實現(xiàn)。因為FPGA有很快的進位鏈用于實現(xiàn)加法器,因此CIC濾波器非常適合FPGA實現(xiàn)。積分器和梳狀濾波器的結(jié)構(gòu)與特性請參見表2。
表2:梳狀濾波器和積分器的結(jié)構(gòu)與特性。
利用IP核實現(xiàn)變頻器和OFDM
用Lattice的FPGA實現(xiàn)DDC或DUC變頻器相當(dāng)簡單,因為FPGA提供了作為IP內(nèi)核使用的重要組成器件。將CIC濾波器用作數(shù)據(jù)速率轉(zhuǎn)換中內(nèi)插器的應(yīng)用如圖4所示,它給出了用作數(shù)字無線應(yīng)用中的變頻器的CIC內(nèi)插器的使用。
圖4:用于數(shù)字無線電應(yīng)用的數(shù)字上變頻器
數(shù)字上變頻器使用以下一些IP內(nèi)核配置:
1. FIR濾波器(63個抽頭的內(nèi)插濾波器);
2. FIR濾波器(31個抽頭的內(nèi)插濾波器);
3. CIC濾波器(速率在8到2K之間可編程的內(nèi)插CIC濾波器);
4. NCO(帶正弦和余弦輸出的NCO)。
LatticeECP2/M系列低成本FPGA具有多種與WiMax系統(tǒng)設(shè)計高度相關(guān)的高性能特性。在其他低成本FPGA系列器件中很難找到這些特性,而只能在昂貴的高端FPGA產(chǎn)品中才能找到:
1. 帶硬連線的乘法器、加法器/累加器模塊和管線級的高性能DSP模塊;
2. 速率高達3.125Gbps的SERDES收發(fā)器通道,支持無線電頭部和基帶數(shù)字板之間的CPRI和OBSAI接口;
3. 在LatticeECP2/M存儲器增強系列產(chǎn)品中數(shù)量眾多的18kB EBR存儲器塊;
4. 支持ADC/DAC接口的高速LVDS I/O,輸入和輸出速率均可高達840Mbps;
5. 低成本的LatticeECP2/M系列器件均可提供這些豐富和高性能的資源,而價格遠低于其他FPGA器件。WiMax系統(tǒng)設(shè)計師還能使用多種設(shè)計技術(shù)減少所需DSP乘法器的數(shù)量,從而讓用戶有可能使用更小、更便宜的FPGA器件。
作者:Ian Ing
Asher Hazanchuk
Lattice半導(dǎo)體公司