抗单粒子翻转的sram型fpga刷新电路及刷新方法
【专利摘要】抗单粒子翻转的SRAM型FPGA刷新电路及刷新方法,涉及现场可编程门阵列的空间抗单粒子翻转领域,解决现有SRAM型FPGA刷新电路及方法利用外部控制器实现对配置命令和配置数据的重新加载,存在电路复杂度高,控制器存在不稳定性等问题,采用两片相同的存储器,BOOT存储了完整的配置文件,配置文件中包含了用户要实现的功能模块和FGPA实现自身刷新的刷新模块,SCRUB存储了编辑后的配置文件,FPGA加载完第一片存储器后,刷新模块启动进入刷新模式,通过周期性地读取SCRUB存储器中的配置文件,实现FPGA正常工作下的周期刷新。本发明有效地降低FPGA刷新的功耗和电路复杂度。
【专利说明】抗单粒子翻转的SRAM型FPGA刷新电路及刷新方法
【技术领域】
[0001]本发明涉及现场可编辑门阵列【技术领域】,具体涉及利用两片存储器实现一种SRAM型FPGA抗单粒子翻转的刷新电路及方法。
【背景技术】
[0002]基于静态随机存储器(staticrandomaccessmemory, SRAM)的FPGA因其功能配置方面的多样性与可重复性,应用体积小与研发周期短等显著特点,被广泛应用到航天领域,尽管相较于专用集成电路和反熔丝构型的FPGA更容易受到单粒子(singleeventeffect,SEE)的影响,但其突出的优越性使其仍然承担着空间环境下飞行器的姿控、数传和图像处理等艰巨任务,并且逐步演变成一种趋势
[0003]由于空间高能粒子影响较大,SRAM型FPGA内部配置存储器的逻辑状态常常由于粒子撞击而翻转,即发生单粒子翻转。如果翻转发生在存储器中,使能信号被重置;如果发生在逻辑功能区,可能导致航天器功能中断,无论发生哪种可能都会对航天器产生巨大影响。
[0004]Xilinx公司第一代VirtexFPGA开始,关于SRAM型FPGA的容错研究不断开,抗福照设计和三模冗余(TMR)设计不断应用。TMR设计的应用已不能满足FPGA长时间的可靠性,内部的单粒子翻转的积累可能导致TMR的错误,为了纠正FPGA需要按照一定的频率清除所有翻转位,一种方法是比特流的回读,当检测到翻转位时进行重加载,这个方法需要消耗大量的时间。另外一种简单的抗SEU的方法是忽略回读检测步骤,只重新加载整个CLB帧块和BRAM内联帧块,这种方法叫做刷新,刷新本质上要求较少的系统资源,但是这意味着配置逻辑很大的时间是在“写模式”,一次完整刷新的周期需要被设定的相对较短。刷新允许系统修复配置存储器上的所有SEU而不打断系统正常运行。通常的刷新方法是利用外部控制器实现对配置命令和配置数据的重新加载,该方法电路复杂度高,控制器也存在一定的不稳定性,有必要提出一种电路复杂度低、功耗低、可靠性更高的抗单粒子翻转电路。
【发明内容】
[0005]本发明为解决现有SRAM型FPGA刷新电路及方法利用外部控制器实现对配置命令和配置数据的重新加载,存在电路复杂度高,控制器存在不稳定性等问题,提供一种抗单粒子翻转的SRAM型FPGA刷新电路及刷新方法。
[0006]抗单粒子翻转的SRAM型FPGA刷新电路,包括BOOT存储器和SCRUB存储器;所述BOOT存储器用于存储用户功能模块,SCRUB存储器用于存储对BOOT存储器中的配置文件重新编辑后的配置文件,所述BOOT存储器通过数据线和控制线实现对FPGA的加载;加载完成后,FPGA内部的刷新电路周期性的控制1/0 口,所述1/0 口与SCRUB存储器的控制端连接;控制SCRUB存储器中的配置文件周期性加载到FPGA中。
[0007]抗单粒子翻转的SRAM型FPGA刷新电路的刷新方法,该方法由以下步骤实现:
[0008]步骤一、采用烧写器将完整的配置文件烧写到BOOT存储器,同时刷新配置文件烧写到SCRUB存储器;
[0009]步骤二、对刷新电路上电后,FPGA清除内部配置数据,等待初始化完成;
[0010]步骤三、FPGA初始化成功后,BOOT存储器开始配置数据,经过Tl毫秒后,BOOT存储器配置完成,FPGA正常工作,FPGA内的刷新模块功能启动;所述Tl为FPGA完成一次完整配置的时间;
[0011]步骤四、T2毫秒后,FPGA进入自动刷新模块,刷新模块控制相应I/O 口,周期性地控制SCRUB存储器工作,所述SCRUB存储器内的刷新配置文件将加载到FPGA中;所述T2为等待刷新的时间;
[0012]步骤五、T3毫秒后,刷新配置文件加载完成,FPGA内的刷新模块控制SCRUB存储器停止工作,完成一次刷新;所述T3为完成一次刷新配置需要的时间;
[0013]步骤六、重复执行步骤四和步骤五,FPGA实现周期刷新。
[0014]本发明的有益效果:本发明所述的SRAM型FPGA电路,复杂度低、功耗低、可靠性高的抗单粒子翻转刷新电路。
[0015]一、本发明所述的刷新功能模块集成在FPGA内部,不需要外部控制器,仅增加一片SCRUB存储器,简化了传统刷新电路,降低了电路功耗。并且FPAG整体发生单粒子翻转的概率极低,而刷新模块利用片内资源很少,几乎可以忽略,其发生单粒子翻转的概率近乎于0,电路容错性提闻;
[0016]二、本发明所述的BOOT存储器和SCRUB存储器共用一条8位数据线,控制线独立。SCRUB存储器存储了对BOOT存储器中配置文件重新编辑的配置文件,该配置文件不会影响FPGA正常工作并且省略回读功能;
[0017]三、本发明所述的存储器是具有可单次编程(OTP)架构的存储器,该类存储器具有很高的抗辐照特性,在航天飞行器中具有很高的继承性。同时配置文件通过烧写器烧写,不会发生JTAG下载时CRC校验错误的问题,大大减小了对刷新配置文件修改的复杂度。
[0018]四、本发明所述的刷新电路可以应用于任何支持动态刷新功能的FPGA芯片上。
【专利附图】
【附图说明】
[0019]图1为本发明所述的抗单粒子翻转的SRAM型FPGA刷新电路的刷新原理图;
[0020]图2为本发明所述的抗单粒子翻转的SRAM型FPGA刷新电路中SCRUB存储器中配置文件重新编辑流程图;
[0021]图3为本发明所述的抗单粒子翻转的SRAM型FPGA刷新电路的刷新方法的流程图。
【具体实施方式】
[0022]【具体实施方式】一、结合图1和图2说明本实施方式,抗单粒子翻转的SRAM型FPGA刷新电路;包括BOOT存储器和SCRUB存储器。BOOT存储器存储了用户功能模块,上电通过数据线和控制线完成FPGA的正常加载,当加载完成后FPGA刷新模块会周期性控制其相应的1/0 口,该1/0 口与SCRUB存储器的控制端相连,使SCRUB存储器中的配置文件周期性地加载到FPGA中,SCRUB存储器存储的文件是对BOOT存储器中配置文件修改后的配置文件,该文件在加载前已经将可能影响FPGA正常工作的配置指令重新设定或删除,所以FPGA —直保持正常工作,如果FPGA刷新模块发生单粒子翻转,可以通过重加载方式保证FPGA正常工作,整个过程FPGA —直处于写状态。
[0023]本实施方式中的刷新功能模块集成在FPGA自身内部,不需要外部控制器,仅增加一片SCRUB存储器,简化了传统刷新电路。该刷新电路可以应用于任何支持动态刷新的FPGA芯片上;所述的BOOT存储器和SCRUB存储器共用一条8位数据线,控制线独立。其中,BOOT存储器存储了完整的配置文件,而SCRUB存储器存储了对BOOT存储器中配置文件重新编辑的配置文件,具体步骤结合图2 ;
[0024]本实施方式中,两片存储器和FPGA系统时钟全部共用外部晶振,保证FPGA刷新时序的稳定性,还包括外部重加载电路,通过置低FPGA重配置信号实现FPGA重启。FPGA刷新模块功能仅仅是对两个I/O 口的周期控制,保证SCRUB存储器内配置文件正确的加载到FPGA中。由于FPAG整体发生单粒子翻转的概率极低,而刷新模块利用片内资源很少,几乎可以忽略,其发生单粒子翻转的概率近乎于0,电路容错性提高。
[0025]本实施方式中两片存储器采用具有可单词编程(OTP)架构的存储器,该类存储器配置文件通过烧写器烧写,不会发生JTAG下载时CRC校验错误的问题,大大减小了对刷新配置文件修改的复杂度,同时该类存储器具有很高的抗辐照特性,在航天飞行器中具有很高的继承性和可靠性。
[0026]【具体实施方式】二、结合图3说明本实施方式,本实施方式为【具体实施方式】一所述的抗单粒子翻转的SRAM型FPGA刷新电路的刷新方法,该方法由以下步骤实现:
[0027]—、利用烧写器将完整配置文件烧写到BOOT存储器,同时将刷新配置文件烧写到SCRUB存储器;
[0028]二、系统上电,FPGA清楚内部配置数据,等待初始化完成;
[0029]三、FPGA初始化成功,BOOT存储器开始配置数据,配置方式选用Salve SelectMap方式;
[0030]四、T1毫秒后,BOOT存储器数据配置完成,使能信号被置低,片选信号被置高,该存储器被禁止,内部地址计数器清空,数据输出口处于高阻态。FPGA正常工作,刷新模块功能启动;
[0031]五、T2毫秒后,FPGA进入自动刷新模式,刷新模块控制相应1/0 口,周期性地将SCRUB存储器使能端置高,片选信号置低,SCRUB存储器开始工作,将刷新配置文件将加载到FPGA中;
[0032]六、T3毫秒后,刷新配置文件加载完成,FPGA刷新模块将SCRUB存储器使能信号置低,片选信号置高,整个加载过程FPGA正常工作,完成一次刷新;
[0033]七、不断重复第五步和第六步,FPGA实现(T2+T3)毫秒地周期刷新。
[0034]八、如果刷新模块功能出错,可以通过重加载方式重启FPGA,重新运行以上步骤实现FPGA刷新。
[0035]其中,T1表示FPGA完成一次完整配置所需要的时间;Τ2表示等待刷新时间;Τ3表完成一次刷新配置所需时间,该时间T3基本等于T1, (Τ2+Τ3)表示两次刷新间隔时间。
[0036]本实施方式中刷新时间取决于配置时钟的频率和配置文件位位流的大小。现实中最小化后的刷新周期与刷新时间基本相等,保证了系统平均在每个翻转间隙执行至少10次刷新操作。
【权利要求】
1.抗单粒子翻转的SRAM型FPGA刷新电路,其特征是,包括BOOT存储器和SCRUB存储器;所述BOOT存储器用于存储用户功能模块,SCRUB存储器用于存储对BOOT存储器中的配置文件重新编辑后的配置文件,所述BOOT存储器通过数据线和控制线实现对FPGA的加载;加载完成后,FPGA内部的刷新电路周期性的控制I/O 口,所述I/O 口与SCRUB存储器的控制端连接;控制SCRUB存储器中的配置文件周期性加载到FPGA中。
2.根据权利要求1所述的一种抗单粒子翻转的SRAM型FPGA刷新电路,其特征在于,还包括外部重加载电路,当FPGA内刷新模块发生单粒子翻转时,通过重加载电路使FPGA正常工作。
3.根据权利要求1所述的一种抗单粒子翻转的SRAM型FPGA刷新电路,其特征在于,所述BOOT存储器和SCRUB存储器共用八位的数据线,控制线独立使用。
4.根据权利要求1所述的一种抗单粒子翻转的SRAM型FPGA刷新电路,其特征在于,所述SCRUB存储器用于存储对BOOT存储器中的配置文件重新编辑后的配置文件,SCRUB存储器中重新编辑的配置文件的步骤为: 步骤A、ISE软件生成配置文件,重新编辑生成的比特流头文件,重新设定FAR寄存器值,保留CLB帧块的配置数据; 步骤B、删除生成的比特流头文件的配置文件中BRAM帧块配置数据,重新设定FAR寄存器值,保留BRAM内联帧块数据; 步骤C、删除CRC校验寄存器比特流文件并重新编辑配置比特流尾文件,获得重新编辑后的配置文件。
5.使用权利要求1-4任意一项权利要求所述的一种抗单粒子翻转的SRAM型FPGA的刷新电路的刷新方法,其特征是,该方法由以下步骤实现: 步骤一、采用烧写器将完整的配置文件烧写到BOOT存储器,同时刷新配置文件烧写到SCRUB存储器; 步骤二、对刷新电路上电后,FPGA清除内部配置数据,等待初始化完成; 步骤三、FPGA初始化成功后,BOOT存储器开始配置数据,经过Tl毫秒后,BOOT存储器配置完成,FPGA正常工作,FPGA内的刷新模块功能启动;所述Tl为FPGA完成一次完整配置的时间; 步骤四、T2毫秒后,FPGA进入自动刷新模块,刷新模块控制相应I/O 口,周期性地控制SCRUB存储器工作,所述SCRUB存储器内的刷新配置文件将加载到FPGA中;所述T2为等待刷新的时间; 步骤五、T3毫秒后,刷新配置文件加载完成,FPGA内的刷新模块控制SCRUB存储器停止工作,完成一次刷新;所述T3为完成一次刷新配置需要的时间; 步骤六、重复执行步骤四和步骤五,FPGA实现周期刷新。
6.根据权利要求5所述的一种抗单粒子翻转的SRAM型FPGA的刷新电路的刷新方法,其特征在于,步骤三中,所述BOOT存储器配置完成,将BOOT存储器的使能信号置低,片选信号置高,BOOT存储器停止工作。
7.根据权利要求5所述的一种抗单粒子翻转的SRAM型FPGA的刷新电路的刷新方法,其特征在于,步骤四中,所述FPGA内部刷新模块周期性的将SCRUB存储器使能端置高,片选信号置低,SCRUB存储器开始工作。
8.根据权利要求5所述的一种抗单粒子翻转的SRAM型FPGA的刷新电路的刷新方法,其特征在于,步骤五中,刷新配置文件加载完成,FPGA内部刷新模块将SCRUB存储器的使能信号置低,片选信号置高,SCRUB存储器停止加载工作,加载过程中FPAG正常工作,完成一次刷新。
9.根据权利要求5所述的一种抗单粒子翻转的SRAM型FPGA的刷新电路的刷新方法,其特征在于,当FPGA内部刷新模块功能出错,则通过外部重加载电路重新启动FPGA,实现对FPGA的刷新。
10.根据权利要求5所述的一种抗单粒子翻转的SRAM型FPGA的刷新电路的刷新方法,其特征在于,所述BOOT存储器、SCRUB存储器和FPGA的时钟共用外部晶振,实现FPGA刷新时序的稳定 性。
【文档编号】G11C11/413GK104051002SQ201410250530
【公开日】2014年9月17日 申请日期:2014年6月6日 优先权日:2014年6月6日
【发明者】冯汝鹏, 徐伟, 郑晓云, 朴永杰, 王绍举, 徐拓奇, 金光 申请人:中国科学院长春光学精密机械与物理研究所