多系统FPGA远程更新系统的设计与实现
摘要: 为了解决多系统FPGA远程更新的局限性,提出了一种基于SoC的多系统FPGA远程更新系统设计方法。应用以太网协议实现了上位机与SoC控制系统的信息交互,SoC芯片控制加载流程实现多系统FPGA远程更新。通过实际测试,验证了新方法的可行性、正确性。该方法有效解决了传统更新方法操作复杂、距离短、时间长等缺点,对工程应用具有重大意义。
0 引言
FPGA(Field Programmable Gate Array)即现场可编程门阵列,具有资源丰富、接口资源多、并行逻辑处理能力强、可重复在线编程等特点,FPGA高效而灵活的处理方式使其在军事工业、工业控制、人工智能等很多领域得到广泛应用[1-2]。Zynq系列SoC芯片作为Xilinx公司的全可编程片上系统,集成了ARM Cortex A9和Kintex-7系列FPGA,处理速度高至1 GHz,丰富的逻辑资源及强大的处理器在系统控制中起到关键作用[3]。
传统的FPGA更新方法采用串行配置边界扫描(JTAG)来访问芯片并对FPGA的配置Flash进行编程,该方法受限于更新速度和操作距离,仅适用于本地更新[4-5]。在多片FPGA的大型设备中,JTAG更新方法需要将每片FPGA连接到JTAG下载电缆进行程序更新,因此这种方法效率低下,局限性极大。装备于军事设备及置于人工不能操作的严苛环境下的设备中,传统的更新方式不能完成任务需求。
为了解决这些问题,FPGA远程更新已经有相关文献进行了研究,一种方法是利用FPGA内部的MCU软核进行相应的设计实现,在该方法中FPGA的MCU软核依存于FPGA配置程序中,需要预先加载程序,如果远程更新失败,整个系统面临瘫痪的风险[4]。另一种方法是利用ARM或DSP作为加载控制器,该方法具有电路结构复杂、成本高、实现难度较大等缺点[6-8]。鉴于传统更新方式及现存方法的局限性,本文设计了一种基于SoC的多系统FPGA远程更新系统,并通过工程实现。