FPGA配置存储器阵列的故障注入方法及装置


fpga配置存储器阵列的故障注入方法及装置
技术领域
1.本发明涉及fpga技术领域,尤其涉及fpga配置存储器阵列的故障注入方法及装置。


背景技术:



2.sram型fpga应用于辐照、宇航等严苛环境时,芯片本身会受到带电粒子的轰击,带电粒子可能会导致fpga片内的configuration(配置)sram中存储的数据发生误翻转,进而导致fpga芯片的功能出错。这种在存储单元中出现的带电粒子所导致的数据错误,称为单粒子翻转。对于严酷环境中使用的sram型fpga电路,常常需要采取额外的加固处理措施。经常采取的加固措施为:通过slave selectmap接口对fpga持续不断地进行回读、比对、刷新操作,即在fpga工作期间,某种主设备在slave selectmap接口,持续地回读fpga片内的configuration sram阵列中的数据,与其他地方(例如反熔丝prom)存储的正确配码进行比较,一旦比对发现错误,则立刻对fpga的configuration sram阵列中的数据进行覆盖刷新。通过上述的“回读+刷新”操作,可以改善fpga在恶劣环境中的适应性,大大提升fpga的工作可靠性。
3.在使用上述加固措施前,需验证其功能的有效性,即在fpga运行期间,向fpga片内的configuration sram阵列注入错误数据,同时观察fpga的工作状态是否出错、“回读+刷新”电路是否能修正此错误,如果“回读+刷新”电路正确动作、检测出了sram中的错误数据并正确修复,则说明此加固电路是有效的。因此,需提供一种对fpga片内的configuration sram阵列进行故障注入的方法,以对“回读+刷新”电路进行验证。


技术实现要素:



4.本发明通过提供fpga配置存储器阵列的故障注入方法及装置,解决了如何对fpga配置存储器阵列进行故障注入的技术问题。
5.一方面,本发明实施例提供如下技术方案:
6.一种fpga配置存储器阵列的故障注入方法,包括:
7.获取设定的所述fpga中的配码数据帧地址;
8.通过所述fpga的jtag接口回读所述配码数据帧地址对应的配码数据帧;
9.将所述配码数据帧中的至少一位取反;
10.通过所述jtag接口将取反后的所述配码数据帧写入所述fpga。
11.优选的,所述获取设定的所述fpga中的配码数据帧地址,包括:
12.接收上位机发送的命令;
13.解析所述命令,获取所述配码数据帧地址。
14.优选的,所述通过所述fpga的jtag接口回读所述配码数据帧地址对应的配码数据帧,包括:
15.通过所述jtag接口依次对所述fpga进行:进入shift-ir状态、写入cfg_in指令、进
入shift-dr状态、写入cfg_out指令、进入shift-ir状态、写入cfg_out指令、进入shift-dr状态,以回读所述配码数据帧。
16.优选的,所述通过所述jtag接口将取反后的所述配码数据帧写入所述fpga,包括:
17.通过所述jtag接口依次对所述fpga进行:进入shift-ir状态、写入cfg_in指令、进入shift-dr状态,以将取反后的所述配码数据帧写入所述fpga。
18.另一方面,本发明实施例还提供如下技术方案:
19.一种fpga配置存储器阵列的故障注入装置,包括:
20.命令解析模块,用于获取设定的所述fpga中的配码数据帧地址;
21.jtag协议模块,用于通过所述fpga的jtag接口回读所述配码数据帧地址对应的配码数据帧;
22.状态机,用于将所述配码数据帧中的至少一位取反;
23.所述jtag协议模块,还用于通过所述jtag接口将取反后的所述配码数据帧写入所述fpga。
24.优选的,fpga配置存储器阵列的故障注入装置还包括:
25.数据写入模块,用于将回读的所述配码数据帧写入缓存;
26.数据读出模块,用于将写入缓存的所述配码数据帧读出。
27.优选的,所述故障注入装置为cpld、fpga、mcu、arm、单片机、dsp或asic。
28.优选的,所述故障注入装置通过串口、以太网接口、can总线、spi总线或i2c总线连接上位机。
29.另一方面,本发明实施例还提供如下技术方案:
30.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一fpga配置存储器阵列的故障注入方法。
31.另一方面,本发明实施例还提供如下技术方案:
32.一种计算机可读存储介质,所述计算机可读存储介质被执行时实现上述任一fpga配置存储器阵列的故障注入方法。
33.本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:
34.本发明通过fpga的jtag接口回读配码数据帧地址对应的配码数据帧,将配码数据帧中的至少一位取反后便可得到错误配码数据,然后通过jtag接口将取反后的配码数据帧写入fpga,实现了通过jtag接口对fpga进行故障注入;由于仅回读和注入指定地址的配码数据帧,数据量小,可极大的降低故障注入时间;具有不影响slave selectmap接口回读刷新操作的优势,可以同时进行故障注入和回读刷新。
附图说明
35.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
36.图1为本发明实施例中fpga配置存储器阵列的故障注入方法的流程图;
37.图2为本发明实施例中jtag配置模式的电路结构示意图;
38.图3为本发明实施例中fpga配置存储器阵列的故障注入装置的结构示意图。
具体实施方式
39.本发明实施例通过提供fpga配置存储器阵列的故障注入方法及装置,解决了如何对fpga配置存储器阵列进行故障注入的技术问题。
40.为了更好的理解本发明的技术方案,下面将结合说明书附图以及具体的实施方式对本发明的技术方案进行详细的说明。
41.首先说明,本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
42.如图1所示,本实施例的fpga配置存储器阵列的故障注入方法,包括:
43.步骤s1,获取设定的fpga中的配码数据帧地址;
44.步骤s2,通过fpga的jtag接口回读配码数据帧地址对应的配码数据帧;
45.步骤s3,将配码数据帧中的至少一位取反;
46.步骤s4,通过jtag接口将取反后的配码数据帧写入fpga。
47.fpga片内的硬件资源分为3个层次:布线资源(routing)、逻辑资源(user logic)、配码阵列(configuration),configuration对user logic和routing进行控制,进而可以实现各种不同的电路功能。对于sram型fpga而言,其片内采用配置sram阵列(即configuration sram array)来存储配置码流。由于sram是一种易失性存储介质,芯片掉电后,sram中保存的信息就会丢失。因此上电后fpga默认是不具备任何功能的,必须通过特定的接口从片外将配置信息(configuration bitstream,也称配置码流、配码)读取到片内,配码加载至片内后的configuration sram阵列才能具备用户所期望的功能,这一加载配码的过程叫作配置(configuration)或加载。
48.fpga配置接口定义包括:
49.master:fpga送出配置时钟信号cclk;
50.slave:fpga吃入配置时钟信号cclk;
51.serial:配置数据以单bit进行传输;
52.selectmap:配置数据以多bit同时进行传输,最常见的是8bit并行;
53.boundary scan:jtag接口,它是一个特定的4管脚接口,包括tck、tms、tdi、tdo,jtag配置模式的电路结构如图2所示。
54.步骤s1中,设定的配码数据帧地址为希望进行故障注入的目标fpga的某个配码数据帧地址,配码数据帧地址通过解析上位机发送的命令得到,即步骤s1包括:接收上位机发送的命令;解析命令,获取配码数据帧地址。
55.步骤s2包括:通过jtag接口依次对fpga进行:进入shift-ir状态、写入cfg_in指令、进入shift-dr状态、写入cfg_out指令、进入shift-ir状态、写入cfg_out指令、进入shift-dr状态,以回读配码数据帧。
56.步骤s3中,可以对配码数据帧逐位取反,也可以仅取反一位、两位等等,只要有一位取反,配码数据帧就变成了错误配码数据帧。可优选仅取反一位,这样取反过程最简单。
57.步骤s4包括:通过jtag接口依次对fpga进行:进入shift-ir状态、写入cfg_in指令、进入shift-dr状态,以将取反后的配码数据帧写入fpga。
58.经过步骤s4之后,fpga的configuration sram就被注入了错误配码数据,然后观察回读刷新电路是否能够比对发现错误的数据并覆盖刷新错误数据,便可以验证回读刷新电路的有效性。
59.由上文可知,本实施例通过fpga的jtag接口回读配码数据帧地址对应的配码数据帧,将配码数据帧中的至少一位取反后便可得到错误配码数据,然后通过jtag接口将取反后的配码数据帧写入fpga,实现了通过jtag接口对fpga进行故障注入。另外,由于仅回读和注入指定地址的配码数据帧,数据量小,可极大的降低故障注入时间。
60.本实施例还可选择通过fpga的slave selectmap接口实现故障注入,但在故障注入时,回读刷新电路无法同时回读刷新。因此,图1的方法还具有不影响slave selectmap接口回读刷新操作的优势,可以同时进行故障注入和回读刷新。
61.如图3所示,本实施例还提供一种fpga配置存储器阵列的故障注入装置,包括:
62.命令解析模块,用于获取设定的fpga中的配码数据帧地址;
63.jtag协议模块,用于通过fpga的jtag接口回读配码数据帧地址对应的配码数据帧;
64.数据写入模块,用于将回读的配码数据帧写入缓存;
65.数据读出模块,用于将写入缓存的配码数据帧读出;
66.状态机,用于将读出的配码数据帧中的至少一位取反;
67.jtag协议模块,还用于通过jtag接口将取反后的配码数据帧写入fpga。
68.状态机还用于控制jtag协议模块、数据写入模块、数据读出模块,回读的配码数据帧可以在状态机的控制下写入ram缓存,从ram缓存读出的配码数据帧可以在状态机的控制下发送给jtag协议模块。
69.本实施例的故障注入装置通过fpga的jtag接口回读配码数据帧地址对应的配码数据帧,将配码数据帧中的至少一位取反后便可得到错误配码数据,然后通过jtag接口将取反后的配码数据帧写入fpga,实现了通过jtag接口对fpga进行故障注入。
70.其中,故障注入装置可以为cpld、fpga、mcu、arm、单片机、dsp或asic。故障注入装置可以通过串口、以太网接口、can总线、spi总线或i2c总线连接上位机。图3中,回读刷新电路外接的存储器可以是prom、并口nor flash、eeprom、spi flash等各种非易失存储器。
71.基于与前文所述的fpga配置存储器阵列的故障注入方法同样的发明构思,本实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前文所述的fpga配置存储器阵列的故障注入方法的任一方法的步骤。
72.其中,总线架构(用总线来代表),总线可以包括任意数量的互联的总线和桥,总线将包括由处理器代表的一个或多个处理器和存储器代表的存储器的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和接收器和发送器之间提供接口。接收器和发送器可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器负责管理总线和通常的处理,而存储器可以被用
于存储处理器在执行操作时所使用的数据。
73.由于本实施例所介绍的电子设备为实施本发明实施例中fpga配置存储器阵列的故障注入方法所采用的电子设备,故而基于本发明实施例中所介绍的fpga配置存储器阵列的故障注入方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本发明实施例中的方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中fpga配置存储器阵列的故障注入方法所采用的电子设备,都属于本发明所欲保护的范围。
74.基于与上述fpga配置存储器阵列的故障注入方法同样的发明构思,本发明还提供一种计算机可读存储介质,计算机可读存储介质被执行时实现上述任一fpga配置存储器阵列的故障注入方法。
75.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
76.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
77.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
78.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
79.尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
80.显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

技术特征:


1.一种fpga配置存储器阵列的故障注入方法,其特征在于,包括:获取设定的所述fpga中的配码数据帧地址;通过所述fpga的jtag接口回读所述配码数据帧地址对应的配码数据帧;将所述配码数据帧中的至少一位取反;通过所述jtag接口将取反后的所述配码数据帧写入所述fpga。2.如权利要求1所述的fpga配置存储器阵列的故障注入方法,其特征在于,所述获取设定的所述fpga中的配码数据帧地址,包括:接收上位机发送的命令;解析所述命令,获取所述配码数据帧地址。3.如权利要求1所述的fpga配置存储器阵列的故障注入方法,其特征在于,所述通过所述fpga的jtag接口回读所述配码数据帧地址对应的配码数据帧,包括:通过所述jtag接口依次对所述fpga进行:进入shift-ir状态、写入cfg_in指令、进入shift-dr状态、写入cfg_out指令、进入shift-ir状态、写入cfg_out指令、进入shift-dr状态,以回读所述配码数据帧。4.如权利要求3所述的fpga配置存储器阵列的故障注入方法,其特征在于,所述通过所述jtag接口将取反后的所述配码数据帧写入所述fpga,包括:通过所述jtag接口依次对所述fpga进行:进入shift-ir状态、写入cfg_in指令、进入shift-dr状态,以将取反后的所述配码数据帧写入所述fpga。5.一种fpga配置存储器阵列的故障注入装置,其特征在于,包括:命令解析模块,用于获取设定的所述fpga中的配码数据帧地址;jtag协议模块,用于通过所述fpga的jtag接口回读所述配码数据帧地址对应的配码数据帧;状态机,用于将所述配码数据帧中的至少一位取反;所述jtag协议模块,还用于通过所述jtag接口将取反后的所述配码数据帧写入所述fpga。6.如权利要求5所述的fpga配置存储器阵列的故障注入装置,其特征在于,还包括:数据写入模块,用于将回读的所述配码数据帧写入缓存;数据读出模块,用于将写入缓存的所述配码数据帧读出。7.如权利要求5所述的fpga配置存储器阵列的故障注入装置,其特征在于,所述故障注入装置为cpld、fpga、mcu、arm、单片机、dsp或asic。8.如权利要求5所述的fpga配置存储器阵列的故障注入装置,其特征在于,所述故障注入装置通过串口、以太网接口、can总线、spi总线或i2c总线连接上位机。9.一种电子设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-5中任一项权利要求所述的fpga配置存储器阵列的故障注入方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质被执行时实现权利要求1-5中任一项权利要求所述的fpga配置存储器阵列的故障注入方法。

技术总结


本发明公开了FPGA配置存储器阵列的故障注入方法及装置,涉及FPGA技术领域。本发明通过FPGA的JTAG接口回读配码数据帧地址对应的配码数据帧,将配码数据帧中的至少一位取反后便可得到错误配码数据,然后通过JTAG接口将取反后的配码数据帧写入FPGA,实现了通过JTAG接口对FPGA进行故障注入;由于仅回读和注入指定地址的配码数据帧,数据量小,可极大的降低故障注入时间;具有不影响Slave SelectMAP接口回读刷新操作的优势,可以同时进行故障注入和回读刷新。回读刷新。回读刷新。


技术研发人员:

谢元禄 呼红阳 霍长兴 张坤 季兰龙 习凯 卢年端

受保护的技术使用者:

中国科学院微电子研究所

技术研发日:

2022.01.27

技术公布日:

2022/5/30

本文发布于:2024-09-21 19:06:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/27205.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:所述   数据   存储器   阵列
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议