一种改进的嵌入式存储器测试算法
发布时间:2008/5/28 0:00:00 访问次数:396
摘要基于一种适合于测试静态简化故障的marchss算法,提出了一种改进的嵌入式随机存取存储器测试算法-marchsse算法。该算法在测试长度不变的情况下,不仅能测出marchss算法所测试的全部的功能故障,而且还能检测出marchss算法所遗漏的固定开路故障,以及大部分的动态故障,故障覆盖率得到了大幅度地提高。
关键词故障原语,静态故障,动态故障,存储器测试,故障覆盖率
1 引言
随着深亚微米vlsi技术的发展,大量的不同厂家的电路设计或核集成到一个芯片上。存储器密度的增长使存储器的测试面临着更大的挑战。嵌入式ram存储器是最难测试的电路,因为存储器的测试通常需要大量的测试模式来激活存储器并将存储器的单元内容读出来与标准值进行比较。在可以接受的测试费用和测试时间的限制下,准确的故障模型和有效的测试算法是至关重要的。而为了保证测试时间和故障覆盖率,测试的好坏大大的依赖于所选的功能故障模型。
以前大部分关于故障模型的论文都是把故障的敏化固定在最多一个操作上(如一个读或一个写),这些功能故障被叫作静态功能故障。而基于缺陷注入和spice仿真的dram的试验分析表明:在没有静态故障的情况下存在另外一种多于一个操作才能敏化的故障(如一个连续的读和写操作),即动态故障。大部分的测试算法主要针对静态故障,对动态故障的覆盖率比较低,但动态故障的测试也是非常重要的[1]。
2 存储器故障模型
故障模型可以用故障原语(fault primitive)来表示。单个单元故障用符号<s/f/r>表示,两个单元耦合故障用符号<sa;sv/f/r>表示。s表示单个单元的敏化操作序列,sa表示耦合单元的敏化操作序列,sv表示被耦合单元的敏化操作序列,f表示故障单元的值f {0,1},r表示读操作的逻辑输出值r {0,1,-}。‘-’表示写操作激活故障,没有输出值。故障原语可以构成一个驱动所有存储器功能故障的操作序列的完整集合。
2.1单个单元静态故障
单个单元静态故障有12种可能的故障原语,而这12种故障原语可以看作是一个六个功能故障模型的集合,下面是这六种功能故障:1)状态故障(state fault);2)转换故障(transition fault);3)写干扰故障(write disturb fault);4)读破坏故障(read destructive fault); 5)伪读破坏故障(deceptive read destructive fault);6)错误读故障(incorrect read fault)。这些故障在文章[2]中有详细的解释。
在文章[3]中提到固定故障(stuck-at faults)的故障原语是< /0/->和< /1/->,所以固定故障被认为是状态故障与转换故障的并集。固定开路故障(stuck open fault)[4]是由于断开的字线引起的,即0w1或1w0的操作是不能完成的,所以可以认为是转换故障;另外由于存储器的读出依赖于灵敏放大器,可以认为是错误读故障,所以把固定开路故障认为是转变故障和错误读故障的并集。
2.2静态耦合故障
静态耦合故障的故障原语有36种,可以被归纳为以下七种类型的功能故障模型[2]:1)状态耦合故障(state coupling fault); 2)干扰耦合故障(disturb coupling fault); 3)转换耦合故障(transition coupling fault);4)写破坏耦合故障(write destructive coupling fault); 5)读破坏耦合故障(read destructive coupling fault);6)伪读破坏耦合故障(deceptive read destructive coupling fault); 7)错误读耦合故障(incorrect read coupling fault)。这些故障在文章[2]中有详细的解释。
2.3单个单元的动态故障
只考虑s=xwyrz这种情况。单个单元动态故障的故障原语有12种,可以被归纳为以下三种类型的功能故障模型:1)动态的读破坏故障(dynamic read destructive fault);2)动态的伪读破坏故障(dynamic deceptive read destructive fault);3)动态的错误读故障(dynamic incorrect read fault)。这些故障在文章[1]中有详细的解释。
2.4动态耦合故障
主要分析两个单元的动态耦合故障,它可分为四种类型。只研究其中的两种(两个连续的操作都应用在耦合单元和两个连续的操作都应用在被耦合单元)。两个单元的动态耦合故障的故障原语有32种,可以被归纳为以下四种类型的功能故障模型[1]:
1)动态干扰耦合故障(dynamic disturb coupling fault): 耦合单元的连续的两个写,读操作使被耦合单元的值发生跳变。
2)动态的读破坏耦合故障(dynamic read destructive coupling fault):耦合单元的某一特定值使被耦合单元的连续的两个写,读操作改变了存储单元的逻辑值并输出错误的值。
3)动态的伪读破坏耦合故障(dynamic deceptive read destructive coupling fault):耦合单元的某一特定值使
摘要基于一种适合于测试静态简化故障的marchss算法,提出了一种改进的嵌入式随机存取存储器测试算法-marchsse算法。该算法在测试长度不变的情况下,不仅能测出marchss算法所测试的全部的功能故障,而且还能检测出marchss算法所遗漏的固定开路故障,以及大部分的动态故障,故障覆盖率得到了大幅度地提高。
关键词故障原语,静态故障,动态故障,存储器测试,故障覆盖率
1 引言
随着深亚微米vlsi技术的发展,大量的不同厂家的电路设计或核集成到一个芯片上。存储器密度的增长使存储器的测试面临着更大的挑战。嵌入式ram存储器是最难测试的电路,因为存储器的测试通常需要大量的测试模式来激活存储器并将存储器的单元内容读出来与标准值进行比较。在可以接受的测试费用和测试时间的限制下,准确的故障模型和有效的测试算法是至关重要的。而为了保证测试时间和故障覆盖率,测试的好坏大大的依赖于所选的功能故障模型。
以前大部分关于故障模型的论文都是把故障的敏化固定在最多一个操作上(如一个读或一个写),这些功能故障被叫作静态功能故障。而基于缺陷注入和spice仿真的dram的试验分析表明:在没有静态故障的情况下存在另外一种多于一个操作才能敏化的故障(如一个连续的读和写操作),即动态故障。大部分的测试算法主要针对静态故障,对动态故障的覆盖率比较低,但动态故障的测试也是非常重要的[1]。
2 存储器故障模型
故障模型可以用故障原语(fault primitive)来表示。单个单元故障用符号<s/f/r>表示,两个单元耦合故障用符号<sa;sv/f/r>表示。s表示单个单元的敏化操作序列,sa表示耦合单元的敏化操作序列,sv表示被耦合单元的敏化操作序列,f表示故障单元的值f {0,1},r表示读操作的逻辑输出值r {0,1,-}。‘-’表示写操作激活故障,没有输出值。故障原语可以构成一个驱动所有存储器功能故障的操作序列的完整集合。
2.1单个单元静态故障
单个单元静态故障有12种可能的故障原语,而这12种故障原语可以看作是一个六个功能故障模型的集合,下面是这六种功能故障:1)状态故障(state fault);2)转换故障(transition fault);3)写干扰故障(write disturb fault);4)读破坏故障(read destructive fault); 5)伪读破坏故障(deceptive read destructive fault);6)错误读故障(incorrect read fault)。这些故障在文章[2]中有详细的解释。
在文章[3]中提到固定故障(stuck-at faults)的故障原语是< /0/->和< /1/->,所以固定故障被认为是状态故障与转换故障的并集。固定开路故障(stuck open fault)[4]是由于断开的字线引起的,即0w1或1w0的操作是不能完成的,所以可以认为是转换故障;另外由于存储器的读出依赖于灵敏放大器,可以认为是错误读故障,所以把固定开路故障认为是转变故障和错误读故障的并集。
2.2静态耦合故障
静态耦合故障的故障原语有36种,可以被归纳为以下七种类型的功能故障模型[2]:1)状态耦合故障(state coupling fault); 2)干扰耦合故障(disturb coupling fault); 3)转换耦合故障(transition coupling fault);4)写破坏耦合故障(write destructive coupling fault); 5)读破坏耦合故障(read destructive coupling fault);6)伪读破坏耦合故障(deceptive read destructive coupling fault); 7)错误读耦合故障(incorrect read coupling fault)。这些故障在文章[2]中有详细的解释。
2.3单个单元的动态故障
只考虑s=xwyrz这种情况。单个单元动态故障的故障原语有12种,可以被归纳为以下三种类型的功能故障模型:1)动态的读破坏故障(dynamic read destructive fault);2)动态的伪读破坏故障(dynamic deceptive read destructive fault);3)动态的错误读故障(dynamic incorrect read fault)。这些故障在文章[1]中有详细的解释。
2.4动态耦合故障
主要分析两个单元的动态耦合故障,它可分为四种类型。只研究其中的两种(两个连续的操作都应用在耦合单元和两个连续的操作都应用在被耦合单元)。两个单元的动态耦合故障的故障原语有32种,可以被归纳为以下四种类型的功能故障模型[1]:
1)动态干扰耦合故障(dynamic disturb coupling fault): 耦合单元的连续的两个写,读操作使被耦合单元的值发生跳变。
2)动态的读破坏耦合故障(dynamic read destructive coupling fault):耦合单元的某一特定值使被耦合单元的连续的两个写,读操作改变了存储单元的逻辑值并输出错误的值。
3)动态的伪读破坏耦合故障(dynamic deceptive read destructive coupling fault):耦合单元的某一特定值使