芯片验证测试&
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
芯片验证测试及失效分析1
檀彦卓韩银和李晓维
摘要本文对验证测试与失效分析技术进行了系统介绍,包括验证测试的一般流程、常用的分析方法以及基于验证测试的失效分析。
通过分析集成电路设计和制造工艺的发展给测试带来的影响,简要介绍了验证测试面临的挑战以及未来关注的若干问题。
1 芯片的验证测试
在现代集成电路制造工艺中,芯片加工需要经历一系列化学、光学、冶金、热加工等工艺环节。
每道工艺都可能引入各种各样的缺陷。
与此同时由于特征尺寸的不断缩小,各类加工设施成本也急剧上升。
例如有人估计90nm器件的一套掩模成本可能超过130万美元。
因此器件缺陷造成的损失代价极为高昂。
在这种条件下,通过验证测试,分析失效原因,减少器件缺陷就成为集成电路制造中不可少的环节。
验证测试(Verification Test , Design Debug)是实现“从设计到测试无缝连接”的关键。
在0.18微米以下的制造工艺下,芯片验证测试变得更加至关重要。
它的主要任务是验证设计和测试程序(Test Programs)的正确性,确定芯片是否符合所有的设计规范([2], pp.21)。
它通过合理的失效分析(Failure Analysis)不仅为探求设计的关键参数所决定的特性空间奠定基础,还为设计人员改进设计及时反馈有效的数据依据,并为优化整体测试流程、减小测试开销以及优化后期的生产测试(Production Test)开拓了便利途径。
对芯片最显著的改进不仅仅在设计流程中产生,而且在芯片调试和验证流程中反复进行。
尤其是在高性能芯片研制过程中,随着芯片复杂度的提高,对验证测试的要求更加严格,与设计流程的交互更加频繁。
因此,从某种意义上说,“设计”与“验证测试”是一个非常密切的“交互过程”。
对于设计工程师而言,关于芯片功能和性能方面的综合数据是关键的信息。
他们通常根据设计规范预先假设出关于芯片各项性能大致的参数范围,提交给验证测试人员,通过验证测试分析后,得出比较真实的性能参数范围或者特定值。
设计工程师再根据这些值进行分析并调整设计,使芯片的性能参数达到符合设计规范的范围。
往往这样的交互过程不只一次。
通常一个健全的验证测试策略包含很多详细的信息。
它一般以数据文件的形式(Data Sheet)为设计人员和测试人员在修复或者完善设计的交互过程中提供有效的数据依据,主要包括芯片的CMOS工艺等的特征描述、工作机理的描述、电气特征(DC参数,AC参数,上/拉电阻,电容,漏电,温度等测试条件,等等)、时序关系图、应用信息、特征数值、芯片电路图、布局图等等([3],pp.24 )。
将芯片在验证测试流程中经过参数测试、功能性测试、结构性测试后得出的测试结果与上述数据信息比较,就会有针对性地反映芯片性能方面存在的种种问题。
依据这些问题,设计工程师可以对设计做出相应的改进。
随着芯片速度与功能的不断提高,超大规模集成电路尤其是集成多核的芯片系统(System-On-a- Chip, SOC)的出现使得芯片迅速投入量产过程难度增加,由此验证测试变
1本文摘自中国科学院计算技术研究所内部刊物—信息技术快报 2004 年第 9 期
得更加必要。
目前,开发低成本高效率的全面验证测试策略成为芯片制造商的关注点。
能够在早期(如初次样片测试阶段)全面地获取芯片品质鉴定的信息变得至关重要。
2 验证测试流程及方法
为了能够较全面地检测芯片各项指标,验证测试一般需要综合多种测试分析方法,并将每种测试分析方法对应的测试向量作为失效分析流程中的“测试任务”或“测试项目”,然后根据每个测试任务的作用以及实际工程的需要,建立一个实际可行的验证测试分析流程。
2.1 建立有效的验证测试流程
“芯片验证的成功起始于设计” 。
改进传统的验证测试流程是一个突破点。
传统的验证测试开发流程采用串行方式(图1.a)。
第一片样片加工出来之前,设计人员获得的芯片性能方面的反馈信息很少,甚至没有。
串行的测试流程中验证测试要等待获得样片后才能开始进行。
这种传统的测试流程延缓了产品面市的速度。
对于设计和测试,这种串行模式的效率很低。
采用验证测试和生产测试并发进行的测试流程是目前比较通用的测试策略。
验证测试和生产测试两者的测试要求不同,互为补充。
故设计和测试人员可以分别考虑两种测试,从而同时加快工作进程,从总体上缩短芯片开发时间。
采用这种并行进行的方法使两者相辅相成,既可以共享设计仿真方面的信息,又可以在投片之前完全调试好测试向量和相关设置,继而顺利启动验证测试,这样大大提高了测试进度。
如图1.b所示,在整体开发过程中,验证测试和生产测试两者并行进行,用来满足各自不同的测试需要。
验证测试通过样片调试(Debugging)和失效分析两种常用方式进行。
高效的芯片调试在加速从设计到量产的过程中起到非常关键的作用。
为了进行调试、提高成品率和进行失效分析,验证测试人员往往采用假设分析方法,以求获得更详细的数据,从而找到特定的错误或被测芯片全面的性能特征。
采用假设分析方法有助于设计和生产工程师探查芯片的“真正潜力”,从而找到机会突破设计局限,扩展芯片的功能以及提高性能。
与生产测试相比,验证分析通常注重的不是成品率而是Shmoo图、位图(Bitmaps)、测试项目的多样化和全面的调试能力。
测试项目很可能包括更多短小的测试向量,用于找出芯片的特定行为并且明确芯片的性能。
为降低调试成本,测试开发人员还常将相关的探测系统与验证系统
配合起来,以更精确地定位设计等方面的问题。
作为生产测试的补充,验证测试可以提供详细的验证结果用以进行失效分析。
例如,可以与散射显微镜、非侵入式探测设备等紧密配合。
验证测试设备可以提供必要的激励,然后通过探测设备捕获芯片内部节点的波形来查出失效原因。
这些原因可能是设计或者工艺差异方面的,有时候还可以查出生产测试程序中的错误。
当前,一些大的测试开发公司已经研制出各种成熟的测试软件工具。
它们不仅可以根据设计与仿真数据自动产生测试向量、测试程序,还可以在投片之前模拟测试仪的环境,提前进行测试程序与芯片之间的交互过程,大大节省了样片验证测试花费的时间,使测试人员集中在调试方面,从而更快速完成调试工作。
2.2 常用的验证测试分析方法
0.13µm甚至更低尺寸的超深亚微米工艺和IP集成技术的发展要求综合多种测试分析方法,互为补充,以满足验证分析芯片不同性能指标的要求,确定芯片失效的原因。
当前主要采用的测试分析方法大致分为三类:
2.2.1 基于参数的验证测试分析方法
该方法已经比较成熟,测试对象一般针对芯片的电气特性,主要包括直流参数(DC)和交流参数(AC)的测试([2],pp21,30)。
设计者可以较方便地估计出芯片工艺、性能及设计方面的缺陷,进行相应的调整和完善。
这种方法测试速度快、测试开销较低,是高效的失效分析途径。
在如今的纳米级制造工艺下,与速度或频率相关的缺陷(Speed-Related Defects)开始成为主导,其中时延故障表现最为突出[4]。
纯粹的交流参数测试并不能有效地检测时延故障。
针对与速度或频率相关的缺陷, A.L.Crouch et.al.[4]提出了基于扫描的AC-Scan技术,基于跳变时延故障(Transition Delay Faults)和通路时延故障(Path Delay Faults)模型,采用高速的系统时钟作为Capture时钟,实现所谓的“真速捕获”响应。
与传统的功能性测试方法相比较,AC-Scan技术具有测试速度快、成本低等优势。
G.Aldrich[5]指出AC-Scan技术将是非常有前景的测试方法。
AC-Scan技术应用到实际验证测试分析实验中,测试覆盖率也很可观[6,7]。
然而,AC-Scan也有缺点。
其局限性在于它对设计有更多的要求。
为避免增加设计难度,也可以采用非Scan的时延故障测试。
2.2.2 基于功能的验证测试分析方法
功能性测试分析方法通过输入测试数据验证芯片是否正确执行设计规范所设定的逻辑功能,以确定芯片能否正常工作。
全面的功能性测试通常考虑检测芯片性能的所有方面,包括电源电压、输入/输出电平与电流、输入/输出信号时序、测试频率、输入信号波形等等[8]。
因此输入的测试数据就包含测试向量文件(指令或激励)、输入信号时序(信号跳变信息)、输入信号波形、输入电流等等信息。
测试人员通常使用一系列专门设计的较短的测试向量来激励特定的电路单元和被测电路网络。
当捕获到的输出响应与期望值不吻合时,就表明芯片在该功能性测试向量上失效了。
通过对芯片电路各组成部分逐一分析,设计人员就能对单个子系统能否正常工作进行确认,或将精力集中在芯片组成部分的缺陷调试方面。
功能测试通常与真速测试结合(At-Speed Test),称为真速功能测试(At-Speed Functional Test)。
真速功能测试在失效分析中也很重要,是验证芯片能否在工作频率下正常运行的有效方法[9]。
随着集成电路复杂度的提高,一个芯片系统可以由上亿个晶体管组成。
这种高度集成的复杂性导致功能性测试分析方法耗时费力,效率低下,且不能达到预期目标。
真速功能性测
试,由于其复杂性、昂贵、高功耗等问题带来的挑战以及测试精度、测试时序的限制使其具有如下明显的缺点[10,11]:
测试向量开发耗时费力(网表仿真时间长,有时要手工调试);
测试成本高(依赖时序和时沿精度很高的测试仪);
难于实施故障诊断(属黑盒测试,需额外的诊断向量)。
2.2.3 基于结构的验证测试分析方法
与功能性测试分析方法不同,结构性测试分析方法主要针对测试电路的结构(底层门电路、芯片内部连线、网表等)进行相应的测试分析。
通过芯片输入管脚施加测试向量和控制信号,通过输出管脚观察内部信号的状态。
该方法灵活性较好,结合可测试性分析技术可以开发多种测试生成算法自动产生电路的测试向量,同时能够有效地评估测试效果。
故结构性测试向量的产生和测试都相对简单。
结构性测试通常采用可测试性设计结构,在芯片开发早期过程中就将“测试功能”有效融合入设计。
即在设计芯片电路之前就开始执行“面向测试的设计方案” 。
它不仅实现了“设计与测试并行开发”的整体流程,还可以实现“片上自动测试结构”(例如,内建自测试,Built-In-Self-Test, BIST),并利用测试点插入(Test Point Insertion)技术大大增加芯片的可观测性和可控制性。
因此它对自动测试设备的依赖性大大降低,可在较低的频率(如20MHz)下占用较少的测试资源(如不需要昂贵的高速测试通道,占用较小的ATE存储空间存储向量等)进行测试。
扫描测试能否替代功能性测试?K.Tumin et al[13]在扫描测试与功能性测试各自的故障覆盖率都较高的前提下对两者进行了比较,发现这些高覆盖率的功能性测试向量并不能检测出扫描测试覆盖不到的故障。
K.Tumin et al [13]通过实验发现:当被测电路模块的扫描测试覆盖率达到98%以上时,功能性测试就不必要了,即此时扫描测试完全可以替代功能性测试。
嵌入式内建自测试方法也是一种降低对ATE依赖性的有效方法,尤其是在测试嵌入存储器方面已被广泛应用([2],pp.529)[14,15,16],且在数据通道设计、随机逻辑方面也有越来越多的应用。
该方法可以最小的外部干预达到较大的故障覆盖率,是测试中很有效的分析方法[9]。
S.Pateras[17]指出将测试功能内嵌入被测芯片中的测试方法将是今后测试的发展趋势。
3 芯片的失效分析
集成电路在研制、生产、和使用中都会发生失效。
通过失效分析工作,可以帮助集成电路设计人员找到设计上的缺陷、工艺参数的不匹配,同时也帮助集成电路应用人员发现使用设计或操作不当等问题。
验证测试重要的一点就在于对每个失效芯片分析引起故障的原因,以确定是制造过程的问题,还是设计或者测试本身的问题,甚至制定规范的问题。
随着集成电路复杂度的不断增加,用于硅片调试和失效分析的验证方法将扮演越来越关键的角色。
这些方法将有效降低成本。
为了确定芯片设计的失效机理和提高成品率,基于验证测试的宏观的失效分析显得更加重要。
验证测试失效分析技术具体来说有以下几个方面的意义:
1. 失效分析是确定芯片失效机理的必要手段;
2. 失效分析为有效的故障诊断提供了必要的信息;
3. 失效分析为设计工程师不断改进或者修复芯片的设计,使之与设计规范更加吻合
提供必要的反馈信息;
4. 失效分析可以评估不同测试向量的有效性,为生产测试提供必要的补充,为验证
测试流程优化提供必要的信息基础。
3.1 失效分析的常用方法
失效分析常用方法有很多,大致分为硬方法(Hard Method)和软方法(Soft Method)两种。
硬方法主要包括使用光电显微镜等硬件设备来检查和确定失效原因,从而改进工艺过程。
目前,这些用于诊断、失效分析的系统和先进的分析设备仪器包括电子束探针(E-beam probe )诊断系统、离子束修补系统(FIB- Focused Ion Beam)、红外热像仪、扫描电镜(SEM- Scanning Electron Microscopy)、共聚焦显微镜、半导体参数分析仪等。
失效分析人员通过使用这些仪器,就能对芯片各表层和纵向剖面进行分析,准确定位芯片缺陷,提供完整的失效分析报告。
例如,电子束诊断系统的探针能够透过芯片表面钝化层探测、采集到器件波形,快速准确地定位和分析故障电路,并提供出较有效的失效信息。
离子束修补系统可对工艺线宽最小至0.35微米的集成电路封装器件或管芯进行修补,包括切割介质、切割金属、淀积金属、淀积二氧化硅,从而实现对集成电路布线修改、测试点制作、电阻修调以及剖面制作。
采用硬方法进行失效分析的集成电路通常需要准备2~5只样品,一般步骤如下[21]:外部目检、电性能测试、对比测试、封装漏气率检测、X-射线检查、内部多余物检查(颗粒碰撞噪声检测PIND-Particle Impact Noise Detection)、静电放电测试、开帽、电性能复测、热性能检测、扫描电镜检查、引线键合强度测试、芯片剪切强度测试、微探针台测试(电测试)、工艺各层剥离。
通过执行以上步骤,设计人员可以在样品研发过程中有针对性地发现设计问题,并能够比较方便地在器件局部区域进行金属连线的切割和修补,从而节约用户的全新改版费用和投片费用,并大大节省了时间。
随着芯片封装技术的进步及互联过程中采用多金属层的发展趋势,结合光子检测方案的背部检测法成为针对电路节点级分析的唯一有效途径。
其主要思想就是利用先进的光子解决方案,通过背面较轻松地进入芯片层面,并避免阻塞金属层的互连,充分利用完全无源和非侵入方法。
当前,光探测是一种比较新的故障隔离技术。
它能够透过硅衬底提供芯片性能方面的信息,避免了多层金属互连结构的妨碍,可在器件的结层面产生能见度,促使设计调试人员快速有效地排除复杂的故障。
一些特定类型的缺陷可以使用相关光学仪器较容易地拍照显示出来。
软方法在本文指的是利用电子设计自动化工具软件进行分析的方法。
它常常基于验证测试流程,结合参数测试、结构性测试以及功能性测试分析方法,在测试机台上利用测试设备进行分析。
软方法分析的对象是基于逻辑模型的故障,回避了对底层物理缺陷的分析,大大降低了失效分析的复杂度。
3.2 验证测试中失效分析的故障模型
在制造过程中,一个复杂芯片发生的物理缺陷种类很多,也很复杂。
在验证测试中,一般将这些缺陷抽象为不同的故障模型,以故障所表现的逻辑行为进行分类。
常见的几个故障
有:1)固定型故障;2)跳变故障;3)开路、短路故障;4)时延故障;5)桥接故障等等。
这些故障通常由确定性测试向量生成算法产生的确定性向量,或者通过伪随机测试向量进行测试。
在实际验证测试中,针对每一类故障都会对应着一个测试向量集合,称为“测试向量集”。
表1列出了我们课题组在测试一款大规模高性能通用CPU时采用的测试向量集。
表1. 针对每类故障的测试向量集
测试向量集覆盖的目标故障种类
连接性测试引脚和内核Core连接性是否良好,是否存在开路、短路故障,主要是检验封装工艺问题
功能性测试一般覆盖电路的静态故障(固定型故障,开路、短路故障)
参数测试由ATE参数测量单元(PMU)进行该项测试,包含DC,AC参数。
参考值来源于设计人员的期望值
全扫描/边界扫描固定型故障、部分时延故障
存储器内建自测试覆盖RAM中固定型故障、跳变故障、耦合故障、地址译码故障等
时延故障测试覆盖跳变时延故障、通路时延故障,相应生产缺陷为partially conducting transistors, resistive bridges[20]
Iddq测试伪固定型故障(Pseudo Stuck-at Faults),对应于stuck-on/some stuck-open conditions, resistive bridging faults, partially conducting transistors[20]
3.3 基于验证测试的失效分析流程
验证测试整体流程大致包括参数测试、功能性测试以及结构性测试三大部分。
通常将每种验证测试方法对应的测试向量作为失效分析流程中的“测试任务或测试项目” 。
因此,用于控制整体测试流程的“测试程序”可以根据芯片首次失效的位置和方式,把失效芯片分为若干不同类别,这一过程常称为Binning([3],pp.40),每一类称为一个Bin,并按各自在流程中的顺序标以相应的数字,即Bin1,Bin2等等。
其中成功通过全部测试项目的芯片归为Good Bin,其他则是对应不同失效原因的Bad Bins。
由此基础上进行的失效分析更加有针对性,可以根据不同测试子项目,将发现的失效芯片信息记录下来,以便确定这些芯片失效的原因或者失效的模式。
基于验证测试的“宏观”的失效分析避免了直接分析物理缺陷的复杂性,对于芯片的定性分析是非常有价值的。
它不仅向设计人员反馈了芯片设计缺陷上的一些问题,还对评估芯片性能指标、成品率等提供了重要参考。
图2. 一款大规模高性能通用CPU 的验证测试流程图
图2是我们课题组对一款大规模高性能通用CPU 进行验证时采用的流程图。
一般在实际验证测试工程中,对失效芯片采用“发现故障立即停止测试”测试模式,按照芯片首次失效时刻所对应的测试项目给失效芯片分类,即Binning ,以评估样片的失效原因的范围。
表2是对这款芯片的一个简单的验证测试失效分析实验在“发现故障立即停止测试”的模式下,对22片样片的分析结果。
其中DC 参数测试和结构性测试频率均为20MHz ,功能性测试频率采用20MHz,133MHz,200MHz 三种,AC 参数测试采用133MHz 和200MHz 两种。
其中200MHz 为系统时钟频率。
本项测试中13.62 %没有通过连接性测试,可以估计是封装工艺存在缺陷。
表2. 一个简单的验证测试失效分析结果
(20MHz,133MHz,200MHz) Total number of devices binned = 22
--------------------------------------------------------------
Bin Total %
Good _device 2 9.09
Continuity 3 13.62
Functional 15 68.19
--------------------------------------------------------------
表3列出了采用图2流程对569 只CPU 芯片进行验证测试的结果。
表中列出的“pass”表示在该项目测试下能够通过的芯片数目,“fail”是不能通过的芯片数目。
从表中可以看出,结构性测试向量具有很强的发现失效芯片的能力,通过结构性测试,能发现63.9%的失效芯片。
功能测试向量覆盖失效芯片的能力也很强,然而,其测试时间是结构性测试时间的两倍。
而且,功能性测试向量并不能覆盖所有带缺陷的芯片。
功能测试完以后,尚有36片失效芯片没有被发现。
功能性测试向量的有效性和局限性,一方面说明了在实际测试中,功能测试向量作为测试向量的一个重要部分是非常必要的,另一方面说明了结构测试的必要性。
从表中还可以发现,存储器内建自测试是一个非常有效的测试项目。
它能够在极短的时间(测试时间为0.0035秒)内,发现57个故障片。
表 3. 不同测试项目对故障芯片的覆盖分析
芯片在高速和低速功能测试中的表现是不一致的。
如图3,考察样本总数为108片未通过功能性测试项目而失效的芯片集。
从图上可以看出,133MHz 功能测试可以发现88片失效片,失效芯片覆盖率为81.5%。
而200MHZ 则可以发现108片失效片,此时失效芯片覆
Memory BIST 测试
固定性故障-扫描测试
功能测试pass pass fail fail fail fail pass pass fail fail
pass pass pass fail pass fail 10 22314 22301115 2 1818
142 0 01A
C
参
数
测
试 --
盖率为100%。
就是说即使采用同样的测试向量,使用200MHZ真速测试可以比低速测试(133MHz)多发现20片失效芯片。
这说明了在测试时,采用较高频率的测试(真速测试)可以帮助我们提高测试覆盖率。
图 3. 不同频率下芯片失效分析
4 芯片失效的诊断
随着高性能数字集成系统的快速发展,要求测试程序更加严格缜密。
故障诊断(Fault Diagnosis)变得越来越重要。
它通常在已确定系统或电路有故障的前提下来确定故障的位置,往往还会包括故障的类型和其他问题。
从某种意义上说,故障诊断是设计高性能集成电路系统测试的必要手段。
借助结构化可测性设计技术,芯片系统内部的可观测性大大提高。
但是进行有效的故障诊断仍然存在困难。
例如,采用扫描测试后,若干条扫描链虽然使得电路内部节点具备了较好的可观测性,但测试人员通常还是不能定位芯片失效的位置。
因为,这些失效大多可能是埋藏于嵌入式内核中的。
鉴于以上原因,有效的验证测试所提供的失效分析信息显得十分关键。
该失效分析在测试机台上能比较快速地完成。
它通过自动测试设备测试样片,以“出错信息文件”的格式,提供关于电路内部节点的错误信息文件,其中包括错误类型、发生位置、发生时刻以及实际值等信息,然后通过编程实现格式的自动转换,再利用相应的故障诊断的EDA工具处理后,即可提供出简单而规范的故障定位信息文件,及时反馈给设计人员,最终解决故障定位的问题。
随着深亚微米技术的发展,专用于故障诊断的诊断分析系统面临着一系列挑战。
在“亚波长”环境下制造的芯片工艺特征尺寸已经小于相应制造该芯片的光刻仪器光源的波长。
日趋缩小的特征尺寸增加了成像方法的难度。
先进的多金属层深亚微米特性迫使相应的诊断系统必须具备从器件背面通过硅材料成像的能力。
同时由于硅材料在红外光谱范围内才是透明的,因此先进的诊断系统还必须使用红外光。
然而,深亚微米工艺的芯片的光刻通常是采用深紫外光实现的,当前的红外光谱系统就面临着如何使用分辨率低于深紫外光的红外波长对深亚微米工艺的芯片成像的难题了。
另一方面,诊断系统一般通过对芯片发射的光子量进行计数来测量信号状态转换的时序。
采用深亚微米工艺制造的芯片尺寸更小,导致芯片电路光子发射量更少,获得可接受的信噪比的难度就变得更大了。
同时,深亚微米工艺芯片工作电压的降低促使该问题更加严重。
因此,有效的诊断系统需要采用更精确的解决方法。
当前,一些大的设计与测试开发商正在寻求各种策略,开发相应的诊断平台。
例如采用特殊的透镜设计,改进图像分辨率等等,以实现对小于0.25µm的芯片的精确诊断。