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