-1-芯片验证测试及失效分析1檀彦卓韩银和李晓维摘要本文对验证测试与失效分析技术进行了系统介绍,包括验证测试的一般流程、常用的分析方法以及基于验证测试的失效分析。通过分析集成电路设计和制造工艺的发展给测试带来的影响,简要介绍了验证测试面临的挑战以及未来关注的若干问题。1芯片的验证测试在现代集成电路制造工艺中,芯片加工需要经历一系列化学、光学、冶金、热加工等工艺环节。每道工艺都可能引入各种各样的缺陷。与此同时由于特征尺寸的不断缩小,各类加工设施成本也急剧上升。例如有人估计90nm器件的一套掩模成本可能超过130万美元。因此器件缺陷造成的损失代价极为高昂。在这种条件下,通过验证测试,分析失效原因,减少器件缺陷就成为集成电路制造中不可少的环节。验证测试(VerificationTest,DesignDebug)是实现“从设计到测试无缝连接”的关键。在0.18微米以下的制造工艺下,芯片验证测试变得更加至关重要。它的主要任务是验证设计和测试程序(TestPrograms)的正确性,确定芯片是否符合所有的设计规范([2],pp.21)。它通过合理的失效分析(FailureAnalysis)不仅为探求设计的关键参数所决定的特性空间奠定基础,还为设计人员改进设计及时反馈有效的数据依据,并为优化整体测试流程、减小测试开销以及优化后期的生产测试(ProductionTest)开拓了便利途径。对芯片昀显著的改进不仅仅在设计流程中产生,而且在芯片调试和验证流程中反复进行。尤其是在高性能芯片研制过程中,随着芯片复杂度的提高,对验证测试的要求更加严格,与设计流程的交互更加频繁。因此,从某种意义上说,“设计”与“验证测试”是一个非常密切的“交互过程”。对于设计工程师而言,关于芯片功能和性能方面的综合数据是关键的信息。他们通常根据设计规范预先假设出关于芯片各项性能大致的参数范围,提交给验证测试人员,通过验证测试分析后,得出比较真实的性能参数范围或者特定值。设计工程师再根据这些值进行分析并调整设计,使芯片的性能参数达到符合设计规范的范围。往往这样的交互过程不只一次。通常一个健全的验证测试策略包含很多详细的信息。它一般以数据文件的形式(DataSheet)为设计人员和测试人员在修复或者完善设计的交互过程中提供有效的数据依据,主要包括芯片的CMOS工艺等的特征描述、工作机理的描述、电气特征(DC参数,AC参数,上/拉电阻,电容,漏电,温度等测试条件,等等)、时序关系图、应用信息、特征数值、芯片电路图、布局图等等([3],pp.24)。将芯片在验证测试流程中经过参数测试、功能性测试、结构性测试后得出的测试结果与上述数据信息比较,就会有针对性地反映芯片性能方面存在的种种问题。依据这些问题,设计工程师可以对设计做出相应的改进。随着芯片速度与功能的不断提高,超大规模集成电路尤其是集成多核的芯片系统(System-On-a-Chip,SOC)的出现使得芯片迅速投入量产过程难度增加,由此验证测试变1本文摘自中国科学院计算技术研究所内部刊物—信息技术快报2004年第9期-2-得更加必要。目前,开发低成本高效率的全面验证测试策略成为芯片制造商的关注点。能够在早期(如初次样片测试阶段)全面地获取芯片品质鉴定的信息变得至关重要。2验证测试流程及方法为了能够较全面地检测芯片各项指标,验证测试一般需要综合多种测试分析方法,并将每种测试分析方法对应的测试向量作为失效分析流程中的“测试任务”或“测试项目”,然后根据每个测试任务的作用以及实际工程的需要,建立一个实际可行的验证测试分析流程。2.1建立有效的验证测试流程“芯片验证的成功起始于设计”。改进传统的验证测试流程是一个突破点。传统的验证测试开发流程采用串行方式(图1.a)。第一片样片加工出来之前,设计人员获得的芯片性能方面的反馈信息很少,甚至没有。串行的测试流程中验证测试要等待获得样片后才能开始进行。这种传统的测试流程延缓了产品面市的速度。对于设计和测试,这种串行模式的效率很低。采用验证测试和生产测试并发进行的测试流程是目前比较通用的测试策略。验证测试和生产测试两者的测试要求不同,互为补充。故设计和测试人员可以分别考虑两种测试,从而同时加快工作进程,从总体上缩短芯片开发时间。采用这种并行进行的方法使两者相辅相成,既可以共享设计仿真方面的信息,又可以在投片之前完全调试好测试向量和相关设置,继而顺利启动验证测试,这样大大提高了测试进度。如图1.b所示,在整体开发过程中,验证测试和生产测试两者并行进行,用来满足各自不同的测试需要。验证测试通过样片调试(Debugging)和失效分析两种常用方式进行。高效的芯片调试在加速从设计到量产的过程中起到非常关键的作用。为了进行调试、提高成品率和进行失效分析,验证测试人员往往采用假设分析方法,以求获得更详细的数据,从而找到特定的错误或被测芯片全面的性能特征。采用假设分析方法有助于设计和生产工程师探查芯片的“真正潜力”,从而找到机会突破设计局限,扩展芯片的功能以及提高性能。与生产测试相比,验证分析通常注重的不是成品率而是Shmoo图、位图(Bitmaps)、测试项目的多样化和全面的调试能力。测试项目很可能包括更多短小的测试向量,用于找出芯片的特定行为并且明确芯片的性能。为降低调试成本,测试开发人员还常将相关的探测系统与验证系统-3-配合起来,以更精确地定位设计等方面的问题。作为生产测试的补充,验证测试可以提供详细的验证结果用以进行失效分析。例如,可以与散射显微镜、非侵入式探测设备等紧密配合。验证测试设备可以提供必要的激励,然后通过探测设备捕获芯片内部节点的波形来查出失效原因。这些原因可能是设计或者工艺差异方面的,有时候还可以查出生产测试程序中的错误。当前,一些大的测试开发公司已经研制出各种成熟的测试软件工具。它们不仅可以根据设计与仿真数据自动产生测试向量、测试程序,还可以在投片之前模拟测试仪的环境,提前进行测试程序与芯片之间的交互过程,大大节省了样片验证测试花费的时间,使测试人员集中在调试方面,从而更快速完成调试工作。2.2常用的验证测试分析方法0.13µm甚至更低尺寸的超深亚微米工艺和IP集成技术的发展要求综合多种测试分析方法,互为补充,以满足验证分析芯片不同性能指标的要求,确定芯片失效的原因。当前主要采用的测试分析方法大致分为三类:2.2.1基于参数的验证测试分析方法该方法已经比较成熟,测试对象一般针对芯片的电气特性,主要包括直流参数(DC)和交流参数(AC)的测试([2],pp21,30)。设计者可以较方便地估计出芯片工艺、性能及设计方面的缺陷,进行相应的调整和完善。这种方法测试速度快、测试开销较低,是高效的失效分析途径。在如今的纳米级制造工艺下,与速度或频率相关的缺陷(Speed-RelatedDefects)开始成为主导,其中时延故障表现昀为突出[4]。纯粹的交流参数测试并不能有效地检测时延故障。针对与速度或频率相关的缺陷,A.L.Crouchet.al.[4]提出了基于扫描的AC-Scan技术,基于跳变时延故障(TransitionDelayFaults)和通路时延故障(PathDelayFaults)模型,采用高速的系统时钟作为Capture时钟,实现所谓的“真速捕获”响应。与传统的功能性测试方法相比较,AC-Scan技术具有测试速度快、成本低等优势。G.Aldrich[5]指出AC-Scan技术将是非常有前景的测试方法。AC-Scan技术应用到实际验证测试分析实验中,测试覆盖率也很可观[6,7]。然而,AC-Scan也有缺点。其局限性在于它对设计有更多的要求。为避免增加设计难度,也可以采用非Scan的时延故障测试。2.2.2基于功能的验证测试分析方法功能性测试分析方法通过输入测试数据验证芯片是否正确执行设计规范所设定的逻辑功能,以确定芯片能否正常工作。全面的功能性测试通常考虑检测芯片性能的所有方面,包括电源电压、输入/输出电平与电流、输入/输出信号时序、测试频率、输入信号波形等等[8]。因此输入的测试数据就包含测试向量文件(指令或激励)、输入信号时序(信号跳变信息)、输入信号波形、输入电流等等信息。测试人员通常使用一系列专门设计的较短的测试向量来激励特定的电路单元和被测电路网络。当捕获到的输出响应与期望值不吻合时,就表明芯片在该功能性测试向量上失效了。通过对芯片电路各组成部分逐一分析,设计人员就能对单个子系统能否正常工作进行确认,或将精力集中在芯片组成部分的缺陷调试方面。功能测试通常与真速测试结合(At-SpeedTest),称为真速功能测试(At-SpeedFunctionalTest)。真速功能测试在失效分析中也很重要,是验证芯片能否在工作频率下正常运行的有效方法[9]。随着集成电路复杂度的提高,一个芯片系统可以由上亿个晶体管组成。这种高度集成的复杂性导致功能性测试分析方法耗时费力,效率低下,且不能达到预期目标。真速功能性测-4-试,由于其复杂性、昂贵、高功耗等问题带来的挑战以及测试精度、测试时序的限制使其具有如下明显的缺点[10,11]:测试向量开发耗时费力(网表仿真时间长,有时要手工调试);测试成本高(依赖时序和时沿精度很高的测试仪);难于实施故障诊断(属黑盒测试,需额外的诊断向量)。2.2.3基于结构的验证测试分析方法与功能性测试分析方法不同,结构性测试分析方法主要针对测试电路的结构(底层门电路、芯片内部连线、网表等)进行相应的测试分析。通过芯片输入管脚施加测试向量和控制信号,通过输出管脚观察内部信号的状态。该方法灵活性较好,结合可测试性分析技术可以开发多种测试生成算法自动产生电路的测试向量,同时能够有效地评估测试效果。故结构性测试向量的产生和测试都相对简单。结构性测试通常采用可测试性设计结构,在芯片开发早期过程中就将“测试功能”有效融合入设计。即在设计芯片电路之前就开始执行“面向测试的设计方案”。它不仅实现了“设计与测试并行开发”的整体流程,还可以实现“片上自动测试结构”(例如,内建自测试,Built-In-Self-Test,BIST),并利用测试点插入(TestPointInsertion)技术大大增加芯片的可观测性和可控制性。因此它对自动测试设备的依赖性大大降低,可在较低的频率(如20MHz)下占用较少的测试资源(如不需要昂贵的高速测试通道,占用较小的ATE存储空间存储向量等)进行测试。扫描测试能否替代功能性测试?K.Tuminetal[13]在扫描测试与功能性测试各自的故障覆盖率都较高的前提下对两者进行了比较,发现这些高覆盖率的功能性测试向量并不能检测出扫描测试覆盖不到的故障。K.Tuminetal[13]通过实验发现:当被测电路模块的扫描测试覆盖率达到98%以上时,功能性测试就不必要了,即此时扫描测试完全可以替代功能性测试。嵌入式内建自测试方法也是一种降低对ATE依赖性的有效方法,尤其是在测试嵌入存储器方面已被广泛应用([2],pp.529)[14,15,16],且在数据通道设计、随机逻辑方面也有越来越多的应用。该方法可以昀小的外部干预达到较大的故障覆盖率,是测试中很有效的分析方法[9]。S.Pateras[17]指出将测试功能内嵌入被测芯片中的测试方法将是今后测试的发展趋势。3芯片的失效分析集成电路在研制、生产、和使用中都会发生失效。通过失效分析工作,可以帮助集成电路设计人员找到设计上的缺陷、工艺参数的不匹配,同时也帮助集成电路应用人员发现使用设计或操作不当等问题。验证测试重要的一点就在于对每个失效芯片分析引起故障的原因,以确定是制造过程的问题,还是设计或者测试本身的问题,甚至制定规范的问题。随着集成电路复杂度的不断增加,用于硅片调试和失效分析的验证方法将扮演越来越关键的角色。这些方法将有效降低成本。为了确定芯片设计的失效机理和提高成品率,基于验证测试的宏观的失效分析显得更加重要。验证测试失效分析技术具体来说有以下几个方面的意义:-5-1.失效分析是确定芯片失效机理的必要手段;2.失效分析为有效的故障诊断提供了必要的信息;3.失效分析为设计工程师不断改