存储器技术-嵌入式存储器的两种可测性设计方式
发布时间:2024-11-21
发布时间:2024-11-21
存储器技术-嵌入式存储器的两种可测性设计方式
嵌入式存储器的两种可测性设计方式
黄禄惠
成都三零嘉微电子有限公司
摘要:MBIST是针对一个或多个内嵌存储器创建BIST测试逻辑电路,以此来达到测试的目的;MacroTest通过将用户自定义的测试向量转换为扫描测试向量的方式来测试被测对象。 关键字:MBIST,MacroTest,FSM, March
1. 概述
集成电路自问世以来,一直按照摩尔定律高速的发展,随着其快速的发展,IC的设计和工艺都在不断的提高,这就使得IC产品的测试变得越来越困难。特别是针对目前在IC产品中比重越来越大的嵌入式存储器的测试。因此,存储器测试已经成为电路测试中非常重要的部分。Mentor公司的DFT工具提供了两种适用于嵌入式存储器设计的测试方法:MBIST及MacroTest,本文将介绍这两种方式及它们在同一款芯片中的具体实现。
在一款通信芯片中,有多种类型的存储器,其中有SRAM及不同型号的RegisterFile多片。对这些片内存储器的测试方法选择从以下两个方面考虑:设计上,由于芯片内部的RegisterFile时序和布线稍紧张,而SRAM则相对宽松;测试工具方面,MBIST测试方式需要添加测试逻辑,因此会增加存储器周围布线和时序的负担,但这种方式产生的测试向量相对要少,可以减小测试的开销。而Macrotest是只对测试对象的写端口信号进行控制,通过建立存储器的ATPG模型来转换并生成测试向量,从而实现对内部存储器的测试。这种测试方法不增加测试逻辑,不会给后端布局布线增加负担。但产生的测试向量相对较多,一定程度上增加了测试的开销。因此,对不同的存储器分别使用不同的测试策略,以达到测试最优化的目的。结合存储器设计的实际情况考虑,在此项目中采用两种测试方法相结合,对RegisterFile采用Macrotest的测试方式,对SRAM则选择了MBIST测试方式。
2. MBIST测试
2.1 MBIST概述
存储器内置自测试(MBIST)是芯片设计中用来测试嵌入式存储器的标准技术,这种测试方式是一种以一定面积开销为代价来实现对嵌入式存储器测试的方式。它的测试原理是:生成测试向量,输出给带多路选择器的内嵌存储器,并对存储器的响应进行分析比较,通过对比预期数据与输出数据是否一致来判断被测试的存储器是否完好。对拥有大量存储器的设计,让多个存储器通过同一个BIST控制器来进行测试,可以有效的节省测试逻辑的开销面积并且能降低测试的复杂性。
Mentor公司的BIST工具--MBISTArchitect可以灵活地在ASIC或IC中自动实现内嵌存储器阵列的RTL级BIST结构。它支持多种测试算法,并支持用户自定义的测试算法。可以对一个或多个内嵌存储器自动创建BIST逻辑,完成BIST逻辑与存储器的连接,特别的,它能够在多个存储器之间共享BIST控制器,实现并行测试,从而显著缩短测试时间和节约芯片面积。另外,MBIST结构中还包括故障的自动诊断功能,可以生成自动诊断故障的电路,
存储器技术-嵌入式存储器的两种可测性设计方式
从而当芯片存在缺陷时可以自动导出芯片内部故障信息,为时效分析和良率的提升提供了技术上的保障。
2.2 具体实现
在本款芯片的DFT设计过程中,对多片存储器采用了BIST的设计。具体设计遵循了BIST电路设计原则。在端口设计上,增加了BIST_ENABLE(BIST测试使能), BIST_DONE(测试结束信号), FAIL_H(故障发生指示信号), DEBUGZ(debug模式使能信号),HOLD_L(运行控制信号)等指示控制信号。其中BIST_DONE用来标示BIST测试结束,测试结束时该信号置为有效。FAIL_H为测试指示信号,在测试过程中发现任何错误,该信号将被置高并保持。此外在设计中还加入了自诊断的功能。并实现了多个存储器共用一个BIST控制器的设计。
如图一所示,在BIST测试电路中包括了三部分的逻辑电路:BIST控制器、向量产生器和响应分析器。向量产生电路可生成多种测试向量,不同的测试向量是通过不同的测试算法
图一:多片存储器的BIST测试
实现的电路所产生的,每种测试向量都着重测试某一种特定的电路类型或错误类型。比如BIST中最常用的测试类型March 2算法,它能够检测出绝大多数常见的存储器缺陷,包括Stuck_at、寻址出错及耦合问题等。BIST控制器通常采用有限状态机(FSM)来实现,由地址,数据及控制产生器组成。有限状态机用来控制BIST对存储器的读写操作,它将测试pattern写入存储器、并读回这些pattern交给响应分析器完成比较。响应分析器一般采用比较器或者压缩器多输入移位寄存器电路来实现,最终通过标示信号的状态来显示测试结果。另外,在原有电路上还增加了一些多路选择逻辑,这部分电路是通过测试模式使能信号来控制,用来做系统正常工作与测试模式的选择。
BIST电路设计完成后,首先要进行验证。MBIST工具可以产生相应的测试基准对BIST外围逻辑进行验证。在确保这部分电路的正确后,再将这部分电路插入到芯片电路设计中,
存储器技术-嵌入式存储器的两种可测性设计方式
并设计相应的测试基准来对BIST测试电路插入后的整个电路进行验证,保证电路功能的正确。
3. MacroTest
3.1 MacroTest概述
MacroTest是Mentor公司的测试向量自动生成工具FastScan中的一个子工具,这个工具支持所有主要的故障类型,不仅可以对常用的Stuck-at模型生成测试向量,还可以针对关键时序路径、Transition模型生成At-speed测试向量、针对IDDQ模型生成IDDQ测试向量。并且可以利用生成的测试向量进行故障仿真和测试覆盖率计算。FastScan Macrotest是一个专门用于较小存储器(如REGISTERFILE,CACHE,FIFO等)测试的工具。它的测试原理是将用户自定义的测试向量转换为扫描测试向量(如图二)。当设计中包含大量内嵌存储器时,提高芯片的测试覆盖率变得非常困难,MacroTest测试方法的优点在于它能够在不对芯片的面积和性能造成不利影响的前提下提高芯片测试的质量,采用MacroTest测试方式,可以大幅度提高芯片的测试覆盖率。相对于BIST测试方式来说,它要增加更多的测试向量,但不会增加带来面积的开销。
3.2 具体实现 图二:Macrotest测试
在本款芯片中用到了多片不同的RegisterFile,考虑到时序和布线资源有限,对其采用了MacroTest方式。并实现了多个测试对象的并行测试。采用这种测试方法,首先必须定义好测试向量文件。用户可根据一定的算法来定义测试向量文件,这些算法可以是工具自带算法,也可以采用自定义算法。比如用一个简单的March3算法定义,一共有四个步骤:首先是对所有地址写0,即初始化;第二步是读0,写1,读1;第三步是读1,写0,读0。前面都是按照地址升序的顺序完成,第四步则按地址降序完成读0,写1,读1。这四个步骤组成一个完整的March3算法。算法的优化程度将直接影响到产生的测试向量的数量。在实际使用中可以根据自身设计的测试需要,对算法进行删减或根据自定义算法来生成向量文件。
存储器技术-嵌入式存储器的两种可测性设计方式
在项目中,一个简单的宽度8、深度7的存储器,采用March3算法实现的用户测试向量文件如下: macro_inputs CLKB CENB ADB<6> ADB<5> ADB<4> ADB<3> ADB<2> ADB<1> ADB<0>
macro_inputs DBIN<7> DBIN<6> DBIN<5> DBIN<4> DBIN<3> DBIN<2> DBIN<1> DBIN<0>
macro_inputs CLKA CENA ADA<6> ADA<5> ADA<4> ADA<3> ADA<2> ADA<1> ADA<0>
macro_outputs DAOUT<7> DAOUT<6> DAOUT<5> DAOUT<4> DAOUT<3> DAOUT<2> DAOUT<1> DAOUT<0> end
//initialize
P 0 0000000 00000000 x x xxxxxxx XXXXXXXX
P 0 0000001 00000000 x x xxxxxxx XXXXXXXX
P 0 0000010 00000000 x x xxxxxxx XXXXXXXX
P 0 0000011 00000000 x x xxxxxxx XXXXXXXX
P 0 0000100 00000000 x x xxxxxxx XXXXXXXX
P 0 0000101 00000000 x x xxxxxxx XXXXXXXX
P 0 0000110 00000000 x x xxxxxxx XXXXXXXX
P 0 0000111 00000000 x x xxxxxxx XXXXXXXX
P 0 0001000 00000000 x x xxxxxxx XXXXXXXX
P 0 0001001 00000000 x x xxxxxxx XXXXXXXX
P 0 0001010 00000000 x x xxxxxxx XXXXXXXX
P 0 0001011 00000000 x x xxxxxxx XXXXXXXX
P 0 0001100 00000000 x x xxxxxxx XXXXXXXX
P 0 0001101 00000000 x x xxxxxxx XXXXXXXX
P 0 0001110 00000000 x x xxxxxxx XXXXXXXX
P 0 0001111 00000000 x x xxxxxxx XXXXXXXX
//read 0, write 1, read 1 in ascending order
x 1 xxxxxxx xxxxxxxx P 0 0000000 XXXXXXXX+
x 1 xxxxxxx xxxxxxxx P x xxxxxxx LLLLLLLL
P 0 0000000 11111111 x x xxxxxxx XXXXXXXX
x 1 xxxxxxx xxxxxxxx P 0 0000000 XXXXXXXX+
x 1 xxxxxxx xxxxxxxx P x xxxxxxx HHHHHHHH
...
x 1 xxxxxxx xxxxxxxx P 0 0001111 XXXXXXXX+
x 1 xxxxxxx xxxxxxxx P x xxxxxxx LLLLLLLL
P 0 0001111 11111111 x x xxxxxxx XXXXXXXX
x 1 xxxxxxx xxxxxxxx P 0 0001111 XXXXXXXX+
x 1 xxxxxxx xxxxxxxx P x xxxxxxx HHHHHHHH
//read 1, write 0, read 0 in ascending order
x 1 xxxxxxx xxxxxxxx P 0 0000000 XXXXXXXX+
x 1 xxxxxxx xxxxxxxx P x xxxxxxx HHHHHHHH
P 0 0000000 00000000 x x xxxxxxx XXXXXXXX
x 1 xxxxxxx xxxxxxxx P 0 0000000 XXXXXXXX+
x 1 xxxxxxx xxxxxxxx P x xxxxxxx LLLLLLLL
...
存储器技术-嵌入式存储器的两种可测性设计方式
//read 0, write 1, read 1 in degressive order
...
在测试过程中,工具读入测试向量文件,通过macrotest register_instance_name pattern_file语句,实现RegisterFile的并行测试。最后生成MacroTest测试向量文件,并对输出的向量进行仿真和调试。
结合MacroTest测试方式的特点,在设计过程中应该尽量满足以下几个条件:第一,对每个需要观测的macro的输出引脚都有观测路径;第二,被控或是被观测的macro的所有输入输出引脚都必须是单向的;第三,当扫描链处在shift状态时,macro能够保持状态不变。如果在设计中被测的macro对象之间存在太多的交互关系,将会花费较多的时间测试。而且macro输出的有效观测路径,需要有一条直接到扫描单元的路径或者至少一条可以被其他扫描单元控制的有效的路径。
4. 总结
这款通信芯片系统包含了多种类型的存储器,且存储器面积占了芯片面积的45%,测试面临较大的挑战。在DFT设计过程中考虑具体情况,通过两种测试方式的结合,采用不同的测试策略,最终,使芯片的测试覆盖率达到了99.65%。
随着芯片设计向片内存储器不断增加、存储器所占面积不断扩大的方向发展,存储器内置自测试(MBIST)和MacroTest测试在芯片测试中的位置也越来越重要,它们将成为提高DPM、产品质量以及良品率的关键。而这两者的优化结合,可以更好地完成对芯片的测试,更有效地节约测试的成本。
参考文献
[1] P. Nigh, D. Vallett, A. Patel, J. Wright, F. Motika, D. Forlenza, R. Kurtulik, W. Chong, “FailureAnalysis of Timing and IDDq-only Failures” from SEMATECH Test Methods Experiment, Proc.International Test Conference,1998, pp. 43-52.
[2] N. N. Tendolkar, “Analysis of timing failures due to random AC defects in VLSI modules,” 22nd
Design Automation Conference Proceedings, June, 1985, Las Vegas, pp. 709-714.
[3] C. Pyron, M. Alexander, J. Golab, G. Joos,B. Long,R. Molyneaux, R. Raina, and N. Tendolkar, “DFT Advances in the Motorola’s MPC7400, a PowerPC Microprocessor,” Proc. IEEE International Test Conference, 1999, pp. 137- 146.
[4] E. B. Eichelberger and T. W. Williams, “A logic design structure for LSI Testability,” 14th Design
Automation Conference Proceedings, pp. 462-468, June 20-22, 1977, New Orleans, La.
[5] D. Amason, A. L. Crouch, R. Eisele, G. Giles and M. Mateja, “A Case Study of the Test Development for the 2nd Generation ColdFire Microprocessors,” Proc. International Test Conference, 1997, pp. 424-432.
[6] G. L. Smith, “Model for Delay Faults Based on
Paths,” Proc. International Test Conf., 1985, pp. 342-349.
存储器技术-嵌入式存储器的两种可测性设计方式
[7] Mentor Graphics,“Scan and ATPG Process Guide”,August 2005
[8] John A. Waicukauski et. al, “Transition Fault Simulation by Parallel Pattern Single Fault Propagation,” Proc. IEEE International Test Conference,October 1986, pp. 542-549.
[9] Jacob Savir and Srinivas Patil, “Scan-Based Transition Test,” IEEE Transactions on Computer- Aided Design of Integrated Circuits and Systems, Vol 12, No. 8, August 1993, pp. 1232-1241.
[10] Jose Alvarez et. al., “450 MHz PowerPc Microprocessor with Enhanced Instruction Set and Copper Interconnect,” Proc. ISSCC, 1999.
[11] N. Tendolkar, R. Molyneaux, C. Pyron and R. Raina, “At- speed Testing of Delay Faults for Motorola’s MPC7400, a PowerPC Microprocessor,” Proceedings of the 18th IEEE VLSI Test Symposium, April 2000, pp.3-8.