一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种自动化的FPGA故障注入测试系统以及方法与流程

2022-02-19 08:56:28 来源:中国专利 TAG:

一种自动化的fpga故障注入测试系统以及方法
技术领域
1.本发明属于集成电路领域,特别是涉及一种自动化的fpga故障注入方法。


背景技术:

2.sram型fpga由于其可重复编程、高灵活性等特点,在宇航用电子设备中的应用越来越广泛。sram型fpga使用的sram存储单元在提供极大的灵活性的同时,又天然的带有易受辐射效应影响的缺陷,其在空间辐射环境中工作容易受到单粒子翻转效应的干扰,即宇宙高能粒子射入sram单元的敏感区时,可能会导致fpga中存储单元逻辑的翻转,从而产生软错误,严重时甚至会损坏硬件电路。特别是随着fpga晶体管尺寸的不断缩小,辐射粒子对sram型fpga的影响越来越大。因此,对基于sram型fpga的系统的seu敏感度评估十分迫切。这样就可以在设计阶段掌握电路对seu的敏感度,从而实现指导设计以及评判设计电路可靠性的目的。此外,随着越来越多缓解seu效应的容错方法被提出并应用于宇航用电子设备中,如纠错码,三模冗余等,对这些容错设计的seu缓解效果进行测试与评估也是不可避免的。
3.然而,搭建一套完整的故障注入系统不仅需要掌握fpga的组织结构和配置方式等,而且针对某一用户设计搭建的故障注入系统存在着通用性低的问题。因此,为了使得可靠性评估更加快速便捷,适应于各种设计,有必要使故障注入评估过程自动化。


技术实现要素:

4.本发明解决的技术问题是:克服现有技术的不足,提出了一种自动化的fpga故障注入测试系统以及方法,降低了故障注入系统的开发难度,协助设计人员快速搭建故障注入系统,提升了评估电路可靠性的效率。
5.本发明解决技术问题的方案是:一种自动化的fpga故障注入测试系统,该系统包括上位机和下位机故障注入硬件系统,下位机故障注入硬件系统包括用户设计控制电路与故障注入控制电路;其中:
6.用户设计控制电路包括待测电路、参照电路、激励产生电路、结果比较电路;
7.参照电路为待测电路的复制,均包括m位输入总线和n位输出总线,m位输入总线同时连接至激励产生电路,n位输出端口同时连接至结果比较电路,m,n均大于等于1;
8.激励产生电路,接收激励启动信号后进行初始化,初始化之后每个时钟周期随机生成m位数据,作为测试激励,同时发送给参照电路和待测电路,2
m
个时钟周期遍历m位输入总线的2
m
个数据;
9.结果比较电路,用于比较参照电路和待测电路受到激励驱动之后输出总线上的数据是否相同,如果不同,则累加注入故障计数值,否则,保持注入故障计数值不变,之后将注入故障计数值发送给串口通信电路;初始状态下或者收到故障注入测试启动信号之后,将注入故障计数清零;
10.故障注入控制电路包括过程控制电路、重配接口控制电路与串口通信电路;
11.过程控制电路,通过串口通信电路接收故障注入命令消息,解析故障注入命令消息,得到故障注入测试的首地址、末地址,向用户设计控制电路发送故障注入测试启动信号,从首地址开始,遍历测试地址,对于每个测试地址,通过重配接口控制电路回读对应地址的帧数据,将回读的帧数据按位翻转得到重配帧数据,再通过重配接口控制电路将重配帧数据写入对应地址中,对于每个地址的帧数据一次翻转一个数据位,遍历所有数据位,每写入一次重配帧数据,向用户设计控制电路发送一次激励启动信号。
12.优选地,所述下位机故障注入硬件系统通过如下方法自动实现:
13.s1、读取并分析待测电路的源代码文件,提取其中的顶层模块的名称和接口设计信息,所述接口设计信息包括顶层模块使用过的用户io接口名称、类型和位宽信息;
14.s2、根据待测电路顶层模块的名称和接口设计信息,自动构建用户设计控制电路;
15.s3、将自动生成的用户设计控制电路与预设的通用故障注入控制电路互连结合,生成故障注入系统的硬件描述文件,通过tcl脚本自动完成故障注入系统的综合、布局布线过程,得到故障注入系统的可执行文件,将故障注入系统的可执行文件加载至被测电路所使用的fpga中,完成下位机故障注入硬件系统的自动搭建。
16.优选地,所述步骤s2中自动构建用户设计控制电路的具体步骤包括:
17.根据待测电路顶层模块的名称,自动例化出待测电路与参照电路;
18.根据待测电路的接口设计信息中用户io接口名称、类型和位宽信息分析出输入端口和输出端口;
19.生成与输入端口匹配的激励产生电路;
20.生成与输出端口匹配的结果比较电路。
21.优选地,所述下位机故障注入硬件系统的自动搭建过程在上位机中实现。
22.优选地,所述的激励产生电路采用线性反馈移位寄存器的方式来生成伪随机数,作为测试激励。
23.本发明的另一个技术方案:一种自动化的fpga故障注入测试方法,该方法包括如下步骤:
24.s1、读取并分析待测电路的源代码文件,提取其中的顶层模块的名称和接口设计信息,所述接口设计信息包括顶层模块使用过的用户io接口名称、类型和位宽信息;
25.s2、根据待测电路顶层模块的名称和接口设计信息,自动构建用户设计控制电路;
26.s3、将自动生成的用户设计控制电路与预设的通用故障注入控制电路互连结合,生成故障注入系统的硬件描述文件,通过tcl脚本自动完成故障注入系统的综合、布局布线过程,得到故障注入系统的可执行文件,将故障注入系统的可执行文件加载至被测电路所使用的fpga中,完成下位机故障注入硬件系统的自动搭建。
27.s4、执行故障注入测试:由上位机向下位机故障注入硬件系统发送故障注入命令消息,对待测电路预设地址范围内的数据帧进行逐位翻转,并检测待测电路和参照电路在相同的测试激励下的输出结果,判断待测电路是否出现故障,并统计出现故障的次数;
28.s5、等待测电路预设地址全部测试完毕之后,将统计的出现故障次数上传至上位机,结束流程。
29.优选地,该方法的故障注入测试过程如下::
30.s4.1、串口通信电路,将从上位机接收到的故障注入命令消息发送给过程控制电
路;
31.s4.2、过程控制电路解析故障注入命令消息,从中得到故障注入测试的首地址、末地址,之后,发送故障注入测试启动信号给用户设计控制电路,进入步骤s3;
32.s4.3、用户设计控制电路收到故障注入测试启动信号志之后,控制结果比较电路将注入故障计数值清零;
33.s4.4、过程控制电路计算当前测试地址,将回读命令和测试地址发送给重配接口控制电路;
34.s4.5、重配接口控制电路,收到回读命令后,根据测试地址回读出帧数据,并返回给过程控制电路;
35.s4.6、过程控制电路,接收重配接口控制电路反馈的回读的帧数据之后,进入步骤s7;
36.s4.7、将帧数据进行位翻转,将位翻转之后的帧数据和测试地址通过重配命令发送给重配接口控制电路,然后发送激励启动信号至用户设计控制电路;
37.s4.8、重配接口控制电路,收到重配命令后,根据测试地址将位翻转之后的帧数据重配至待测电路中;
38.s4.9、激励产生电路,接收激励启动信号后进行初始化,初始化之后每个时钟周期随机生成m位数据,作为测试激励,同时发送给参照电路和待测电路,2
m
个时钟周期遍历m位输入总线的2
m
个数据,待遍历完2
m
个数据之后发送数据遍历结束标志给过程控制电路;
39.s4.10、结果比较电路,比较参照电路和待测电路受到激励驱动之后输出总线上的数据是否相同,如果不同,则累加注入故障计数,否则,保持注入故障计数不变,之后将注入故障计数值发送给串口通信电路;
40.s4.11、过程控制电路,待收到激励产生电路反馈的数据遍历结束标志后,进入步骤s4.12;
41.s4.12、重复步骤s4.7~s4.12,直到对同一个地址帧数据的所有位执行完翻转动作之后,重新执行步骤s4.4~s4.12,直到待地址遍历结束之后,向串口通信电路发送故障注入结束标识;
42.s4.13、串口通信电路将故障计数值发送给上位机。
43.本发明与现有技术相比的有益效果是:
44.(1)、本发明通过对待测电路的分析研究,提取用户设计相关的信息用于构建用户设计控制电路,并与故障注入控制电路互连自动生成完整的故障注入系统,省去了手工搭建故障注入系统的繁琐,节省了设计人员的大量时间与精力,提升了故障注入系统的使用范围,使设计人员可以快速便捷地评估fpga电路的可靠性。
45.(2)、本发明可以自适应地为各种不同用户电路自动搭建故障注入系统,在为数目庞大的电路集进行可靠性评估时,简化了为每个电路搭建故障注入系统的流程,加快了进行大规模的电路可靠性评估。
附图说明
46.图1为本发明实施例自动化fpga故障注入方法的系统结构;
47.图2是本发明实施例自动化故障注入方法的执行流程;
48.图3是本发明实施例实现的故障注入系统的执行流程。
具体实施方式
49.下面结合实施例对本发明作进一步阐述。
50.本发明提供了一种自动化的fpga故障注入测试系统和故障注入方法,该系统包括上位机和下位机故障注入硬件系统。
51.上位机:读取并分析待测电路,提取信息,自动生成下位机硬件系统;在故障注入过程中,向下位机发送命令与地址;
52.下位机故障注入硬件系统:包括用户设计控制电路与故障注入控制电路,控制故障注入的回读、翻转、重配置、激励产生以及结果比较。
53.用户设计控制电路包括待测电路、参照电路、激励产生电路、结果比较电路;
54.参照电路为待测电路的复制,均包括m位输入总线和n位输出总线,m位输入总线同时连接至激励产生电路,n位输出端口同时连接至结果比较电路,m,n均大于等于1;
55.激励产生电路,接收激励启动信号后进行初始化,初始化之后每个时钟周期随机生成m位数据,作为测试激励,同时发送给参照电路和待测电路,2
m
个时钟周期遍历m位输入总线的2
m
个数据;所述激励产生电路采用线性反馈移位寄存器的方式来生成伪随机数,作为测试激励。
56.结果比较电路,用于比较参照电路和待测电路受到激励驱动之后输出总线上的数据是否相同,如果不同,则累加注入故障计数值,否则,保持注入故障计数值不变,之后将注入故障计数值发送给串口通信电路;初始状态下或者收到故障注入测试启动信号之后,将注入故障计数清零;
57.故障注入控制电路包括过程控制电路、重配接口控制电路与串口通信电路;
58.过程控制电路,通过串口通信电路接收故障注入命令消息,解析故障注入命令消息,得到故障注入测试的首地址、末地址,向用户设计控制电路发送故障注入测试启动信号,从首地址开始,遍历测试地址,对于每个测试地址,通过重配接口控制电路回读对应地址的帧数据,将回读的帧数据按位翻转得到重配帧数据,再通过重配接口控制电路将重配帧数据写入对应地址中,对于每个地址的帧数据一次翻转一个数据位,遍历所有数据位,每写入一次重配帧数据,向用户设计控制电路发送一次激励启动信号。
59.除了故障注入命令消息之外,上位机还可以向下位机故障注入硬件系统发送回读命令和重配置命令,回读命令用于回读出指定帧地址中的数据;重配置命令将数据重配入指定的帧地址中。所述地址是指fpga中配置帧的地址,由26位组成,用于定位配置在fpga中的行列位置。
60.为了实现自动化测试,所述下位机故障注入硬件系统通过如下方法自动实现:
61.s1、读取并分析待测电路的源代码文件,提取其中的与用户设计相关的信息,用户设计相关的信息包括顶层模块的名称和接口设计信息,所述接口设计信息包括顶层模块使用过的用户io接口名称、类型和位宽信息;
62.s2、根据待测电路顶层模块的名称和接口设计信息,自动构建用户设计控制电路;
63.自动构建用户设计控制电路的具体步骤包括:
64.根据待测电路顶层模块的名称,自动例化出待测电路与参照电路;
65.根据待测电路的接口设计信息中用户io接口名称、类型和位宽信息分析出输入端口和输出端口;
66.生成与输入端口匹配的激励产生电路;
67.生成与输出端口匹配的结果比较电路。
68.s3、将自动生成的用户设计控制电路与预设的通用故障注入控制电路互连结合,生成故障注入系统的硬件描述文件,通过tcl脚本自动完成故障注入系统的综合、布局布线过程,得到故障注入系统的可执行文件,将故障注入系统的可执行文件加载至被测电路所使用的fpga中,完成下位机故障注入硬件系统的自动搭建。
69.进一步地,所述步骤s1中,待测电路是由用户设计,在fpga上实现的电路。所述的用户设计相关的信息是指电路中的顶层模块的名称与位置信息以及输入输出信号的名称与位宽信息。
70.所述下位机故障注入硬件系统的自动搭建过程在上位机中实现。
71.基于上述故障注入测试系统,本发明还提供了一种自动化的fpga故障注入方法,包括如下步骤:
72.s1、读取并分析待测电路的源代码文件,提取其中的顶层模块的名称和接口设计信息,所述接口设计信息包括顶层模块使用过的用户io接口名称、类型和位宽信息;
73.s2、根据待测电路顶层模块的名称和接口设计信息,自动构建用户设计控制电路;
74.s3、将自动生成的用户设计控制电路与预设的通用故障注入控制电路互连结合,生成故障注入系统的硬件描述文件,通过tcl脚本自动完成故障注入系统的综合、布局布线过程,得到故障注入系统的可执行文件,将故障注入系统的可执行文件加载至被测电路所使用的fpga中,完成下位机故障注入硬件系统的自动搭建。
75.s4、执行故障注入测试:由上位机向下位机故障注入硬件系统发送故障注入命令消息,对待测电路预设地址范围内的数据帧进行逐位翻转,并检测待测电路和参照电路在相同的测试激励下的输出结果,判断待测电路是否出现故障,并统计出现故障的次数;
76.s5、等待测电路预设地址全部测试完毕之后,将统计的出现故障次数上传至上位机,结束流程。
77.所述故障注入测试过程如下::
78.s4.1、串口通信电路,将从上位机接收到的故障注入命令消息发送给过程控制电路;
79.s4.2、过程控制电路解析故障注入命令消息,从中得到故障注入测试的首地址、末地址,之后,发送故障注入测试启动信号给用户设计控制电路,进入步骤s3;
80.s4.3、用户设计控制电路收到故障注入测试启动信号志之后,控制结果比较电路将注入故障计数值清零;
81.s4.4、过程控制电路计算当前测试地址,将回读命令和测试地址发送给重配接口控制电路;
82.s4.5、重配接口控制电路,收到回读命令后,根据测试地址回读出帧数据,并返回给过程控制电路;
83.s4.6、过程控制电路,接收重配接口控制电路反馈的回读的帧数据之后,进入步骤s7;
84.s4.7、将帧数据进行位翻转,将位翻转之后的帧数据和测试地址通过重配命令发送给重配接口控制电路,然后发送激励启动信号至用户设计控制电路;
85.s4.8、重配接口控制电路,收到重配命令后,根据测试地址将位翻转之后的帧数据重配至待测电路中;
86.s4.9、激励产生电路,接收激励启动信号后进行初始化,初始化之后每个时钟周期随机生成m位数据,作为测试激励,同时发送给参照电路和待测电路,2
m
个时钟周期遍历m位输入总线的2
m
个数据,待遍历完2
m
个数据之后发送数据遍历结束标志给过程控制电路;
87.s4.10、结果比较电路,比较参照电路和待测电路受到激励驱动之后输出总线上的数据是否相同,如果不同,则累加注入故障计数,否则,保持注入故障计数不变,之后将注入故障计数值发送给串口通信电路;
88.s4.11、过程控制电路,待收到激励产生电路反馈的数据遍历结束标志后,进入步骤s4.12;
89.s4.12、重复步骤s4.7~s4.12,直到对同一个地址帧数据的所有位执行完翻转动作之后,重新执行步骤s4.4~s4.12,直到待地址遍历结束之后,向串口通信电路发送故障注入结束标识;
90.s4.13、串口通信电路将故障计数值发送给上位机。
91.上述用户设计控制电路是指与用户设计相关的电路,会随着待测电路的改变而无法复用。
92.故障注入控制电路是指不受用户设计影响,可以重复使用的电路,用于控制故障注入的回读、翻转、重配置过程以及与上位机的交互。
93.实施例:
94.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
95.本发明使用的fpga开发板为xilinx公司的nexys 4,fpga型号为artix

7xc7a100tcsg324。
96.实施例一:
97.本实施的自动化fpga故障注入系统结构如图1所示:包括上位机控制软件与下位机故障注入硬件系统;
98.上位机控制软件在pc端实现,在故障注入系统搭建过程中,读取并分析待测电路,提取信息,自动生成下位机硬件系统;在故障注入过程中,向下位机发送故障注入的控制命令与地址;
99.下位机硬件系统在fpga上实现,包括用户设计控制电路与故障注入控制电路,控制故障注入的回读、翻转、重配置、激励产生以及结果比较;
100.图2所示是完整的本实施例自动化fpga故障注入方法的执行流程,具体解释如下:
101.步骤s1,首先读取并分析待测电路的verilog文件,提取其中与用户设计相关的信息,包括电路中的顶层模块的名称与位置信息以及输入输出信号的名称与位宽信息等;
102.步骤s2,根据提取的信息自动生成用户设计控制电路,并与故障注入控制电路互
连结合,生成完整的故障注入系统的硬件描述文件。所述的用户设计控制电路是指与用户设计相关的电路,会随着待测电路的改变而无法复用,主要包括待测电路、参照电路、激励产生电路与结果比较电路,用于产生测试激励、驱动电路并比较电路结果;所述的激励产生电路采用线性反馈移位寄存器的方式来生成伪随机数激励;故障注入控制电路是指不受用户设计影响,可以重复使用的电路,主要包括过程控制电路、重配接口控制电路与串口通信电路,用于控制故障注入的回读、翻转、重配置过程以及与上位机的交互;
103.步骤s3,通过tcl脚本自动完成故障注入硬件的综合实现过程,完成故障注入系统的自动搭建;所述的tcl脚本定义了创建工程、综合、布局布线等自动化流程,将故障注入系统下载到fpga上,完成故障注入系统的自动搭建;
104.步骤s4,执行故障注入,对配置位进行逐位翻转,并检测待测电路与参照电路的输出状态,判断是否发生错误;其具体过程如图3所示:下位机接收到命令与地址之后,将包含一位翻转配置位的单帧数据重配至待测电路;使用相同的测试激励驱动待测电路与参照电路,比较两者的运行结果,判断待测电路是否出现故障;若结果相同,则待测电路没有出现故障;若结果不同,则待测电路出现故障,向上位机回传该配置位的地址与故障信息;修复该配置位,并翻转下一个配置位,重复上述过程直至地址末尾,故障注入流程结束。
105.步骤s5,对全部配置位的故障注入执行完毕后,统计结果,结束流程。
106.实施例二:
107.本实施例对下列电路进行了测试:fir滤波器电路及其三模冗余电路fir

tmr电路、sobel边缘检测电路及其三模冗余电路sobel

tmr电路、qsort快速排序电路及其三模冗余电路qsort

tmr。fir滤波器为有限长单位冲激响应滤波器,在通信、图像处理、模式识别等领域有着广泛的应用。sobel边缘检测用来运算图像函数的灰度的近似值。三模冗余(tmr)是最常用的一种容错设计技术,三个模块同时执行相同的操作,以多数相同的输出作为表决系统的正确输出。
108.测试结果如表1与表2所示。
109.表1故障注入系统生成结果
[0110][0111]
表2故障注入测试结果
[0112][0113]
由表1的数据可以看出:本发明的方法为本实施例中的6个电路成功自动生成功能完备的故障注入系统;使用本发明方法的搭建故障注入系统的平均时间也远小于手工搭建故障注入系统的平均时间。
[0114]
由表2的数据可以看出:三模冗余电路比普通电路的敏感度大幅度降低,本发明方法的故障评估效果良好。
[0115]
综上所述,本发明通过分析输入的待测电路文件,自适应地为用户设计生成整套故障注入系统,降低了故障注入系统的开发难度,协助设计人员快速搭建故障注入系统,提升了评估电路可靠性的效率。
[0116]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包含权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0117]
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献