on―Chip SRAM内建自测试及其算法的研究

时间:2022-10-27 04:18:44

on―Chip SRAM内建自测试及其算法的研究

摘要:具体研究onchip sram内建自测试及其算法。在引入嵌入式存储器内建自测试的基础上,详细分析onChip SRAM内建自测试的具体实现方法,反映出内建自测试对于简化测试程序和缩短测试时间,从而降低测试成本的重要性。详细描述在测试onChip SRAM时常用的算法,并具体分析非传统性测试算法――Hammer算法和Retention算法。

关键词:片上静态随机存储器;内建自测试;故障模型;测试算法

中图分类号:TN407文献标识码:A文章编号:10053824(2014)04-0014-05

0引言

随着半导体工艺的不断发展,IC设计的规模越来越大,集成程度也越来越高,从最早的小规模、中规模、大规模,到现在的超大规模,以至未来的特大规模、巨大规模,复杂度也随之不断提升。SRAM(静态随机存储器)占据整个芯片的一大部分面积,现如今集成电路功能的实现对芯片内SRAM数量的需求越来越大[1],对于onChip SRAM的测试更是整个芯片测试过程中非常重要的一个环节[2],同时,SRAM的成品率直接决定了芯片的成品率[3]。最传统的onChip SRAM测试是通过ATE(自动测试设备)从外部不断向SRAM中输送测试向量,并把输出值与期望进行比较,来验证其内部存储单元的好坏,这样使得ATE必须有非常大的存储空间来存储测试向量,同时,这种方法也相当耗时,众所周知,对于芯片测试而言,时间就是金钱。本文主要研究当下非常热门的嵌入式存储器测试方法――嵌入式存储器内建自测试。

1onChip SRAM内建自测试

builtin selftest简称BIST,是一种DFT (design for test) 技术[4]。BIST通常分为Logic BIST和Memory BIST,它是在设计电路的时候植入提供存储器自检测功能的电路,来降低对ATE (自动测试设备) 的依赖。ATE的测试成本一直居高不下,其内部电路也相当复杂,BIST技术则可以实现自测试,且速度比ATE快得多,从而缩短了测试时间、降低了测试成本,更提高了故障覆盖率。

1) 信号产生单元。它包括产生必要的地址、数据和控制参数的电路,来生成应用于存储器的每个测试向量。这个单元通常还包括一个向上或者向下的计数器,用来为大部分的存储器测试算法产生所需的地址序列。

2) 比较器。用来比较从存储器内读出的值与信号产生单元所产生的期望值,每个比较结果会累积到一个状态触发器,在测试结束后会提供一个结果。通常,这个比较结果会通过芯片的一个管脚输出,由此来达到实时监控的目的。

3) 有限状态机。用于控制测试执行的整个顺序。

BIST控制器通常需要执行简单的初始化与控制,比如,初始化可能预示着存储器测试算法将要被执行,或者状态触发器可能被重置,这些初始化与控制可能来自于芯片内部的测试控制器,也可能来自外部。很多时候,BIST控制器都会连接一个IEEE 1149.1测试通道(TAP),它将提供一个行业标准接口(JTAG),用于访问BIST控制器,这样,既能完成BIST测试,又不会因BIST测试而增加PAD的数量,从而解决了由MBIST引起的管脚复用问题。

2onChip SRAM的故障分类

MBIST电路是由存储器与其周边BIST电路所组成,而存储器又是由存储阵列与其周围逻辑所组成,所以在进行MBIST测试时需要同时考虑到存储阵列故障、存储阵列周围逻辑故障与存储器周边BIST电路故障。

2.1存储阵列故障

下面介绍几种典型的onChip SRAM单元阵列故障模型[57]。

1) 固定型故障(stuckat faults)。固定型故障是存储单元的值永久固定为0或1。为了检测这种故障,可以向存储单元中写0,然后读出值,然后写1,并读出值,如果读出的值相同,就认为此存储单元被固定为那个值。如图2所示。

2) 跳变故障(transition faults)。跳变故障是指存储单元在被写入时无法实现由0到1或者由1到0的跳变。如图2所示,为了检测到所有跳变故障,每个存储单元都要经历从0到1和从1到0的跳变,并在每次跳变后读出值。

3) 耦合故障(coupling cell faults)。由于每个存储器单元周围都环绕着其他单元,且很多单元共享字线与位线,因此在向一个存储单元写入值时也可能会同时写入到其他单元中。我们不能从存储器外部得知存储阵列的具体结构,更无法得知哪些存储单元共享字线,哪些共享位线,所以,耦合故障可能存在任何2个单元之间。耦合故障可分为倒置型耦合、幂等型耦合和简单的状态耦合,如图3所示。倒置型耦合是当向一个单元写入值时倒置了其他单元的值;幂等型耦合是当一个单元的跳变(0到1或1到0)发生时,其周围的单元被置成一个固定值(0或1)。

4) 相邻图形敏感故障(neighborhood pattern sensitive fault)。相邻图形敏感故障是指一个存储单元由于其周围单元的不同操作导致状态不正确。如图3所示。相邻图形敏感故障可分为主动、被动和静态相邻敏感故障。

2.2存储阵列周围逻辑电路故障

存储阵列周边电路由地址译码电路、敏感放大器、读写逻辑和数据寄存器组成,如图4所示。

即使这些存储单元电路可以按照随机逻辑来处理,但是MBIST测试只能通过存储单元来观测,所以,这些存储阵列周边的电路故障可以等效到存储阵列的故障模型。

2.3存储器周边BIST电路故障

由于工艺、电压、温度等条件的特殊限制,以及用户对芯片面积、性能的特殊要求,BIST电路延时与电路面积需要进行协调,因为,放宽延时意味着需要增加BIST电路面积,从而增加了芯片面积,减少了产品的利润,但是延时过小又容易导致无法抓到想要的数据,导致BIST电路出现故障。

3onChip SRAM测试算法

3.1传统的测试算法

所谓的存储器测试算法,就是通过算法生成模块产生的一个有序的读写操作序列。

存储器的测试算法种类繁多,没有一种算法能够检测出所有的故障,并且对于同种故障,各个算法的时间复杂度也相差较大,但他们都有共同的目的,就是用尽可能少的测试向量和时间来检测尽可能多的故障,达到较高的故障覆盖率[8]。

在进行onChip SRAM测试时常用的算法有MSCN, Checkerboard, Row Bar, GALPAT, March等。

1) MSCN。

MSCN是一种最简单的测试算法,又被称为全0全1算法。其原理是先对每个单元写0,然后进行验证;再对每个单元写1,并对其验证,即写0读0,写1读1。此方法测试速度快,复杂度为4N,但是故障覆盖率较低。

2) Checkerboard。

Checkerboard算法如图5所示,即把0,1先后交替写入存储单元,使每个存储单元与其相邻的单元为不同值,最后进行验证,复杂度为4 N。

3) Row Bar。

Row Bar算法如图5所示,其原理为对每行存储单元交替写入0和1,并进行验证,其复杂度为4 N。

4) GALPAT。

GALPAT算法也称乒乓测试,对某个存储器单元写0或1,对其他单元写入相反的值,然后交替读出值,以此类推,测试所有的存储单元。此算法故障覆盖率较高,同时,复杂度也相对较高,为(4N2+4N)。

5) March。

March算法是当今最流行的存储器测试算法之一,它具有时间复杂度低、故障覆盖率高的优点。March算法包含一组March元素,每个元素由地址顺序、读写操作和数据组成。通过对地址的不断变化和读写存储单元,来检测不同的故障类型,使得March算法衍生出很多版本(每个版本的March算法因其元素的不同而不同)。March元素的符号表达如表1所示。表1March元素的符号表达

R存储单元读操作r0从存储单元中读0r1从存储单元中读1W存储单元写操作w0向存储单元中写0w1向存储单元中写1存储器地址升序存储器地址降序存储器地址升序降序皆可

March C测试算法是March算法中最普通的一种。它是先将0按地址升序写入每个存储单元中,然后从起始地址开始依次读取,来检测存储器单元中存的是否是0;在存储单元读出0后,将1写入存储单元,这样,1就会像行军一样,被升序写入,直到最后一个单元被写入1为止,此时,所有的存储单元都被写入1,然后开始按地址降序,读取1,并在读出1后,把0写入存储单元,最后读0,实现对存储器单元故障的检测。March C用符号表达如下:

3.2非传统的测试算法

传统的测试算法可以检测出大多数的寻址故障、固定型故障、耦合故障、跳变故障等,然而,它们并不能检测到比较虚弱的存储单元(weak bit),为了捕获到这些weak bit,我们必须通过一些非传统性的测试。

SRAM的老化测试(burnin testing),是晶圆切片封装后的RST(RAM stress test)测试。老化测试是通过提供严苛的运行环境来检测芯片的可靠性。对于SRAM的老化测试而言,可以通过升高电压和升高温度,来加快SRAM的老化速率。在这个阶段,会完成两种不同的测试,一种是仅仅加快芯片自身老化过程,而另一种是为了检测在严苛条件下,芯片的功能稳定性。

1) Hammer测试。又称disturb测试,是为了检测存储单元的稳定性,是一个特殊的操作在每个存储单元上分别被反复执行数次,来检测存储单元中是否有weak bit。以下为一种Hammer算法的符号表达式,其时间复杂度为36N。

2) Retention测试。Retention测试可以结合March14N或者棋盘等算法来对存储单元的数据保留能力进行测试,通过向所有的存储单元中写入逻辑数值(全0、全1或棋盘算法),经过一定的等待时间(由所用工艺决定),在这段时间内,慢慢降低电压(通常被称为电压冲击测试),使数据在存储单元中驻留一段时间,然后读出存储单元的逻辑值,以此来检测存储单元保留数据的能力。

因此,在进行onChip SRAM测试时,不仅需要检测出失效的存储单元,同时,还需要检测出虚弱的存储单元,这对于芯片在量产时的良率以及可靠性有着非常重要的意义。

4结束语

本文主要介绍了onChip SRAM内建自测试的具体结构,强调MBIST对于onChip SRAM测试的在缩短测试时间、降低测试成本以及提高测试覆盖率等方面的重要性,深入研究了onChip SRAM的典型故障模型与传统的测试算法,并着重介绍了在存储器测试时用到的非传统算法。

随着集成电路工艺的飞速发展,onChip SRAM的测试在保证芯片良率与可靠性的基础上,节省成本以及提高故障覆盖率,仍然是非常值得继续深入研究的领域(包括新故障模型的建立和测试算法的选择与优化)。

参考文献:

[1]ALLAN A, EDENFELD D.International technology roadmap for semiconductors[J].Computer,2002,35(1):42-53.

[2]江建慧,朱为国.嵌入式存储器的内建自测试和内建自修复[J].同济大学学报:自然科学版,2004,32(8): 1051-1056.

[3] 周清军,刘红侠,吴笑峰,等.嵌入式SRAM的优化修复方法及应用[J].计算机辅助设计与图形学学报, 2008, 20(10): 1276-1281.

[4]AHMED N,AWAD,ABDALLATIF S,et al.Low power address generator for memory builtin self test[J].International Journal of ACM Jordan, 2011,2(3):52-56.

[5]KIM I,ZORIAN Y,KOMORIYA G.Builtin selfrepair for embedded high density SRAM[C]//Washington D C:IEEE Computer Society Press,1998:1112-1119.

[6]JAIN S K,STROUD C E.Builtin selftesting of embedded memories [J].IEEE Design and Test of Computers,1986,3(5):27-37.

[7]TEHRANIPOUR M H,NAVABI Z.An efficient BIST method for testing of embedded SRAMs[C]//Sydney:IEEE Computer Society Press,2001:73-76.

[8]CHEN Zewang,SU JIanhua,WANG Youren.An effective test algorithm and diagnostic implementation for embedded static random access memories[J].Journal of Circuits,Systems,and Computers,2011,20(7):1389-1402.

上一篇:英语教学方法改革初探 下一篇:用不同调制方式实现跳/扩频混合通信的抗干扰性...

文档上传者