您的位置: 主页 > VR虫洞 > 中华液晶网人才市场:利用局部刷新技术提高FPGA运行稳定性

中华液晶网人才市场:利用局部刷新技术提高FPGA运行稳定性

时间: 2019-03-14阅读:

摘要 卫星作为重要的航天器之一,在很多领域中都发挥了很大的作用,具有代表性的就是信息传递、军事侦察等领域。局部刷新技术是SRAM型FPGA一种新兴的可重配置技术,它的出现适应了现代卫星的发展需求,在本文中,通过重配置手段,实现了对基础的嵌入式系统的设计,此系统是以FPGA为前提所构成的,同时,对于微处理器MicroBlaze、AXI总线以及ICAP控制器的使用,进行了一定的分析,最后,通过硬件平台的安装,确保了可重配置系统的顺利运行,并实施了对软件的开发等工作,具体为定时器、IGAP、GPIO以及串口接收和发送模块,在设计内所选择的设计措施,主要为基于EAPR的部分重配置的设计方法。结果表明局部刷新技术是一种对抗宇宙空间单粒子效应的有效方法,能极大提高航天器的运行稳定性。

【关键词】动态局部自重构 片上可编程系统内部配置接口

在科学技术不断发展的今天,数字电路系统的设计也随之进步,规模不断扩大,并且也能够更加稳定、可靠的运行,而宇宙空间中的复杂环境也对航天器的可靠新提出了更高的要求,如何提高电子系统的抗单粒子性能一直是航天工作人员努力的方向。

1 系统运行稳定性简介

就系统运行的稳定性来看,其主要为系统于一定环境重,能够于一定时间中依照已有要求实现相应功能的概率。提高系统运行稳定性的方法总的来说有两种:一种是故障预防,另一种是故障容错。故障预防是指采取措施防止故障的产生,如使用防辐射指数较高的芯片和元器件,但就现实来看,无法实现一致故障,所以,必须最大程度的取降低出现故障的概率。就故障容错来看,其主要为通过冗余的元件或模块,来进行对己出现故障的屏蔽,进而确保系统的运行,如数传接口、时钟信号或同步信号的主备份设计,目的就在于一旦主份设计发生故障并失效,可以马上启动备用设计,不至于设备完全失效。

可以说,若某系统于产生部分运行性故障的情况下,可以通过系统中内驻的能力,确保系统能够实现对命令的执行,发挥它的程序与输出功能,那么就可以把这一系统看为故障容错系统。

基于SRAM技术的FPGA,利用对芯片重新布局布线和网表数据的重载,来完成对芯片逻辑功能的相应操作,也就是使其现场重构。近年来,随着FPGA工艺和技术的不断进步,器件结构改进和缓存逻辑的概念被提出,使得FPGA的局部重构手段能够进一步的创新发展,确保了航天电子系统的稳定性得以提升,

2 FPGA局部刷新的理论依据

就SRAM型FPGA来看,其中存在各种资源,具体有配置逻辑块(CLB)、输入输出块(IOB)、block RAM、时钟资源和编程布线等资源。通过CLB,能够有效确保用户所需逻辑功能单元的产生,而通过IOB,则可以带来封装引脚和内部信号引线的接口。利用可编程互联网资源,能够以布线通道连接可配置原件的输入和输出到相应的网络,而FPGA完成的逻辑功能,以及其互联方式,都和存储于内部静态存储单元的数值有着很大关联,利用配置比特率,确保了此逻辑功能的发挥,在配置比特率中,存在着配置命令以及数据。

就SRAM型FPGA来看,其配置存储器的主要构成,通常为配置列(ConfigurationColumns)来实现,在排列方式上,该配置列表现为垂直阵列,具体见图1。在配置存储器内,存在著不同的配置列,分别是表现为Center列、两个IOB列、CLB列存储、BlockSelectRAM Content列以及Block SelectRAMInterconnect列,它们所存储的信息也存在着差异,分别存储着四个全局时钟的配置信息、位于其间左边和右边所有IOB的配置信息、FPGA基本逻辑功能的配置信息、内部块RAM的配置信息以及内部块RAM间互联的配置信息。

在配置列内所存储的数据,就其构成来看,通常是由配置帧(Configuration Frames)的措施来实现的。就配置帧来看,具体表现为一位比特宽、垂直排列的配置的那远,每一个配置列内,所存在的配置帧数量都是差异的,在配置存储器内,配置帧为其能够读写的最小单位,所以,实现局部刷新的最小单元式配置帧。

在FPGA中,通过分配于配置列的配置地址,来进行对配置列的寻址。就FPGA地址空间来看,它可具体划分成两种不同地址,也就是主地址与次地址,在FPGA中,所有的配置列均存在着唯一的主地址空间,在配置列内,相应的,所有配置帧均存在着唯一的子地址空间。

为确保可以将配置帧更加顺利的存储进正确的配置空间,就要合理的使用配置寄存器。利用FPGA的配置数据线,能够进行对内部配置寄存器的读写,以确保均布刷新配置功能的运行。

3 使用ICAP接口配置FPGA

在传统的可重构计算系统内,通过在可编程编辑器外部的处理器,实现对配置操作的控制,这一过程仅可利用FPGA外部配置接口,利用变成电缆,来完成读写和写入配置数据的操作。但就实际来看,这一方式存在着较大的问题,容易被系统外设性能所影响,而且效率也不高。

因此,为解决此问题,在SRAM型FPGA以后的FPGA,均存在着ICAP,在FPGA内,确保了通过器内嵌处理器的运行,实现了对配置数据所实施的操作。在FPGA中,ICAP通常作为硬件原语在其中运行,支持用户进行对其配置数据的操作。就协议来看,ICAP和SelectMAP有一些共同之处,具体见图2。

在接口上,ICAP和Slave SelectMAP所存在的差异,具体见表1。其差异体现在前者为内部连接可访问,而后者利用FPGA外部的引脚实现控制。

使用ICAP时,要注意以下几点:

(1) FPGA配置结束之后,ICAP、SelectMAP两者无法同时进入工作状态。

在配置文件内,若PERSIST位被置为1,在通过SelectMAP措施实现配置后,信号DONE为高电平,而ICAP则停止运行;而若PERSIST位被置为O,在通过SelectMAP措施来实现配置后,ICAP将运行。

(2)在一个系统内,若既配置了JTAG接口,同时又配置了ICAP接口,需要特别注意。

当ICAP在执行配置或是读回配置数据的情况下,在其中,JTAP CFG IN、CFGOUT、JSTART、JSHUTDOWN的指令,无法进行对FPGA的直接发送;利用JTAG接口,在实现配置或是回读配置数据后,要实施有关ICAP的操作时,必须要确保配置逻辑为同步状态;相应的,在通过ICAP接口实现这一操作时,同样应该保持同步。

4 基于MicroBlaze的局部刷新系统设计

本文中设计的自重构系统是基于SOPC技术的嵌入式系统,利用FPGA的可编程特性,配置各个功能模块,组成系统硬件平台,系统上电运行时,能够通过内嵌的软核或者硬核处理器动态加载配置数据,通过ICAP端口对系统功能进行重构,使得重构系统可以完全在FPGA芯片内部完成。

4.1 系统总体结构框图

将动态部分重构与SOPC嵌入式系统结合起来,就可以设计并实现基于SOPC的动态部分自重构系统,如图3所示。

在设计内,就FPGA在线局部刷新的主控制器的选择上,采用了MicroBlaze微处理器。就MicroBlaze来看,作为微处理器IP软核,它能够实现嵌入操作,同时,还能够与不同外设IP核共同组建系统级集成电路,此电路中还存在着用户IP核。因为MicroBlaze处理器可以于FPGA内发挥作用,同时能够进行对它外设IP的合理选用,能够较好的进行对外部电路的控制,所以,在FPGA中,通过MicroBlaze微处理器,来实现其在线局部刷新的控制器,是当前人们广泛认可的一种方式。

4.2 系统实现流程

4.2.1 软件整体流程

系统软件整体流程图如图4所示,MicroBlaze系统运行后,首先要初始化GPIO,接着要初始化中断控制器,本设计中有两个中断,一个timer计数器中断,一个ICAP中断,接着查找ICAP控制器,如果找到返回O,没找到返回.1。如果找到IC,AP控制器,下一步就是初始化这个控制器,所有设备的初始化结束后,程序进入while循环,等待定时器中断产生。

4.2.2 定时器中断流程

产生定时器中断后,进入定时器中断函数。如图5所示,在函数中首先重新将与现有功能相同的部分重构比特流序列载入到重构区域,然后需要手动清除定时器中断标志位。这一功能用来实现FPGA重构区域的定时自动刷新。

4.2.4 载入部分配置比特流的流程

SRAM系列FPGA的比特流文件与以前的FPGA芯片有很大不同,以前的用户不需要对FPGA配置流有bit級的了解就可以完成FPGA的配置。但是,如果想对FPGA进行更深层次的控制,比如设计嵌入式配置或回读操作,就需要了解FPGA配置比特流的格式。

配置比特文件的文件头部分如图6所示,Ox0009表示存储器使用大端模式,即高位在前;后面交替的OXf0Of表示比特文件头开始,用来同步;Ox0001和后面的Ox61是字母“a”,也是比特文件头的固定部分;Ox0026和后面的20个字节是ncd文件名;从Ox5573到Ox4646为UserID,Ox62为字母"b”,从Ox35到Ox36共14个字节表示使用FPGA芯片的型号;Ox0063为字母“c”,从Ox32到Ox31共10个字节为比特文件生成的日期;Ox64为字母“d”;Ox32到Ox33共8个字节为比特文件生成的准确时间;Ox65表示字母“e”;最后的多个Oxff和OxAA995566表示配置数据开始。

载入部分重构比特流文件的流程图如图7所示,首先读取重构序列的头部信息,其中包含了时间、设计名称、FPGA芯片型号、头部数据长度和配置数据长度等信息,然后根据提取到的头部数据的长度跳过配置数据的头部,接着根据配置信息的长度,循环读取配置数据,每次读取8位。因为MicroBlaze系统总线的宽度为32位,所以要读取4次并拼凑成32位的并行数据,再利用ICAP接口将配置数据写入到配置存储器中。

5 设计验证与分析

本节的主要任务是对本文中设计的基于MicroBlaze的局部刷新系统进行测试和分析。测试平台整体框图如图8所示。

上电后,FPGA将部分重构序列保存到block RAM中,根据设置的定时器中断,定时自动对FPGA的重构区域进行定时刷新。同时,在控制器的作用下,LED实现每秒闪烁一次,表示每秒钟刷新重构区域一次。

测试FPGA中的逻辑资源被分为两部分:静态区域和重构区域;本设计中,在静态区域中实现了一个占空比为50%,周期为13us的方波;重构区域中局部刷新部分实现的是一个占空比为50%,周期为26us的方波;系统上电后,用示波器观察静态区域和重构区域发出的信号。

实验结果表明,在FPGA内部配置没发生单粒子翻转的情况下,每秒钟的定时局部刷新并不会影响系统运行,如图9所示;当系统发生单粒子翻转,重构区域输出的方波周期发生变化后,再用重构区域的配置文件对重构区域刷新,重构区域输出的方波会恢复正常。

6 结束语

在本文中,通过基于MicroBlaze软核处理器的措施,制定了对SRAM型FPGA实施局部刷新的系统方案。就该方案来看,在选择了MicroBlaze处理器的FPGA嵌入式系统内,本方案能够取得较好的成效。通过实验验证的结果,可以得知,在芯片内,所完成的MicroBlaze处理器核心频率运行在50MHz,同时,其局部刷新过程较短,通过约550us的时间即可实现,并且,此方案还具有很好的执行效率,还能够确保局部刷新能够符合其相关要求。在FPGA内,因为MicroBlaze软核处理器可以运行,因此,在选择了FPGA设计的数字系统内,本方案的实施,能够不借助其他外部控制芯片,有效降低了PCB电路板面积,在确保系统结构精简的同时,还保证了其效率,应用前景在今后将会更加广阔。

参考文献

[1]孙康.可重构计算相关技术研究[D].浙江:浙江大学,2007: 1-2.

[2]Abbott A L,Athanas P M,Chen L,Elliott R L.Finding lines andbuilding pyramids with SPLASH2 [C].IEEE Workshop on FPGAs for CustomComputing Machines, 1994: 155-163.

[3]覃祥菊,朱明程,张太镒,魏忠义.FPGA动态可重构技术原理及实现方法分析[J].电子器件,2004,27 (02): 277-282.

[4]罗赛.可重构计算系统结构体系研究与实现[D].安徽:中国科学技术大学,2006: 34-35.

[5]T.J. Todman,G.A.Cons trantinides,S.J.E. Wilton, et al. Reconfigurationcomputing: architectures and designmethods [J].Computers and Digital Techniques, 2005,152 (02):193-207.

[6]谷銮,徐贵力,王友仁.FPGA动态可重构理论及其研究进展[J].计算机测量与控制,2007,15 (11):1415-1418.

[7]张润鑫,武文波,陈瑞明,基于组合特征的航母目标识别办法[J].航天返回与遥感,2018, 32 (12):128-131.

上一篇:冠名一卡通:一种干涉仪测量系统校准对零偏差修正方法
下一篇:没有了

相关阅读