一种基于仿真的数字电路故障注入方法与流程

文档序号:15230087发布日期:2018-08-21 19:18阅读:283来源:国知局

本发明属于数字电路技术领域,涉及一种基于仿真的数字电路故障注入方法。



背景技术:

近年来随着集成度电路特征尺寸的不断缩小,处理器的性能得到了迅速的提高,然而这种高度集成化、低阈值电压以及高工作频率,使得处理器对于串扰、电磁干扰以及粒子辐射等的影响更加敏感,容易引发处理器的各种故障,对处理器的可靠性提出了严峻的挑战。为了克服这些挑战,需要对处理器进行容错设计,采取适当的防护措施来增强电路可靠性,尽可能的保证系统的各项功能正常运转。

在处理器加固设计中,一项主要的设计任务就是抵抗电磁干扰,粒子辐射等引起的电路故障现象,在前端设计的时候,可以从系统结构的角度采取各种加固措施;而为了验证这些加固措施的有效性,需要模拟出实际环境下导致电路发生的故障现象,然后分析在电路捕获到这些故障现象之后,所采用的加固措施是否有效,处理器能否继续正确运行。已有的故障注入技术分为三大类,包括硬件故障注入技术,软件故障注入技术和基于仿真的故障注入技术。基于硬件的故障注入和基于软件的故障注入均需要在芯片出产之后才能进行,属于物理注错方法,且实现相对复杂,成本较高。基于仿真的故障注入技术的目标系统一般为vhdl模型,这种方法又可以分为vhdl模型修改技术和仿真命令技术。

目前的研究已经设计出了很多前端仿真的故障注入平台,且这些平台都是系统化的,能够提供多种故障注入机制,并自动对故障注入后的处理器运行情况作分析;但是正因为目前方法的全面系统性,导致这样的一套故障注入与分析平台需要投入较多的人力物力才能完成其开发,系统的开发周期也较长,在前端设计的早期不能及时投入使用,或者在处理器加固设计的方案论证阶段和方案实现阶段,由于方案本身的不完善,不能,而且也没有必要采用这样的一套系统的验证和评估方案来检验各个设计点的容错效果。



技术实现要素:

本发明的目的在于克服上述现有技术的缺点,提供一种基于仿真的数字电路故障注入方法,该方法主要应用于处理器可靠性方案的验证,能够在仿真的tb文件中采用简短高效的代码实现快速注错,快速仿真,实现上简单易行,基本能够做到立即设计立即使用,且应用上也不乏灵活性。

为达到上述目的,本发明采用以下技术方案予以实现:

一种基于仿真的数字电路故障注入方法,其特征在于,包括以下步骤:

step1:创建目标信号列表sn

提取设计中的故障注入点并写入文件实现目标信号列表的创建;

step2:获取目标信号

首先确定给系统中的哪一个信号注入故障,然后确定该信号在目标信号列表中的索引号,并根据索引号将目标信号的信息读取出来,这样就从目标信号列表中获取了故障注入目标;

step3:故障注入

根据指定的故障类型与故障注入的时间信息完成对目标信号值的修改;

故障类型包括永久性故障和瞬时性故障。

本发明的进一步改进在于:

step1中,目标信号列表是待注入故障的信号集合,目标信号列表为文件形式,文件中所列的信号是需要注入故障的信号,每个信号在文件中占据文件的一行。

step2中,获取目标信号采用故障产生器实现,故障产生器的输入为从目标信号列表中获取的列表行数以及仿真时指定的初始化信息;故障产生器根据指定的随机方式来确定并输出故障类型、故障模式、瞬态故障的持续时间以及目标信号在列表中的索引号i;

当随机方式设定为不采用随机故障注入时,故障产生器输出到故障注入机的信号故障类型,故障模式,瞬态故障的持续时间以及索引号i均采用设计者预先设定的初始值;当随机方式设置为某种随机故障注入方式时,故障产生器就根据指定的随机概率分布方式产生出故障类型,故障模式,瞬态故障的持续时间以及索引号i,并输出到故障注入机,其中1≤i≤n;在故障产生器中添加各种随机概率分布程序,就能够模拟出相应的随机分布故障。

初始化信息包括:

初始故障类型,指定为永久性故障或瞬时性故障;

永久故障比例,指定永久性故障的注入比例,范围为[0,100]的real型数据;如果该参数设置为a,即永久性故障占比为a%,瞬时性故障占比为(100-a)%;

初始故障模式,根据指定的初始故障类型,设置为相应的故障模式;

瞬时故障持续时间,指定瞬时性故障的持续时间,该输入参量是一个数据范围,该数据范围内部会随机产生一个real型数据,并将这个数与系统的时钟周期相乘,将乘积时间量作为瞬时性故障的持续时间;当故障类型为永久性故障时,内部自动默认故障持续时间为整个仿真时间;

故障注入间隔,设置两次故障注入的时间间隔,该输入参量是一个数据范围,该数据范围内部会随机产生一个real型数据,并将这个数与系统的时钟周期相乘,将乘积时间量作为两次故障注入的时间间隔,以此来达到调节故障注入量的目的,间隔时间越短,故障注入越密集;

目标信号索引,指定待注入故障的信号在目标信号列表sn中的索引号i;

随机方式,指定故障是否随机注入,以及随机故障在各个目标信号集上的随机分布方式,随机概率分布算法程序根据需要进行添加。

故障注入采用故障注入机实现,故障注入机用于接收故障产生器的输出信号,并完成相应的故障注入。

故障注入机首先根据输入的索引号i的值从目标信号列表中取出相应的目标信号si,然后根据故障注入模式,采用设置信号值的方式,执行故障注入。

与现有技术相比,本发明具有以下有益效果:

本发明为基于仿真的故障注入技术,不需要修改vhdl模型,直接在testbench(tb)中采用简短高效的代码实现,能够简单快速的支持可靠性设计的验证。本发明简单易行,能够快速实现且使用灵活的故障注入方法,能够有效模拟出实际环境下导致处理器内部电平翻转等故障现象。

附图说明

图1本发明实施结构图。

具体实施方式

下面结合附图对本发明做进一步详细描述:

参见图1,本发明基于仿真的数字电路故障注入方法,包括创建目标信号列表,获取目标信号,故障注入。所采用的技术方案应该支持多信号列表的灵活操作,故障注入类型可设置,故障的持续时间可设置,除了能实现指定信号的故障注入,还要能实现故障的随机注入以及多点故障注入。本发明能够在数字电路仿真验证平台上很方便的实现。本实施例中采用随机故障注入作为例子介绍本发明的基本思想,也可以参照此方式实现其它指定信号的故障注入;实施例在modelsim仿真平台上采用vhdl语言编程实现,被仿真的模块为一个容错设计的定时器(timer)。本发明的实施结构见图1,主要由目标信号列表(sn),故障产生器(faultgenerator),故障注入机(故障注入机),vhdl模型(vhdlmdoel)四部分组成。其中的目标信号列表根据vhdl模型所创建,仿真运行中目标信号列表和vhdl模型之间并不存在信息交互,所以用虚线箭头指示它们之间的逻辑关系。实施过程具体描述如下。

1.目标信号列表(sn)的创建

目标信号列表以文件的形式存在,文件中所列的信号是需要注入故障的信号,信号列表的创建是通过提取设计中的故障注入点并写入文件来完成的,每个信号在文档中占据文档的一行。在模块化的系统设计中,每一个信号可以通过从顶层到底层的一个模块路径进行定位,因此信号列表中的每一行实际存放的是待注入故障的信号的模块路径。对于少量信号的信号列表可以手工创建,因为数字电路的信号翻转故障模型一般都归结为寄存器或者存储单元的输出翻转,且寄存器信号和存储单元的路径都是可以通过软件工具自动获取的,因此也可以利用软件协助,自动快速的创建出信号列表。另外,为了实现各个模块内部信号的分别管理,可以按照需要创建多个信号列表,将需要一起管理的信号放入同一个列表中,这样在故障注入的时候可以分别针对各个信号列表进行操作。

目标信号列表是待注入故障的信号集合,通过将待注入故障的信号添加到文件的方式创建。本实施例中随意选择了timer里面的若干个信号添加到目标信号列表中。

2.故障产生器(faultgenerator)的实施

获取目标信号首先需要确定给系统中的哪一个信号注入故障,然后确定该信号在目标信号列表中的索引号,并根据这个索引号将目标信号的信息读取出来,这样就从目标信号列表中获取了故障注入目标。在实际的恶劣环境中,处理器故障的出现具有随机性的特点,采用本发明的方法,利用某种随机概率的方法来获取索引号就可以模拟出实际环境下故障随机产生的模型。待注入故障的信号在信号列表中的索引号确定之后,将这个索引号指定的信息读取出来,就获取到了故障注入的目标信号,根据这个字符串所代表的模块路径可以唯一指定到设计中的某个信号,还能通过判断这个信号的值来确定当前处理器正常运行时目标信号的值。

本发明提出的故障注入方法能够模拟永久性故障(permanent)和瞬时性故障(transient)两种故障类型。其中电路永久性故障包括信号锁定(stuck-at-0/1)、信号开路(openline)、信号不定态(indetermination)三种故障模式;电路瞬时性故障包括位翻转(bitflip),瞬时脉冲(pulse),信号不定态(indetermination)三种故障模式。

故障产生器的输入为从目标信号列表中获取的列表行数以及仿真时指定的初始化信息,其中初始化信息包括:

初始故障类型(init故障类型),可以指定为永久性故障或瞬时性故障。

永久故障比例(pfaultrate),指定永久性故障的注入比例,范围为[0,100]的real型数据。如果该参数设置为a,即永久性故障占比为a%,瞬时性故障占比为(100-a)%。

初始故障模式(init故障模式),根据指定的初始故障类型,设置为相应的某种故障模式。

瞬时故障持续时间(init瞬态故障的持续时间),指定瞬时性故障的持续时间,该输入参量实际上是一个数据范围,例如[0.01,10],内部就会在0.01到10之间随机产生一个real型数据,并将这个数与系统的时钟周期相乘,将乘积时间量作为瞬时性故障的持续时间;当故障类型为永久性故障时,内部自动默认故障持续时间为整个仿真时间。

故障注入间隔(ingectioninterval),设置两次故障注入的时间间隔,该输入参量实际上是一个数据范围,例如[100,150],内部就在100到150之间随机产生一个real型数据,并将这个数与系统的时钟周期相乘,将乘积时间量作为两次故障注入的时间间隔,以此来达到调节故障注入量的目的,间隔时间越短,故障注入越密集。

目标信号索引(initi),指定待注入故障的信号在目标信号列表中的索引号。

随机方式(randomtype),可以指定故障是否随机注入,以及随机故障在各个目标信号集上的随机分布方式,随机概率分布算法程序可以根据需要进行添加。

故障产生器的主要功能是根据指定的随机方式来确定并输出故障类型(faulttype)、故障模式(faultmodel)、瞬态故障的持续时间(tfaultduration)以及目标信号在列表中的索引号(i)。

故障产生器的工作方式为,根据指定输入的随机方式确定是否随机产生故障类型、故障模式、瞬态故障持续时间、目标信号索引号以及产生这些输出量的随机分布方式;当输入的随机方式指定为不采用随机方式时,输出的故障类型、故障模式、瞬态故障持续时间、目标信号索引号均为指定的初始值;当输入的随机方式指定为某种随机方式时,输出的故障类型、故障模式、瞬态故障持续时间、目标信号索引号均根据指定的随机分布方式并结合永久故障比例随机产生。

当随机方式设定为不采用随机故障注入时,故障产生器输出到故障注入机的信号故障类型,故障模式,瞬态故障的持续时间以及i均采用设计者预先设定的初始值;当随机方式设置为某种随机故障注入方式时,故障产生器就根据指定的随机概率分布方式产生出故障类型,故障模式,瞬态故障的持续时间以及i(1≤i≤n),并输出到故障注入机。在故障产生器中添加各种随机概率分布程序,就可以模拟出相应的随机分布故障。处理器在实际环境中工作时,故障产生具有某种随机性的特点,因此利用故障产生器的随机功能可以更好的模拟出实际环境下故障的随机特性。

3.故障注入机(faultinjector)的实施

故障注入即是根据指定的故障类型与故障注入的时间信息完成对目标信号值的修改。故障类型包括永久性故障和瞬时性故障。永久性故障即模拟信号锁定(stuck-at-0/1)、信号开路(openline)、信号不定态(indetermination),直到仿真时间结束。瞬时性故障即是模拟电平翻转(bitflip),瞬时脉冲(pulse),信号不定态(indetermination)几种故障模型,然后等故障持续时间结束后撤销故障注入。

为了模拟实际环境中不同的注入量对处理器的影响,可以设置每次故障注入的时间间隔,达到控制注入量的目的;故障的目标信号,以及故障注入后处理器的运行效果可以在仿真中按照一般的仿真流程进行波形观察或者打印并查阅运行记录。

故障注入机主要接收故障产生器的输出信号,并完成相应的故障注入。

故障注入机首先根据输入的i值从目标信号列表中取出相应的目标信号si,然后根据故障注入模式,采用设置信号值的方式,执行故障注入。故障注入时,需要针对不同的故障类型与故障模式执行不同的操作。

需要注意的是,故障注入机中目标信号的映射以及信号强制赋值的方式,根据不同的仿真平台可能有所不同,例如在active-hdl平台上分别采用“signal_agent()”与“force()”程序来实现信号映射与信号强制赋值操作;在vhdl-2008版本的描述语言中专门增加了的“force”和“release”语句来实现信号强制赋值相关的操作,这样很大程度上减少了本方法对仿真验证平台的依赖性。

本发明方法实施之后,对timer进行故障注入,仿真环境设置如下:

故障产生器的随机方式(randomtype)指定为故障随机注入(均匀分布随机故障注入)。

永久故障比例(pfaultrate)设置为0.1,即永久性故障占0.1%,其余均为瞬时性故障。

瞬时故障持续时间(inittfaultduration)分别设置为[0.01,10]t,其中t为系统时钟周期,实验中t=2.5ns。

故障注入间隔(ingectioninterval)设置为[50,100]t。

本发明基于仿真的数字电路故障注入方法在仿真的testbench文件中直接实现,并且包含目标信号列表,故障产生器,故障注入机三个组成部分。目标信号列表以文件的方式存在,列表中为待注入故障的目标信号集合,集合中的每个元素代表设计中的一个信号的模块路径,通过这个模块路径可以唯一指定到设计中的某个信号。

以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1