本系列一共四章,下面是第一部分,主要讨论芯片开发和生产过程中的IC测试基本原理, 内容覆盖了基本的测试原理,影响测试决策的基本因素以及IC测试中的常用术语。
第一章 数字集成电路测试的基本原理
器件测试的主要目的是保证器件在恶劣的环境条件下能完全实现设计规格书所规定的功能及性能指标。用来完成这一功能的自动测试设备是由计算机控制的。 因此,测试工程师必须对计算机科学编程和操作系统有详细的认识。测试工程师必须清楚了解测试设备与器件之间的接口,懂得怎样模拟器件将来的电操作环境,这样器件被测试的条件类似于将来应用的环境。
首先有一点必须明确的是,测试成本是一个很重要的因素,关键目的之一就是帮助降低器件的生产成本。甚至在优化的条件下,测试成本有时能占到器件总体成本的40%左右。良品率和测试时间必须达到一个平衡, 以取得最好的成本效率。
第一节 不同测试目标的考虑
依照器件开发和制造阶段的不同,采用的工艺技术的不同,测试项目种类的不同以及待测器件的不同,测试技术可以分为很多种类。
器件开发阶段的测试包括:
制造阶段的测试包括:
通常的工艺种类包括:
通常的测试项目种类:
第二节 直流参数测试
直流测试是基于欧姆定律的用来确定器件电参数的稳态测试方法。比如,漏电流测试就是在输入管脚施加电压,这使输入管脚与电源或地之间的电阻上有电流通过,然后测量其该管脚电流的测试。输出驱动电流测试就是在输出管脚上施加一定电流,然后测量该管脚与地或电源之间的电压差。
通常的DC测试包括 :
1.所有管脚设为0V,
2.待测管脚上施加正向偏置电流”I”,
3.测量由”I”引起的电压,
4.如果该电压小于0.1V,说明管脚短路,
5.如果电压大于1.0V,说明该管脚开路,
6.如果电压在0.1V和1.0V之间,说明该管脚正常连接。
第三节 交流参数测试
交流参数测试测量器件晶体管转换状态时的时序关系。交流测试的目的是保证器件在正确的时间发生状态转换。输入端输入指定的输入边沿,特定时间后在输出端检测预期的状态转换。
常用的交流测试有传输延迟测试,建立和保持时间测试,以及频率测试等。
传输延迟测试是指在输入端产生一个状态(边沿)转换和导致相应的输出端的状态(边沿)转换之间的延迟时间。该时间从输入端的某一特定电压开始到输出端的某一特定电压结束。 一些更严格的时序测试还会包括以下的这些项目:
三态转换时间测试-
TLZ,THZ: 从输出使能关闭到输出三态完成的转换时间。
TZL,TZH: 从输出使能开始到输出有效数据的转换时间。
存储器读取时间-
从内存单元读取数据所需的时间。测试读取时间的步骤一般如下所示:
1.往单元A写入数据’0’,
2.往单元B写入数据’1’,
3.保持READ为使能状态并读取单元A的值,
4.地址转换到单元B,
5.转换时间就是从地址转换开始到数据变换之间的时间。
写入恢复时间 –在写操作之后的到能读取某一内存单元所必须等待的时间。
暂停时间- 内存单元所能保持它们状态的时间,本质上就是测量内存数据的保持时间。
刷新时间 – 刷新内存的最大允许时间
建立时间 - 输入数据转换必须提前锁定输入时钟的时间 。
保持时间 - 在锁定输入时钟之后输入数据必须保持的时间。
频率- 通过反复运行功能测试,同时改变测试周期,来测试器件运行的速度。周期和频率通常通过二进制搜索的办法来进行变化。频率测试的目的是找到器件所能运行的最快速度。
上面讨论了数字集成电路测试的一些基本目的和原理,同时也定义了测试上的一些关键术语,在接下来的章节里,我们将讨论怎么把这些基本原理应用到实际的IC测试中去。
芯片测试原理讨论在芯片开发和生产过程中芯片测试的基本原理,一共分为四章,下面将要介绍的是第二章。我们在第一章介绍了芯片的基本测试原理,描述了影响芯片测试方案选择的基本因素,定义了芯片测试过程中的常用术语。本文将讨论怎么把这些原理应用到存储器和逻辑芯片的测试上。接下来的第三章将介绍混合信号芯片的测试,第四章会介绍射频/无线芯片的测试。
存储器和逻辑芯片的测试
存储器芯片测试介绍
存储器芯片是在特定条件下用来存储数字信息的芯片。存储的信息可以是操作代码,数据文件或者是二者的结合等。根据特性的不同,存储器可以分为以下几类,如表1所示:
存储器的种类与特性 |
存储器术语的定义
在讨论存储器芯片测试之前,有必要先定义一些相关的术语。
写入恢复时间(Write Recovery Time):一个存储单元在写入操作之后和正确读取之前中间必须等待的时间。
保持时间(Hold Time):输入数据电平在锁存时钟之后必须保持的时间间隔。
Pause Test:存储器内容保持时间的测试。
刷新时间(Refresh Time):存储器刷新的最大时间间隔。
建立时间(Setup Time):输入数据电平在锁存时钟之前必须稳定保持的时间间隔。
上升和下降时间(Rise and Fall Times):功能速度测试是通过重复地进行功能测试,同时改变芯片测试的周期或频率来完成的。测试的周期通常使用二进制搜索的办法来进行改变。这些测试能够测出芯片的最快运行速度。
写入恢复(Write Recovery):一个存储单元在写入操作之后和下一个存储单元能正确读取之前中间必须等待的时间。
读取时间(Access time):通常是指在读使能,片选信号或地址改变到输出端输出新数据的所需的最小时间。读取时间取决于存储器读取时的流程。
存储器芯片测试中的功能测试
存储器芯片必须经过许多必要的测试以保证其功能正确。这些测试主要用来确保芯片不包含一下类型的错误:
存储单元短路:存储单元与电源或者地段路
存储单元开路:存储单元在写入时状态不能改变相邻单元短路:根据不同的短路状态,相邻的单元会被写入相同或相反的数据地址
开路或短路:这种错误引起一个存储单元对应多个地址或者多个地址对应一个存储单元。这种错误不容易被检测,因为我们一次只能检查输入地址所对应的输出响应,很难确定是哪一个物理地址被真正读取。
存储单元干扰:它是指在写入或者读取一个存储单元的时候可能会引起它周围或者相邻的存储单元状态的改变,也就是状态被干扰了。
存储器芯片测试时用于错误检测的测试向量
测试向量是施加给存储器芯片的一系列的功能,即不同的读和写等的功能组合。它主要用于测试芯片的功能错误。常用的存储器测试向量如下所示,分别介绍一下他们的执行方式以及测试目的.
全”0”和全”1”向量: 4n行向量
执行方式:对所有单元写”1”再读取验证所有单元。对所有单元写”0”再读取验证所有单元。
目的:检查存储单元短路或者开路错误。也能检查相邻单元短路的问题。
棋盘格(Checkerboard)向量:4n行向量
执行方式:先运行0-1棋盘格向量,也就是第一个单元写1,第二个单元写0,第三个单元再写1,依此类推,直到最后一个单元,接下来再读取并验证所有单元。再运行一个1-0棋盘格向量,就是对所有单元写入跟0-1棋盘格完全相反的数据,再读取并验证所有单元。
目的:这是功能测试,地址解码和单元干扰的一个最基本最简单的测试向量。它还能检查连续地址错误或者干扰错误,也通常用它作为时间测量时的向量。
Patterns Marching向量:5n行向量
执行方式:先对所有单元写0.读取第一个单元,再对第一个单元写1。再读取第二个单元,再对第二个单元写1,依此类推,直到最后一个单元。最后再重复上述操作,只是写入数据相反。
目的:这是功能测试,地址解码和单元干扰的一个最基本最简单的测试向量。它还能检查连续地址错误或者干扰错误,也通常用它作为时间测量时的向量。
Walking向量:2n^2 行向量
执行方式:先对所有单元写0,再读取所有单元。接下来对第一个单元写1,读取所有单元,读完之后把第一个单元写回0。再对第二个单元写1,读取所有单元,读完之后把第二个单元写回0。依次类推,重复到最后一个单元。等上述操作完成之后,再重复上述操作,只不过写入的数据相反。
目的:检查所有的地址解码错误。它的缺点是它的运行时间太长。假设读写周期为500ns,对一个4K的RAM进行wakling向量测试就需要16秒的测试时间。如果知道存储器的结构,我们可以只进行行或者列的walking以减少测试时间。
Galloping写入恢复向量:12^2n行向量
执行方式:对所有单元写0。再对第一个单元写1(基本单元),读取第二个单元, 然后返回来读取第一个单元。再对第二个单元写0,读第二个单元。接下来再在其它所有单元和基本单元之间重复这个操作。等第一个单元作为基本单元的操作完成之后,再把第二个单元作为基本单元,再作同样的操作。依此类推,直到所有单元都被当过基本单元。最后,再重复上述过程,但写入数据相反。
目的:这是功能测试,地址解码测试和干扰测试一个极好的向量。如果选择适当的时序,它还可以很好地用于写入恢复测试。同时它也能很好地用于读取时间测试。
其他的测试向量都类似于以上这些向量,都基于相同的核心理念。
动态随机读取存储器(DRAM)
动态随机读取存储器(DRAM)的测试有以下的一些特殊要求:
1.行地址和列地址在相同的地址线上输入(行列地址复用)。他们分别通过RAS和CAS信号来锁存。
2.需要在固定的时间间隔内对芯片进行刷新。
3.DRAM能够进行页操作。因此需要保持行地址不变而改变列地址(或者相反)。
逻辑测试介绍
逻辑芯片功能测试用于保证被测器件能够正确完成其预期的功能。为了达到这个目的,必须先创建测试向量或者真值表,才能进检测代测器件的错误。一个真值表检测错误的能力有一个统一的标准,被称作故障覆盖率。测试向量与测试时序结合在一起组成了逻辑功能测试的核心。
测试向量
测试向量—也称作测试图形或者真值表—由输入和输出状态组成,代表被测器件的逻辑功能。输入和输出状态是由字符来表示的,通常1/0用来表示输入状态,L/H/Z用来表示输出状态,X用来表示没有输入也不比较输出的状态。事实上可以用任何一套字符来表示真值表,只要测试系统能够正确解释和执行每个字符相应的功能。
测试向量是存储在向量存储器里面的,每行单独的向量代表一个单一测试周期的“原始“数据。从向量存储器里输入的数据与时序,波形格式以及电压数据结合在一起,通过pin electronic电路施加给待测器件。待测器件的输出通过pin electronic上的比较电路在适当的采样时间与存储在向量存储器里的数据进行比较。这种测试被称作存储响应。
除了待测器件的输入输出数据,测试向量还可能包含测试系统的一些运作指令。比如说,要包含时序信息等,因为时序或者波形格式等可能需要在周期之间实时切换。输入驱动器可能需要被打开或者关闭,输出比较器也可能需要选择性地在周期之间开关。许多测试系统还支持像跳转,循环,向量重复,子程序等微操作指令。不同的测试仪,其测试仪指令的表示方式可能会不一样,这也是当把测试程序从一个测试平台转移到另一个测试平台时需要做向量转换的原因之一。
比较复杂的芯片,其测试向量一般是由芯片设计过程中的仿真数据提取而来。仿真数据需要重新整理以满足目标测试系统的格式,同时还需要做一些处理以保证正确的运行。通常来说测试向量并不是由上百万行的独立向量简单构成的。测试向量或者仿真数据可以由设计工程师,测试工程师或者验证工程师来完成,但是要保证成功的向量生成,都必须对芯片本身和测试系统有非常全面地了解。
测试资源的消耗
当开发一个功能测试时,待测器件各方面的性能与功能都要考虑到。以下这些参数都要仔细地进行测试或设置:
上述的这些资源说明了功能测试会占用测试系统的大部分资源。功能测试主要由两大块组成,一是测试向量文件,另外一块是包含测试指令的主测试程序。测试向量代表了测试待测器件所需的输入输出逻辑状态。主测试程序包含了保证测试仪硬件能产生必要的电压,波形和时序等所必需的信息。(如图所示)
功能测试 |
当功能测试执行的时候,测试系统把输入波形施加给待测器件,并一个周期一个周期,一个管脚一个管脚地监控输出数据。如果有任何的输出数据不符合预期的逻辑状态,电压或者时序,该测试结果被记录为错误。
到现在我们讨论了相对简单的存储器和数字芯片测试的基本测试技术。在此文接下来的两章里,我们将讨论测试更为复杂的混合信号和射频/无线芯片的独特要求。
许伟达
科利登系统有限公司
文章评论(0条评论)
登录后参与讨论