CN100576221C - 一种验证抗单粒子效应能力的故障注入系统及其方法 - Google Patents
一种验证抗单粒子效应能力的故障注入系统及其方法 Download PDFInfo
- Publication number
- CN100576221C CN100576221C CN200810113439A CN200810113439A CN100576221C CN 100576221 C CN100576221 C CN 100576221C CN 200810113439 A CN200810113439 A CN 200810113439A CN 200810113439 A CN200810113439 A CN 200810113439A CN 100576221 C CN100576221 C CN 100576221C
- Authority
- CN
- China
- Prior art keywords
- circuit
- fault
- module
- control signal
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一种验证抗单粒子效应能力的故障注入系统及其方法,制作故障单元库模块将目标电路的工艺单元库修改成目标电路的故障单元库;实施故障注入模块修改目标电路的门级HDL代码,生成无故障电路和故障电路,并将修改后的代码映射到故障单元库上,统计所述代码的故障端的数目并发送给故障控制信号模块;同步电路实现仿真电路模块和故障控制信号模块时钟同步;故障控制信号模块产生故障控制信号,并发送给仿真电路模块中的故障电路;仿真电路模块载入无故障电路和故障电路,提供输入信号给两个电路,提供控制信号给无故障电路,并将两个电路的输出进行比较,将比较结果、故障控制信号发送给统计分析模块进行记录,统计分析模块计算每个节点的错误率或敏感度信息。
Description
技术领域
本发明涉及半导体器件抗空间单粒子效应能力验证技术领域。
背景技术
当数字电路应用在空间环境中时,空间高能粒子会穿透半导体器件内部并在路径上产生电离,电路节点会吸收电离产生的电子和空穴从而导致电路错误,这种效应称为单粒子效应。地面模拟单粒子效应主要有辐射实验方法和仿真方法,辐射实验方法成本高周期长,仿真方法成本低易实现,成为目前用于验证电路抗单粒子的一种亟待研究的方法。
目前验证目标电路抗空间单粒子效应的仿真方法主要有:利用软件分析错误传播概率的软错误评估方法、构建库单元的spice模型仿真等方法,前者利用软件和数学方法计算单粒子在电路节点上产生错误的传播概率,后者通过设置和修改工艺库单元里的模型参数,根据模拟结果得出库单元的抗单粒子性能。这些方法的主要不足在于适合于对小规模电路或库单元进行仿真评价,不适合对系统级大电路进行仿真,因为在大模型中要取得每个电路节点的输出翻转概率工作量巨大,对仿真计算机的软硬件要求都很高,而大规模电路的spice模型更是难以构建。
而在容错测试中广泛采用的故障注入技术,通过在系统逻辑层中插入故障,容易得到插入节点故障对系统造成影响的大小,适合在大规模电路条件下验证电路逻辑层的容错性能。而由于抗空间单粒子能力验证的特殊性,需要在目标电路所有节点分别注入故障,得到每个节点的出错概率,进而得到目标电路对单粒子的敏感路径或者敏感区域,从而可以在这些敏感路径或敏感区域上实行重点抗辐射加固,这种特殊要求使得不是所有的故障注入方法都适合用于抗单粒子效应能力的验证领域中。
目前在抗单粒子效应验证领域里采用的故障注入方法主要有:
专利申请号200510111494.1,名称“智能全自动单粒子事件故障注入器”,介绍了一种在计算机上调用仿真工具软件来模拟单粒子效应的故障注入器,该方法主要通过利用仿真工具自带的命令编写仿真错误激励文件,改变电路节点信号的逻辑值来实现故障注入,从而模拟单粒子效应。
Tenth IEEE International,“Improvement of Fault Injection TechniquesBased on VHDL Code Modification”,2005,介绍了一种通过插入“破坏者”和“变异体”的单元电路结构,自动在电路VHDL代码上注入故障的方法。
以上方法来验证单粒子效应的主要不足是这些方法基于软件仿真工具的故障注入方法,仿真工具适合模拟小规模电路,在模拟大规模电路时耗时比基于硬件的故障注入方法要大得多,而电路节点数较多时激励文件中手动输入每个节点信号的工作量大,此外利用该方法对模拟的计算机本身的配置也提出了更高的要求。
专利申请号200610150972.4,名称“一种嵌入式故障注入系统及其方法”,介绍了一种基于可编程逻辑器件的故障注入系统及方法,该方法主要通过截获并修改目标电路的相应管脚信号来实现故障注入,从而模拟单粒子效应。
IEEE Transactions On Nuclear Science,“Autonomous Fault EmulationSystem for Hardness Evaluation”,2007,介绍了一种基于FPGA的,通过在目标电路HDL代码的电路节点上自动添加D触发器来实现故障注入的方法,从而模拟单粒子翻转(SEU)效应。
以上方法来验证单粒子效应的主要不足是注入故障作用的脉宽等于系统时钟周期,即只模拟了单粒子翻转(SEU)效应,而组合逻辑电路中发生的单粒子瞬态(SET)效应的脉冲宽度远小于半导体器件电路工作的系统时钟周期,即需要注入故障的时钟周期远小于电路工作的时钟周期,这些故障注入方法没有模拟这个过程。此外,还存在一个电路节点的选取不是均匀随机选取的问题,单粒子效应发生在电路的每个节点(逻辑门)上的概率是近似均等的,而采用以上方法只在一些特定电路信号、电路节点上注入故障,没有在所有电路节点(逻辑门)上都模拟单粒子效应,即存在一个故障注入覆盖率的问题。
综上所述,利用目前现有的故障注入方法来验证大规模目标电路的抗单粒子效应,对软硬件设备要求高,使得故障注入用于验证抗单粒子效应难以实现,此外需要人工干预,不利于实现自动化,在模拟单粒子效应的种类、单粒子效应的脉宽、单粒子效应发生的电路节点和覆盖率等方面,很难做到贴近真实空间单粒子效应的物理过程,容易产生遗漏,不能满足当前对大规模电路抗单粒子效应验证的需求。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种贴近真实地验证和评估目标电路抗单粒子效应能力的故障注入系统及其方法。
本发明的技术解决方案是:一种验证抗单粒子效应能力的故障注入系统,包括制作故障单元库模块、实施故障注入模块、统计分析模块、同步电路、仿真电路模块和故障控制信号模块;制作故障单元库模块,将目标电路的工艺单元库修改成目标电路的故障单元库;实施故障注入模块,修改目标电路的门级HDL代码,生成无故障电路和故障电路,并将修改后的代码映射到故障单元库上,统计修改后代码的故障端的数目,并将该数目发送给故障控制信号模块;同步电路,实现仿真电路模块和故障控制信号模块时钟同步;故障控制信号模块,根据接收的故障端的数目产生故障控制信号,并将产生的故障控制信号发送给仿真电路模块中的故障电路;仿真电路模块,载入实施故障注入模块生成无故障电路和故障电路,提供输入信号给所述的无故障电路和故障电路,提供控制信号给无故障电路,并将无故障电路和故障电路的输出进行比较,将比较结果、故障控制信号发送给统计分析模块;统计分析模块,对接收的信息进行记录,计算每个节点的错误率或敏感度信息。
所述的制作故障单元库模块实现过程为:通过在工艺单元库的每一个模块的基本逻辑门后面添加一个带控制信号端的异或门XOR,以此作为电路每个节点的故障注入控制端,从而生成故障单元库。
所述的实施故障注入模块实现过程为:
(1)读入目标电路的门级HDL代码,扫描目标电路中的一个模块,将该模块的工艺单元库语句替换成故障单元库语句;
(2)判断是否将当前模块中的所有工艺单元库语句修改完毕,修改完毕后,统计该模块中故障端的数目,并在该模块的定义端和声明端添加相应数目的故障控制信号;
(3)扫描目标电路的下一个模块,按照步骤(2)进行修改,直至所有模块修改完毕。
所述的故障控制信号模块实现过程为:
(1)载入故障端的数目N,随机选定一个节点Ni注入故障,其他节点故障注入关闭;
(2)选择激活节点Ni的故障类型,若为间歇型,转步骤(3),若为永久型,则该节点的故障控制信号在当前周期内全为“1”,转步骤(4);
(3)把当前时钟周期分成C段,生成随机数j、k,在Cj~Cj+k段在Ni节点注入故障,其他段控制信号为“0”;
(4)输出故障控制信号,等待一个仿真周期后从步骤(1)循环执行。
所述的统计分析模块实现过程为:
(1)载入仿真电路模块发送的一个仿真周期的比较结果和故障控制信号;
(2)扫描当前仿真周期的故障控制信号的信息,分析是目标电路哪个节点Ni;
(3)根据当前周期的比较结果判断注入故障后电路输出是否正确,判断输出正确,则节点Ni的故障正确数Fault_right[i]加1,转步骤(5),否则,转步骤(4);
(4)根据当前周期的故障控制信号判断故障类型间歇型还是永久型,若为永久型,则节点Ni的永久型故障错误数Fault_perma[i]加1,并转(5),若为间歇型,则节点Ni的间歇型故障错误数Fault_intel[i]加1,并转(5);
(5)节点Ni的注入故障数Fault_total[i]加1;
(6)载入下一个仿真周期的比较结果和控制信号,从步骤(2)循环执行,直至所有仿真周期执行完毕;
(7)计算每个节点的三类错误率ηi,其中,
永久型故障错误率:η_perma[i]=Fault_perma[i]/Fault_total[i]
间歇型故障错误率:η_intel[i]=Fault_intel[i]/Fault_total[i]
总错误率:η_total[i]=1-Fault_right[i]/Fault_total[i]。
一种验证抗单粒子效应能力的故障注入方法,包括下列步骤:
(1)分析目标电路的HDL代码,将所述的HDL代码转换成门级代码,分析目标电路的逻辑层次结构,确定逻辑层数、输入向量的数量;
(2)制作所述目标电路的故障单元库,根据所述的逻辑层数将目标电路的HDL代码从映射到工艺单元库改为映射到故障单元库上,生成带节点故障控制端的故障电路和无故障电路HDL代码;
(3)根据步骤(1)中的输入向量的数量产生步骤(2)中的故障电路和无故障电路的输入信号,向该两个电路的节点故障控制端输出控制信号,并比较两个电路的输出信号,记录每个周期的故障控制信号和输出信号,根据记录的信号得到每个节点的错误率或敏感度信息。
所述步骤(2)中的故障单元库的制作过程为:通过在工艺单元库的每一个模块的基本逻辑门后面添加一个带控制信号端的异或门XOR,以此作为电路每个节点的故障注入控制端,从而生成故障单元库。
所述步骤(2)中的将目标电路的HDL代码从映射到工艺单元库改为映射到故障单元库上实现过程如下:
a.读入目标电路的门级HDL代码,扫描目标电路中的一个模块,将所述模块的工艺单元库语句替换成故障单元库语句;
b.判断是否将当前模块中的所有工艺单元库语句修改完毕,修改完毕后,统计该模块中故障端的数目,并在该模块的定义端和声明端添加相应数目的故障控制信号;
c.扫描目标电路的下一个模块,按照步骤(2)进行修改,直至所有模块修改完毕。
所述步骤(3)中的控制信号包括提供给无故障电路和故障电路两类信号,其中,提供给无故障电路的控制信号为全“0”,提供给故障电路的故障控制信号的生成过程为:
a.载入故障端的数目N,随机选定一个节点Ni注入故障,其他节点故障注入关闭;
b.选择激活节点Ni的故障类型,若为间歇型,转步骤(c),若为永久型,则该节点的故障控制信号在当前周期内全为“1”,转步骤(d);
c.把当前时钟周期分成C段,生成随机数j、k,在Cj~Cj+k段在Ni节点注入故障,其他段控制信号为“0”;
d.输出故障控制信号,等待一个仿真周期后从步骤(a)循环执行。
本发明与现有技术相比有益效果为:
(1)本发明采用自建的故障单元库代替工艺单元库,将目标电路的HDL代码转换成门级代码,在所有单元库上实施故障注入,使得故障注入到每个电路节点,故障注入覆盖率高。目标电路的逻辑拓扑结构与流片后真实电路逻辑结构相同,仿真过程贴近真实物理过程,实验结果用于评估电路抗单粒子性能参考价值大。
(2)本发明通过生成随机数j、k,在Cj~Cj+k段在Ni节点注入故障,使得模拟单粒子效应的脉冲宽度可以随机在一定范围内变化,从而模拟单粒子翻转(SEU)效应和单粒子瞬态脉冲(SET)效应,模拟单粒子瞬态脉冲宽度的故障控制信号与真实空间单粒子瞬态脉冲宽度量级接近,使得本发明系统的实验结果贴近真实物理过程。
(3)本发明在实现中采用了自动修改、自动注入、自动统计等方式,同时使用可编程逻辑器件提高了运算速度,操作方便;在验证不同的目标电路时只需要修改相应系统参数,提高了本系统的通用性。
附图说明
图1是本发明系统的结构原理图;
图2是本发明方法流程图;
图3是本发明制作故障单元库过程的结构原理图;其中,3a为AND门,3b为D触发器原理图;
图4是本发明实施故障注入模块实现流程图;
图5是本发明仿真电路模块的结构原理图;
图6是本发明异或电路模块的电路结构图;
图7是本发明产生故障控制信号的流程图;
图8是本发明统计分析模块流程图。
具体实施方式
如图1说明了本发明的验证单粒子效应的故障注入系统的结构原理图。本发明系统包括制作故障单元库模块、实施故障注入模块、统计分析模块、同步电路、仿真电路模块和故障控制信号模块;主控计算机中含有故障注入控制中心、制作故障单元库模块、实施故障注入模块、统计分析模块,主控计算机通过串口数据转换电路与仿真电路模块和故障控制信号模块相连,串口数据转换电路为RS232串口电路、USB传输电路、网线传输电路等,模型参数设置电路为多位拨码开关电路,与故障控制信号模块的输入端相连,模式选择控制电路为多选一开关电路,与故障控制信号模块的输入端相连,同步电路为晶振时钟电路或外部时钟引入电路,与仿真电路模块和故障控制信号模块的全局时钟端相连,仿真电路模块和故障控制信号模块分别用可编程逻辑器件实现。
图2为本发明方法流程图,本发明流程可以分为分析目标电路、制作故障单元库、实施故障注入、生成故障控制信号和联机运行统计分析五个部分。具体实现过程如下:
(1)分析目标电路的HDL代码,将所述的HDL代码转换成门级代码,分析目标电路的逻辑层次结构,确定逻辑层数、输入向量的数量;
(2)制作所述目标电路的故障单元库,根据所述的逻辑层数将目标电路的HDL代码从映射到工艺单元库改为映射到故障单元库上,生成带节点故障控制端的故障电路和无故障电路HDL代码;
(3)根据步骤(1)中的输入向量的数量产生步骤(2)中的故障电路和无故障电路的输入信号,向该两个电路的节点故障控制端输出控制信号,并比较两个电路的输出信号,记录每个周期的控制信号和输出信号,根据记录的信号得到每个节点的错误率或敏感度信息。
下面具体介绍本发明系统及方法的实现过程。
主控计算载入并分析目标电路的HDL代码,将目标电路转化为门级网表形式,制作故障单元库以代替工艺单元库,在目标电路的每个电路节点插入故障控制端,从而得到故障电路HDL代码,把所有节点的故障控制端接入故障控制信号模块,由故障控制信号模块根据设定的故障模型参数(故障类型)来产生故障控制信号,故障控制信号由故障控制信号模块输入到仿真电路模块中从而实现对节点故障注入的控制,仿真电路模块和故障控制信号模块之间通过同步电路来实现时钟同步。模式选择电路用于选择故障控制信号模块的工作模式,主控计算机发送输入模式参数来控制仿真电路模块产生目标电路输入信号,串口数据转换电路将仿真电路模块中目标电路的实验结果和故障控制信号模块中产生的故障控制信号传回给统计分析模块进行统计分析。
以AND门、D触发器为例说明故障单元库的制作方法(图3),在AND工艺单元库模块中的AND门后接一个带control信号输入端的异或门(XOR)得到AND故障单元库模块,在D触发器工艺单元库模块中的每个NAND、NOT门后接一个带control信号输入端的异或门(XOR,共十个)得到D触发器故障单元库模块。读取工艺单元库的HDL代码,通过在每一个工艺单元库模块的基本逻辑门后面添加一个带控制端的异或门(XOR),以此作为电路每个节点的故障注入控制端,当该节点的故障控制信号为“1”时节点被注入故障,节点的逻辑值发生翻转(“1”翻为“0”,“0”翻为“1”),从而模拟了单粒子翻转的过程,当该节点的故障控制信号为“0”时不注入故障,模拟正常工作的无故障电路。然后在每个故障单元库模块的输入信号定义端添加故障控制信号(control信号),得到故障单元库的HDL代码,从而完成新的故障单元库的制作。
在新建故障单元库完成后,需要进行故障注入实施,故障注入实施的目的是将目标电路的HDL代码从原先映射到工艺单元库改为映射到故障单元库上,这一修改步骤通过编写相应程序来自动完成对目标电路HDL代码的修改,通过读入电路HDL代码,分析扫描模块层次,由底向上逐级逐模块用故障单元库替代相应的工艺单元库,同时统计每个模块使用的节点故障控制端数量,逐级往上累加递增,最后得到整个目标电路所需要的节点故障控制端数量,完成目标电路的故障注入。
图4说明了故障注入实施的流程图。采用美国Microsoft公司的产品Microsoft Visual Studio 2005软件编制的计算机程序来完成这种修改。首先读入目标电路的HDL门级代码,根据电路的逻辑层级结构,从底向上地扫描每个电路模块,载入工艺单元库中的一个模块名,分析该模块的语句,并替换成故障单元库模块的语句,替换完成后载入下一个工艺单元库模块名,重复以上步骤,将所有的工艺单元库模块替换为相应的故障单元库模块,统计该电路模块中注入故障端的数目,在电路模块的定义端和声明端添加故障控制信号,然后扫描下电路的一个模块,在所有电路模块的工艺单元库模块全部替换成故障单元库子模块后,进行查错分析,判断是否有未含控制端的工艺单元库模块存在,如果存在则报错并提示手动修改,没有报错则保存输出各节点的控制信号。
为了验证目标电路注入故障后电路的输出结果正确与否,我们在仿真电路模块中采用两份结构完全相同的带故障注入控制端的仿真电路,其中一份的故障控制端信号全为“0”,即模拟不注入故障的正常工作电路,另一份的故障控制端信号采用故障控制信号模块产生的故障控制信号,即模拟故障电路,这样做的目的是使得两个目标电路的延时相同,方便输出比较,将它们的输出通过异或电路模块相比较以确定故障注入后电路的输出结果是否正确。为了使单粒子效应的模拟更加贴近真实工作环境,目标电路的输入可以采用随机、遍历、固定等方式,由主控计算机对电路输入模式进行选定。
如图5所示,仿真电路模块中采用两份完全相同的带故障控制端的仿真电路分别为无故障电路和故障电路。其中无故障电路的故障控制信号为预先设置好的全“0”信号,即模拟无故障注入下正常工作的电路,故障电路的故障控制信号为从故障控制信号模块中生成的每个节点的故障控制信号,即模拟单粒子轰击后电路产生的单粒子翻转。通过主控计算机选择的电路输入模式确定仿真电路模块中的电路输入模块提供给无故障电路和故障电路的电路输入信号,可以提供的电路输入模式有随机输入、遍历输入、固定输入等方式。无故障电路和故障电路的输入信号和故障控制信号通过同步电路模块提供的时钟信号实现时钟同步。无故障电路和故障电路的输出信号通过异或电路模块比较来判断故障电路的输出是否正确,异或电路模块的电路结构图如图6所示,主要采用异或门的组合逻辑电路结构,通过将两个电路的每个输出信号用一个两输入的异或门连接,再用一个多输入异或门判断,当输出为“1”时表示故障电路的输出与无故障电路的输出不同,说明故障注入后的结果发生错误;当输出为“0”时表示故障电路的输出与无故障电路的输出相同,说明虽然故障注入了故障电路,但是电路输出结果仍然正确。
故障控制信号由故障控制信号模块产生,故障控制信号用来控制故障电路上所有节点的故障,当目标电路上某个节点的控制信号被激活时,该节点的逻辑值发生了翻转,从而实现了在电路中注入故障模拟单粒子翻转的目的。故障控制信号的生成策略有以下两种:随机均匀触发和遍历所有节点触发,由模式选择控制电路来选择,故障生成策略的选择可以通过控制主机预先设定或者外部开关电路输入来选择。故障控制信号模块生成每个系统时钟下目标电路所有节点的故障控制信号,并把故障控制信号输入到仿真电路模块上的故障电路中。
图7以随机均匀触发的生成策略为例说明了产生故障控制信号的计算机程序流程图。首先我们将在目标电路上统计故障注入节点数目N,在系统时钟下降沿到来的时候,利用线形同余法或者其他均匀随机方法产生一个(0~N-1)内的均匀分布的随机数Ni,如线形同余法Ni=(A*Ni-1+B)mod N),各种方法所需要得到参数由模型参数设置电路提供给故障控制信号模块。激活选中的第Ni个节点故障,往第Ni个节点的故障控制端输出“1”,其他节点的故障控制端输出“0”。故障类型有永久型和间歇型两种,可以由外部开关输入电路选择,也可以预先设置。永久型模拟单粒子栅极击穿SEGR,间歇型模拟单粒子翻转SEU和单粒子脉冲SET。永久型的故障类型直接生成该系统时钟周期第Ni个节点控制信号全“1”,间歇型的故障类型还需选择在该系统时钟周期中的某一段控制信号为“1”,其余时刻控制信号为“0”,例如将系统时钟周期均分为1000份(C0~C999),随机选取其中Cj~Cj+k段控制信号为“1”,其余时刻控制信号为“0”,所需要的参数均可以采用预先设定或者随机产生。各个节点的故障控制信号产生以后,在下一个系统时钟上升沿到来时,输出各个节点的故障控制信号。之后等待W个系统时钟周期,W的数值取决于目标电路中由输入传到输出所需要的最长时钟周期,即目标电路的逻辑层数个周期,W个系统时钟周期后的系统时钟下降沿到来时,触发新一轮的故障注入,产生新一轮的故障控制信号。
仿真电路模块通过串口数据转换电路向统计分析模块输出注入故障后目标电路的故障注入信息,故障注入信息包括:仿真运行结果和故障控制信号。统计分析模块需要统计记录分析的单粒子故障注入仿真运行结果信息包括三类:故障控制信号中每次注入故障的位置(往哪个节点注入故障)、故障控制信号中每次注入故障的类型(间歇型还是永久型)、仿真电路模块输出的每次注入故障的运行结果(输出正确还是错误)。
图8说明了统计分析模块流程图。采用美国Microsoft公司的产品MicrosoftVisual Studio 2005软件编制的计算机程序来完成这种修改。首先读入一个仿真周期的故障控制信号,确定该故障注入发生在哪个电路节点Ni上,根据仿真电路模块输出的每次注入故障的运行结果来判断输出是正确还是错误:输出正确则在节点Ni的故障正确数Fault_right[i]上加1;永久型故障错误则在节点Ni的永久型故障错误数Fault_perma[i]上加1;间歇型故障错误则在节点Ni的间歇型故障错误数Fault_intel[i]上加1。同时将节点Ni的注入故障数Fault_total[i]加1,然后判断是否所有故障注入扫描完毕,没有完毕则读入下一个仿真周期的故障注入信息,直到所有故障注入信息被分析完毕。最后统计每个节点的错误率ηi,ηi定义为该节点Ni的故障注入出错率,包括永久型故障错误率、间歇型故障错误率和总错误率三部分,计算公式如下:
永久型故障错误率:η_perma[i]=Fault_perma[i]/Fault_total[i]
间歇型故障错误率:η_intel[i]=Fault_ntel[i]/Fault_total[i]
总错误率:η_total[i]=1-Fault_right[i]/Fault_total[i]
最后累加统计总共注入的故障数量:total_num=∑Fault_total[i],保存输出仿真运行的统计结果。
本发明未详细说明部分属本领域技术人员公知常识。
Claims (10)
1、一种验证抗单粒子效应能力的故障注入系统,其特征在于:包括制作故障单元库模块、实施故障注入模块、统计分析模块、同步电路、仿真电路模块和故障控制信号模块;
制作故障单元库模块,将目标电路的工艺单元库修改成目标电路的故障单元库;
实施故障注入模块,修改目标电路的门级HDL代码,生成无故障电路和故障电路,并将修改后的代码映射到故障单元库上,统计修改后代码的故障端的数目,并将该数目发送给故障控制信号模块;
同步电路,实现仿真电路模块和故障控制信号模块时钟同步;
故障控制信号模块,根据接收的故障端的数目产生故障控制信号,并将产生的故障控制信号发送给仿真电路模块中的故障电路;
仿真电路模块,载入实施故障注入模块生成无故障电路和故障电路,提供输入信号给所述的无故障电路和故障电路,提供全“0”故障控制信号给无故障电路,并将无故障电路和故障电路的输出进行比较,将比较结果、故障控制信号发送给统计分析模块;
统计分析模块,对接收的信息进行记录,计算每个节点的错误率或敏感度信息。
2、根据权利要求1所述的一种验证抗单粒子效应能力的故障注入系统,其特征在于:所述的制作故障单元库模块实现过程为:通过在工艺单元库的每一个模块的基本逻辑门后面添加一个带控制信号端的异或门XOR,以此作为电路每个节点的故障注入控制端,从而生成故障单元库。
3、根据权利要求1所述的一种验证抗单粒子效应能力的故障注入系统,其特征在于:所述的实施故障注入模块实现过程为:
(1)读入目标电路的门级HDL代码,扫描目标电路中的一个模块;
(2)将该模块的工艺单元库语句替换成故障单元库语句,判断是否将当前模块中的所有工艺单元库语句修改完毕,修改完毕后,统计该模块中故障端的数目,并在该模块的定义端和声明端添加相应数目的故障控制信号;
(3)扫描目标电路的下一个模块,按照步骤(2)进行修改,直至所有模块修改完毕。
4、根据权利要求3所述的一种验证抗单粒子效应能力的故障注入系统,其特征在于:所述的实施故障注入模块修改完所有模块后还要判断是否有未含控制端的工艺单元库语句存在,若存在,则报警并手动修改该语句。
5、根据权利要求1所述的一种验证抗单粒子效应能力的故障注入系统,其特征在于:所述的故障控制信号模块实现过程为:
(1)载入故障端的数目N,随机选定一个节点Ni注入故障,其他节点故障注入关闭;
(2)选择激活节点Ni的故障类型,若为间歇型,转步骤(3),若为永久型,则该节点的故障控制信号在当前周期内全为“1”,转步骤(4);
(3)把当前时钟周期分成C段,生成随机数j、k,在Cj~Cj+k段在Ni节点注入故障,其他段故障控制信号为“0”;
(4)输出故障控制信号,等待一个仿真周期后从步骤(1)循环执行。
6、根据权利要求1所述的一种验证抗单粒子效应能力的故障注入系统,其特征在于:所述的统计分析模块实现过程为:
(1)载入仿真电路模块发送的一个仿真周期的比较结果和故障控制信号;
(2)扫描当前仿真周期的故障控制信号的信息,分析是目标电路哪个节点Ni;
(3)根据当前周期的比较结果判断注入故障后电路输出是否正确,判断输出正确,则节点Ni的故障正确数Fault_right[i]加1,转步骤(5),否则,转步骤(4);
(4)根据当前周期的故障控制信号判断故障类型间歇型还是永久型,若为永久型,则节点Ni的永久型故障错误数Fault_perma[i]加1,并转(5),若为间歇型,则节点Ni的间歇型故障错误数Fault_intel[i]加1,并转(5);
(5)节点Ni的注入故障数Fault_total[i]加1;
(6)载入下一个仿真周期的比较结果和故障控制信号模块发送的故障控制信号,从步骤(2)循环执行,直至所有仿真周期执行完毕;
(7)计算每个节点的三类错误率ηi,其中,
永久型故障错误率:η_perma[i]=Fault_perma[i]/Fault_total[i]
间歇型故障错误率:η_intel[i]=Fault_intel[i]/Fault_total[i]
总错误率:η_total[i]=1-Fault_right[i]/Fault_total[i]。
7、一种验证抗单粒子效应能力的故障注入方法,其特征在于包括下列步骤:
(1)分析目标电路的HDL代码,将所述的HDL代码转换成门级代码,分析目标电路的逻辑层次结构,确定逻辑层数、输入向量的数量;
(2)制作所述目标电路的故障单元库,根据所述的逻辑层数将目标电路的HDL代码从映射到工艺单元库改为映射到故障单元库上,生成带节点故障控制端的故障电路HDL代码和无故障电路HDL代码;
(3)根据步骤(1)中的输入向量的数量产生步骤(2)中的故障电路和无故障电路的输入信号,向该两个电路的节点故障控制端输出故障控制信号,并比较两个电路的输出信号,记录每个周期的故障控制信号和比较结果,根据记录的信号得到每个节点的错误率或敏感度信息。
8、根据权利要求7所述的一种验证抗单粒子效应能力的故障注入方法,其特征在于:所述步骤(2)中的故障单元库的制作过程为:通过在工艺单元库的每一个模块的基本逻辑门后面添加一个带控制信号端的异或门XOR,以此作为电路每个节点的故障注入控制端,从而生成故障单元库。
9、根据权利要求7所述的一种验证抗单粒子效应能力的故障注入方法,其特征在于:所述步骤(2)中的将目标电路的HDL代码从映射到工艺单元库改为映射到故障单元库上实现过程如下:
a.读入目标电路的门级HDL代码,扫描目标电路中的一个模块;
b.将所述模块的工艺单元库语句替换成故障单元库语句,判断是否将当前模块中的所有工艺单元库语句修改完毕,修改完毕后,统计该模块中故障端的数目,并在该模块的定义端和声明端添加相应数目的故障控制信号;
c.扫描目标电路的下一个模块,按照步骤b进行修改,直至所有模块修改完毕。
10、根据权利要求7所述的一种验证抗单粒子效应能力的故障注入方法,其特征在于:所述步骤(3)中的故障控制信号包括提供给无故障电路和故障电路两类信号,其中,提供给无故障电路的故障控制信号为全“0”,提供给故障电路的故障控制信号的生成过程为:
a.载入故障端的数目N,随机选定一个节点Ni注入故障,其他节点故障注入关闭;
b.选择激活节点Ni的故障类型,若为间歇型,转步骤(c),若为永久型,则该节点的故障控制信号在当前周期内全为“1”,转步骤(d);
c.把当前时钟周期分成C段,生成随机数j、k,在Cj~Cj+k段在Ni节点注入故障,其他段故障控制信号为“0”;
d.输出故障控制信号,等待一个仿真周期后从步骤(a)循环执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810113439A CN100576221C (zh) | 2008-05-28 | 2008-05-28 | 一种验证抗单粒子效应能力的故障注入系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810113439A CN100576221C (zh) | 2008-05-28 | 2008-05-28 | 一种验证抗单粒子效应能力的故障注入系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101281555A CN101281555A (zh) | 2008-10-08 |
CN100576221C true CN100576221C (zh) | 2009-12-30 |
Family
ID=40014024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810113439A Expired - Fee Related CN100576221C (zh) | 2008-05-28 | 2008-05-28 | 一种验证抗单粒子效应能力的故障注入系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100576221C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10956265B2 (en) | 2015-02-03 | 2021-03-23 | Hamilton Sundstrand Corporation | Method of performing single event upset testing |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101916306A (zh) * | 2010-07-16 | 2010-12-15 | 北京航空航天大学 | 一种用于fpga芯片敏感区域定位的系统及其方法 |
CN102495783A (zh) * | 2011-12-08 | 2012-06-13 | 天津工业大学 | 一种单粒子误差注入仿真测试系统 |
CN102520333A (zh) * | 2011-12-15 | 2012-06-27 | 北京航空航天大学 | 一种对空间应用数字信号处理器进行单粒子翻转效应模拟的装置 |
CN102540062B (zh) * | 2011-12-29 | 2014-07-02 | 北京航空航天大学 | 一种针对sram型fpga的随机翻转故障注入方法 |
CN102521467B (zh) * | 2011-12-29 | 2013-04-24 | 北京航空航天大学 | 一种针对sram型fpga的逐位翻转故障注入方法 |
CN103559112B (zh) * | 2013-11-05 | 2015-11-25 | 北京经纬恒润科技有限公司 | 一种软件故障注入方法及系统 |
CN104731995B (zh) * | 2013-12-23 | 2018-01-26 | 深圳市国微电子有限公司 | 一种基于半导体电路的抗单粒子效应验证方法及系统 |
CN103809109B (zh) * | 2014-02-26 | 2016-08-24 | 工业和信息化部电子第五研究所 | 集成电路单粒子效应检测装置和系统 |
CN103901342B (zh) * | 2014-03-18 | 2017-09-29 | 北京时代民芯科技有限公司 | 一种基于掩码文件的fpga精确故障注入系统 |
CN103913662B (zh) * | 2014-04-14 | 2015-10-28 | 中国人民解放军国防科学技术大学 | 一种基于故障注入的测试系统单粒子功能失效率的方法 |
CN104461808B (zh) * | 2014-11-06 | 2016-06-01 | 北京空间飞行器总体设计部 | 一种fpga单粒子软错误影响评估方法 |
CN104484255B (zh) * | 2014-12-02 | 2016-06-01 | 北京空间飞行器总体设计部 | 一种验证系统级单粒子软错误防护能力的故障注入装置 |
CN104502750B (zh) * | 2014-12-05 | 2017-05-10 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种触发器单元单粒子翻转效应实验验证电路 |
CN104834231B (zh) * | 2015-05-29 | 2017-07-14 | 北京电子工程总体研究所 | 一种箱弹模拟器的通信故障模拟装置及方法 |
CN105302547A (zh) * | 2015-09-19 | 2016-02-03 | 大连理工大学 | 一种面向Verilog HDL设计的故障注入方法 |
CN105388384B (zh) * | 2015-12-15 | 2018-08-10 | 北京理工大学 | 一种整星单粒子软错误故障模拟系统 |
CN105653771B (zh) * | 2015-12-25 | 2018-12-21 | 北京时代民芯科技有限公司 | 一种通过逻辑设计提高芯片抗单粒子翻转能力的方法 |
CN106503392B (zh) * | 2016-11-14 | 2019-08-23 | 哈尔滨工业大学 | 一种考虑版图布局信息的组合逻辑电路的单粒子多瞬态软错误敏感性评估方法 |
CN107167725B (zh) * | 2017-03-30 | 2019-10-25 | 北京时代民芯科技有限公司 | 一种快速低开销全自动数字集成电路单粒子故障注入系统 |
CN108320767B (zh) * | 2018-02-12 | 2020-07-28 | 河海大学常州校区 | 一种组合逻辑电路抗单粒子错误的选择性加固方法 |
CN108508351B (zh) * | 2018-03-30 | 2020-05-05 | 西北核技术研究所 | 一种基于双-双指数电流源的单粒子故障注入仿真方法 |
CN108535635B (zh) * | 2018-04-17 | 2020-08-07 | 重庆大学 | 一种基于eemd和hmm的模拟电路间歇故障诊断方法 |
CN108363894B (zh) * | 2018-05-04 | 2021-05-11 | 西安电子科技大学 | 一种电路级单粒子效应仿真平台 |
CN109388862B (zh) * | 2018-09-19 | 2022-10-14 | 西安微电子技术研究所 | 一种可配置的多功能故障注入通用电路及工作方法 |
CN112307695B (zh) * | 2020-09-22 | 2024-03-08 | 北京九天翱翔科技有限公司 | 一种基于fpga的通用型数字电路故障模拟注入系统及方法 |
-
2008
- 2008-05-28 CN CN200810113439A patent/CN100576221C/zh not_active Expired - Fee Related
Non-Patent Citations (4)
Title |
---|
Autonomous Fault Emulation:A New FPGA-BasedAcceleration System for Hardness Evaluation. Celia Lopez-Ongil.IEEE TRANSACTIONS ON NUCLEAR SCIENCE,Vol.54 No.1. 2007 |
Autonomous Fault Emulation:A New FPGA-BasedAcceleration System for Hardness Evaluation. Celia Lopez-Ongil.IEEE TRANSACTIONS ON NUCLEAR SCIENCE,Vol.54 No.1. 2007 * |
空间单粒子故障容错设计的验证技术研究. 段青亚等.微电子学与计算机,第24卷第11期. 2007 |
空间单粒子故障容错设计的验证技术研究. 段青亚等.微电子学与计算机,第24卷第11期. 2007 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10956265B2 (en) | 2015-02-03 | 2021-03-23 | Hamilton Sundstrand Corporation | Method of performing single event upset testing |
Also Published As
Publication number | Publication date |
---|---|
CN101281555A (zh) | 2008-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100576221C (zh) | 一种验证抗单粒子效应能力的故障注入系统及其方法 | |
Civera et al. | Exploiting circuit emulation for fast hardness evaluation | |
Mansour et al. | An automated SEU fault-injection method and tool for HDL-based designs | |
CN108363894B (zh) | 一种电路级单粒子效应仿真平台 | |
CN107167725B (zh) | 一种快速低开销全自动数字集成电路单粒子故障注入系统 | |
Civera et al. | Exploiting FPGA-based techniques for fault injection campaigns on VLSI circuits | |
CN102054056B (zh) | 一种现场可编程门阵列的抗辐射性能快速模拟方法 | |
CN105069256B (zh) | 一种基于tmr的实现和故障注入仿真平台及仿真方法 | |
CN109558649B (zh) | 一种面向宇航芯片的寄存器单粒子效应模拟仿真方法 | |
CN107741559B (zh) | 一种面向空间辐射环境下的单粒子翻转测试系统及方法 | |
CN102567165A (zh) | 对寄存器传输级硬件实现进行验证的系统及方法 | |
CN106383303A (zh) | 基于观察点与并行的故障注入模拟方法及装置 | |
Serrano et al. | A methodology to emulate single event upsets in flip-flops using FPGAs through partial reconfiguration and instrumentation | |
US9183329B2 (en) | Debugging simulation with partial design replay | |
CN105548866A (zh) | 一种基于辐照试验环境模拟的sram型fpga测试方法 | |
Marconi et al. | The RD53 collaboration's SystemVerilog-UVM simulation framework and its general applicability to design of advanced pixel readout chips | |
Lopez-Ongil et al. | A unified environment for fault injection at any design level based on emulation | |
Civera et al. | FPGA-based fault injection for microprocessor systems | |
US20070106488A1 (en) | Incremental circuit re-simulation system | |
Simevski et al. | Automated integration of fault injection into the ASIC design flow | |
CN108427838B (zh) | 一种基于仿真的数字电路故障注入方法 | |
CN104166744A (zh) | 验证视频算法寄存器传输级实现的方法和系统 | |
CN110188012A (zh) | 一种fpga寄存器级单粒子翻转故障模拟方法和系统 | |
Vanhauwaert et al. | A flexible SoPC-based fault injection environment | |
CN104636509A (zh) | 门级仿真中验证时序问题的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091230 Termination date: 20190528 |
|
CF01 | Termination of patent right due to non-payment of annual fee |