发明内容
本发明的目的是针对上述问题及现有的技术的不足,提供了一种硬件实时容错的动态局部可重构系统。
本发明为了达到上述的目的,采用的技术方案为:
一种硬件实时容错的动态局部可重构系统包括硬件全局静态区和两个硬件动态局部重配置区(其中任意一个选为容错备份区),硬件全局静态区包括处理器系统、时钟管理模块、实时检错跟踪硬件可重构模块的决策器、显示控制模块和显示模块;每个硬件动态局部重配置区为具有配置相同功能的局部可重构模块(PRM)。
所述的处理器系统包括移植了实时操作系统的RSIC嵌入式中央处理器、存储模块,利用CoreConnect总线技术与RISC中央处理器相连的外部中断控制模块、内部控制接口配置模块(HWICAP)、串口UART模块和总线宏模块。
所述的RSIC嵌入式中央处理器是嵌入到FPGA上的硬核处理器,用于超时容错控制、外部存储器CompactFlash上的重构比特流任务的调度和管理;
所述的存储模块用来存储软件的启动引导程序和可执行二进制文件(.elf);
所述的外部中断控制模块和UART模块是常用的IP核模块,外部中断控制模块和UART模块都作为RSIC嵌入式中央处理器的外设,外部中断控制模块用于触发关键中断IRQ或为实时操作系统提供时间片,UART模块用于输入输出终端的显示;
所述的内部控制接口配置模块(HWICAP)用于从外部存储器中读取容错硬件比特流任务以及实现硬件比特流的配置;
所述的总线宏模块用于实现静态区域和动态区域之间的通信;
所述的实时检错跟踪硬件可重构模块的决策器根据可重构模块内的相关信号变量的检测来做出局部重配置的决策并通知处理器是否进行硬件容错,决策的方法为利用判断通道可能的结果或超时进行容错;
所述的实时检错跟踪硬件可重构模块的决策器、内部控制接口配置模块和局部可重构模块是整个系统的核心模块。
利用本发明实现的动态部分可重构实时硬件容错系统在FPGA芯片中实现了两个可重构区,每个可重构区可对应多个可重构模块,最终使用户可以对芯片的部分电路结构进行现场硬件编程和软件编程,实现可重构区硬件的实时容错,具有实时性、易于产品的更新升级、适合恶劣环境下工作及延长系统的生命周期的作用。本发明适用于电力,宇航电子系统,工控,网络重构容错和硬件的更新换代等领域,是针对FPGA冗余硬件资源有效重复利用,提高硬件生命周期,具备部分功能模块实时跟踪检错的部分硬件容错调度系统。
具体实施方式
下面结合附图对本发明作进一步说明。
本实施例是在Xilinx的Virtex-II Pro平台的XC2VP30 FPGA上开发和设计的。Virtex-II Pro平台支持部分动态可重构且其FPGA内部内嵌了两个IBM的具有5级标准流水线结构的Powerpc405RSIC处理器,PowerPC处理器支持IBM开发的CoreConnect总线标准技术。利用CoreConct总线标准技术使多个IP Core连起来成为可能,使基于SOPC的动态部分可重构系统设计和应用更加的容易,系统的外设IP核可以重复的利用,这也加速了系统设计和应用产品面世的周期,大大节省了人力资源和开发成本。CoreConnect总线规范包含三种总线架构和两个转化桥连,分别是:PLB总线(Processor Local Bus,即处理器本地总线)、OPB总线(On-chip Peripheral Bus,即片上外设总线)、DRC总线(Device Control Register Bus,即设备控制寄存器总线)及PLB2OPBBridge和OPB2DCR Bridge。
本实施例的动态局部可重构系统,利用了FPGA内部嵌入内核PowerPC,仅支持PLB总线架构,将高性能的RISC处理器、内存控制器、高速外围设备等挂在PLB总线上,低速的外围设备如UART模块等用挂在OPB总线上,两种总线直接利用PLB2OPB总线桥进行通信。可重构模块可以是用户自定义的底层逻辑模块(简单控制功能模块),也可以是用户定制的IP核(算术运算核,FFT核),或者现有外围设备的IP核。根据跟踪检测可重构区的决策器来判断是否将可重构模块配置到另一个备份的可重构区,如利用简单的可重构区输出口可能的结果判断错误和在10个输出周期内数据不发生改变就重配置(也可以因应用的复杂程度不同使用复杂决策算法)。可重构区的配置资源可根据特定使用来设计,本发明使用的可重构区是一个简单的显示控制通道,两个可重构区域是在是不变的(即其面积,边界是固定不变的),配置在可重构区的资源是可重构模块所有,可以被重新配置,可重构区与静态区(或BASE区,或叫fixed区)通信必须要通过总线宏来实现,总线宏的布局跨越可重构区和静态区的边界,对于不同的芯片需选择不同类型的总线宏。
本实施例是在Xilinx的Virtex-II Pro平台的XC2VP30 FPGA上开发和设计完成的。如图1所示一种硬件实时容错的动态局部可重构系统包括硬件全局静态区和两个硬件动态局部重配置区(如图1中的虚线选定的范围),硬件全局静态区包括处理器系统、时钟管理模块、实时检错跟踪硬件可重构模块的决策器、显示控制模块和显示模块;每个硬件动态局部重配置区为具有配置相同功能的局部可重构模块(PRM)。
处理器系统包括移植了实时操作系统的RSIC嵌入式中央处理器、存储模块,利用CoreConnect总线技术与RISC中央处理器相连的外部中断控制模块、内部控制接口配置模块(HWICAP)、串口UART模块和总线宏模块。
RSIC嵌入式中央处理器是嵌入到FPGA上的硬核处理器,超时容错控制、外部存储器CompactFlash上的重构比特流任务的调度和管理;
存储模块用来存储软件的启动引导程序和可执行二进制文件(.elf);
外部中断控制模块和UART模块是常用的IP核模块,外部中断控制模块和UART模块都作为RSIC嵌入式中央处理器的外设,外部中断控制模块用于触发关键中断IRQ或为实时操作系统提供时间片,UART模块用于输入输出终端的显示;
内部控制接口配置模块(HWICAP)用于从外部存储器中读取容错硬件比特流以及实现硬件比特流的配置;
总线宏模块用于实现静态区域和动态区域之间的通信;
实时检错跟踪硬件可重构模块的决策器根据可重构模块内的相关信号变量的检测来做出局部重配置的决策并通知处理器是否进行硬件容错,决策的方法为利用判断通道可能的结果或超时进行容错;
实时检错跟踪硬件可重构模块的决策器、内部控制接口配置模块和局部可重构模块是整个系统的核心模块。
本实施例使用的开发工具:EDK 9.1i,ISE 9.1.02i_PR10,PlanAhead10.1.modelsim SE v6.2b及串口调试助手。
具体实施步骤及说明:
1、利用EDK 9.1i设计处理器系统
如图2所示处理器硬件系统是基于可重复利用的IP核思想设计的,处理器选FPGA内嵌的PowerPC405处理器。基于XUP XC2VP30板级设计的IP核包括PLB_v34总线核(硬件版本1.02.a)、OPB_v20总线核(硬件版本1.10.a),JTAG核(硬件版本2.00.a,软件驱动版本1.00.a)、PLB2OPB bridge核(硬件版本1.01.a,软件驱动版本1.00.a)、OPB_SYSTEMACE核(硬件版本,1.00.c,软件驱动版本1.01.a)、PLB_BRAM控制器核(硬件版本1.00.b,软件驱动版本1.00.a)、GPIO核(硬件版本3.01.b,软件驱动版本2.01.a)、OPB_HWICAP核(硬件版本1.00.b,软件驱动版本1.00.c)、OPB_INTC中断控制器核(硬件版本1.00.c,软件驱动版本1.00.c)、OPB_UARTLITE串口通信核(硬件版本1.00.b,软件驱动版本1.02.a)。地址分配:PLB_BRAM模块选择128K,必须包含最大的地址0XFFFFFFFF;PLB2OPB bridge核地址选择是PLB地址的一部分,但与OPB总线相连接的外围设备IP核地址必须包含在PLB2OPB bridge地址中。
2、总体动态部分可重构流程硬件系统流程
1)如图3所示编写顶层模块及相关子模块的底层硬件代码并进行综合,生成top.ngc,rm.ngc及处理器系统模块,决策器模块,显示控制器子模块网表文件(.ngc)。上述的.ngc文件都是在ISE 9.1.02I中生成的,各子模块必须以黑盒子的形式在顶层模块中实例化;所有的子模块都不需要加入I/O缓冲器,DCM实例在顶层模块中,不能实例在处理器系统模块中;总线宏选择:busmacro_xc2vp_l2r_async_enable_narrow.nmc和busmacro_xc2vp_l2r_async_enable_narrow.nmc。编写顶层模块的约束文件,只对引脚以及全局时序进行约束,其他的面积约束等在PlanAhead中进行
如图4所示,总线宏为异步可使能控制的,可重构区输入为GPIO输出口,同时GPIO_d_out控制总线宏的使能;可重构区的一部分输出口与跟踪检测容错决策器相连,另一部分与现实终端LED相连,决策器是同步模块(即由时钟控制的模块),决策器的决策标志位与gpio的输入口相连(也可以和PowerPC的IRQ中断口相连,具有高度的实时性),用于通知处理器是否对当前重构区的重构模块进行重构。所示的实时跟踪检测容错决策器为静态子模块,在部分重配置时不发生改变且能正常运行。
2)如图示3所示,将上一步产生的.ngc文件和.ucf文件导入PlanAHead中进行EAPR设计,并产生比特流,设计流程如图3所示。EAPR设计完全可以在图形化界面工具的PlanAhead中完成,这相对与以前的基于比特流、基于差异的设计方法有很大改进且方便直观。具体步骤分为:初始预算,AG约束,子模块激活,PlanAhead中调用ISE后台工具进行映射和布局布线,DCR检测,装配合并比特流。根据以上操作后生成了上电静态全局比特流static_full.bit和RM_n.bit及一个空白清除比特流Blank.bit.
3、Ucos-II实时系统的移植及应用程序的设计
UcOS-II是实时的抢占式的嵌入式操作系统,由于源码公开,大部分用C语言编写(一小部分用汇编语言编写)且系统小等优点,很方便用在嵌入式系统的开发上。Ucos-II在PowerPC405上的移植,修改与处理器相关的代码:OS_CPU.H,OS_CPU_A.ASM和OS_CPU_C.C。相应的修改的函数为:OSTaskStkInit(),OSStartHighRDY(),OSCtxSW()OSIntCtxSW(),OSTickISR()。如图5所示为操作系统的整体设计流程图,最后编译生成可执行文件executable.elf。
如图6所示为容错执行流程图。处理器在检测到决策器的重配置标志位后就对存放在CF卡中的部分比特流进行读取配置。具体步骤:启动配置任务,总线宏使能,扫描或中断读取决策器的决策标志位(标志位为1,关闭总线宏使能,处理器从CF卡中读相关比特流文件进行配置),使能总线宏,挂起当前的配置任务,运行其他任务线程。
4、合并软硬件比特流
在以上步骤中根据设计产生的硬件上电全局静态比特流文件static_full.bit和软件可执行文件executable.elf合并生成软硬件合并的组合文件download.bit(或.ace文件).具体步骤如图7所示,可用图形化界面实现也可以在EDK shell中用命令来实现。
生成download.bit文件命令:
data2mem-bm implementation/system_stub_bd
-bt implementation/static_full.bit
-bd TestApp/executable.elf
tag ppc405_0-o b implementation/download.bit
生成system.ace文件的命令:
-jprog
-target ppc_hw
-hw implementation/download.bit
-elf TestApp/executable.elf
-board user
-configdevice devicenr 1 idcode 0x127e093 irlength 14partname xc2vp30
-debugdevice devicenr 1 cpunr 1
-ace system.ace
以上的system.ace在FAT16的CF卡中被默认直接上电加载。其中static_full.bit中只包括硬件流,download.bit包括硬件比特流和软件比特流。
5、设计确认和下载测试
将生成的system.ace文件和生成的部分比特流文件放在CF卡中,上电测试。实验表明所移植了ucos-II且基于FPGA的动态可重构技术方法设计的容错系统具有高效的容错特性,且具有较高的实时性。图8为设计的系统架构在FPGA芯片上的布局。