基于动态加载的FPGA 在线更新方法

2022-07-23 07:41邵龙
电子设计工程 2022年14期
关键词:信号处理总线动态

邵龙

(中国电子科技集团公司第十研究所,四川成都 610036)

综合化电子系统定义了通用信号处理模块(SPM)、通用数据处理模块(DPM)等6 类通用功能模块,每一类模块都包括模块支持单元(MSU)、处理单元(PU)、模块物理接口(MPI)等组成单元[1-6]。通用信号处理模块的处理单元由典型信号处理器DSP/FPGA 组成,单独由FPGA 组成处理单元的信号处理模块就形成了FPGA 型信号处理模块。相较于DSP,FPGA 具备硬件并行优势,拥有更高的运算能力[7-9],提供更丰富的I/O 资源,因此,FPGA 型信号处理模块综合化电子系统的应用广泛。

FPGA 程序更新通常采用FPGA 厂家提供的基于边界扫描方式对外挂FLASH 芯片进行编程[10],但该方法操作繁琐、效率低[11-12]。采用在线更新的方式,可以解决FPGA 程序维护更新效率低的问题。目前,FPGA 在线更新有如下两种常规方案。常规方案一:FPGA 功能程序内含FPGA 在线更新模块,通过该模块实现将FPGA 程序更新到FPGA 外挂存储器中[13-15]。常规方案二:FPGA 程序存储在其他处理器(通用信号处理模块中一般为DSP)外挂存储器中,通过DSP 实现FPGA 在线更新[16-18]。

1 现有解决方案的局限性

现有的一些方案中有如下缺点:常规方案一中,由于FPGA 在线更新模块内置在FPGA 功能程序中,不仅增加功能应用与在线更新的耦合、占用宝贵的FPGA 内部资源,而且如果更新失败,还将导致FPGA在线更新功能完全失效,只能通过JTAG 烧写才能恢复。常规方案二中,由于FPGA 程序存储在DSP 外挂存储器中,FPGA 的加载就只能采用被动加载模式,加载速度比主动加载慢;另外,在没有DSP 的FPGA型信号处理模块中,常规方案二根本无法实现。

针对现有FPGA 在线更新技术中存在的不足,基于综合化电子系统中每个模块都包括模块支持单元(MSU),文中提供一种综合化电子系统中加载速度快、松耦合、不依赖DSP 的基于动态加载的FPGA在线方法。

2 FPGA在线更新电路

如图1 所示,在综合化电子系统中,基于动态加载的FPGA 在线更新电路包括电连接在综合化系统与FLASH 芯片之间的MSU 和FPGA,其中,MSU 包含处理器系统PS 和可编程逻辑PL,PL 内置PSPLIF 总线读写器、FPGA 程序加载控制器和FLASH 块选择器。PS 一端通过控制总线接入综合化系统,另一端通过PSPLIF 连接PL 的PSPLIF 总线读写器。PL 的FPGA 程序加载控制器通过一根输出和两根输入离散线连接FPGA 的PROG、INIT 和DONE 管脚,PL 的FLASH 块选择器通过n根地址控制线连接FLASH 高n位地址管脚。FPGA 一端通过数据总线接入综合化系统,另一端通过FPGA 并行加载接口BPI 连接FLASH 的控制接口、数据接口和除高n位地址管脚以外的地址接口。

图1 FPGA在线更新电路框图

在线更新时,PL 的FLASH 块选择器选中FPGA在线更新程序所在的FLASH 块,通过PL 的FPGA 程序加载控制器动态加载FPGA 在线更新程序。

FPGA 在线更新程序内部电路包括包收发器、包解析器和包烧写器,包收发器通过数据总线接入综合化系统数据总线,包烧写器通过BPI 与FLASH 连接。包收发器用于如下情况:1)当数据总线有FPGA程序数据包到达时,包收发器用于接收数据包并将数据包输出到包解析器;2)当接收到包解析器输出的包传输结果时,包收发器用于将包传输结果输出到综合化系统数据总线;3)接收到包烧写器输出的包烧写结果时,包收发器用于将包烧写结果输出到综合化系统数据总线。包解析器用于当包收发器输入FPGA 程序更新数据包时,检查包的完整性和确定传输结果的有效性,并输出传输结果到包收发器,如果完整有效,提取出待烧写地址、待烧写长度和待烧写数据,并输出到包烧写器。包烧写器用于当包解析器输入待烧写地址、待烧写长度和待烧写数据时,将长度为待烧写长度的待烧写数据通过BPI 写入FLASH 的待烧写地址中,校验烧写结果,并输出烧写结果到包收发器。

3 FPGA在线更新方法

如图2 所示,综合化电子系统中基于动态加载的FPGA 在线更新方法主要包括动态加载FPGA 在线更新程序和执行FPGA 在线更新程序实现FPGA在线更新,细分为5 个步骤:

图2 FPGA在线更新方法流程图

1)FPGA 在线更新电路通过PS 接收控制总线上动态加载指令,将默认块号(FPGA 在线更新程序所在的块)写入PL 的FLASH 块选择器中,选择FPGA在线更新程序所在的FLASH 块为当前有效块;

2)PS 通过PSPLIF 总线读写器控制PL 的FPGA程序加载控制器输出低电平脉冲到FPGA 的PROG管脚,启动FPGA 加载流程,加载FPGA 在线更新程序,并通过判断FPGA 的DONE 信号,确认FPGA 在线更新程序加载成功;

3)PS 通过控制总线上报FPGA 在线更新程序加载成功,接收待烧写FLASH 块号,通过PSPLIF 总线读写器将待烧写FLASH 块号写入PL 的FLASH 块选择器,选择待烧写FLASH 块为当前有效块,并通过控制总线上报模块做好了FPGA 在线更新准备;

4)FPGA 的包收发器接收在线更新数据包,将包输出到包解析器,包解析器检查包的完整性和确定传输结果的有效性,并输出传输结果到包收发器,如果完整有效,提取出待烧写地址、待烧写长度和待烧写数据,并输出到包烧写器;

5)包收发器发送传输结果,包烧写器将长度为待烧写长度的待烧写数据通过BPI 写入FLASH 的待烧写地址中,校验烧写结果,输出烧写结果到包收发器,并发送烧写结果。

其中,步骤1)~3)在MSU 中执行,实现FPGA 在线更新程序的动态加载和待烧写扇区的选取;步骤4)、步骤5)属于FPGA 在线更新程序,在FPGA 中执行,实现待更新FPGA 程序的接收和烧写。

4 工程应用及性能对比

基于动态加载的FPGA 在线更新电路及方法已应用在某综合化系统FPGA 密集型信号处理模块(SPM-F)的FPGA 在线更新中。

FPGA 密集型信号处理模块硬件框图如图3 所示。MSU 采用TI 公司的C2000 系列处理器C28235作为PS,选用XILINX 公司的Spartan 系列可编程逻辑器件XC3S1400 作为PL。C28235 的一端通过CAN总线接入综合化系统控制总线,另一端通过外部接口XINTF 连接XC3S1400。FPGA 的一端通过SRIO总线接入综合化系统数据总线,另一端通过BPI 与FLASH 连接。XC3S1400 通过一根输出离散线与FPGA 的PROG 管脚连接,XC3S1400 通过两根输入离散线与FPGA 的INIT 和DONE 管脚连接,XC3S1400通过3 根地址控制线连接FLASH 高3 位地址管脚,3根地址控制线将FLASH 分成块号为0~7 的8 块,FPGA 在线更新程序放在块号为7 的FLASH 块中。

图3 FPGA密集型信号处理模块硬件框图

系统硬件架构框图如图4 所示。FPGA 密集型信号处理模块通过SRIO 分别接入主备SRIO 网络,通过CAN 分别接入主备CAN 网络。I/O 模块通过CAN 总线发送动态加载指令至FPGA 密集型信号处理模块C2000,C2000 将块号7 写入XC3S1400 的FLASH 块选择器中,选择FPGA 在线更新程序所在的FLASH 块为当前有效块;C2000 通过XINTF 控制XC3S1400 的FPGA 程序加载控制器,加载FPGA 在线更新程序,并通过判断FPGA 的DONE 信号,确认FPGA在线更新程序加载成功。C2000通过CAN总线向I/O 模块上报FPGA 在线更新程序加载成功,并接收I/O 模块通过CAN 总线下发的待烧写FLASH 块号,通过XINTF 将待烧写FLASH 块号写入XC3S1400的FLASH 块选择器中,选择待烧写FLASH 块为当前有效块,并通过CAN 总线向I/O 模块上报:模块做好了FPGA 在线更新准备。

图4 系统硬件架构框图

FPGA 在线更新程序的FPGA 的包收发器通过SRIO 接收I/O 模块发送的在线更新数据包,并将包输出到包解析器,包解析器检查包的完整性和确定传输结果的有效性,并输出传输结果到包收发器,如果完整有效,提取出待烧写地址、待烧写长度和待烧写数据,并输出到包烧写器;包收发器通过SRIO 向I/O模块发送传输结果,包烧写器将长度为待烧写长度的待烧写数据通过BPI 写入FLASH 的待烧写地址中,校验烧写结果,输出烧写结果到包收发器,包收发器通过SRIO 向I/O 模块发送烧写结果。

基于动态加载的FPGA 在线更新方法与常规方案一和常规方案二的性能对比如表1 所示。相对于常规方案一,基于动态加载的FPGA 在线更新方法具有功能应用与在线更新解耦、不占用功能应用的FPGA 处理资源、更新失败时不需要采用JTAG 下载等优势。相对于常规方案二,基于动态加载的FPGA在线更新方法具有加载速度快,不需要额外处理器的优势。

表1 性能对比

5 结论

文中提出了一种基于动态加载的FPGA 在线更新方法,不仅通过避免需要增加DSP 才能实现FPGA在线更新,降低了成本和系统复杂度,而且通过避免在线更新模块内置于FPGA 功能应用程序中,减少了系统耦合和处理资源的占用。多个大型综合化系统的应用实践表明,该方法是一种在综合化电子系统中实现FPGA 在线更新的有效方法。

猜你喜欢
信号处理总线动态
国内动态
国内动态
包装过程称量信号处理方法研究
国内动态
关于CAN总线的地铁屏蔽门控制思路论述
动态
Q&A热线
PCI9030及其PCI总线接口电路设计