劉文政,劉 劍
(中國船舶重工集團公司第七二三研究所,江蘇 揚州 225101)
目前,基于Open VPX架構的通用處理平臺廣泛應用于雷達和電子戰(zhàn)系統(tǒng)中,平臺內(nèi)部的處理模塊也需符合通用化、系列化、組合化的發(fā)展趨勢。在預處理、信號處理等場景中,現(xiàn)場可編程門陣列(FPGA)處理模塊扮演著重要的角色,實現(xiàn)FPGA的遠程調(diào)試和更新可以提升FPGA開發(fā)的效率、靈活性、便捷性和安全性。同時,F(xiàn)PGA的智能加載、功能重構也是通用處理模塊需要研究的問題。
傳統(tǒng)FPGA的調(diào)試和更新一般基于各 FPGA廠商推出的專用下載器,比如平時常用的Xilinx公司的FPGA,調(diào)試過程中需要使用該公司的Platform Cable USB下載電纜,在線調(diào)試和程序更新需要將FPGA的JTAG調(diào)試口通過USB電纜與電纜相連。傳統(tǒng)方式存在很大的局限性,比如在艦船裝備中,可能在狹小的空間或者高處,調(diào)試和更新時需要打開機柜,針對需調(diào)試或更新的板卡,插入USB電纜,操作過程不靈活,甚至存在一定的危險性。傳統(tǒng)FPGA的加載方式一般在加電后從自身串行或并行的Nor Flash啟動程序,功能相對單一,不符合當前通用化、可重構、易擴展的特點。
為此,本文結(jié)合通用處理平臺的特點,基于Xilinx公司的Zynq7000和大容量eMMC Flash,設計了一套實用有效的遠程調(diào)試和更新系統(tǒng),通過以太網(wǎng)來對FPGA模塊進行遠程在線調(diào)試和更新,只需網(wǎng)線與電腦連接,就能實現(xiàn)單對單或者單對多的調(diào)試和更新工作。同時FPGA的加載方式也有別于傳統(tǒng)方法,程序配置文件通過以太網(wǎng)存到eMMC Flash,通過SelectMap模式從Zynq7000啟動。FPGA處理模塊可根據(jù)通用處理平臺的槽位號加載相應程序,以實現(xiàn)智能加載、程序重構的功能。
通用處理平臺設計基于Open VPX架構,滿足通用化、模塊化、可重構等特點,符合VITA65規(guī)范(12-Slot-BCK6-CEN12-11.2.9-n)[1],架構框圖如圖1所示。
圖1 通用平臺的架構圖
平臺中,中間2個交換模塊實現(xiàn)數(shù)據(jù)傳輸和以太網(wǎng)交換功能。平臺最多可支持10塊處理板卡,可根據(jù)不同功能選擇不同類型的板卡,在某些場景中通用處理模塊以FPGA芯片為主。本次設計主要通過千兆以太網(wǎng)來實現(xiàn) FPGA模塊遠程調(diào)試和更新,PC機只要通過網(wǎng)線與交換模塊相連,就可以根據(jù)不同的IP地址對機箱內(nèi)不同的FPGA模塊進行操作。
FPGA處理模塊的設計也要體現(xiàn)通用化,同時需搭建一套具備以太網(wǎng)調(diào)試和更新的環(huán)境。FPGA模塊主要由V7系列FPGA(單片或多片)、Zynq7000、eMMC Flash等構成,F(xiàn)PGA與Zynq7000的PL部分相連,Zynq7000外掛PHY實現(xiàn)以太網(wǎng)接口,同時存儲接口接DDR3用來運行協(xié)議棧,大容量eMMC Flash用來存儲FPGA的配置程序。通用化的設計框圖如圖2所示。
圖2 FPGA模塊的設計架構
選用Xilinx公司的Zynq7000系列芯片作為主控制芯片,主要包括PS(Processing System)和PL(Programmable Logic)兩大部分。PS部分由雙核ARM Cortex-A9處理器、互聯(lián)接口、內(nèi)部cashe存儲器、擴展外設接口及存儲器接口等電路組成;而PL部分則主要為可編程邏輯器件[2]。主控制芯片主要完成以下功能:(1)以太網(wǎng)轉(zhuǎn)JTAG邏輯功能;(2)通過以太網(wǎng)將FPGA的配置程序存入大容量FLASH中;(3)構建FPGA啟動環(huán)境;(4)可識別槽位地址,完成FPGA智能加載,同時根據(jù)報文命令完成功能重構的功能。
Xilinx虛擬線纜(XVC)是一種基于TCP/IP的協(xié)議,其不僅可發(fā)揮類似于JTAG線纜的作用,而且還可提供一種無需使用物理線纜便可訪問和調(diào)試FPGA或Soc設計的方法[3]。Zynq7000芯片PS的GMAC接口實現(xiàn)千兆以太網(wǎng)功能,再通過XVC總線實現(xiàn)通過以太網(wǎng)轉(zhuǎn)JTAG邏輯功能,繼續(xù)用Vivado工具對FPGA進行調(diào)試。
SelectMap模式是一種并行配置模式,是FPGA中速度最快的配置選項,其配置時鐘最高可達66 MHz。V7系列FPGA提供8位、16位或32位雙向數(shù)據(jù)總線接口,可以用于配置和回讀[4]。其信號定義如表1。
表1 SelectMap模式信號
本次設計中,用Zynq7000芯片配置FPGA,Master或Slave SelectMAP模式都是可以使用的,優(yōu)先使用Slave SelectMAP模式。其接法示意如圖3所示。
圖3 Slave SelectMAP模式
本次設計中,存儲器沒有選用傳統(tǒng)的NOR Flash或者NAND Flash,NOR Flash的容量相對較小且讀寫速度相對較慢,NAND Flash的接口和管理的代碼開發(fā)相對比較復雜。而eMMC Flash則是把NAND Flash芯片和控制芯片封裝在一起的新技術,即在NAND Flash芯片上增加了一個接口控制單元,設計和使用更加簡單,降低了開發(fā)難度,同時容量和讀寫速度都能滿足應用。
遠程在線調(diào)試的實現(xiàn)主要基于XVC協(xié)議以及Zynq7 000本身的IP核,流程設計如圖4所示。
圖4 遠程在線調(diào)試流程
數(shù)據(jù)接收模塊利用PS本身的RGMII接口和DDR接口來實現(xiàn)TCP/IP協(xié)議,接收XVC協(xié)議以太網(wǎng)數(shù)據(jù)包,數(shù)據(jù)解析模塊解析數(shù)據(jù)后,通過AXI總線進入PL部分AXI_JTAG模塊,轉(zhuǎn)換成JTAG時序,從而脫離USB電纜,通過網(wǎng)線在線調(diào)試。
Zynq7000通過以太網(wǎng)接收PC機發(fā)過來的FPGA的配置文件后,寫入到eMMC Flash中,可根據(jù)不同地址同時存入多版本的程序。功能的實現(xiàn)主要基于PS本身的接口資源。
圖5 遠程在線調(diào)試流程
SelectMap模式配置時序如下:
加電后,Zynq7000芯片識別VPX槽位號或者收到報文命令后,讀取EMMC FLASH中相對應的FPGA配置程序,根據(jù)圖6時序,將FPGA的PROGRAM_B、INT_B管腳拉低后,產(chǎn)生CCLK送至FPGA,將配置程序通過并行數(shù)據(jù)線寫入FPGA。程序?qū)懭氤晒?,Zynq7000芯片監(jiān)測的DONE管腳,如果DONE管腳為高電平則說明FPGA加載成功。加載流程如圖7所示。
圖6 SelectMAP模式時序圖
圖7 FPGA加載流程
本文結(jié)合通用處理平臺的特點,基于Xilinx公司的Zynq7000和大容量EMMC FLASH,設計了一套FPGA模塊遠程調(diào)試和更新系統(tǒng),提高了FPGA開發(fā)效率以及靈活性,同時具備智能加載和功能重構的能力。