一种基于网络的FPGA远程调试加载方法

期刊: 中国科技研究 DOI: PDF下载

王福红 高超

南京科瑞达电子装备有限责任公司 江苏 南京 211100

摘要

随着目前军工领域雷达、导航、舰载、电子对抗、软件无线电等板卡及整机中 FPGA、DSP 等芯片的大量应用,对FPGA、DSP 的使用及方案架构优化能够有效提高 FPGA、DSP 等器件的系统集成性能,本文提出了一种基于XVC协议通过网络,利用专用加载处理芯片控制FPGA、DSP的JTAG接口对其进行远程调试和加载的方法。该方法架构简单,易于拓展,同时也提高了可靠性。


关键词

FPGA;远程调试;远程加载;网络

正文


一、引言

近年来,FPGA(现场可编程逻辑门阵列)技术发展迅速,凭借着高度的灵活性,越来越受欢迎,在军航空航天通信、工业、人工智能领域均得到广泛应用,已俨然成为数字系统的核心。FPGA的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式块RAM布线资源,内嵌专用硬核,底层内嵌功能单元FPGA最大特点是可编程,通过HDL(硬件描述语言)重新“编程”,实现FPGA性能优化或功能改变。

FPGA核心的简单的系统中,对其中的FPGA调试、加载都是通过传统USB-JTAGUniversal Serial Bus  Joint Test Action Group来完成的[1]在产品初始阶段非常适用,然而在实际工程应用中特别是军用电子设备各种产品组装成一个庞的系统时,使用FPGA数量非常多需对系统多个FPGA进行调试、加载、更新时,常规的调试、加载方式就显得极其不方便,在架构和效能方面都有很大的限制,形成在FPGA 调试和加载中效率的瓶颈节点。

二、传统加载模式及缺点 

 

目前采用的传统架构FPGA调试方式包括平台板卡、FPGA USB Cable、调试 PC 机(运行ISEVIVADO等调试软件)几个部分组成,FPGA 器件与USB Cable之间采用排线以插针的方式连接,USB Cable与调试PC 机之间以USB线连接;针对这种调试架构和方式,存在以下几个缺点: 

a) 由于传统USB下载线缆通过PCUSB接口供电,根据USB特性,在线长超过1.5米后电平和时种信号衰减严重,造成连接不稳定等问题。 

b) FPGA固件程序固化速率慢。

c) 单次只能调试一个目标FPGA:目前方式下的USB下载线缆采用一对一的方式,如不经过复杂的电路设计很难做到同时调试多个目标 FPGA 

d) 受调试环境限制较大,整机装配后再调试困难。

e) 无法实现远程调试加载电路。

三、优化远程调试加载系统设计

3.1硬件设计

在单模块中加入一片专用加载芯片(MCU),可以实现通过以太网的方式对 FPGA DSP等器件的远程加载功能,同时具备远程在线调试的功能。

该方案下的加载方式,只需要按固定的参考电路把专用加载处理芯片(MCU)加入到单板或整机设计中,就可以以网络方式实现对 FPGA 器件的调试和更新功能, MCU控制器通过模拟JTAG接口的时序对FPGA进行配置,针对多片FPGA进行远程调试加载的系统框图如 1.

1 系统框图

系统硬件电路主要由MCU控制器FPGA电路JTAG链路模块SPI电路组成。MCU选择海威华芯公司的HHD1705001芯片,一端通过网络与PC终端连接,另一端通过JTAG接口传输JTAG配置时序,多片FPGAJTAG采用菊花链的方式串联在一起,实现多片同时远程调试加载

远程调试加载时PC端使用XILINX公司CHIPSCOPEIMPACTVIVADO工具将包含配置的指令通过网络发送给MCUMCU根据XVC协议接收指令并模拟产生JTAG时序,FPGA芯片接收该时序并完成调试加载。

HHD1705001芯片是内嵌 ARM Cortex™ M3 核的32位高性能通用微控制器[2] 它采用 ARM 高性能双总线架构。其中内核最高工作频率可达72MHz,内置支持 32 位单周期硬件 乘法运算。先进的ARM Thrum指令集技术, 使HHD1705001指令更加精简,易于程序的设计和调试。

3.2软件设计

3.2.1  XVC协议

XVC协议XILINX公司额一款基于TCP/IP虚拟线缆[3]可以起到类似与JTAG线缆的作用,允许使用者通过网络直接访问FPGAJTAG接口,并且可对FPGA进行高效率的远程调试和加载。Xilinx 针对此协议提出一套基本的参考协议,使用户充分发挥自身应用特点,通过其灵活的扩展性和可靠的安全连接,通过编程可用于不同平台。

3.2.2  MCU软件

方案使用基于JTAG配置方式,HHD1705001作为实现XVC控制器,HHD1705001通用I/O管脚模拟JTAG接口TCKTMSTDITDO。远程加载时,FPGA中需要加载一段程序用于引导自身程序的固化。通过事件触发切换将 SPI Flash引脚连接到 MCUSPI接口,实现SPI FlashMCU的网络下载链路,当 MCU 完成对SPI Flash 的写操作后自动触发FPGA 的加载 Flash 链路,实现Flash 的正常启动电路,同时给 FPGA 器件触发复位信号实现启动。经过对 XVC 协议的充分分析和优化,并优化HHD1705001 底层机制,采用软硬件结构的方式,优化相应的指令,使 HHD1705001芯片及优化后的XVC协议形成稳固的整体系统。

四、远程调试加载

利用VIVADO调试工具,打开Open Hardware Manager选择Open target,在“local host”右健选择 “Add Xilinx Virtual Cable” 输入目标IP,“192.168.2.198”为MCUIP,需根据实际IP更改;“2542”为端口号,无需更改。如 2所示,可直接进行调试加载

 

2 远程调试示例图

五、结论

综上所述,方案基于XILINXXVC协议,利用PCMCU通过以太网通信,成功实现了对FPGA远程调试和加载。本方案只需一片专用加载处理芯片,无需其它额外的附电路,此远程调试加载方案优势如下:

a) 调试和更新距离不受限制,因采用以太网接口,用户可以在很远距离内实现以IP的方式对目标 FPGA 的调试和加载。

b) MCSBIN文件固化速度快,因整个加载链路是通过网络数据传输,静态加载芯片以经过硬件优化的 SPI 接口高速将 MCS /BIN文件写入到 Flash 中,速率可达到 4MB/s,对照下载 XC7K325TXILINX公司FPGA型号)芯片 BIN文件只需要 3分钟左右。

c) 整体远程调试加载方法采用以太网的方式,从客户端来看,每个FPGA器件是以IP的形式连接,可以遵循以太网协议实现组网,通过路由器或交换机形成网络结构,对矩阵式设备的不移动、不拆卸调试。

在其它系统中应用时,可直接将此方法移植,方便可靠随着电子设备的发展推进,通过网络进行FPGA远程调试加载将变得更加普遍。

参考文献

[1] 边界扫描测试技术发展综述,中国知网2017 

[2] HHD1705001网络传输专用处理电路产品手册,海芯,2018 

[3]Xilinx Virtual Cable Running on Zynq-7000 Using the Tools, Xilinx,2015

 


...


阅读全文