一种有效的存储器电路随机故障注入方法与流程

文档序号:20989779发布日期:2020-06-05 21:35阅读:622来源:国知局
一种有效的存储器电路随机故障注入方法与流程

本发明涉及超大规模数字集成电路测试领域,尤其涉及一种有效的存储器电路随机故障注入方法。



背景技术:

移动互联网应用的快速发展对智能移动设备的处理能力和续航时间提出了越来越高的要求。静态随机存取存储器(staticrandomaccessmemory,sram)是移动处理器的关键模块之一,sram速度快,容量较小,具有很好的兼容性,一般用作嵌入式存储器,即缓存或者暂存器。为满足不断增长的性能和功耗需求,低电压sram设计正逐渐成为业界的研究热点。为改善片上系统的整体性能,降低电源电压是提高电路能效指标的有效手段。但是在电源电压低于阈值电压的情况下,工艺参数变化对存储单元的稳定性和关键路径延迟变化的影响也急剧增加。在先进工艺下,sram会出现更多更为复杂的故障模型。

sram电路不同于一般的数字电路,sram由高密度的存储阵列构成,根据不同的需求,电路结构也不尽相同,它的故障发生率更高,故障类型更复杂,因此sram的测试变得越来越困难,并且由于种种技术的限制,传统测试算法是否真的可以检测到存储器电路发生故障以及对故障的覆盖率并没有得到有效验证。在存储器测试领域一直缺少一种切实可行的验证测试算法的存储器故障注入方法;目前工程上应用的故障注入的方法为软件注入故障、基于verilog级注入故障以及在fpga机台注入芯片故障,以上方法都各有优缺点,且局限性过高,fpga机台注入故障大部分为单粒子翻转引发的故障与本发明注入制造缺陷引发功能故障有很大差异;基于软件以及verilog级故障注入技术不具有随机性,且故障模型单一,只是人为的实现开路、短路故障,环境较为理想化,不能模拟电路实际的工作状态。



技术实现要素:

本发明的目的是提供一种有效的存储器电路随机故障注入方法,通过在电路仿真级进行且在注入故障的时实现故障注入节点位置随机、注入节点个数随机、注入电阻阻值随机,相较于目前存在的方法具有强的随机性,在验证算法有效性的同时降低了故障注入的复杂度。

本发明提供一种有效的存储器电路随机故障注入方法,所述方法步骤如下:

步骤一:利用perl语言提取出所有可能出现故障的节点,修改所有故障节点名称,生成一个新的文件;

步骤二:随机选取节点文件中的一个或多个故障节点,并在节点处插入阻值随机电阻;

步骤三:插入电阻后生成一个新的已完成随机故障注入的存储器网表文件。

进一步改进在于:所述步骤一中提取故障的节点时,先分析存储器网表,通过perl语言提取出存储单元所有可能出现故障的电路节点并按照预定的命名规则对所有故障节点名称进行修改,方便故障注入时在原始网表中对随机选取的故障节点进行定位,生成出一个新的故障节点文件,文件中每一行是一个故障节点。

进一步改进在于:所述步骤二中选取故障节点的方法如下:从故障节点文件中随机选取p个故障节点,并且通过命名规则确定随机选取节点在原始网表中的位置,注入阻值随机的电阻;若选取节点为p个,则注入电阻阻值分别为r1…..rp,每个阻值大小随机。

进一步改进在于:所述步骤二中注入的电阻命名为rfau1…rfaup,后面对应两个端口节点,以及随机阻值r1…..rp,将以上信息加入存储器单元模块中,生成新的存储器网表文件。

本发明的有益效果:在故障注入的同时考虑到了故障注入的随机性与全面性,在存储器电路结构中加入电阻,模拟电路在制造工程中可能出现的电路缺陷,在验证算法的有效性的同时,验证了算法的故障覆盖率。本发明故障注入是在存储器spice网表上进行的,提高了故障注入的可执行性、增强了故障注入在实际中的相关性、降低了后续仿真验证的复杂度。

附图说明

图1是本发明的随机故障注入方法流程图。

图2是本发明的静态随机存储器结构图。

图3是本发明的基于6tsram电路节点插入电阻图。

图4是本发明的基于sram实例完成故障注入后验证结构框图。

图5是本发明的基于6tsram单元随机故障注入验证波形图。

具体实施方式

为了加深对本发明的理解,下面将结合实施例对本发明作进一步详述,该实施例仅用于解释本发明,并不构成对本发明保护范围的限定。

如图1-5所示,本实施例提供一种有效的存储器电路随机故障注入方法,所述方法步骤如下:

步骤一:利用perl语言提取出所有可能出现故障的节点,修改所有故障节点名称,生成一个新的文件;

步骤二:随机选取节点文件中的一个或多个故障节点,并在节点处插入阻值随机电阻;

步骤三:插入电阻后生成一个新的已完成随机故障注入的存储器网表文件。

所述步骤一中提取故障的节点时,先分析存储器网表,通过perl语言提取出存储单元所有可能出现故障的电路节点并按照预定的命名规则对所有故障节点名称进行修改,方便故障注入时在原始网表中对随机选取的故障节点进行定位,生成出一个新的故障节点文件,文件中每一行是一个故障节点。所述步骤二中选取故障节点的方法如下:从故障节点文件中随机选取p个故障节点,并且通过命名规则确定随机选取节点在原始网表中的位置,注入阻值随机的电阻;若选取节点为p个,则注入电阻阻值分别为r1…..rp,每个阻值大小随机。所述步骤二中注入的电阻命名为rfau1…rfaup,后面对应两个端口节点,以及随机阻值r1…..rp,将以上信息加入存储器单元模块中,生成新的存储器网表文件。

本实施例针对存储器故障注入这一技术难题进行改进,创新性地实施例了一种有效的存储器随机故障注入方法,在故障注入的同时考虑到了故障注入的随机性与全面性,在存储器电路结构中加入电阻,模拟电路在制造工程中可能出现的电路缺陷,在验证算法的有效性的同时,验证了算法的故障覆盖率。本实施例故障注入是在存储器spice网表上进行的,提高了故障注入的可执行性、增强了故障注入在实际中的相关性、降低了后续仿真验证的复杂度。

图1给出了本实施例随机故障注入方法的流程图,如图所示,完成随机故障注入需要完成三大步骤,包括故障节点提取,随机故障注入以及随机故障注入验证。故障节点提取包括对存储器可能出现故障电路节点定位,提取出全部电路节点并修改电路节点名称,生成电路节点列表文件,文件中每一行对应一个电路节点,完成故障节点提取;随机故障注入是本实施例的核心模块,其中包括选取的故障节点随机,选取节点个数随机,注入电阻阻值随机;在节点文件中随机选取p(p>0)处不同故障节点,并且每处节点注入电阻阻值随机;如图1所示,在随机选取p处不同节点时,每次选取结束需要判断是否与前一个次选取的故障节点相同,如果相同则重新选取节点,不同则继续,在选取节点处注入阻值随机的电阻,然后判断是否选取的p处节点已经全部完成电阻注入(例如随机选取4处节点,首先判断这4处节点不存在相同节点,然后判断是否注入四个阻值随机的电阻),最后生成新的存储器网表,实现随机故障注入;最后是对故障注入可行性进行验证,基于存储器测试算法生成bist测试电路,分别测试原始网表以及故障注入后网表,通过对比两次测试波形图验证故障注入的可行性。

本实施例基于存储器存储单元完成故障注入,图2是静态随机存储器结构图,如图所示,一个完整的存储器系统包括地址译码器、时序控制单元、列选择器、灵敏放大器、数据缓冲单元以及存储阵列,其中存储阵列为多个整齐排列的存储单元,如图所示,可以看到存储单元的电路结构图。

图3是基于6tsram电路节点插入电阻图,如图所示,根据存储器网表文件描述,标出了每一个mos器件名称,以及端口节点名称,提取电路节点时,修改电路节点名称,由于故障节点为每个mos器件的三个端口,所以在节点名称前加上器件名称,随机选取故障节点后可以通过器件名称定位到相应节点位置,如图所示,当随机选取节点名称为mnpg-b.bb时,可以根据命名规则定位故障注入位置为mnpg-b器件的bb节点处,在故障节点处注入阻值为r1,名称为rfau1的电阻。

图4是本实施例基于sram实例完成故障注入后验证结构框图,如图所示,bist电路中包括状态机、地址产生器、数据产生器、算法控制器等模块,使用march2算法生成测试向量测试存储器电路;测试输出与预期数据通过比较器进行对比,对比结束后tst-done信号跳变为1,对比数据一致则fail-h信号为0,否则跳变为1。本实验基于混合仿真环境对故障注入方法可行性进行验证,bist测试电路用verilog语句编写,采用vcs仿真,待测sram为cdl网表,采用hsim仿真。

图5是基于6tsram单元随机故障注入验证波形图,通过混合仿真测试波形图对比实验结果,其中(a)为对存储器原始网表测试结果波形图,观察图中tst-done以及fail-h两个波形,其中当tst-done跳变到1之后,fail-h信号一直为0,说明电路测试结束且没有出现故障;观察tst-done以及fail-h两个波形跳变,发现当tst-done信号仍为0时,fail-h信号已经跳变到1说明电路出现故障。进一步分析发现,波形跳变时对应测试步骤为w1r1,而注入故障节点为rfau1,该故障表现形式为转换故障,无法从0转换到1,与算法检查波形结果一致,有效验证了本实施例方法的可行性。

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