摘 要: 介紹了將現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)專(zhuān)用硬件處理器集成到軟件通信體系結(jié)構(gòu)">軟件通信體系結(jié)構(gòu)(SCA)中的機(jī)制,實(shí)現(xiàn)了動(dòng)態(tài)部分可重構(gòu)技術(shù)在軟件無(wú)線電(SDR)硬件平臺(tái)中的應(yīng)用,有效地縮短系統(tǒng)開(kāi)發(fā)周期,,提高了硬件資源的利用率。
關(guān)鍵詞: 現(xiàn)場(chǎng)可編程門(mén)陣列,;軟件定義無(wú)線電,;軟件通信體系結(jié)構(gòu);動(dòng)態(tài)部分可重構(gòu)
SDR是使用一個(gè)簡(jiǎn)單的終端設(shè)備通過(guò)軟件重配置來(lái)支持不同種類(lèi)的無(wú)線系統(tǒng)和服務(wù)(包括2G,、3G移動(dòng)通信系統(tǒng)和WLAN)的新技術(shù),。它具有較強(qiáng)的開(kāi)放性和靈活性,,硬件采用標(biāo)準(zhǔn)化、模塊化結(jié)構(gòu),,可以隨著器件和技術(shù)的發(fā)展而更新和擴(kuò)展,;軟件模塊可以進(jìn)行加載和更改,根據(jù)需要不斷升級(jí),。軟件無(wú)線電的結(jié)構(gòu)如圖1所示,,主要分為實(shí)時(shí)信道數(shù)據(jù)處理部分、環(huán)境管理部分,、系統(tǒng)分析和功能強(qiáng)化部分,。實(shí)時(shí)信道數(shù)據(jù)處理部分包括A/D、D/A,、變頻,、信道分離、調(diào)制解調(diào)以及碼流處理等數(shù)據(jù)模塊[1],。
SDR的核心是聯(lián)合戰(zhàn)術(shù)無(wú)線電系統(tǒng)JTRS(Joint Tactical Radio System)的SCA規(guī)范,,它對(duì)模塊化可編程無(wú)線通信系統(tǒng)的硬件體系結(jié)構(gòu)、軟件體系結(jié)構(gòu)和安全體系結(jié)構(gòu)以及應(yīng)用程序接口(API)規(guī)范進(jìn)行了描述,,同時(shí)引入了嵌入式微處理器系統(tǒng)、總線,、操作系統(tǒng),、公共對(duì)象請(qǐng)求代理體系(CORBA)、面向?qū)ο蟮能浖陀布O(shè)計(jì)等一系列計(jì)算機(jī)技術(shù),,并采用了“波形應(yīng)用”和“資源”可裁剪,、可擴(kuò)充的設(shè)計(jì)思想,從而保證了軟件和硬件的可移植性和可配置性,。
以接收機(jī)為例,,SDR中A/D模塊之后的部分通過(guò)軟件來(lái)實(shí)現(xiàn)。本文在FPGA平臺(tái)上實(shí)現(xiàn)信號(hào)的調(diào)制解調(diào),,以滿(mǎn)足高速數(shù)字信號(hào)處理發(fā)展的需求,。在Xilinx Virtex2Pro FPGA硬件平臺(tái)上實(shí)現(xiàn)了美國(guó)軍方短波通信系統(tǒng)標(biāo)準(zhǔn)MIL-STD-188-110B[2]調(diào)制解調(diào)器,其中引入了動(dòng)態(tài)部分可重構(gòu)技術(shù),,提高了配置速度和硬件資源的利用率,。
滿(mǎn)足SCA規(guī)范的波形組件之間通過(guò)CORBA總線通信,而FPGA平臺(tái)的專(zhuān)用處理器要實(shí)現(xiàn)對(duì)CORBA的支持比較困難,。本文利用SCA規(guī)范中的SHP組件兼容性補(bǔ)充協(xié)議CP289提出了這一問(wèn)題的具體解決方案,。
1 FPGA的動(dòng)態(tài)部分可重構(gòu)技術(shù)
FPGA的動(dòng)態(tài)可重構(gòu)技術(shù)是指對(duì)時(shí)序變化的數(shù)字邏輯系統(tǒng),其時(shí)序邏輯的發(fā)生不是通過(guò)調(diào)用芯片內(nèi)不同區(qū)域不同邏輯資源的組合實(shí)現(xiàn),,而是通過(guò)對(duì)具有專(zhuān)門(mén)緩存邏輯資源的FPGA進(jìn)行局部或全局芯片邏輯的動(dòng)態(tài)重構(gòu)而實(shí)現(xiàn),。部分重構(gòu)是指重構(gòu)器件或系統(tǒng)的一部分,,在此過(guò)程中,其余部分的工作狀態(tài)不受影響,。
FPGA部分可重構(gòu)有多種實(shí)現(xiàn)方法,,較為常用的是基于模塊化設(shè)計(jì)方法和EAPR(Early Access Partial Reconfiguration)設(shè)計(jì)流程[3],后者較前者而言,,是一種較新的設(shè)計(jì)方法,,并且有相應(yīng)的軟件可以代替命令行方式進(jìn)行實(shí)現(xiàn),本文采取的就是這種實(shí)現(xiàn)方法,。
圖2所示為一個(gè)簡(jiǎn)單的基于EAPR設(shè)計(jì)流程生成的部分動(dòng)態(tài)可重配置系統(tǒng),。整個(gè)系統(tǒng)劃分出靜態(tài)模塊和動(dòng)態(tài)模塊,之間的通信通過(guò)總線宏來(lái)進(jìn)行,。該系統(tǒng)通過(guò)FPGA板子上的dip開(kāi)關(guān)為輸入引腳提供輸入數(shù)據(jù),,確定計(jì)數(shù)器的初始值。通過(guò)下載不同部分的比特流可以實(shí)現(xiàn)加,、減計(jì)數(shù)功能的動(dòng)態(tài)切換,。計(jì)數(shù)結(jié)果通過(guò)值傳遞模塊接到FPGA板子上的LED管腳。整個(gè)設(shè)計(jì)過(guò)程可以概括為:
(1)模塊劃分:靜態(tài)模塊和動(dòng)態(tài)模塊,;
(2)頂層模塊與靜態(tài)和動(dòng)態(tài)子模塊的設(shè)計(jì)及綜合,;
(3)編寫(xiě)初始用戶(hù)約束文件,主要指定I/O管腳約束和時(shí)鐘約束,;
(4)在PlanAhead中進(jìn)行EAPR設(shè)計(jì):
①建立局部可重構(gòu)工程,;
②為每一個(gè)PRM定義可重配置實(shí)體;
③為PRM規(guī)定可重配置區(qū)域,;
④放置總線宏和全局時(shí)鐘邏輯,;
⑤運(yùn)行DRC檢查;
⑥分別實(shí)現(xiàn)靜態(tài)邏輯和PR模塊,;
⑦裝配并生成全局和部分比特流,。
2 基于FPGA的SDR硬件體系結(jié)構(gòu)及DPR實(shí)現(xiàn)
Xilinx Virtex2Pro FPGA內(nèi)含處理器,通過(guò)一定的軟件編程,,可根據(jù)環(huán)境及外部需求采用不同的調(diào)制解調(diào)算法處理通信系統(tǒng)中的數(shù)據(jù),。通過(guò)DPR技術(shù),可以實(shí)時(shí)快速地調(diào)整算法中的參數(shù)或者實(shí)現(xiàn)不同算法之間的切換,。
2.1 基于FPGA的SDR硬件平臺(tái)
本文基于Xilinx Virtex2Pro FPGA,,搭建的SDR硬件平臺(tái)如圖3所示。該系統(tǒng)以軟核處理器 MicroBlaze為核心,,DDR SDRAM Controller,、OPB_HWICAP和UART Controller通過(guò)OPB總線與處理器通信。DDR SDRAM為片外處理器,,UART為串口設(shè)備,,ICAP為內(nèi)部訪問(wèn)互連接口,,主要用于部分重構(gòu)。
2.2 DPR在SDR硬件平臺(tái)中的應(yīng)用
如圖3所示,,平臺(tái)的頂層為調(diào)制解調(diào)算法模塊,。本文以美國(guó)軍方短波通信系統(tǒng)標(biāo)準(zhǔn)MIL-STD-188-110B調(diào)制解調(diào)算法的實(shí)現(xiàn)進(jìn)行說(shuō)明,圖4所示為其實(shí)現(xiàn)框圖,。
該標(biāo)準(zhǔn)支持不同的比特速率和交織長(zhǎng)度,,在調(diào)制算法中格雷映射、符號(hào)生成和同步前導(dǎo)頭與訓(xùn)練序列有所差別,,故將其劃分為動(dòng)態(tài)模塊,,其余為靜態(tài)模塊。相應(yīng)的,,在解調(diào)模塊當(dāng)中,,符號(hào)解析、格雷映射和解交織模塊算法有所差別,,劃分為動(dòng)態(tài)模塊,。在硬件實(shí)現(xiàn)過(guò)程中,由于不同模塊處理數(shù)據(jù)的速率不相同,,因此需增加一個(gè)時(shí)鐘生成模塊,,并將其劃分為動(dòng)態(tài)模塊。
之后,,根據(jù)EAPR設(shè)計(jì)流程生成不同條件下的不同功能的部分比特流及全局靜態(tài)比特流,。設(shè)計(jì)實(shí)現(xiàn)的動(dòng)態(tài)部分可重構(gòu)調(diào)制解調(diào)器框圖分別如圖5、圖6所示,。與模塊化設(shè)計(jì)方法相比,設(shè)計(jì)過(guò)程中動(dòng)態(tài)和靜態(tài)區(qū)域并不需要占據(jù)FPGA的整列,,提高了FPGA的資源利用率,。另一點(diǎn)不同之處在于模塊化設(shè)計(jì)方法中總線宏是基于TBUF的,而EAPR總線宏是基于slice的,。
實(shí)驗(yàn)表明,,發(fā)射機(jī)系統(tǒng)的一個(gè)部分重配置比特流的大小為269 KB,為全局比特流(1 415 KB)的19.0%,,因而所需的用于存儲(chǔ)配置比特流的空間較小,,配置速度相對(duì)較快,所需配置時(shí)間約為全局配置時(shí)間的19.0%,。
3 FPGA組件在SCA中的集成
根據(jù)參考文獻(xiàn)[4]的內(nèi)容,,可加載到軟件無(wú)線電平臺(tái)上的波形組件分為運(yùn)行于通用處理器上的SCA組件和運(yùn)行于專(zhuān)用硬件處理器(SHP)上的組件。FPGA組件屬于SHP組件中的RPL(寄存器傳輸級(jí)可編程邏輯)組件,,用HDL語(yǔ)言實(shí)現(xiàn)功能,,但不支持CORBA,。為使該類(lèi)型的組件能夠集成到SCA系統(tǒng)中,必須在設(shè)計(jì)時(shí)使其接口滿(mǎn)足特定的規(guī)范,,使之具有可移植性和可復(fù)用性,。本文中FPGA組件按照OCP協(xié)議進(jìn)行接口封裝。參考文獻(xiàn)[5]介紹了關(guān)于整個(gè)OCP協(xié)議的接口設(shè)置,、工作原理和時(shí)序邏輯,。
3.1 FPGA組件的代碼生成
由于波形應(yīng)用是由波形組件和域描述文件組成的,波形組件完成相應(yīng)的功能,,域描述文件提供組件之間的裝配,、連接、屬性等信息,,因此需要通過(guò)解析軟件組件描述(SCD)文件和接口定義來(lái)獲得OCP接口,。SCD文件中定義了組件的端口列表,OCP模塊就是要實(shí)現(xiàn)的組件,。在接口庫(kù)中已經(jīng)定義好了各種接口類(lèi)型,。通過(guò)查詢(xún)接口庫(kù),可以獲得符合要求的接口,,具體要實(shí)現(xiàn)的功能則由接口的參數(shù)決定,。最終需要產(chǎn)生一個(gè)OCP接口配置文件,它以文本的形式描述了組件的內(nèi)核和接口信息,。
通過(guò)分析OCP接口配置文件,,可以生成OCP接口的VHDL代碼。代碼中包括一個(gè)實(shí)體描述和空結(jié)構(gòu)體以及一個(gè)VHDL語(yǔ)言包,,實(shí)體表示滿(mǎn)足OCP接口封裝的組件,,OCP接口則對(duì)應(yīng)于實(shí)體的端口,端口的類(lèi)型由其所在接口的類(lèi)型決定,。組件開(kāi)發(fā)者將完成特定需求功能的代碼移入空的結(jié)構(gòu)體中,,便得到組件的完整的VHDL代碼。
3.2 FPGA組件在SCA中的集成
SCA組件都需要通過(guò)CORBA進(jìn)行通信,,而FPGA組件不使用CORBA,,它的實(shí)現(xiàn)可分為實(shí)現(xiàn)體(worker)和通用代理(generic proxy)兩部分。其中worker是在SHP容器中執(zhí)行的功能組件實(shí)體,;generic proxy相當(dāng)于SCA中的適配器,。
通用代理是SCA適配器概念的實(shí)例化,是由SHP邏輯設(shè)備的每一個(gè)“執(zhí)行”操作創(chuàng)建的CORBA對(duì)象,,類(lèi)似于應(yīng)用工廠在每一次“創(chuàng)建”操作時(shí)創(chuàng)建CF∷Application對(duì)象以及域管理器在每一次“安裝”操作時(shí)創(chuàng)建應(yīng)用工廠,。當(dāng)要求SHP邏輯設(shè)備實(shí)例化SHP組件時(shí),通過(guò)使用load、execute命令創(chuàng)建代表SHP容器中實(shí)體的本地CORBA對(duì)象,。它可以與SHP容器通信,,用于下載、創(chuàng)建,、控制和配置worker,。相對(duì)于GPP邏輯設(shè)備的執(zhí)行操作會(huì)產(chǎn)生一個(gè)GPP組件實(shí)現(xiàn)本身所對(duì)應(yīng)的CORBA對(duì)象索引,SHP邏輯設(shè)備的執(zhí)行操作會(huì)產(chǎn)生相應(yīng)的通用代理的CORBA對(duì)象索引,。
本文基于FPGA主要實(shí)現(xiàn)了動(dòng)態(tài)部分可重構(gòu)實(shí)驗(yàn)平臺(tái),,并將其應(yīng)用到SDR硬件平臺(tái)調(diào)制解調(diào)算法實(shí)現(xiàn)中,提高了系統(tǒng)的靈活性和可擴(kuò)展性,。同時(shí)討論了FPGA組件集成到SCA中的設(shè)計(jì)方法以及相關(guān)的技術(shù),,從而能夠縮短系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)時(shí)間,增強(qiáng)組件的可移植性,、可復(fù)用性和重新被設(shè)計(jì)的能力,。
參考文獻(xiàn)
[1] MITOLA J.The software radio architecture[J].IEEE Communications Magazine,1995,,33(5):26-38.
[2] MIL-STD-188-110B:Interoperability and performance standards for data modems[S].U.S.Department of Defense,,2000.
[3] Early access partial reconfiguration user guide(UG208)[S]. 2006.
[4] Joint Tactical Radio System(JTRS) Joint Program Office. Extension for component portability for specialized hardware processors(SHP) to the JTRS software communication architecture[S].(SCA) Specification 7 March 2005.
[5] OCP International Partnership.Open core protocol specification[S].Release 3.0.