劉文政,劉 劍
(中國船舶重工集團公司第七二三研究所,江蘇 揚州 225101)
目前,基于Open VPX架構的通用處理平臺廣泛應用于雷達和電子戰系統中,平臺內部的處理模塊也需符合通用化、系列化、組合化的發展趨勢。在預處理、信號處理等場景中,現場可編程門陣列(FPGA)處理模塊扮演著重要的角色,實現FPGA的遠程調試和更新可以提升FPGA開發的效率、靈活性、便捷性和安全性。同時,FPGA的智能加載、功能重構也是通用處理模塊需要研究的問題。
傳統FPGA的調試和更新一般基于各 FPGA廠商推出的專用下載器,比如平時常用的Xilinx公司的FPGA,調試過程中需要使用該公司的Platform Cable USB下載電纜,在線調試和程序更新需要將FPGA的JTAG調試口通過USB電纜與電纜相連。傳統方式存在很大的局限性,比如在艦船裝備中,可能在狹小的空間或者高處,調試和更新時需要打開機柜,針對需調試或更新的板卡,插入USB電纜,操作過程不靈活,甚至存在一定的危險性。傳統FPGA的加載方式一般在加電后從自身串行或并行的Nor Flash啟動程序,功能相對單一,不符合當前通用化、可重構、易擴展的特點。
為此,本文結合通用處理平臺的特點,基于Xilinx公司的Zynq7000和大容量eMMC Flash,設計了一套實用有效的遠程調試和更新系統,通過以太網來對FPGA模塊進行遠程在線調試和更新,只需網線與電腦連接,就能實現單對單或者單對多的調試和更新工作。同時FPGA的加載方式也有別于傳統方法,程序配置文件通過以太網存到eMMC Flash,通過SelectMap模式從Zynq7000啟動。FPGA處理模塊可根據通用處理平臺的槽位號加載相應程序,以實現智能加載、程序重構的功能。
通用處理平臺設計基于Open VPX架構,滿足通用化、模塊化、可重構等特點,符合VITA65規范(12-Slot-BCK6-CEN12-11.2.9-n)[1],架構框圖如圖1所示。

圖1 通用平臺的架構圖
平臺中,中間2個交換模塊實現數據傳輸和以太網交換功能。平臺最多可支持10塊處理板卡,可根據不同功能選擇不同類型的板卡,在某些場景中通用處理模塊以FPGA芯片為主。本次設計主要通過千兆以太網來實現 FPGA模塊遠程調試和更新,PC機只要通過網線與交換模塊相連,就可以根據不同的IP地址對機箱內不同的FPGA模塊進行操作。
FPGA處理模塊的設計也要體現通用化,同時需搭建一套具備以太網調試和更新的環境。FPGA模塊主要由V7系列FPGA(單片或多片)、Zynq7000、eMMC Flash等構成,FPGA與Zynq7000的PL部分相連,Zynq7000外掛PHY實現以太網接口,同時存儲接口接DDR3用來運行協議棧,大容量eMMC Flash用來存儲FPGA的配置程序。通用化的設計框圖如圖2所示。

圖2 FPGA模塊的設計架構
選用Xilinx公司的Zynq7000系列芯片作為主控制芯片,主要包括PS(Processing System)和PL(Programmable Logic)兩大部分。PS部分由雙核ARM Cortex-A9處理器、互聯接口、內部cashe存儲器、擴展外設接口及存儲器接口等電路組成;而PL部分則主要為可編程邏輯器件[2]。主控制芯片主要完成以下功能:(1)以太網轉JTAG邏輯功能;(2)通過以太網將FPGA的配置程序存入大容量FLASH中;(3)構建FPGA啟動環境;(4)可識別槽位地址,完成FPGA智能加載,同時根據報文命令完成功能重構的功能。
Xilinx虛擬線纜(XVC)是一種基于TCP/IP的協議,其不僅可發揮類似于JTAG線纜的作用,而且還可提供一種無需使用物理線纜便可訪問和調試FPGA或Soc設計的方法[3]。Zynq7000芯片PS的GMAC接口實現千兆以太網功能,再通過XVC總線實現通過以太網轉JTAG邏輯功能,繼續用Vivado工具對FPGA進行調試。
SelectMap模式是一種并行配置模式,是FPGA中速度最快的配置選項,其配置時鐘最高可達66 MHz。V7系列FPGA提供8位、16位或32位雙向數據總線接口,可以用于配置和回讀[4]。其信號定義如表1。

表1 SelectMap模式信號
本次設計中,用Zynq7000芯片配置FPGA,Master或Slave SelectMAP模式都是可以使用的,優先使用Slave SelectMAP模式。其接法示意如圖3所示。

圖3 Slave SelectMAP模式
本次設計中,存儲器沒有選用傳統的NOR Flash或者NAND Flash,NOR Flash的容量相對較小且讀寫速度相對較慢,NAND Flash的接口和管理的代碼開發相對比較復雜。而eMMC Flash則是把NAND Flash芯片和控制芯片封裝在一起的新技術,即在NAND Flash芯片上增加了一個接口控制單元,設計和使用更加簡單,降低了開發難度,同時容量和讀寫速度都能滿足應用。
遠程在線調試的實現主要基于XVC協議以及Zynq7 000本身的IP核,流程設計如圖4所示。

圖4 遠程在線調試流程
數據接收模塊利用PS本身的RGMII接口和DDR接口來實現TCP/IP協議,接收XVC協議以太網數據包,數據解析模塊解析數據后,通過AXI總線進入PL部分AXI_JTAG模塊,轉換成JTAG時序,從而脫離USB電纜,通過網線在線調試。
Zynq7000通過以太網接收PC機發過來的FPGA的配置文件后,寫入到eMMC Flash中,可根據不同地址同時存入多版本的程序。功能的實現主要基于PS本身的接口資源。

圖5 遠程在線調試流程
SelectMap模式配置時序如下:
加電后,Zynq7000芯片識別VPX槽位號或者收到報文命令后,讀取EMMC FLASH中相對應的FPGA配置程序,根據圖6時序,將FPGA的PROGRAM_B、INT_B管腳拉低后,產生CCLK送至FPGA,將配置程序通過并行數據線寫入FPGA。程序寫入成功后,Zynq7000芯片監測的DONE管腳,如果DONE管腳為高電平則說明FPGA加載成功。加載流程如圖7所示。

圖6 SelectMAP模式時序圖

圖7 FPGA加載流程
本文結合通用處理平臺的特點,基于Xilinx公司的Zynq7000和大容量EMMC FLASH,設計了一套FPGA模塊遠程調試和更新系統,提高了FPGA開發效率以及靈活性,同時具備智能加載和功能重構的能力。