張德民,童 慶,劉貽靜,主父文剛
(重慶郵電大學(xué) 重慶市移動(dòng)通信技術(shù)重點(diǎn)實(shí)驗(yàn)室,重慶 400065)
一種基于TMS320C6A8168的FPGA動(dòng)態(tài)配置方法*
張德民,童慶,劉貽靜,主父文剛
(重慶郵電大學(xué) 重慶市移動(dòng)通信技術(shù)重點(diǎn)實(shí)驗(yàn)室,重慶 400065)
針對(duì)基帶處理系統(tǒng)中 FPGA傳統(tǒng)上電配置中存在的速度和靈活性等問(wèn)題,提出一種基于 TMS320C6A8168的SD卡和網(wǎng)口動(dòng)態(tài)加載FPGA配置文件的方案。該方案以含有4片F(xiàn)PGA和1片C6A8168 ARM處理器所組成的嵌入式系統(tǒng)作為平臺(tái),通過(guò)修改U-boot中的代碼使得基帶系統(tǒng)上電運(yùn)行U-boot時(shí)能夠選擇性地加載PC中 FPGA的配置文件,從而使FPGA完成相應(yīng)的物理層算法及硬件加速。有效實(shí)現(xiàn)了對(duì)FPGA的配置,提高了FPGA系統(tǒng)配置的靈活性,在基帶處理系統(tǒng)中有很好的應(yīng)用前景。
TMS320C6A8168;FPGA;SD卡;基帶處理系統(tǒng)
基帶處理系統(tǒng)中由于FPGA容量、速度、資源等方面的局限性,在完成某些復(fù)雜嵌入式系統(tǒng)的設(shè)計(jì)中存在很大困難。然而將復(fù)雜的系統(tǒng)設(shè)計(jì)分割為若干獨(dú)立模塊[1],每個(gè)模塊由單個(gè)FPGA實(shí)現(xiàn),并輔以多FPGA間的有效接口,則能很好地解決FPGA規(guī)模的局限性問(wèn)題。另一方面,同一套硬件設(shè)備可加載不同的配置文件到多FPGA系統(tǒng)[2]中,以實(shí)現(xiàn)設(shè)備功能多變的應(yīng)用需求。例如:在移動(dòng)通信信令分析儀中,為了兼容全球移動(dòng)通信系統(tǒng)(Global System for Mobile communication,GSM)、時(shí)分同步碼分多址(Time Division-Synchronous Code Division Multiple Access,TD-SCDMA)、分時(shí)長(zhǎng)期演進(jìn)(Time Division Long Term Evolution,TD-LTE)、頻分雙工 LTE(Frequency Division Duplexing LTE,F(xiàn)DD-LTE)等不同的通信制式,就必須動(dòng)態(tài)地對(duì)多FPGA進(jìn)行配置。
傳統(tǒng)多FPGA系統(tǒng)的解決方案大致可分為分散配置方案和集中配置方案兩種,配置結(jié)構(gòu)如圖1所示。
圖1 傳統(tǒng)配置方案的配置結(jié)構(gòu)
分散配置方案中各FPGA分別采用主模式加載外部帶電可擦寫可編程只讀存儲(chǔ)器(EEPROM)中的配置文件完成配置,需要設(shè)計(jì)多個(gè)獨(dú)立的配置電路,從而增加了系統(tǒng)的復(fù)雜度和成本。集中配置會(huì)出現(xiàn)EEPROM容量不足,以及系統(tǒng)中的多片F(xiàn)PGA無(wú)法在不同版本的配置文件之間進(jìn)行智能切換等問(wèn)題。針對(duì)以上配置的不足,本文設(shè)計(jì)了基于ARM、SD卡、EMAC和串口的多FPGA命令選擇配置方案,該方案使用ARM的人機(jī)交互接口讀取用戶選擇命令,控制接口和數(shù)據(jù)接口按照配置時(shí)序完成配置,實(shí)現(xiàn)了用戶可根據(jù)設(shè)備不同的功能要求,自主選擇 FPGA配置文件[3-4]。
本方案選用TI公司雙核處理器TMS320C6A8168作為系統(tǒng)的主控芯片。網(wǎng)卡選用LSI公司的ET1011C千兆網(wǎng)卡來(lái)加載網(wǎng)絡(luò)端的 FPGA文件,大大提升了文件加載的效率。SD卡選用傳輸速度 30 MB/s、容量 16 GB的Kingston存儲(chǔ)器,存儲(chǔ)通用啟動(dòng)引導(dǎo)程序(Universal boot loader,U-boot)映像文件。輔助 FPGA采用專門應(yīng)用于系統(tǒng)集成度高和安全性非常關(guān)鍵的非易失性領(lǐng)域Spartan-3AN系列的FPGA XC3S400AN。整個(gè)硬件電路框圖如圖2所示。
圖2 Multi FPGA配置電路圖
配置程序以及配置文件放在PC上,上電后ARM執(zhí)行根據(jù)硬件信息定制的U-boot,并通過(guò)串口在超級(jí)終端上打印配置文件選擇信息及對(duì)應(yīng)的設(shè)備功能說(shuō)明;然后根據(jù)用戶輸入的命令先將所選配置文件從PC通過(guò)TFTP方式下載到內(nèi)存 DDR,再通過(guò)配置程序?qū)DR中的文件通過(guò)輔助FPGA分次寫入待配置FPGA中,依次完成對(duì)FPGA的配置。其中FPGA的配置文件為.bit格式,加載配置文件的格式為.out,SD卡的啟動(dòng)引導(dǎo)文件為MLO,U-boot為u-boot.bin。整個(gè)文件的布局如圖3所示[5]。
圖3 各個(gè)文件布局
系統(tǒng)上電后,ARM加載SD卡中的U-boot代碼完成系統(tǒng)軟硬件環(huán)境的初始化,然后將用戶所選的配置文件依次拷貝到DDR中指定的位置。通過(guò)執(zhí)行配置代碼,利用FPGA邏輯可變性,按照時(shí)序[6]將DDR中的配置文件通過(guò)XC3S400AN依次寫入到4片待配置FPGA中,實(shí)現(xiàn)所有FPGA的配置[7]??偭鞒倘鐖D4所示。
圖4 燒寫配置代碼的流程圖
3.1U-boot代碼的設(shè)計(jì)
根據(jù)已有的C6A8168 U-boot代碼更改[8-10],在U-boot/common/main.c源代碼打印倒計(jì)時(shí)啟動(dòng)代碼后面添加部分代碼如下:
以上 Case語(yǔ)句能夠?qū)崿F(xiàn)對(duì)環(huán)境變量中的 fpga1-1指令讀取和解析。其中 fpga1-1指令在 uboot/common/env_com-mon.c中添加:
FPGA1_1CONFIG_BOOTCOMMAND對(duì)應(yīng)的命令為:tftp 0x82000000 fpga1-1.bit,在u-boot/common/ti8168_ evm.h中添加:
以上命令利用TFTP方式將配置文件 fpga1-1.bit和加載配置文件fpga_init.out下載到DDR的地址中,并執(zhí)行該代碼,以實(shí)現(xiàn)將配置文件加載到輔助FPGA中實(shí)現(xiàn)對(duì)FPGA1的配置[11]。
3.2U-boot編譯
修改Makefile中ARCH與CROSS_COMPILE:
此時(shí)U-boot編譯分為兩步:
先用 make distclean將之前的編譯過(guò)程中生成的代碼刪除,其次由于 SD卡啟動(dòng)時(shí)U-boot鏡像文件通常小于125 KB,所以此處用 make ti8168_evm_min_sd來(lái)實(shí)現(xiàn)SD卡啟動(dòng)時(shí)配置;運(yùn)用 make u-boot.ti編譯代碼,最終生成u-boot.min.sd,然后將u-boot.min.sd重命名為MLO作為u-boot的第一階段;
以上代碼編譯生成 Nandflash版的 u-boot.bin,這里用于SD卡啟動(dòng)的第二階段。
經(jīng)過(guò)以上兩步可以得到 MLO和 u-boot.bin啟動(dòng)文件。
3.3TFTP的配置用于EMAC加載PC上的FPGA配置文件
考慮到加載速度問(wèn)題,本方案采用千兆網(wǎng)口加載,選擇PC作為服務(wù)器使用。基帶板的IP與PC的IP在同一網(wǎng)絡(luò)中:將PC和基帶板中的EMAC網(wǎng)卡的IP分別設(shè)置為192.168.1.11、192.168.1.22,子網(wǎng)掩碼為 255.255.255.0,網(wǎng)關(guān)為 192.168.1.1;此時(shí),上電時(shí)在倒計(jì)時(shí)3 s之內(nèi),通過(guò)按下選擇對(duì)應(yīng)的FPGA配置文件的按鍵,就會(huì)利用TFTP方式從 PC上加載所選擇的代碼。沒(méi)有在倒計(jì)時(shí)3 s之內(nèi)按下選擇按鍵,根據(jù)U-boot會(huì)加載默認(rèn)的配置文件。
根據(jù)測(cè)試對(duì)象及環(huán)境的不同,加載不同制式的配置文件使儀表兼容GSM、TD-SCDMA、TD-LTE、FDD-LTE 4種通信網(wǎng)絡(luò),滿足不同環(huán)境的測(cè)試環(huán)境以及5 M、10 M、15 M、20 M 4種帶寬,模擬單小區(qū)多用戶、單天線、多天線等配置,實(shí)現(xiàn)了動(dòng)態(tài)加載配置文件的需求。
在移動(dòng)通信信令分析儀中對(duì)該方案測(cè)試配置時(shí)間。在不同的ARM時(shí)鐘頻率和平均配置文件下多次測(cè)得并完成FPGA配置所需的時(shí)間如表1所示。
表1 系統(tǒng)啟動(dòng)與配置完成總時(shí)間
本方案通過(guò)ARM的啟動(dòng)選擇性地加載FPGA配置文件,實(shí)現(xiàn)基帶系統(tǒng)的上電自啟動(dòng)。并且從系統(tǒng)結(jié)構(gòu)、原理設(shè)計(jì)、硬件構(gòu)造、軟件實(shí)現(xiàn)等方面給出具體實(shí)現(xiàn),其中軟硬件設(shè)計(jì)較為獨(dú)立完整,在通信電子、計(jì)算機(jī)領(lǐng)域具有一定的應(yīng)用價(jià)值。
[1]張倩莉,于芳,劉忠立,等.結(jié)合用戶約束文件的高效多FPGA系統(tǒng)分割方法[J].哈爾濱工業(yè)大學(xué)學(xué)報(bào),2012,44 (7):144-148.
[2]LADDHA S,DE K B.EDA tools and design methodology for multi-FPGA designing/prototyp-ing[EB/OL].[2015-1-26].http://www.design-reu-se.c-om/articles/22074/formulti-fpga-designing-prototyping.html.
[3]陳曦,沈佐峰.一種可靠的FPGA動(dòng)態(tài)配置方法及實(shí)現(xiàn)[J].通信技術(shù),2012,45(3):105-110.
[4]張承暢.多 FPGA系統(tǒng)的關(guān)鍵問(wèn)題及應(yīng)用研究[D].重慶:重慶大學(xué),2011.
[5]YAN D G,ZHANG C C,TONG R J.A new configuration scheme for multi-FPGA systems based on XCF32P[C].International Conference on Industry,Information System and Material Engineering,2011:1014-1017.
[6]紀(jì)斌.Xilinx FPGA上電時(shí)序分析與設(shè)計(jì)[J].電訊技術(shù),2012,52(4):591-594.
[7]李飛飛,蘇延川,王鵬.基于DSP的 FPGA配置方法研究與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(24):60-62.
[8]楊宗富.基于 ARM的系統(tǒng)啟動(dòng)過(guò)程研究與系統(tǒng)移植[D].北京:北方工業(yè)大學(xué),2014.
[9]PETER B,PATRICK C.Linux for embedded and real-time applications(Third Edition)[M].Great Britain:Elsevier,2013:225-232.
[10]Xilinx Inc.Spartan-3AN FPGA family data sheet[EB/OL].[2015-1-26].http://www.xilinx.com/support/documentation/data_sheets/ds557.pdf.
[11]Texas Instruments Inc.DM816x AM389x PSP flashing tools guide[EB/OL].[2015-1-26].http://processors.wiki.ti.com/index.php/DM816x_AM389x_PSP_Flashing_Tools_Guide.
A method of FPGA dynamic configuration based on TMS320C6A8168
Zhang Demin,Tong Qing,Liu Yijing,Zhufu Wengang
(Key Laboratory of Mobile Communication Technology of Chongqing,Chongqing University of Posts and Telecommunications,Chongqing 400065,China)
Aiming at the problem of speed and flexibility in traditional FPGA booting allocation in baseband processing system, this paper presents a method of dynamic loading FPGA configuration file through SD card and network based on TMS320C6A8168.The program has embedded system platform composed of four pieces of FPGA and an ARM C6A8168 processor,by modifying the U-boot code makes the baseband system selectively load FPGA configuration file in PC when running the U-boot,so that the FPGA can complete the corresponding physical layer algorithms and hardware acceleration.It effectively achieves the configuration of the FPGA, improves the flexibility of the FPGA system configuration,and has a good application prospects in the base band processing system.
TMS320C6A8168;FPGA;SD card;baseband processing system
TP273+.5
A
10.16157/j.issn.0258-7998.2016.09.014
國(guó)家科技重大專項(xiàng)(2012ZX03001-009-004)
張德民(1955-),男,教授,主要研究方向:信號(hào)處理與通信系統(tǒng)。
童慶(1991-),男,碩士研究生,主要研究方向:移動(dòng)通信與嵌入式系統(tǒng)。
劉貽靜(1994-),女,本科,主要研究方向:基于 FPGA的物理層算法研究。
中文引用格式:張德民,童慶,劉貽靜,等.一種基于 TMS320C6A8168的 FPGA動(dòng)態(tài)配置方法[J].電子技術(shù)應(yīng)用,2016,42 (9):55-57,61.
英文引用格式:Zhang Demin,Tong Qing,Liu Yijing,et al.A method of FPGA dynamic configuration based on TMS320C6A8168[J].Application of Electronic Technique,2016,42(9):55-57,61q.