劉佳
摘要:使用JTAG方式配置FPGA,在某些特殊環(huán)境下,因缺乏靈活性,不易操作,對(duì)設(shè)備使用產(chǎn)生制約。本文提出一種遠(yuǎn)程配置FPGA的方法,該方法利用PC機(jī),通過以太網(wǎng)接口向Zynq傳輸配置文件,Zynq按照FPGA相應(yīng)的配置時(shí)序,完成遠(yuǎn)程配置工作。
關(guān)鍵詞:FPGA;遠(yuǎn)程配置;Zynq;AXI
中圖分類號(hào):TN791 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)03-0120-01
1 引言
近年來,F(xiàn)PGA技術(shù)廣泛應(yīng)用于通信、信息、信號(hào)處理等領(lǐng)域。傳統(tǒng)的JTAG方式配置FPGA,強(qiáng)依賴于本地開發(fā)環(huán)境。當(dāng)FPGA設(shè)備處于特殊環(huán)境時(shí),遠(yuǎn)程配置功能就非常重要了。Zynq是Xilinx公司近兩年力推的全可編程SOC,它將雙核 ARM Cortex A9處理器系統(tǒng)(Processing System,PS)和可編程邏輯(Programmable Logic,PL)結(jié)合到單芯片內(nèi),并推出了PS與PL間的高速AXI總線。本文利用PC和Zynq完成對(duì)FPGA的遠(yuǎn)程配置工作,充分發(fā)揮以太網(wǎng)、AXI等高速接口的特性,實(shí)現(xiàn)高效的遠(yuǎn)程配置。
2 方案原理
遠(yuǎn)程配置,通常是指配置文件在一臺(tái)PC上,待配置設(shè)備位于遠(yuǎn)端,二者可通過互聯(lián)網(wǎng)連接。PC的作用是將配置文件通過以太網(wǎng)傳輸給設(shè)備。在設(shè)備中,包含一個(gè)Zynq SOC。該單元主要負(fù)責(zé)接收PC傳來的配置文件,并完成對(duì)FPGA的具體配置工作。
在Zynq中,包括PS和PL兩個(gè)模塊,還含有大量的控制器資源,如USB控制器、DDR控制器,千兆以太網(wǎng)控制器等。AXI是Zynq中引入的新概念,它是Advanced eXtensible Interface的簡稱,可實(shí)現(xiàn)PS與PL間高速的數(shù)據(jù)交互。Zynq中AXI接口共有9個(gè),分為3類:AXI_ACP接口、AXI_HP接口、AXI_GP接口。
Zynq收到配置文件后,可以保存在DDR或SD卡等存儲(chǔ)器上。然后PS通過AXI接口將配置數(shù)據(jù)傳遞給PL。PL一邊接收數(shù)據(jù),一邊實(shí)現(xiàn)FPGA的相應(yīng)配置時(shí)序,最終完成配置工作。
3 具體實(shí)現(xiàn)
以Altera Stratix IV為例說明,Zynq SOC采用Zynq-7000系列的XC7Z030,普通PC機(jī)一臺(tái)。硬件框圖如圖1所示。
具體配置流程:
(1)PC與Zynq SOC建立TCP/IP連接,Zynq為Server,PC為Client。PC通過千兆網(wǎng)口將配置文件發(fā)送給Zynq,Zynq收到文件后,存到SD卡備用。
(2)Zynq中PS與PL建立AXI通道接口,PS做Master,PL做Slave。PS從SD卡讀取配置文件數(shù)據(jù),通過AXI接口,發(fā)送給PL。因配置文件通常為10幾兆,因此傳輸時(shí)分片傳輸,每次可傳K級(jí)別數(shù)據(jù)。
(3)PL一邊接收數(shù)據(jù),一邊實(shí)現(xiàn)Stratix IV的配置時(shí)序,邊收數(shù)據(jù),邊配置。
(4)PS每傳一片數(shù)據(jù),都要等待PL配置完成,并且檢驗(yàn)糾錯(cuò),正確時(shí)才可傳送下一個(gè)數(shù)據(jù)包。
(5)重復(fù)(3)(4)步驟,至全部配置數(shù)據(jù),傳輸配置完成。
(6)Zynq SOC將配置結(jié)果(成功或失?。ㄟ^以太網(wǎng)上報(bào)給PC。至此,完成遠(yuǎn)程配置。
流程圖如圖2所示。
需要注意,當(dāng)PC向Zynq傳送配置文件時(shí),需要先將文件的標(biāo)志信息(文件名、長度)傳過去,Zynq會(huì)在本地新建同名文件。然后PC再把將文件的數(shù)據(jù)信息傳過去,Zynq會(huì)自動(dòng)存儲(chǔ)到剛剛新建的文件中,以此實(shí)現(xiàn)配置文件的同步傳送。
進(jìn)行AXI數(shù)據(jù)通信時(shí),本文選用AXI GP接口,該接口比AXI HP、AXI ACP實(shí)現(xiàn)簡單??蛇x擇數(shù)據(jù)位寬32bit或64bit,經(jīng)典的寄存器思想,選擇32bit寬時(shí),每個(gè)AXI GP設(shè)備最多擁有512個(gè)寄存器資源,這也限制了傳送配置文件數(shù)據(jù)時(shí),最大包的最大Size。因AXI GP接口帶寬高,即使分包傳輸,性能上依舊很好。
4 結(jié)語
借助Xilinx的Zynq SOC平臺(tái),將PS和PL的設(shè)計(jì)資源合理利用,充分發(fā)揮以太網(wǎng)和AXI等高速接口的性能,高效的完成FPGA的遠(yuǎn)程配置工作。本方法已在項(xiàng)目中得到實(shí)際運(yùn)用。該方法實(shí)現(xiàn)巧妙,兼容性強(qiáng),為硬件程序更新帶來了便利。
參考文獻(xiàn)
[1]陸佳華,江舟,馬岷.嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計(jì)實(shí)戰(zhàn)指南基于Xilinx Zynq[J].2013.
[2]何賓. Xilinx All Programmable Zynq-7000 SoC設(shè)計(jì)指南[M].清華大學(xué)出版社,2013.
[3]陶杰.FPGA局部動(dòng)態(tài)可重配置的研究[J].電子科技,2009.4