基于FPGA的动态可重构技术研究

2020-03-16 02:31杜尚涛贺鹏超余国强曲翕
电子技术与软件工程 2020年24期
关键词:全局重构粒子

杜尚涛 贺鹏超 余国强 曲翕

(西安微电子技术研究所 陕西省西安市 710054)

1 引言

可重构技术是一种通过对电路结构可变的硬件进行配置,从而完成不同功能之间的灵活切换的新技术。使用可重构技术实现的系统兼具灵活性和高性能的优势,可以在兼顾系统性能的同时大大缩短产品研发周期,因此可重构技术具有重要的研究价值。

20 世纪80年代,Xilinx 公司推出了第一块现场可编程门阵列[1](Field Programmable Gate Array, FPGA)。由于FPGA 具有可反复硬件编程的特点,即可以仅通过改变加载程序或加载方式实现内部硬件逻辑电路的改变,从而成为可重构技术理想的硬件搭载平台。

2 FPGA可重构技术

可重构技术包括静态可重构技术和动态可重构技术。静态可重构技术是指在任务切换时需要在外部控制下对硬件重新进行配置,该方法配置前后在时间上任务是不连续的; 动态可重构技术则是指在系统运行时实时实现重构,配置前后任务在时间上是连续不间断的。

动态可重构包括两种:一种是动态全局重构,另一种是动态部分重构。动态全局重构即将FPGA 内部的逻辑电路全部进行重新配置,重新配置之后FPGA 内部原有的逻辑功能被新的逻辑功能代替,故该方法适合于配置逻辑功能比较独立的不同功能的程序。动态局部重构则是在系统运行时只改变特定区域的逻辑电路,而其它非重构区域的逻辑电路还在正常运行,该方法从时分复用方面入手,只使用较少的硬件资源来实现快速局部重构。

Xilinx 公司的Virtex 系列FPGA 支持JTAG、ICAP 以及Select MAP 方式的动态重构。下面将以该系列FPGA 为例,介绍一种适用于地面设备的动态全局重构方案和一种适用于星载产品的重构设计方案。

图1:Xilinx 公司Virtex-5 系列FPGA 配置模式

图2:适用于地面设备的动态重构框图

3 适用于地面设备的动态全局重构设计方案

航天领域的产品设计中一般分为地面设备和星上产品。对于地面设备,其基本的需求特点为低成本、高灵活性、占用硬件资源少,下面针对地面设备的特点提出一种与其适应的基于FPGA 的动态全局重构设计方案。

以Xilinx 公司的Virtex-5 系列FPGA 为例,针对同样的配置文件,选择不同的配置模式,其配置时间与硬件设计方案均不同[2],图1 为Xilinx 公司Virtex-5 系列FPGA 的配置模式。

FPGA 器件手册中只有Master SelectMAP 和Slave SelectMAP 两种方式支持并行配置的动态重构,而这两种配置方式中只有Slave SelectMAP 方式支持数据压缩功能[3]。考虑到并行配置可以提高配置速度、数据压缩可以用来实现存储较多的配置程序,该方案使用Xilinx 公司的XCF32P Flash PROM 在Slave SelectMAP 配置模式下配置FPGA,逻辑框图如图2 所示。

该方案的设计在逻辑功能上有4 种功能的配置位流文件,对应的配置位流文件命名为为HGJ1.bit、HGJ2.bit、HGJ3.bit 和HGJ4.bit。程序生成的位流文件需要使用Xilinx 公司的ISE 软件转换为.mcs 文件方可存储于XCF32P 中。位流文件转换成.mcs 文件的配置界面如图3 所示,转换过程分为5 个步骤:

(1)选择Xilinx Flash/PROM 作为配置存储器;

(2)配置存储器类型选择Platform Flash;

(3)PROM 容量大小选择32Mbit;

(4)填写文件的名称,选择存储路径;

(5)设置将要生成的配置文件的文件属性,将文件格式设置为.mcs、勾选设计修订版本选项、将版本数量设置为4、勾选配置数据压缩选项。当配置完成之后,点击OK,此时会自动弹出基于Platform Flash 的配置文件生成对话框,如图4 所示,接着需要将不同种类的位流文件压缩为一个.mcs 文件,操作步骤为:

(1)按顺序添加不同的配置位流文件;

(2)生成可存储于Platform Flash 中的.mcs 文件。此时生成的.mcs 文件即包含了4 种设计修订版本的程序。生成完毕之后会显示Generate Succeeded。

通过以上操作便完成了基于Platform Flash 的动态全局重构程序生成。如果需要对FPGA 程序进行重构,则可将FPGA 的M2-M0 配置为“110”(Slave SelectMAP 配置模式)然后通过设置RS[1:0]选择需要的程序版本,最后触发PROG_B 控制信号来实现FPGA 中不同程序的切换,从而完成FPGA 程序的动态全局重构。

某些设计中,由FPGA 控制的外设(比如AD、DA 和锁相环等芯片)需要通过配置寄存器来完成其初始化和自检操作,当初始化和自检完成后该功能对应的逻辑就不再使用了。使用本方案的动态全局重构方法可以先通过一个配置程序完成初始化和自检,然后再将FPGA 程序重构为实现具体应用功能的程序,这样可以有效降低程序功耗和资源利用率,或者在资源不够的情况下通过逻辑拆分来实现所需功能。

4 适用于星上产品的动态全局重构设计方案

航天领域的星上产品在设计中需满足高可靠性、抗单粒子翻转的要求,在设计中不仅要从元器件质量等级、抗辐照指标、温度适应性等方面考虑,而且也要从设计架构中考虑产品的可靠性问题。在星载宇航产品设计中由于任务需要经常会用到SRAM 型FPGA,而SRAM 型FPGA 容易受到单粒子翻转的影响,所以需要在系统设计上提高其抗单粒子翻转的能力,如回读重构、刷新、三模冗余等。下面将从重构和刷新方面介绍一种适用于宇航产品的设计方案。该方案的FPGA 选型为JFM4VSX55RT(复旦微电子研究所的FPGA,对标Xilinx 公司的XC4VSX55),设计采用1 片JFMRS01RH 型刷新芯片配以2 片JFM29LV641RH 型NOR Flash、2 片XQ17V16 型PROM 来对FPGA 进行在轨重构和刷新操作。

JFMRS01RH 可用于SRAM 型FPGA 的回读刷新,当回读检测到FPGA 发生单粒子翻转时,可以采取重构的方式消除单粒子的影响,使系统恢复正常;也可定时刷新FPGA,削减单粒子的累积效应。在配置方式上支持SelectMap 并行模式或者Daisy Chain 模式,考虑到采用并行配置可提高配置速度,本方案设计为SelectMap 并行模式。实现方法如图5。

如图5 所示,使用2 片64M 的NOR FLASH 存储位流,每片NOR FLASH 存储2 份位流。2 片NOR FLASH 存储的位流完全一致,在2 片NOR FLASH 上可实现4 份备份。使用时可通过UART 接口对NOR FLASH 进行在线重构,包括编程、全芯片擦除、扇区擦除、数据校验、数据回读操作。

当FLASH 中的位流数据发生翻转,导致重构不成功或者位流解析错误,可自动切换到片内分区。如果片内的第二片分区也发生翻转,那么会切换到备机,依此类推,如果备机的数据也发生翻转导致重构不成功或者位流解析错误,将自动切换到XQ17V16 来加载程序。当前使用的存储器和已经发生数据翻转的存储器可以通过遥测查询,发生翻转的存储器将被全芯片擦除,然后重新进行编程。

图3:基于Platform Flash 的配置文件格式转化配置界面

图4:基于Platform Flash 的配置文件生成界面

本方案已在多个星载任务中实现成功应用,通过将同一个程序文件进行5 份备份,当出现程序运行异常后,由控制芯片实现程序自动切换,从而保证了星上产品在的高可靠性、抗单粒子翻转的要求。

5 结论

本文针对基于FPGA 的动态可重构技术,提出了分别适用于地面设备和星上产品的两种可重构方案,其中适用于地面设备的方案可满足地面设备低成本、高灵活性、硬件资源少的需求,适用于星上产品的方案可满足星上产品高可靠性、抗单粒子翻转的需求。对于以上两种方案已经在多个产品研发中进行了应用,并且产品功能性能稳定可靠。随着FPGA 的集成度和运行速度不断提升,基于 FPGA 的动态可重构技术具有越来越高的研究价值。今后的研究主要可以从以下两个方向来开展。

(1) FPGA 可重构系统的体系架构。可重构技术的体系架构并非千篇一律,今后在系统体系架构研究层面还有很大的发展空间。

(2)研究基于FPGA 的可重构应用。通过研究和改进基于FPGA 的可重构技术,探索可重构技术可适用的新的应用领域,使基于FPGA 的可重构技术应用更加广泛。

图5:动态全局重构连接图

猜你喜欢
全局重构粒子
Cahn-Hilliard-Brinkman系统的全局吸引子
量子Navier-Stokes方程弱解的全局存在性
北方大陆 重构未来
基于粒子群优化的桥式起重机模糊PID控制
落子山东,意在全局
基于粒子群优化极点配置的空燃比输出反馈控制
论中止行为及其对中止犯的重构
新思路:牵一发动全局
基于Matlab的α粒子的散射实验模拟
基于两粒子纠缠态隐形传送四粒子GHZ态