FPGA技術(shù)在軟件無(wú)線電模型中的應(yīng)用
摘 要 本文首先建立了單信道的軟件無(wú)線電數(shù)學(xué)模型,分析比較了FPGA、ASIC以及DSP設(shè)計(jì)方式的優(yōu)缺點(diǎn),并深入研究了FPGA技術(shù)在軟件無(wú)線電中的應(yīng)用。
關(guān)鍵詞 現(xiàn)場(chǎng)可編程門(mén)陣列 上/下變頻器 DA算法
1 引言
軟件無(wú)線電的基本思想是:A/D、D/A變換器盡可能地接近天線,用軟件來(lái)完成盡可能多的無(wú)線電臺(tái)的功能1軟件無(wú)線電的結(jié)構(gòu)大致分為三種:射頻低通采樣數(shù)字化結(jié)構(gòu)、射頻帶通采樣數(shù)字化結(jié)構(gòu)和寬帶中頻采樣數(shù)字化結(jié)構(gòu)。
對(duì)于前兩種方式,由于是對(duì)射頻信號(hào)直接進(jìn)行采樣,結(jié)構(gòu)簡(jiǎn)潔,并把模擬電路部分減小到最低限度,無(wú)疑是最理想的方式,但這種結(jié)構(gòu)不僅對(duì)A/D轉(zhuǎn)換器的性能如轉(zhuǎn)換速率、工作帶寬、動(dòng)態(tài)范圍提出了非常高的要求,同時(shí)對(duì)后續(xù)DSP或ASIC的處理速度要求過(guò)高,以至于無(wú)法實(shí)現(xiàn);寬帶中頻采樣的軟件無(wú)線電結(jié)構(gòu)與目前的中頻數(shù)字化接收機(jī)(發(fā)射機(jī))的結(jié)構(gòu)是類似的,都采用了多次混頻體制,在適當(dāng)?shù)闹蓄l位置進(jìn)行數(shù)字化,所以它是三種結(jié)構(gòu)中最容易實(shí)現(xiàn)的,對(duì)器件的要求也較低,但它離理想軟件無(wú)線電的要求仍有一定距離。
2 單信道軟件無(wú)線電數(shù)學(xué)模型
單信道軟件無(wú)線電接收機(jī)和發(fā)射機(jī)的數(shù)學(xué)模型如圖1所示。以接收機(jī)為例,將數(shù)字處理流程分為兩部分:一是數(shù)字下變頻部分,包含NCO、混頻器、低通濾波以及抽取濾波器;二是基帶信號(hào)處理部分,包含解調(diào)、譯碼、自適應(yīng)均衡、幀調(diào)整、比特調(diào)整和鏈路去加密等算法。數(shù)字下變頻單元的功能一是進(jìn)行頻譜搬移,將射頻信號(hào)或中頻信號(hào)轉(zhuǎn)換為零中頻信號(hào);二是降低采樣速率,將滿足射頻或中頻采樣定理的高速采樣信號(hào)降低為低速基帶采樣信號(hào)。
就目前器件的發(fā)展水平,要想實(shí)現(xiàn)完全的射頻數(shù)字化,幾乎還不太可能,所以研究的重點(diǎn)往往放在中頻數(shù)字化上。根據(jù)上面的分析,中頻數(shù)字化中基帶信號(hào)處理部分由于處在較低速率上,一般采用通用DSP方案實(shí)現(xiàn),通過(guò)軟件來(lái)實(shí)現(xiàn)各種功能;而對(duì)于數(shù)字變頻部分,它們過(guò)高的速率使得通用DSP無(wú)能為力,即使像運(yùn)算速度已高達(dá)600 MHz的TMS320C64X也不能解決數(shù)字中頻的處理,所以,如何解決A/D采樣后高速信號(hào)的處理,依然是中頻以下軟件無(wú)線電的關(guān)鍵。目前,人們已經(jīng)提出了一些解決關(guān)鍵元器件的方法,并已出現(xiàn)了大量的數(shù)字中頻產(chǎn)品,尤以Harris公司和Gray公司為代表,像Harris公司的可編程數(shù)字上/下變頻器HSP50415、HSP50216等都為軟件無(wú)線電的實(shí)現(xiàn)奠定了良好的基礎(chǔ)。同時(shí),在另一方面,由于FPGA技術(shù)的迅速發(fā)展,超大規(guī)模、高速度的FPGA芯片不斷出現(xiàn),特別是像Xilinx公司的SpartanII、VirtexII具有獨(dú)特的快速邏輯進(jìn)位、DDL功能,為實(shí)現(xiàn)高速數(shù)字信號(hào)處理提供了可能,這種FPGA加DSP的設(shè)計(jì)方法為實(shí)現(xiàn)軟件無(wú)線電提供了一種更加靈活的方案,本文的重點(diǎn)正是研究FPGA技術(shù)在軟件無(wú)線電中的應(yīng)用。
3 幾種技術(shù)方案的比較
3.1 FPGA的發(fā)展現(xiàn)狀
FPGA(Field Programmable Gate Array)現(xiàn)場(chǎng)可編程門(mén)陣列是最近10年發(fā)展起來(lái)的新型可編程邏輯器件。由于FPGA器件的功能由邏輯結(jié)構(gòu)的配置數(shù)據(jù)決定,工作前需要從芯片外部加載配置數(shù)據(jù)。配置數(shù)據(jù)存儲(chǔ)在片外的EPROM或其它存儲(chǔ)體上,人們可以控制加載過(guò)程,在現(xiàn)場(chǎng)修改器件的邏輯功能,即所謂現(xiàn)場(chǎng)編程。FPGA與CPLD一起在數(shù)字電路中發(fā)揮著巨大的作用。FPGA技術(shù)的發(fā)展可以從全球最大的FPGA生產(chǎn)廠商Xillinx公司推出的產(chǎn)品看出,無(wú)論是在規(guī)模、處理速度還是功耗上,都得到了長(zhǎng)足的進(jìn)步,如VirtexII系列XC2V10000:系統(tǒng)邏輯門(mén)為10M,內(nèi)含專用18(18位乘法器192個(gè),并有Block RAM 3456kbit,內(nèi)部時(shí)鐘處理速度為420MHz,IO數(shù)據(jù)速率可達(dá)840Mbit/s,核心電壓1.5V。
3.2 FPGA與ASIC的比較
下面我們從功耗、體積、成本、現(xiàn)場(chǎng)可編程性以及硅芯片的解決方案等角度分別對(duì)高速DSP、ASIC以及FPGA設(shè)計(jì)方案進(jìn)行比較,如表1所示。
從表1中可以看出,與ASIC設(shè)計(jì)方案比較,F(xiàn)PGA具有更大的靈活性。ASIC設(shè)計(jì)是通過(guò)在FPGA中的模型來(lái)測(cè)量,當(dāng)接近要求時(shí),再轉(zhuǎn)到小批量ASIC中測(cè)量,這種測(cè)量是需要反復(fù)進(jìn)行的。設(shè)計(jì)系統(tǒng)直接使用可重構(gòu)的FPGA,不但增加了設(shè)計(jì)的靈活性,而且大大減少了投放市場(chǎng)所需的時(shí)間。
3.3 FPGA與DSP的比較
DSP芯片在市場(chǎng)上已有20幾年了,其性能也在不斷地提高,但要達(dá)到千兆赫量級(jí)的時(shí)鐘速度所要求的功耗仍然較高,并且其串行處理的結(jié)構(gòu)不可能實(shí)現(xiàn)高階的數(shù)字濾波器功能(如表2所示)。
4 FPGA在數(shù)字中頻處理中的應(yīng)用
根據(jù)圖1所示數(shù)學(xué)模型,F(xiàn)PGA在軟件無(wú)線電中的應(yīng)用主要體現(xiàn)在數(shù)字上變頻DUC和數(shù)字下變頻DDC中。經(jīng)過(guò)A/D采樣后的信息直接送給FPGA,在FPGA中完成本地混頻,把中頻信號(hào)搬移到基帶信號(hào),然后經(jīng)過(guò)低通濾波和多級(jí)抽取濾波,降低信息的采樣速率,由FPGA送至通用DSP,實(shí)現(xiàn)基帶信號(hào)的調(diào)制解調(diào);對(duì)于數(shù)字上變頻結(jié)構(gòu),和下變頻有完全對(duì)稱的結(jié)構(gòu),所以分析時(shí)僅以接收機(jī)為例。
4.1 本地頻率產(chǎn)生器和混頻器
DDC結(jié)構(gòu)中第一個(gè)環(huán)節(jié)就是要實(shí)現(xiàn)本地?cái)?shù)字混頻,主要由兩個(gè)部件完成,一是乘法器,二是數(shù)控振蕩器(NCO)。乘法器是數(shù)字信號(hào)處理中的基本運(yùn)算單元,在FPGA中設(shè)計(jì)較為復(fù)雜,而且占用資源也比較多,但在具體實(shí)現(xiàn)FIR濾波時(shí),往往不采用這種直接的乘累加的形式,以免占用大量的資源;在實(shí)現(xiàn)混頻時(shí),由于只需兩個(gè)乘法器,而且是在很高的速率下進(jìn)行,所以不考慮資源的限制。在Xilinx公司FPGA產(chǎn)品中,有的已在芯片內(nèi)部嵌入了乘法器,這種內(nèi)置乘法器充分結(jié)合了芯片硬件特點(diǎn),使得運(yùn)算速度更高。
NCO的硬件結(jié)構(gòu)如圖2所示,主要由相位累加器和SIN/COS表構(gòu)成。相位累加器產(chǎn)生的相位作為地址去查找ROM表,查到的SIN/COS值即本地載波的數(shù)字頻率送至乘法器,完成混頻。在實(shí)現(xiàn)NCO時(shí)有以下參數(shù)值得注意:
· NCO產(chǎn)生數(shù)字頻率的精度。此參數(shù)與SIN/COS 值的位數(shù)有關(guān),位數(shù)越寬,則精度也就越高,但占用FPGA的資源也就越多。
· 載波的同步。如果需要本地載波做到嚴(yán)格的同步,則需要額外的鎖相環(huán)結(jié)構(gòu)獲取偏移相位,進(jìn)行調(diào)整。
· NCO輸出頻率的噪聲。噪聲的產(chǎn)生與頻率在時(shí)間上量化有關(guān),由于采樣時(shí)刻不一定嚴(yán)格對(duì)齊載波的相位,所以會(huì)產(chǎn)生噪聲,但構(gòu)造更大的正弦或余弦表會(huì)減少噪聲分量,這同樣會(huì)增加FPGA的資源占用。
4.2 抽樣率變換濾波器組
下變頻過(guò)程中經(jīng)過(guò)混頻后的信號(hào)必須進(jìn)行抽取濾波,以便降低抽樣速率,使得通用的DSP對(duì)基帶信號(hào)處理時(shí)有充足的時(shí)間完成運(yùn)算;同樣,在上變頻過(guò)程中,首先要進(jìn)行插值濾波,提高抽樣速率,從而實(shí)現(xiàn)在IF范圍內(nèi)頻譜的搬移。根據(jù)DDC總抽取因子的大小,我們把數(shù)字下變頻分為兩類:即當(dāng)抽取率大于32時(shí),認(rèn)為是窄帶下變頻,反之則認(rèn)為是寬帶下變頻。無(wú)論是寬帶還是窄帶,一般都采用FIR結(jié)構(gòu)實(shí)現(xiàn)抽取濾波器,但對(duì)于窄帶下變頻,由于抽取因子較大,所以其抽取濾波器組也更為復(fù)雜一些。參考古得曼(Goodman)和開(kāi)萊(Carey)提出的設(shè)計(jì)多級(jí)抽取器和內(nèi)插器的經(jīng)典模型[3],對(duì)窄帶下變頻作如圖3設(shè)計(jì),其中CIC濾波器為整系數(shù)濾波器,濾波時(shí)無(wú)需乘法運(yùn)算,而半帶濾波器有一半系數(shù)為零,這樣在濾波時(shí)大大減少了計(jì)算量。
實(shí)現(xiàn)FIR濾波功能的基本元素包括乘法器、加法器、延遲單元以及存儲(chǔ)單元等,其中乘法器的設(shè)計(jì)最為復(fù)雜。用FPGA技術(shù)作乘累加運(yùn)算通常有移位相加、加法器樹(shù)、查詢表和邏輯樹(shù)等設(shè)計(jì)方法,不管采取哪種方法,要實(shí)現(xiàn)一個(gè)高階的數(shù)字濾波器都將占用相當(dāng)大的資源。相比較來(lái)說(shuō),采用分布式運(yùn)算DA算法(Distributed Arithmetic)的FPGA設(shè)計(jì)無(wú)論是在邏輯資源占用上,還是處理速度上都具有很大的優(yōu)勢(shì),特別是對(duì)于基于SRAM結(jié)構(gòu)的FPGA更加適合于DSP功能的設(shè)計(jì)。有關(guān)DA算法早期比較著名的闡述,是在1974年由Abraham Peled 和Bede Liu在討論數(shù)字IIR濾波器和FIR濾波器硬件設(shè)計(jì)時(shí)涉及到,1975年在IEEE Proceedings中Freeny發(fā)表了一篇關(guān)于DA算法在貝爾實(shí)驗(yàn)室電話系統(tǒng)中應(yīng)用的論文,同時(shí)惠普公司的Kai-Ping Yiu提供了一種有關(guān)符號(hào)位的DA設(shè)計(jì)方法;此后,西門(mén)子H.Schroder以及RICE大學(xué)C. S. Burrus 在提高算法的處理速度方面做了深入的研究。隨著大規(guī)模集成電路技術(shù)的發(fā)展,特別是可編程邏輯器件的發(fā)展,DA算法在數(shù)字濾波器硬件設(shè)計(jì)中的研究進(jìn)一步加強(qiáng),SDA(串行DA)算法和PDA(并行DA)算法已成為FPGA實(shí)現(xiàn)DSP功能最為有效的方法。根據(jù)DA算法設(shè)計(jì)的思想,我們進(jìn)行FIR濾波器設(shè)計(jì)如圖4所示。
圖4為FIR濾波器實(shí)現(xiàn)的串行DA形式,其中S-REG為串行移位寄存器,實(shí)現(xiàn)輸入數(shù)據(jù)的并/串轉(zhuǎn)換,并由TSB(Time-Skew Buffer)完成數(shù)據(jù)的移位緩存,產(chǎn)生訪問(wèn)DALUT的地址;查表后得到的輸 出數(shù)據(jù)由定標(biāo)ACC單元完成累加,累加的結(jié)果即為濾波后的值。SDA算法處理的速度與抽頭系數(shù)的大小無(wú)關(guān),只與輸入信號(hào)的數(shù)據(jù)位數(shù)有關(guān),例如當(dāng)x(n)的數(shù)據(jù)寬度為12bit,則需要12個(gè)時(shí)鐘來(lái)完成一個(gè)輸出結(jié)果的運(yùn)算。PDA(并行DA)算法可相應(yīng)提高信號(hào)處理的速度,但它是以犧牲更大的邏輯單元為代價(jià)的。為了實(shí)現(xiàn)較高性能的濾波器指標(biāo),往往需要很多個(gè)抽頭,這時(shí)DALUT必然會(huì)占用很大的空間,如每增加一個(gè)抽頭,DALUT的容量就會(huì)增加一倍(2K),在實(shí)際處理時(shí),通常采用分解級(jí)聯(lián)的方法,利用多個(gè)DALUT實(shí)現(xiàn)總的濾波功能。
4.3 FPGA實(shí)現(xiàn)和實(shí)驗(yàn)結(jié)果
我們?cè)O(shè)計(jì)了一個(gè)中頻為10.75MHz,帶寬為20kHz的中頻數(shù)字化收發(fā)信機(jī),硬件設(shè)計(jì)如圖5所示。
如圖5所示,中頻A/D、D/A分別采用AD公司的AD9224和AD9764,其中AD9224分辨率為12bit,AD9764為14 bit,采樣速率為30.720MHz;DSP選用TI公司的TMS320C5410芯片,最高處理速度為100MIPS;音頻A/D、D/A由TLV320AIC10實(shí)現(xiàn)。FPGA選用Xilinx公司的SpartanII-200,規(guī)模為20萬(wàn)門(mén),最高工作頻率為200MHz,該芯片主要完成抽取率為512的DDC功能和插值率同樣為512的DUC功能,而且是在同一片F(xiàn)PGA中實(shí)現(xiàn)。FPGA單元與DSP接口的數(shù)據(jù)速率為60kHz。FPGA開(kāi)發(fā)工具為Xilinx Foundation3.1,編程語(yǔ)言采用VHDL和Schematic混合設(shè)計(jì)方法,并利用CORE Generator提供的DA FIR濾波器方便地實(shí)現(xiàn)半帶濾波器和整形高階FIR濾波器功能。
5 結(jié)束語(yǔ)
本文在建立單信道軟件無(wú)線電數(shù)學(xué)模型的基礎(chǔ)上,深入研究了FPGA技術(shù)在軟件無(wú)線電高速數(shù)字信號(hào)處理中的應(yīng)用,特別是在DDC和DUC中的應(yīng)用。研究表明,這種基于FPGA/通用DSP的協(xié)同設(shè)計(jì)方法,無(wú)論是在性能價(jià)格上,還是在設(shè)計(jì)的靈活性上,都有很大的優(yōu)勢(shì),非常適合目前軟件無(wú)線電硬件平臺(tái)設(shè)計(jì)。
參考文獻(xiàn)
1 Mitola J. The software radio architecture. IEEE Communication Magazine,1995(5)
2 Cummings M, Haruyama. FPGA in the software radio. IEEE Communications Magazine, 1999,37(2)
3 R.E.克勞切,L.R拉賓納.多抽樣率數(shù)字信號(hào)處理.北京:人民郵電出版社,1988
評(píng)論