劉佳


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