基于FPGA的動(dòng)態(tài)可重配置短波收發(fā)機(jī)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要: 使用基于模塊化的動(dòng)態(tài)部分重配置技術(shù),構(gòu)建了基于FPGA的動(dòng)態(tài)可重配置軟件無線電系統(tǒng)平臺(tái),并在該平臺(tái)上設(shè)計(jì)了動(dòng)態(tài)可重配置MIL-STD-188-110B短波收發(fā)機(jī)系統(tǒng)。與傳統(tǒng)的全局靜態(tài)重配置系統(tǒng)相比,動(dòng)態(tài)可重配置系統(tǒng)擴(kuò)展性好,配置速度快,用于存儲(chǔ)配置比特流所需的空間較少,配置控制方式比較靈活。
關(guān)鍵詞: FPGA;動(dòng)態(tài)部分重配置;SDR;MIL-STD-188-110B技術(shù)標(biāo)準(zhǔn);短波收發(fā)機(jī)
軟件無線電作為一種以現(xiàn)代通信理論為基礎(chǔ)、以數(shù)字信號(hào)處理為核心、以微電子技術(shù)為支撐的新的無線通信體系架構(gòu),具有靈活、開放和可擴(kuò)展等優(yōu)點(diǎn)。其基本思想是以一個(gè)通用、標(biāo)準(zhǔn)、模塊化的硬件平臺(tái)為依托,通過軟件編程實(shí)現(xiàn)無線電的各種功能,從基于硬件、面向用途的電臺(tái)設(shè)計(jì)方法中解放出來[1]。
現(xiàn)場(chǎng)可編程門陣列(FPGA)具有性能好、靈活性高和可重復(fù)編程的特點(diǎn),非常適合構(gòu)建軟件無線電系統(tǒng)。在FPGA中構(gòu)建軟件無線電系統(tǒng)的傳統(tǒng)方法是全局靜態(tài)重配置,即為系統(tǒng)的每一種工作模式生成一個(gè)全局的邏輯電路,實(shí)際應(yīng)用時(shí)通過對(duì)FPGA的多次全局靜態(tài)重復(fù)編程分別實(shí)現(xiàn)各種工作模式[2]。這種方法有幾個(gè)缺點(diǎn):(1)重復(fù)編程需要較長的時(shí)間;(2)重復(fù)編程的控制不便,需要借助外部處理器的控制或者人為操作;(3)需要較多的額外存儲(chǔ)空間來存儲(chǔ)相應(yīng)于各種工作模式的編程文件。
使用動(dòng)態(tài)部分重配置技術(shù)構(gòu)建動(dòng)態(tài)可重配置系統(tǒng)是近年來出現(xiàn)的一種新方法,能夠有效克服傳統(tǒng)方法的缺點(diǎn)?;贔PGA的動(dòng)態(tài)可重配置系統(tǒng)支持不同工作模式的邏輯,通過對(duì)具有專門緩存邏輯資源的FPGA進(jìn)行局部芯片邏輯的重配置而快速實(shí)現(xiàn)[2],而且在對(duì)局部的芯片邏輯進(jìn)行重配置的同時(shí),芯片的其他部分保持其實(shí)現(xiàn)功能不變且處于不間斷的運(yùn)算狀態(tài)。與傳統(tǒng)方法相比,動(dòng)態(tài)部分重配置的配置速度更快,配置控制方式更靈活,所需的用于存儲(chǔ)的空間相應(yīng)于不同工作模式的編程文件的額外存儲(chǔ)空間更少。
MIL-STD-188-110B是針對(duì)長距離通信系統(tǒng)的音頻數(shù)據(jù)調(diào)制解調(diào)器的美國軍方短波通信系統(tǒng)標(biāo)準(zhǔn)[3]。本文基于Xilinx FPGA芯片XC2VP30構(gòu)建了動(dòng)態(tài)可重配置軟件無線電系統(tǒng)平臺(tái),并在該平臺(tái)上設(shè)計(jì)了動(dòng)態(tài)可重配置MIL-STD-188-110B短波收發(fā)機(jī)系統(tǒng)。
1 動(dòng)態(tài)部分重配置
1.1 動(dòng)態(tài)部分重配置技術(shù)
目前,動(dòng)態(tài)部分重配置技術(shù)主要有3種:基于模塊化的技術(shù)、基于差異的技術(shù)和基于比特流的技術(shù)。
基于模塊化的技術(shù)的基本思想是將系統(tǒng)劃分為不同的模塊,為每個(gè)模塊在FPGA芯片中分配好位置,將各個(gè)模塊單獨(dú)激活,然后組裝成系統(tǒng),生成初始全局比特流,同時(shí)待重配置的各版本動(dòng)態(tài)模塊生成相應(yīng)版本的部分重配置比特流。這種設(shè)計(jì)方法屬于比較高層的解決方案,非常適合能夠模塊化的系統(tǒng)[4]。
基于差異的技術(shù)的基本思想是根據(jù)2個(gè)系統(tǒng)的差異生成部分重配置比特流。這種技術(shù)屬于較底層的解決方案,適合于對(duì)電路性能進(jìn)行細(xì)致的調(diào)整和優(yōu)化,能對(duì)系統(tǒng)進(jìn)行微調(diào)[4]。
基于比特流技術(shù)的基本思想是分析配置文件,通過直接對(duì)比特流文件進(jìn)行操作,生成不同的部分配置文件。這種技術(shù)能夠直接對(duì)比特流進(jìn)行修改,使動(dòng)態(tài)重配置比較靈活[5]。
本文根據(jù)軟件無線電系統(tǒng)能夠模塊化的特點(diǎn),使用基于模塊化的技術(shù)構(gòu)建動(dòng)態(tài)可重配置軟件無線電系統(tǒng)平臺(tái)。
1.2 Xilinx FPGA芯片對(duì)動(dòng)態(tài)部分重配置技術(shù)的支持
Xilinx FPGA芯片支持基于模塊化的動(dòng)態(tài)重配置技術(shù),并且為模塊之間的交流通信提供了一種特殊的總線宏。它允許信號(hào)穿過部分重配置模塊的邊界,保證穿過可重配置模塊邊界的布線資源是完全固定而且必須是靜態(tài)的。每次實(shí)現(xiàn)部分重配置時(shí),總線宏用來確定模塊間的布線通道沒有改變,保證正確的連接[6]。
Xilinx Virtex-II系列以后的FPGA芯片提供了內(nèi)部配置訪問端口ICAP(Internal Configuration Access Port),這使得FPGA中內(nèi)嵌的處理器能夠直接在可編程邏輯器件內(nèi)部對(duì)其配置數(shù)據(jù)進(jìn)行操作[7]。使用ICAP使得芯片上的靜態(tài)模塊可以控制該芯片上動(dòng)態(tài)區(qū)域的邏輯重配置,當(dāng)然在重配置期間必須保證靜態(tài)模塊的完整性。這種方式擴(kuò)展了動(dòng)態(tài)部分重配置的概念,被稱為自重配置或者自重構(gòu),是動(dòng)態(tài)部分重配置的一種特殊形式[8]。
此外,Xilinx還提供了對(duì)ICAP封裝后的可直接掛在OPB總線上的IP核——OPB_HWICAP。
1.3 在Xilinx FPGA芯片中構(gòu)建基于模塊化的動(dòng)態(tài)可重配置系統(tǒng)
在Xilinx FPGA芯片中構(gòu)建基于模塊化的動(dòng)態(tài)可重配置系統(tǒng)需遵循如下的流程:
(1)進(jìn)行動(dòng)態(tài)模塊和靜態(tài)模塊的劃分,將需要重配置的子模塊劃入動(dòng)態(tài)模塊,其他子模塊為靜態(tài)模塊;
(2)對(duì)頂層邏輯、動(dòng)態(tài)模塊和靜態(tài)模塊分別進(jìn)行設(shè)計(jì)與綜合;
(3)編寫系統(tǒng)約束文件,其主要內(nèi)容包括:為各I/O口指定管腳約束、為各模塊分配位置、指定待重配置的模塊為動(dòng)態(tài)模塊、指定各總線宏和其他頂層邏輯的位置及指定時(shí)間約束等;
(4)對(duì)動(dòng)態(tài)模塊和靜態(tài)模塊分別進(jìn)行激活,即分別進(jìn)行轉(zhuǎn)換、映射和布局布線等操作;
(5)將各模塊激活后的布線結(jié)果組裝起來,與頂層邏輯一同進(jìn)行轉(zhuǎn)換、映射和布局布線,生成最終的全局布線圖;
(6)由全局布線圖生成初始全局比特流,由各不同版本的動(dòng)態(tài)模塊的布線圖生成部分重配置比特流[4]。
2 動(dòng)態(tài)可重配置MIL-STD-188-110B短波收發(fā)機(jī)
2.1 動(dòng)態(tài)可重配置軟件無線電系統(tǒng)平臺(tái)
基于Xilinx FPGA芯片XC2VP30的動(dòng)態(tài)可重配置軟件無線電系統(tǒng)平臺(tái)如圖1所示。該系統(tǒng)平臺(tái)將FPGA芯片分為3部分,即兩側(cè)的靜態(tài)模塊與中間的動(dòng)態(tài)模塊。實(shí)際應(yīng)用時(shí),應(yīng)將用戶邏輯系統(tǒng)劃分為多個(gè)子模塊,并依據(jù)各子模塊是否需要重配置,將其分別放置在FPGA芯片的靜態(tài)模塊和動(dòng)態(tài)模塊中。靜態(tài)模塊與動(dòng)態(tài)模塊之間的通信通過橫跨邊界的總線宏實(shí)現(xiàn)。
該系統(tǒng)平臺(tái)中的重配置控制系統(tǒng)以軟核處理器MicroBlaze為核心,片上外設(shè)總線OPB上連接了DDR SDRAM Controller、OPB_HWICAP和UART Controller 3個(gè)模塊。其中DDR SDRAM Controller為片外存儲(chǔ)器DDR SDRAM的控制IP核,用來控制存儲(chǔ)部分重配置比特流的DDR SDRAM;OPB_HWICAP用來控制內(nèi)部配置訪問端口ICAP;UART Controller用來控制串口,通過串口可以和主機(jī)進(jìn)行通信。
Xilinx提供的OPB_HWICAP核為對(duì)ICAP封裝后的可直接掛在OPB總線上的IP核,在該IP核的內(nèi)部將OPB總線的接口邏輯與ICAP原語相連。由于ICAP位于FPGA芯片的右下角,因此在構(gòu)建可重配置系統(tǒng)平臺(tái)時(shí),需要對(duì)該IP核進(jìn)行修改,即將ICAP原語從OPB_HWICAP核中分離出來,將修改過的OPB_HWICAP核放在位于FPGA左側(cè)的靜態(tài)模塊1中,將ICAP原語放在位于FPGA右側(cè)的靜態(tài)模塊2中,修改后的OPB_HWICAP核與ICAP原語的通信通過跨越動(dòng)態(tài)模塊的總線宏實(shí)現(xiàn)。
在該平臺(tái)上構(gòu)建動(dòng)態(tài)可重配置系統(tǒng)之后,按照前述構(gòu)建動(dòng)態(tài)可重配置系統(tǒng)的流程生成初始全局比特流和各版本的部分重配置比特流,并將部分重配置比特流存儲(chǔ)在DDR SDRAM中。首先下載運(yùn)行初始全局比特流,然后系統(tǒng)等待主機(jī)自串口發(fā)送的重配置命令。系統(tǒng)接收到重配置命令并對(duì)其解析之后,根據(jù)需要從DDR SDRAM中選擇相應(yīng)的部分重配置比特流送至ICAP,完成重配置,以實(shí)現(xiàn)所需選擇的工作模式。
在該平臺(tái)上構(gòu)建的動(dòng)態(tài)可重配置系統(tǒng)擴(kuò)展性好,如果需要支持一種新的工作模式,只需構(gòu)建這種工作模式相應(yīng)的動(dòng)態(tài)模塊,并產(chǎn)生部分重配置比特流即可。系統(tǒng)重配置的控制方式也比較靈活,實(shí)際應(yīng)用時(shí)可依需要對(duì)該平臺(tái)進(jìn)行修改,使重配置的發(fā)生由開發(fā)板上的按鍵、開關(guān)或其他內(nèi)部和外部中斷來控制。
此外,與全局比特流相比,部分重配置比特流較小,所需的存儲(chǔ)空間較少。同時(shí)由于配置時(shí)間與比特流大小成正比[4],部分重配置所需時(shí)間較少,配置速度較快。
2.2 MIL-STD-188-110B短波收發(fā)機(jī)
MIL-STD-188-110B短波收發(fā)機(jī)框圖如圖2所示[3]。
MIL-STD-188-110B支持不同比特率和不同交織長度的多種工作模式,本文構(gòu)建的動(dòng)態(tài)可重配置MIL-STD-188-110B收發(fā)機(jī)支持的比特率為150 b/s、300 b/s、600 b/s和1 200 b/s,支持的交織長度為0.6 s和4.8 s,共有8種組合工作模式。在不同的工作模式下,發(fā)射機(jī)中交織、格雷映射、符號(hào)生成、插入同步前導(dǎo)頭與訓(xùn)練序列這4個(gè)子模塊的邏輯功能不同。與之相應(yīng),接收機(jī)中符號(hào)解析、格雷映射和解交織這3個(gè)子模塊在不同工作模式下具有不同的邏輯功能。
2.3 動(dòng)態(tài)可重配置MIL-STD-188-110B短波收發(fā)機(jī)
在動(dòng)態(tài)可重配置系統(tǒng)平臺(tái)上構(gòu)建動(dòng)態(tài)可重配置的MIL-STD-188-110B短波收發(fā)機(jī),首先需要對(duì)系統(tǒng)進(jìn)行動(dòng)態(tài)模塊與靜態(tài)模塊的劃分。
發(fā)射機(jī)中交織、格雷映射、符號(hào)生成、插入同步前導(dǎo)頭與訓(xùn)練序列這4個(gè)子模塊的邏輯功能在不同的工作模式下是不同的,各子模塊時(shí)鐘的頻率關(guān)系也有所不同。因此,在構(gòu)建動(dòng)態(tài)可重配置的發(fā)射機(jī)系統(tǒng)時(shí),應(yīng)將時(shí)鐘生成模塊及這4個(gè)子模塊劃為動(dòng)態(tài)模塊,其余子模塊及重配置控制系統(tǒng)劃為靜態(tài)模塊。
同樣,在實(shí)現(xiàn)接收機(jī)時(shí),將時(shí)鐘生成模塊及符號(hào)解析、格雷映射和解交織3個(gè)子模塊劃為動(dòng)態(tài)模塊,接收機(jī)的其余子模塊及重配置控制系統(tǒng)劃為靜態(tài)模塊。
動(dòng)態(tài)可重配置的MIL-STD-188-110B發(fā)射機(jī)和接收機(jī)系統(tǒng)框圖分別如圖3(a)和圖3(b)所示。
由其中一種工作模式生成初始全局比特流,所有8種工作模式的動(dòng)態(tài)模塊均生成相應(yīng)的部分重配置比特流并存儲(chǔ)于DDR SDRAM中。首先下載運(yùn)行初始全局比特流,系統(tǒng)收到主機(jī)的重配置命令后,根據(jù)要求從DDR SDRAM中讀出所需版本的部分重配置比特流,并將其送至內(nèi)部配置訪問端口ICAP,即可發(fā)生所需的動(dòng)態(tài)部分重配置。
實(shí)驗(yàn)表明,該收發(fā)機(jī)可通過動(dòng)態(tài)部分重配置在各種工作模式間進(jìn)行切換,且在各種工作模式下均能夠正常工作。發(fā)射機(jī)系統(tǒng)的一個(gè)部分重配置比特流的大小為269 KB,為全局比特流(1 415 KB)的19.0%,因而所需的用于存儲(chǔ)配置比特流的空間較小,配置速度相對(duì)較快,所需配置時(shí)間約為全局配置時(shí)間的19.0%。接收機(jī)系統(tǒng)的一個(gè)部分重配置比特流的大小為217 KB,為全局比特流的15.3%。
該收發(fā)機(jī)系統(tǒng)的擴(kuò)展性好,對(duì)于MIL-STD-188-110B標(biāo)準(zhǔn)所支持的其他工作模式,只需構(gòu)建其動(dòng)態(tài)模塊,并生成相應(yīng)的部分重配置比特流。系統(tǒng)的重配置還可依需要修改為由開關(guān)、按鍵或其他的中斷控制。
本文基于Xilinx FPGA芯片XC2VP30構(gòu)建了動(dòng)態(tài)可重配置軟件無線電系統(tǒng)平臺(tái),并在該系統(tǒng)平臺(tái)上實(shí)現(xiàn)了動(dòng)態(tài)可重配置MIL-STD-188-110B短波收發(fā)機(jī)系統(tǒng)。該系統(tǒng)可以通過動(dòng)態(tài)部分重配置在多種工作模式間進(jìn)行切換,系統(tǒng)擴(kuò)展性好,配置速度快,用于存儲(chǔ)配置比特流所需的空間較少,配置控制方式靈活。實(shí)驗(yàn)表明,使用動(dòng)態(tài)部分重配置技術(shù)是構(gòu)建軟件無線電系統(tǒng)的一種有效方式。
參考文獻(xiàn)
[1] MITOLA J.The software radio architecture[J].IEEE Communications Magazine,1995,33(5):25-38.
[2] 尚麗娜.FPGA動(dòng)態(tài)可重配置研究[D].浙江大學(xué)碩士學(xué)位論文,2006.
[3] U.S.Department of Defense.MIL-STD-188-110B:Interoperability and Performance Standards for Data Modems[S]. 2000.
[4] Xilinx.Development system reference guide,chapter 5:partial Reconfiguration[EB/OL].http://toolbox.xilinx.com/docsan/xilinx10/books/docs/dev/dev.pdf.
[5] 朱凱科.FPGA動(dòng)態(tài)可重配置設(shè)計(jì)方法研究[D].浙江大學(xué)碩士學(xué)位論文,2006.
[6] 尚麗娜,徐新民.FPGA動(dòng)態(tài)重構(gòu)技術(shù)在算術(shù)邏輯單元中的應(yīng)用[J].電子器件,2007,30(3).
[7] 趙遠(yuǎn)寧.基于Xilinx Virtex-II Pro的過程級(jí)動(dòng)態(tài)部分可重配置系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].湖南大學(xué)碩士學(xué)位論文,2008.
[8] 李濤.動(dòng)態(tài)重配置系統(tǒng)若干關(guān)鍵問題的研究[D].南開大學(xué)博士學(xué)位論文,2007.