APP下载

一种改进的SRAM故障内建自检测算法

2019-06-08曾健平王振宇袁甲彭伟曾云

湖南大学学报·自然科学版 2019年4期

曾健平 王振宇 袁甲 彭伟 曾云

摘   要:面向March C+算法故障覆盖率的问题,本文提出一种改进的March CS算法来完成存储器SRAM的内建自测试.通过增加原算法元素的读写操作来敏化存储单元的故障,检测原算法不能敏化的静态故障和动态故障,从而提高故障覆盖率.最后,通过对1 024*32位静态随机存储器进行故障仿真验证,以及FPGA对SRAM芯片的应用性测试,March CS算法检测静态故障和动态故障的覆盖率分别达到91.67%和76.93%.

关键词:March CS算法;静态故障; 动态故障; 故障覆盖率;

中图分类号: TN47                                      文献标志码:A

An Improved SRAM Fault Built-in-self-test Algorithm

ZENG Jianping1,WANG Zhenyu1,YUAN Jia2,PENG Wei1,ZENG Yun1

(1.School of Physics and Microelectronics Science,Hunan University,Changsha 410000,China;

2. Institute of Microelectronics,Chinese Academy of Sciences,Beijing 100029,China)

Abstract: This paper proposed an improved March CS algorithm to complete the built-in self-test of SRAM

memory due to the problem of March C + algorithm's fault coverage. The static and dynamic fault of memory cell were sensitized by the original algorithm increasing the read-write operation of the algorithm element, so that the fault coverage was enhanced. Finally, the March CS algorithm achievesd 91.67% and 76.93% coverage of static and dynamic faults respectively through the simulation experiments of the 1 024*32-size fault static Randon-Access memory and the measurement of FPGA to SRAM chips.

Key words: March CS algorithm;static fault;dynamic fault;fault coverage

集成电路的发展一直遵循着摩尔定律,片上系统SoC(System-on-Chip)已经成为了集成电路IC(Integrated Circuit Design)设计的主流之一[1].随着IC设计的发展与更新,集成电路的测试也成为一个备受关注的焦点问题.在如今的存储器测试方法中,内建自测试BIST(Built-in-Self-Test)成为了一种主流测试方法[2-3].存储器内建自测试MBIST不仅能简化测试中的步骤,而且可以缩短测试所需时间,对故障的覆盖比较全面[4].

存储器内建自测试MBIST的研究集中在测试算法中,通过采用一种或多种测试算法对静态随机存储器SRAM进行故障测试.目前比较常用的算法包括:MSCAN算法、棋盘算法、GALPAT算法以及March算法等.其中March算法[5]在当今存储器测试应用较多,比较常用的有March C算法、March C+算法等,它们具有较高的故障覆盖率,且测试时间短,但仍然有许多故障不能被覆盖[6].

随着集成电路内建自测试技术的发展,国外芯片公司已经设计出比较成熟的内建自测试的工具,比如Mentor公司的MBIST Architect软件以及Synopsys开发出的DFT Compiler软件.本文的算法是通过MBIST Architect软件实现内建自测试[7],并且是对于memory compile生成的1024X32的SRAM进行功能仿真与验证.

1   存储器的故障概念

存储器的故障一般指逻辑与功能上故障,其中主要包括固定故障(SAF)、转换故障(TF)、读破坏故障(RDF)、写干扰故障(WDF)以及耦合故障(CF)

等[8].故障原语FP(Fault Primitive)是用来表示存储器的故障行为,其通常的表现形式有两种,分别为〈S/F/R〉与〈Sa;Sv /F/R〉,其中, 〈S/F/R〉通常表示单个单元的故障行为,而〈Sa;Sv /F/R〉通常表示两个单元的故障敏化序列.其中S表示存储器故障行为的操作和状态,F表示故障单元的状态值,R表示存储器的读操作的结果.而对于两个单元的故障原语,Sa表示施主單位的敏化序列,a表示施主单元的地址.Sv表示故障单位的敏化序列,v表示故障单元的地址[9].

存储器的故障类型一般有固定故障、转换故障、写干扰故障、读破坏故障以及耦合故障等类型.其中,耦合故障(CF)是发生在多个存储单元之间,是指某个单元的变化而影响到其他存储单元发生变化.耦合故障的类型主要是以下几种:反相耦合故障(CFin)是指某个存储单元跳变为0或1时,而导致其它一个的存储单元的值进行翻转.定值耦合故障(CFid)是指某个存储单元跳变为0或1时,而导致其它的存储单元的值变为了一个固定值.状态耦合故障(CFst)是指存储单元在某一个确定状态时,而导致了另一个存储单元跳变到了错误状态.