FPGA及動(dòng)態(tài)可重構(gòu)技術(shù)在軟件無線電中的應(yīng)用
摘 要: 介紹了將現(xiàn)場可編程門陣列(FPGA)專用硬件處理器集成到軟件通信體系結(jié)構(gòu)">軟件通信體系結(jié)構(gòu)(SCA)中的機(jī)制,實(shí)現(xiàn)了動(dòng)態(tài)部分可重構(gòu)技術(shù)在軟件無線電(SDR)硬件平臺中的應(yīng)用,有效地縮短系統(tǒng)開發(fā)周期,提高了硬件資源的利用率。
SDR是使用一個(gè)簡單的終端設(shè)備通過軟件重配置來支持不同種類的無線系統(tǒng)和服務(wù)(包括2G、3G移動(dòng)通信系統(tǒng)和WLAN)的新技術(shù)。它具有較強(qiáng)的開放性和靈活性,硬件采用標(biāo)準(zhǔn)化、模塊化結(jié)構(gòu),可以隨著器件和技術(shù)的發(fā)展而更新和擴(kuò)展;軟件模塊可以進(jìn)行加載和更改,根據(jù)需要不斷升級。軟件無線電的結(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ù)模塊。
SDR的核心是聯(lián)合戰(zhàn)術(shù)無線電系統(tǒng)JTRS(Joint Tactical Radio System)的SCA規(guī)范,它對模塊化可編程無線通信系統(tǒng)的硬件體系結(jié)構(gòu)、軟件體系結(jié)構(gòu)和安全體系結(jié)構(gòu)以及應(yīng)用程序接口(API)規(guī)范進(jìn)行了描述,同時(shí)引入了嵌入式微處理器系統(tǒng)、總線、操作系統(tǒng)、公共對象請求代理體系(CORBA)、面向?qū)ο蟮能浖陀布O(shè)計(jì)等一系列計(jì)算機(jī)技術(shù),并采用了“波形應(yīng)用”和“資源”可裁剪、可擴(kuò)充的設(shè)計(jì)思想,從而保證了軟件和硬件的可移植性和可配置性。
以接收機(jī)為例,SDR中A/D模塊之后的部分通過軟件來實(shí)現(xiàn)。本文在FPGA平臺上實(shí)現(xiàn)信號的調(diào)制解調(diào),以滿足高速數(shù)字信號處理發(fā)展的需求。在Xilinx Virtex2Pro FPGA硬件平臺上實(shí)現(xiàn)了美國軍方短波通信系統(tǒng)標(biāo)準(zhǔn)MIL-STD-188-110B調(diào)制解調(diào)器,其中引入了動(dòng)態(tài)部分可重構(gòu)技術(shù),提高了配置速度和硬件資源的利用率。
滿足SCA規(guī)范的波形組件之間通過CORBA總線通信,而FPGA平臺的專用處理器要實(shí)現(xiàn)對CORBA的支持比較困難。本文利用SCA規(guī)范中的SHP組件兼容性補(bǔ)充協(xié)議CP289提出了這一問題的具體解決方案。
1 FPGA的動(dòng)態(tài)部分可重構(gòu)技術(shù)
FPGA的動(dòng)態(tài)可重構(gòu)技術(shù)是指對時(shí)序變化的數(shù)字邏輯系統(tǒng),其時(shí)序邏輯的發(fā)生不是通過調(diào)用芯片內(nèi)不同區(qū)域不同邏輯資源的組合實(shí)現(xiàn),而是通過對具有專門緩存邏輯資源的FPGA進(jìn)行局部或全局芯片邏輯的動(dòng)態(tài)重構(gòu)而實(shí)現(xiàn)。部分重構(gòu)是指重構(gòu)器件或系統(tǒng)的一部分,在此過程中,其余部分的工作狀態(tài)不受影響。
FPGA部分可重構(gòu)有多種實(shí)現(xiàn)方法,較為常用的是基于模塊化設(shè)計(jì)方法和EAPR(Early Access Partial Reconfiguration)設(shè)計(jì)流程,后者較前者而言,是一種較新的設(shè)計(jì)方法,并且有相應(yīng)的軟件可以代替命令行方式進(jìn)行實(shí)現(xiàn),本文采取的就是這種實(shí)現(xiàn)方法。
圖2所示為一個(gè)簡單的基于EAPR設(shè)計(jì)流程生成的部分動(dòng)態(tài)可重配置系統(tǒng)。整個(gè)系統(tǒng)劃分出靜態(tài)模塊和動(dòng)態(tài)模塊,之間的通信通過總線宏來進(jìn)行。該系統(tǒng)通過FPGA板子上的dip開關(guān)為輸入引腳提供輸入數(shù)據(jù),確定計(jì)數(shù)器的初始值。通過下載不同部分的比特流可以實(shí)現(xiàn)加、減計(jì)數(shù)功能的動(dòng)態(tài)切換。計(jì)數(shù)結(jié)果通過值傳遞模塊接到FPGA板子上的LED管腳。整個(gè)設(shè)計(jì)過程可以概括為:
(1)模塊劃分:靜態(tài)模塊和動(dòng)態(tài)模塊;
(2)頂層模塊與靜態(tài)和動(dòng)態(tài)子模塊的設(shè)計(jì)及綜合;
(3)編寫初始用戶約束文件,主要指定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)含處理器,通過一定的軟件編程,可根據(jù)環(huán)境及外部需求采用不同的調(diào)制解調(diào)算法處理通信系統(tǒng)中的數(shù)據(jù)。通過DPR技術(shù),可以實(shí)時(shí)快速地調(diào)整算法中的參數(shù)或者實(shí)現(xiàn)不同算法之間的切換。
2.1 基于FPGA的SDR硬件平臺
本文基于Xilinx Virtex2Pro FPGA,搭建的SDR硬件平臺如圖3所示。該系統(tǒng)以軟核處理器 MicroBlaze為核心,DDR SDRAM Controller、OPB_HWICAP和UART Controller通過OPB總線與處理器通信。DDR SDRAM為片外處理器,UART為串口設(shè)備,ICAP為內(nèi)部訪問互連接口,主要用于部分重構(gòu)。
評論