APP下载

一种基于局部可重构技术的DMR设计

2015-10-13李跃华张金林

舰船电子对抗 2015年6期
关键词:备份器件重构

丰 坤,李跃华,张金林

(空军预警学院,武汉430019)

0 引 言

现代信息化战争对空中预警装备(如机载雷达)提出了可靠性高、体积小、功耗低、实时性强等要求。本文总结提炼出了一种更加适合于Altera公司Stratix系列器件的改进型基于模块的动态重构设计,并结合传统硬件冗余,提出了一种基于现场可编程门阵列(FPGA)局部动态可重构的双模冗余(DMR)设计,以提升预警装备的战技性能,满足作战要求。

随着数字系统的快速发展以及FPGA的日趋成熟,能够实时重构的容错技术逐渐应用于军事领域。基于FPGA的动态容错技术[1],其基本原理是将备用配置数据重新下载到FPGA上,以消除原有的故障,即允许对可重构的模块或系统的一部分进行重新配置,在配置的过程中,其余的部分可以继续工作而不受配置区域的影响。传统的容错技术主要包括硬件冗余、软件冗余、信息冗余和时间冗余。在雷达装备里用得最多的是三模冗余(TMR)[2]和双模冗余比较(DMRC)[3],它们都能在模块出现故障时迅速切换到备份模块,保证系统、装备的正常工作,其不足是不能及时消除、修复故障,并且会使功率和硬件资源的消耗过大,增大了体积和成本的开销。本文在对基于Xilinx公司器件的4种局部重构设计方法学习研究的基础上,根据Altera用户手册,对基于模块的动态重构设计方法进行优化改进,使其更加适合于Altera公司的Stratix系列器件。结合传统容错技术,提出了一种基于FPGA局部可重构技术的DMR设计,它能够克服以上传统容错技术的不足,降低功耗,减少硬件资源的使用,提高系统、装备的可靠性、实时性。

1 传统的容错技术

1.1 双模冗余比较(DMRC)

双模冗余比较[3](DMRC)是一种主动硬件冗余形式,其结构框图如图1所示。

图1 双模冗余比较结构框图

双模冗余比较基本工作方式为:系统正常工作时,2个完全相同的模块1和模块2,输出到比较控制器进行比较,如果比较结果一致,则正常输出;如果比较结果不一致,则启动它们各自的检测电路进行故障检测,将检测到的故障模块封锁,禁止其输出,只允许正常模块输出。这种方法能够及时有效地检测出故障,并确认故障模块,保证系统的正常运行,但不具备对故障模块及时消除和修复的能力。

1.2 三模冗余

在可靠性要求比较高的场合,如在沿海一线经常担负战备值班的雷达武器装备,常常采用传统的三模冗余[2](TMR)设计,它是一种比较典型的被动硬件冗余形式,其结构框图如图2所示。

图2 传统的TMR结构框图

图2中M1、M2、M3为结构和功能都相同的模块,V为多数表决器。其工作方式为:系统正常工作时,M1、M2、M33个模块同时接入电路工作,送到多数表决器V来表决。3个模块中不多于1个模块发生故障时,该TMR系统仍然正常工作,整个系统正常运行;当有1个以上模块发生故障时,该TMR系统失效,整个系统不能正常运行。

TMR系统能够掩盖和忽略其中一个模块出错或故障,由于2个模块同时出故障的概率很低,所以其可靠性非常高,但是其消耗硬件资源较多,且不具备对故障模块及时消除和修复的能力。

2 基于局部可重构技术的DMR设计

2.1 基于Stratix器件的改进型局部重构设计流程

随着FPGA可重构技术的发展,目前市场上已经有Xilinx和Altera两家公司的FPGA支持局部动态可重构。其中Xilinx公司主流的支持局部动态可重构的设计方法有以下4种:基于差异的动态重构设计[4],基于模块的动态重构设计[5],基于比特流的动态重构设计[6]和早期获取部分可重构(EAPR)的设计[7]。Altera公司的可重构方法可分为基于Stratix器件的重构设计方法和基于Cyclone器件的重构设计方法[8]。

在Xilinx的局部重构设计方法中,基于模块的动态重构设计方法应用较广,这里就不再描述其它的3种重构设计。基于模块的动态重构[4]设计方法是系统按照一定的原则划分为若干模块,并且每个模块之间相互独立,其中一个模块改变时不影响其它模块的实现。它分别对每个模块进行设计与综合,最后通过顶层文件对所有子模块的结果有机组合起来,就完成了整个系统的设计。其优点是设计灵活,方便团队式地进行项目的并行开发,保证了项目的开发进度;同时各模块之间实现功能相互独立,在调试、改变其中某个子模块的时候,最大程度上不干扰、影响其它模块功能的实现。

由于本文中采用Altera公司的Stratix器件,故这里只介绍Stratix器件的重构方法。基于Altera公司Stratix器件的设计方法与基于模块的设计方法类似,其可以看作是基于模块的动态重构设计方法的改进型。根据Altera用户手册,对基于模块的动态重构设计方法进行优化改进,使其更加适合于Altera公司的Stratix系列器件,如图3所示,为基于Altera的Stratix系列器件局部重构设计流程改进型。该改进型的流程包括模块设计、重构控制模块设计、VerilogHDL编码、功能仿真、设计分区、创建和编译修订、时序分析以及生成配置文件等主要步骤。

图3 基于Stratix器件的改进型局部重构设计流程

(1)模块设计

根据系统设计的需要,选择最适合于局部重构的部分进行模块设计。

(2)重构控制模块设计

根据所采用的局部重构方法,设计一个局部重构控制模块,它可以在FPGA内部,也可以在FPGA外部。其主要用来监控局部重构的过程。

(3)VerilogHDL编码

利用硬件描述语言Verilog HDL为所有的局部重构区域编写代码。

(4)功能仿真

对VerilogHDL编码进行功能仿真,验证编码、设计是否正确。

(5)设计分区

指定局部重构模块与逻辑锁定区域设计分区。如果功能仿真正确,就可以把局部重构模块设置为设计分区,并加上逻辑锁的位置约束。

(6)创建和编译修订

为每个personas的组合建立不同的修订(revision),这些修订主要是用来管理源文件以及执行时序分析。

(7)时序分析

对personas进行时序分析,如果时序分析正确,则执行下一步。

(8)生成配置文件

如果时序分析正确,就可以在Quartus II软件将产生的文件转换为执行局部重构所需要的部分配置文件。

在以上的任何步骤发生错误或与设计要求不相符,则返回到相应的步骤或位置进行修改或者重新设计。

2.2 局部可重构技术的DMR设计

由于传统的冗余方法已经无法满足现代机载雷达的要求,为了提高机载雷达探测各类复杂目标的能力,本文提出了一种基于局部可重构技术的DMR设计,结构框图如图4所示。其基本工作方式是:两模块并行接入系统中,其中一个模块正常工作,另一个模块作为热备份。当正在运行的模块出现故障导致输出不正常时,系统立即切换到备份模块,保证系统正常运行。同时重构控制器发出重构信号调用Flash里的模块配置数据对故障模块进行重配置,从而消除、修复模块故障。

图4中,模块A和备份模块B结构、系统和功能完全一样,位于FPGA动态模块区域,其它部分位于静态模块区域,Flash里的动态配置数据只需准备一个即可完成对模块A和备份模块B的重构。其工作原理是:正常情况下,整个系统正常工作;当检测器检测到正在工作的模块A故障时,一方面检测器马上切断模块A的输出,并发出报警信号给备份控制模块启动备份模块B,使备份模块B接入电路,正常工作;另一方面,检测器给重构控制器发送信号,重构控制器发送重构信号调用Flash里的模块A配置数据对故障模块A进行重新配置,消除、修复模块A的故障。模块A故障消除后,将其作为正在工作的备份模块B的热备份,如此循环。在重构过程中,静态模块不受影响,仍然正常工作。机载雷达里核心部件模块(如MTD模块)的可靠性一般都比较高,2个模块同时出故障的可能性基本不会发生。因此,基于局部可重构技术的DMR设计能够满足机载雷达可靠性高的要求。

图4 局部可重构技术的DMR设计结构框图

与传统冗余技术最大的区别是,基于局部可重构技术的DMR设计不仅能有效提高可靠性,还能够对模块故障进行及时的消除、修复,以保证机载雷达能够实时、不间断地工作。这一优势使其在机载雷达方面具有广阔的研究应用前景。

如图5是局部可重构技术的DMR设计工作流程,系统正常运行时,正常输出;检测器检测到运行模块故障时,立即切断故障模块的输出,并切换至备份模块使其接入系统,保证整个系统的正常工作,同时启动重构配置数据对模块故障进行消除、修复。

图5 局部可重构技术的DMR设计工作流程

3 实验验证与分析

3.1 系统设计平台

本例以Altera公司的Stratix系列EP5SGXEA7N2F40C2N作为开发硬件平台,利用功能强大的Quartus II作为开发软件,运用硬件描述语言Verilog HDL语言作为编程语言。

3.2 实验验证

本实验以一个3人表决器和一个二选一选择器为例,从占用芯片资源、可靠性、可维修性几个方面对传统三模冗余和局部可重构技术的DMR设计进行比较。

运用Quartus II软件编程一个3人表决器,如图6所示。

其中3个输入模块MULTADD1是系统、结构、功能完全相同的乘法累加器,对3人表决器进行相关的设计、编译、仿真后,可得到其编译报告和仿真波形,仿真波形图7所示。

由图6可知,DATAa[7..0]为输入,其经过3个完全相同乘法累加器后结果相同,再通过表决电路后输出仍然相同。从图7可观察到,在时钟CLK1的第4个上升沿后输出S=0×0+1×1=1;第5个上升沿后输出S=1×1+2×2=5;第6个上升沿后输出S=2×2+3×3=13。由于仿真存在延时,故在上升沿后一小段时间的输出值仍与前一输出值相同。

同理,可得到二选一选择器的设计电路图和仿真波形,分别如图8、图9所示。

由图8可知,当控制端S0为低电平时,选择DATAa2[7..0]为输入的乘法累加器的值输出;当控制端S0为高电平时,选择DATAb[7..0]为输入的乘法累加器的值输出。

从图9可观察到,在时钟CLK1的第4个上升沿后,控制端S0为低电平,选择DATAa2[7..0]为输入的乘法累加器的值S=0×0+1×1=1输出;第5个上升沿后,控制端S0为高电平,选择DATAb[7..0]为输入的乘法累加器的值S=3×3+4×4=25输出。由于仿真存在延时,故在上升沿后一小段时间的输出值仍与前一输出值相同。

图6 3人表决器设计电路图

图7 3人表决器仿真波形图

图8 二选一选择器设计电路图

图9 二选一选择器的仿真波形

由3人表决器、二选一选择器编译报告,对比它们的资源消耗如表1所示。

表1 3人表决器、二选一选择器的资源消耗对比

表1中,LE使用量和专用逻辑存储器减少了23.1%,总存储量也减少了23.1%,总组合功能使用量减少了25%,嵌入9bit乘数元素使用量减少了3%。

从可靠性、资源消耗以及可修复性3个方面对比双模冗余、三模冗余和局部可重构技术的DMR,如表2所示。

表2 3种技术的DMR比较

4 结束语

本文在学习Xilinx公司基于模块的动态重构设计基础上,根据Altera用户手册,总结提炼出了一种更加适合于Altera公司Stratix系列器件改进型基于模块的动态重构设计。结合传统的硬件冗余技术提出了一种基于局部可重构技术的DMR设计,其意义不仅仅是节省了硬件资源,还能够对模块故障进行及时消除和修复,提高了系统可靠性,保证了机载雷达的不间断值班。

[1]张超,刘峥,赵伟.基于动态可重构FPGA的容错技术研究[J].电子科技,2011,24(1):102-108.

[2]刘斐文,姚睿.基于FPGA动态部分重构的D/TMR系统设计[J].计算机工程与应用,2010,46(35):55-57.

[3]张本宏,陆阳,魏臻,等.双模冗余比较系统的可靠性和安全性分析[J].系统工程学报,2009,24(2):232-237.

[4]王开宇,夏书峰,刘东旭.基于差异和模块重构技术的动态可重构设计[J].微电子学与计算机,2010,27(11):51-54.

[5]许骏,晏渭川,彭澄廉.基于模块的动态可重构系统设计[J].计算机工程与设计,2008,29(6):1367-1368.

[6]徐新民,乐莹.FPGA动态部分重构的研究及位流信息重构的实现[J].科技通报,2008,24(2):235-245.

[7]薛建伟,张杰,关永.基于EAPR流程的动态局部可重构实 现 [J].工 程 应用 技 术 与 实 现,2010,23(36):252-254.

[8]魏昱,李跃华,张金林.基于FPGA的可重构技术发展与应用研究[J].电子技术与软件工程,2014(6):198-200.

猜你喜欢

备份器件重构
浅谈数字化条件下的数据备份管理
视频压缩感知采样率自适应的帧间片匹配重构
长城叙事的重构
带浮空层的LDMOS 器件特性研究
高盐肥胖心肌重构防治有新策略
创建vSphere 备份任务
Windows10应用信息备份与恢复
北京的重构与再造
旧瓶装新酒天宫二号从备份变实验室
旋涂-蒸镀工艺制备红光量子点器件