集成电路测试的目的是希望在一批器件中找出有缺陷的器件,从而将交付的DPPM(每百万器件中的缺陷器件数目)降低至100以下。要想达到如此低的缺陷率,必须生成对器件的各种可能缺陷有高覆盖率的测试图样。而通过对自动测试图样生成(ATPG)算法进行一些设计修改,在合理的测试图样数目下达到较高的缺陷覆盖率是可能的。正如许多其他自动化应用一样,我们可以通过基准得分仔细分析ATPG的结果,而且可以通过监测连续版本产品的工具的改善情况来实现更为有效的自动化IC测试。
ATPG性能的重要性
虽然ATPG似乎是一个应在设计流程末期才被执行的批量运行程序,但实际上在整个设计实现阶段,它会以试验模式运行许多次。在设计过程中运行ATPG的目的是希望尽早确定程序所期望的测试覆盖面能否真正达到,并为设计验证产生样本图样。目标是纠正缺陷模型中的不足,以便在设计周期的末端需要时,能够产生最紧凑,覆盖面最大的测试图样。
但如果ATPG的运行时间过长,就不可能在设计中有效运行多次。于是,ATPG的运行时(run-time)性能特性及其改善就成了受到广泛关注的问题。事实证明, ATPG运行时性能与缺陷效率(fault efficiency)和产生的测试图样数目紧密相关,而运行时性能是由产生结果所需的总CPU时间来体现的。缺陷效率这个参数反映了ATPG已成功解决的缺陷占总缺陷的百分比,而测试图样个数则代表ATPG算法为达到缺陷覆盖率而生成的测试的个数。当然,大家都希望运行时间越短越好,缺陷覆盖率越高越好,测试图样个数越少越好,但算法必须在这三个因素间进行一系列折衷。例如,我们实际上可以通过牺牲缺陷覆盖率来缩短CPU运行时间和减少测试图样个数。类似的,也可以通过采用复杂的紧凑方案来减少测试图样个数,这是以牺牲CPU运行时间为代价的。
因此,在运行完全不同的工具或者不同工具的不同版本时,很难进行切实准确的ATPG性能分析,确定运行时间、缺陷效率和测试图样个数。只有当这三个因素中有两个的值相同时,才可能进行比较。但这种情况几乎不可能发生。因此,本文中我们将讨论在几次不同的运行过程之后,如何比较ATPG缺陷效率、运行时间和测试图样个数这三个因素,从而达到对不同ATPG工具或同一工具的不同版本进行比较的目的。
ATPG数值间的关系
当两次ATPG运行的运行时间彼此相差不超过某个特定的百分比时,一种简单的比较ATPG性能的方法就是比较运行时间与缺陷覆盖率的关系。当两次ATPG运行的测试图样个数彼此相差也在合理范围内时,这种方法还比较有用。但事实往往并非如此。对大多数可用于比较的ATPG运行而言,我们都不能做此假设,因此我们需要一种方法来平衡不同ATPG执行之间的性能度量标准。
为此,我们设计了一种平衡了缺陷覆盖率和测试图样个数差异的衡量标准。图1给出了在一次运行例子之后统计得到的ATPG运行时间、缺陷覆盖率和测试图样个数。
图1: 缺陷效率和测试图样个数与运行时间的关系。
从中可以看出,这两个曲线在运行时间的90%范围内线性度都是很高的。缺陷覆盖率在初始缓升之后,实际上就是一条直线,但达到最后10%覆盖率所占用的时间却占整个运行时间的90%。与此类似,测试图样的生成个数在运行时间的90%内也都是线性增长的,只在曲线末端附近呈现不规则性。因此我们可以认为这样的设计具备线性特性。但不同设计之间,曲线的斜率却有差别。
改善因子
善加利用这种线性特性对我们是有好处的。假设我们运行的是同一工具的两个不同版本:运行老版本得到的运行时间为t,生成p个测试图样,达到的缺陷覆盖率为f;运行同样设置的新版本得到的运行时间为T,生成P个测试图样,达到的缺陷覆盖率为F。假设这两次运行得到的缺陷覆盖率和生成的测试图样个数相同,那么我们就可以利用一种叫做改善因子(IF)的比值来描述ATPG性能的改善情况。如果新版本的工具性能更优,那么IF就简单地是老版本运行时间与新版本运行时间的比值:
然而,如果两次运行所达到的缺陷覆盖率有差别,那么在计算改善因子时就必须将达到二者相差的缺陷覆盖率所需耗费的时间适当考虑进来。由于缺陷覆盖率与运行时间之间存在线性关系,而且据观察,90%的运行时间被用来达到最后10%的缺陷覆盖率,因此,我们可以将两次运行在缺陷覆盖率方面的差异转换为一个时间 “系数(credit)”。图2给出了ATPG运行时间线及其在线性区 (即缺陷覆盖率f为90%到100%,运行时间t为10%到90%)内的等效:
图2:基于缺陷覆盖率和运行时间之间的线性关系,缺陷覆盖率间的区别可以转化成一个时间系数。
我们可以根据下式确定运行时间的偏移量,即达到缺陷覆盖率F所额外耗费的ATPG运行时间:
此时,改善因子中就包含一个已恰当考虑了缺陷覆盖率差异的时间系数:
两次运行间测试图样个数的差异也可以用类似的方式转换到运行时间上。然而,在平衡缺陷覆盖率时,检测额外缺陷所需的时间已经考虑了一次,如果此时只是简单地再考虑一次测试图样个数差异导致的时间系数,那么那些为检测额外缺陷而生成的测试图样就考虑了两次。因此,我们计算了检测额外缺陷所需的测试图样个数,然后在总测试图样中减去这些测试图样,于是得到了以下改善因子:
改善因子的平衡结果
为了观察改善因子等式的校正情况,我们首先在两种不同的矢量精简(vector compaction)条件下运行同一版本的ATPG工具,结果如下:
1. 当矢量精简功能打开时,在t=147个CPU秒的时间内,为达到f=97.11%的缺陷覆盖率,生成了p=422个测试图样
2. 当矢量精简功能关闭时,在T=134 个CPU秒的时间内,为达到F=96.96%的缺陷覆盖率,生成了P=444个测试图样
这样算来,在第二个条件下的运行时间比第一个条件下快了147/134=1.1倍。但根据IF等式算,等效改善因子的计算结果为1.0,事实也确实如此,因为这两次运行采用的都是同样的ATPG程序,只是参数有所改动。
然后,我们再用改善因子公式4来比较同一ATPG工具的两个不同版本之间的性能改善情况:版本 1是老版本,版本2是新版本。下表是根据采集到的数据和不同IF标准绘出的IF图:
表1:当考虑到缺陷覆盖率和图样个数的变化因素时,IF衡量标准显示了性能的重大提升。
设计A和设计B采用新版本工具所花费的ATPG CPU运行时间比用旧版本均有所改善(设计A的改善为1.62倍,设计B为1.07倍)。但正如表中所显示的,这种简单的运行时间比较并没有充分体现真正的性能改善情况。当我们将缺陷覆盖率和测试图样个数的变化考虑进来之后,新的IF标准显示,性能提升程度要大得多:设计A改善了1.83倍,而设计B改善了2.05倍。
本文小结
本文中,我们提出,在评估不同工具或同一工具不同版本的性能差异时,必须适当考虑缺陷效率、运行时间和测试图样个数所有这三个基本的ATPG性能特征。我们还研究了一个新的公式,该公式将不同次ATPG运行间的缺陷效率和测试图样个数的差异联系起来,由此我们可以对他们进行一致和可靠的比较,从而评估ATPG运行时间的改善情况。Synopsys利用这一改善因子的各种形式对其ATPG产品TetraMAX 不同版本间的性能改善进行了连续评估。如图3所示,从TetraMAX 2004.12版到 2006.06版,绑定(stuck-at)和跃迁延迟(transition-delay) 测试图样生成的运行时间平均都提升了12倍。可以说,要不是有一种稳定可靠的方法能够测量ATPG性能的真正改善情况,开发人员在评估每个中间版本的代码效率时可能早就遇到困难了。
图3:使用IF,TetraMAX的2004.12 和2006.06版本的绑定和跃迁延迟平均实现了12倍的运行时速度提升。
作者:
Rohit Kapur
科学家
Chris Allsup
自动测试产品行销经理
Synopsys公司