一种针对存储模块故障注入集缩减的方法

文档序号:30606448发布日期:2022-07-01 22:36阅读:102来源:国知局
一种针对存储模块故障注入集缩减的方法

1.本发明涉及辐射效应仿真领域,具体涉及一种针对存储模块故障注入集缩减的方法。


背景技术:

2.单粒子效应是辐射效应中影响集成电路最主要的因素,也是现在电子器件面临的最大的可靠性问题之一。随着晶体管的特征尺寸缩小、阈值电压降低,集成电路对单粒子效应会更加敏感。集成电路中的存储模块(例如:sram存储模块、寄存器堆等)相比于其他电路模块发生软错误的概率更高,更需要对其进行抗单粒子能力评价以及加固。现有技术中,通过向电路注入大量单粒子故障进行仿真评价的方法,分析集成电路在空间辐射环境下的软错误率。这种方法随机产生大量的单粒子故障,然后对目标集成电路进行故障注入,并观察集成电路的响应结果是否异常,最后统计集成电路故障的次数来计算集成电路的软错误率。
3.虽然大量单粒子故障注入仿真被证明是一种有效评价抗单粒子效应能力的方法,然而,注入的一部分单粒子故障会因为逻辑掩蔽、时序掩蔽等因素被掩蔽,不会出现电路响应结果异常的情况,那么这一部分故障注入则是无效且完全没有必要的,导致仿真时间成本高的问题。


技术实现要素:

4.本发明的目的就在于解决上述背景技术的问题,而提出一种针对存储模块故障注入集缩减的方法。
5.本发明实施例提供了一种针对存储模块故障注入集缩减的方法,所述方法包括:
6.使用预设的仿真测试程序对目标集成电路的存储模块进行测试,得到所述存储模块的读写信息文件;
7.使用预设的读写信息分析算法分析所述读写信息文件,确定所述存储模块在测试期间的无效注入时间区间;
8.针对所述存储模块随机生成不同时间以及不同电路节点的注入故障,作为故障注入集;
9.对所述故障注入集进行故障注入有效性分析,去除所述故障注入集中处于所述无效注入时间区间以及无效电路节点的注入故障,得到缩减后的故障注入集;所述无效电路节点为所述目标集成电路中仿真测试程序未使用到的电路节点。
10.可选地,使用预设的仿真测试程序对目标集成电路的存储模块进行测试,得到所述存储模块的读写信息文件,包括:
11.使用预设的仿真测试程序对目标集成电路的存储模块进行测试,通过verilog系统函数$fmonitor记录所述存储模块的读写使能、读写数据和读写地址变化,得到所述存储模块的读写信息文件。
12.可选地,使用预设的读写信息分析算法分析所述读写信息文件,确定所述存储模块在测试期间的无效注入时间区间,包括:
13.使用预设的读写信息分析算法分析所述读写信息文件,获取所述存储模块中每个存储地址的读操作和写操作的时间区间,作为操作时间区间,并将测试期间除所述操作时间区间之外的时间区间作为间隔时间区间;
14.针对每个存储地址,确定所述写操作之前相邻的间隔时间区间,作为无效注入时间区间;
15.以所述存储模块的每一存储地址为键,以该存储地址的所述无效注入时间区间为值,生成无效哈希数组。
16.可选地,对所述故障注入集进行故障注入有效性分析,去除所述故障注入集中处于所述无效注入时间区间以及无效电路节点的注入故障,得到缩减后的故障注入集,包括:
17.对所述故障注入集进行故障注入有效性分析,去除所述故障注入集中处于无效电路节点的注入故障,得到第一故障注入集;
18.根据所述无效哈希数组去除所述第一故障注入集中的处于所述无效注入时间区间的注入故障,得到缩减后的故障注入集。
19.可选地,所述无效哈希数组的值记录了所述无效注入时间区间的开始时刻和结束时刻。
20.可选地,所述存储模块为sram和/或寄存器堆。
21.基于本发明实施例提供的一种针对存储模块故障注入集缩减的方法,使用预设的仿真测试程序对目标集成电路的存储模块进行测试,得到存储模块的读写信息文件;使用预设的读写信息分析算法分析读写信息文件,确定存储模块在测试期间的的无效注入时间区间;针对存储模块随机生成不同时间以及不同电路节点的注入故障,作为故障注入集;对故障注入集进行故障注入有效性分析,去除故障注入集中处于无效注入时间区间以及无效电路节点的注入故障,得到缩减后的故障注入集;无效电路节点为目标集成电路中仿真测试程序未使用到的电路节点。通过存储模块的读写信息文件确定无效注入时间区间,去除故障注入集中处于无效注入时间区间以及无效电路节点的注入故障,从时间和空间两个维度缩减故障注入集,减少仿真时间成本,提高仿真效率。
附图说明
22.下面结合附图对本发明作进一步的说明。
23.图1为本发明实施例提供的一种针对存储模块故障注入集缩减的方法的流程图;
24.图2为本发明实施例提供的无效注入时间区间的示意图;
25.图3为本发明实施例提供的无效哈希数组的存储示意图;
26.图4为本发明实施例提供的故障注入有效性分析的流程图。
具体实施方式
27.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它
实施例,都属于本发明保护的范围。
28.本发明实施例提供了一种针对存储模块故障注入集缩减的方法。参见图1,图1为本发明实施例提供的一种针对存储模块故障注入集缩减的方法的流程图,该方法包括:
29.s101,使用预设的仿真测试程序对目标集成电路的存储模块进行测试,得到存储模块的读写信息文件。
30.s102,使用预设的读写信息分析算法分析读写信息文件,确定存储模块在测试期间的的无效注入时间区间。
31.s103,针对存储模块随机生成不同时间以及不同电路节点的注入故障,作为故障注入集。
32.s104,对故障注入集进行故障注入有效性分析,去除故障注入集中处于无效注入时间区间以及无效电路节点的注入故障,得到缩减后的故障注入集。
33.无效电路节点为目标集成电路中仿真测试程序未使用到的电路节点。
34.基于本发明实施例提供的一种针对存储模块故障注入集缩减的方法,通过存储模块的读写信息文件确定无效注入时间区间,去除故障注入集中处于无效注入时间区间以及无效电路节点的注入故障,从时间和空间两个维度缩减故障注入集,减少仿真时间成本,提高仿真效率。
35.一种实现方式中,无效的故障注入可以从时间和空间上进行定义。在时间上,对于存储模块的同一个地址,未进行读写操作的时间区间可以定义为无效注入时间区间。在空间上,测试程序未使用的电路节点可以定义为无效的电路节点。
36.一种实现方式中,存储地址下的存储单元由电路节点构成的,例如,存储地址为0xff的存储单元包含32bit的数据,每一bit位的电路由一些mos管构成,mos管的源漏端便为电路节点。
37.根据仿真测试程序执行过程是否会对存储地址下的数据进行读操作或者写操作,确定与程序执行无关的电路节点,即为无效电路节点。无效电路节点与程序执行无关,不会引起程序执行出错。
38.一种实现方式中,预设的读写信息分析算法可以通过perl语言编写。
39.一种实现方式中,故障注入集是针对存储模块随机地在不同电路节点和不同故障注入时间下生产的。
40.在一个实施例中,存储模块为sram和/或寄存器堆。
41.在一个实施例中,s101具体包括:
42.使用预设的仿真测试程序对目标集成电路的存储模块进行测试,通过verilog系统函数$fmonitor记录存储模块的读写使能、读写数据和读写地址变化,得到存储模块的读写信息文件。
43.一种实现方式中,通过读写信息文件可以参看,在测试期间存储模块的读写操作,具体为进行读写操作的存储地址,操作的开始时间和结束时间,操作的类型为读操作或写操作。
44.在一个实施例中,步骤s102,包括:
45.步骤一,使用预设的读写信息分析算法分析读写信息文件,获取存储模块中每个存储地址的读操作和写操作的时间区间,作为操作时间区间,并将测试期间除操作时间区
间之外的时间区间作为间隔时间区间。
46.步骤二,针对每个存储地址,确定写操作之前相邻的间隔时间区间,作为无效注入时间区间。
47.步骤三,以存储模块的每一存储地址为键,以该存储地址的无效注入时间区间为值,生成无效哈希数组。
48.一种实现方式中,参见表1,表1为预设的读写信息分析算法,该算法的输入为存储模块的读写信息文件,输出的为无效哈希数组。该算法可以分为两步,第一步确定每个存储地址的读操作和写操作的操作时间区间,即确定操作时间区间的开始时刻和结束时刻;进而可以确定间隔时间区间。第二步确定写操作之前相邻的间隔时间区间,作为无效注入时间区间。例如,无效注入时间区间可以为读操作的结束时刻到相邻的写操作的开始时刻,或者,无效注入时间区间可以为写操作的结束时刻到相邻的写操作的开始时刻,或者,若测试期间的第一次操作为写操作,则无效注入时间区间可以为测试开始时刻到第一次操作的开始时刻。
49.由于写操作可以写入新数据将旧数据覆盖,若在无效注入时间区间内注入故障,则该故障不会被程序读取,不影响程序执行,并且写操作会写入新数据将故障覆盖。那么这种故障注入未起到测试作用,可以将故障注入集种该类故障去除以缩小故障注入集。
50.表1中代码仅以读操作的结束时刻到相邻的写操作的开始时刻,写操作的结束时刻到相邻的写操作的开始时刻,两种情况为例,实际情况并不限于此。读写信息文件的每一行记录了操作变化的时刻,操作的时间区间可以根据当前行的信息和相邻下一行的信息确定。例如:第i行记录的是读操作开始的时刻,i+1行记录的是该读操作结束时刻,根据这两个时刻便可以确定对应操作的时间区间。
51.表1
52.[0053][0054]
一种实现方式中,参见图2,图2为本发明实施例提供的无效注入时间区间的示意图。图2中仅以读操作的结束时刻到相邻的写操作的开始时刻,写操作的结束时刻到相邻的写操作的开始时刻,两种情况为例,实际情况并不限于此。读操作之前的间隔时间区间为非无效注入时间区间,即在该间隔时间区间内注入故障,可以起到测试作用。
[0055]
一种实现方式中,无效注入时间区间存储为哈希数组的形式,便于快速查询故障注入点是否在无效注入时间区间内。
[0056]
在一个实施例中,步骤s104,包括:
[0057]
步骤一,对故障注入集进行故障注入有效性分析,去除故障注入集中处于无效电路节点的注入故障,得到第一故障注入集。
[0058]
步骤二,根据无效哈希数组去除第一故障注入集中的处于无效注入时间区间的注入故障,得到缩减后的故障注入集。
[0059]
一种实现方式中,去除故障注入集中处于无效电路节点的注入故障,可以从空间维度缩减故障注入集。去除第一故障注入集中的处于无效注入时间区间的注入故障可以从时间维度缩减故障注入集。
[0060]
在一个实施例中,无效哈希数组的值记录了无效注入时间区间的开始时刻和结束
时刻。
[0061]
一种实现方式中,参见图3,图3为本发明实施例提供的无效哈希数组的存储示意图。以图中方框内的存储语句为例,箭头左边为存储地址,箭头右边为三个的无效注入时间区间,每两个无效注入时间区间之间以t作为分隔点,每一个无效注入时间区间的第一个数字为该无效注入时间区间的开始时刻,第二个数字为该无效注入时间区间的结束时刻。该存储语句其含义为,存储地址为0x046,该存储地址中340ns-590ns、610ns-880ns、910ns-950ns为无效注入时间区间。
[0062]
参见图4,图4为本发明实施例提供的故障注入有效性分析的流程图。
[0063]
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1