专利名称:检测芯片上缺陷的方法
技术领域:
本发明涉及芯片测试,特别是涉及一种可以用来检测芯片缺陷的方法。
背景技术:
如业界所知,在芯片出厂的前,芯片必须要经过测试,以确保内部电路的运作正常,而随着集成电路(integrated circuit)的尺寸以及内部晶体管的数目越来越大,如何聪明而正确的缺陷诊断(fault diagnosis)便成为集成电路测试的一个重要课题。
当测试芯片时,一般是将一测试讯号输入至芯片之中,来测试芯片是否能正常的处理测试讯号,以产生预期的结果。传统上,芯片测试是利用一死接缺陷模型(stuck-at fault model),死接缺陷模型是假设当一特定节点被判定为缺陷时,这个特定节点必定是一个死接1或是死接0的缺陷。换句话说,这个特定节点必定对应一个高电压电平(逻辑值1)或是一个低电压电平(逻辑值0)上。
扫描,是现在芯片测试中最常使用的一个方法,扫描测试是藉由下面的步骤实施。如业界所习,芯片通常会包含有许多存储器组件(譬如触发器或是锁存器),因此,芯片内部的存储器组件会先被连接成多个扫描链(scanchain)。这些扫描链与移位缓存器的运作方式非常类似;换句话说,存储器组件(扫描链)所储存的数据可以以移位的方式进行存取。因此,在芯片测试的过程中,用来测试的扫描型样(scan pattern)可以以移位的方式输入至扫描链中,而扫描链的测试结果可以以移位的方式,从扫描链中读取出来;如此,便可以依据测试结果是否符合特定的期望值,来判定芯片的状况。
此外,在芯片测试的过程中,会执行一缺陷模拟(fault simulation)的步骤,缺陷模拟用来得知每个扫描型样可检测到的节点;此外,在比较过测试结果与期望值之后,一般会得到一个错误纪录(fail log),错误纪录用来指出在芯片测试中,有哪几个触发器没有输出正确的期望值;因此,藉由错误纪录与缺陷仿真的结果,便可以得出哪些节点是嫌疑节点(代表有可能是缺陷的节点),而哪些节点是安全节点(代表通过芯片测试的节点)。接着,只须对嫌疑节点以及安全节点加以分析,最有机率是缺陷的嫌疑节点就可以确定出来。
在决定好可能的缺陷之后,晶片厂便可以根据缺陷的位置与缺陷发生的原因,对芯片的工艺加以调整,以提升芯片的成品率,进一步的降低芯片制造的成本。
但是,前述的测试机制具有几个问题。首先,由于缺陷模拟的结果通常都包含了非常大的数据量,因此在实际的运作上,不可能将所有的扫描型样都拿来进行缺陷模拟,而仅仅使用了部分的扫描型样,以节省缺陷模拟所需要的执行时间以及庞大的硬件成本。由于所采用的参考数据不多,这样的做法会降低缺陷的命中率(hit rate)。
其次,由于缺陷仿真必须于一芯片上执行,但是缺陷模拟需要庞大的执行时间与存储器空间才能执行,因此在实际操作上,缺陷模拟没有办法同时于许多芯片上执行。
再者,虽然对应扫描型样的嫌疑节点与安全节点可以藉由错误纪录与缺陷仿真的结果确定出来,但是对于如何从嫌疑节点之中寻找缺陷,仍然是一个困难的课题。芯片设计者一般都会利用不同的算法来分析嫌疑节点以及安全节点,以决定出最可能的缺陷,但是由不同算法所决定出来的可能缺陷的命中率(正确率)可能不尽理想。
发明内容
因此本发明的主要目的之一是提供一种可以检测芯片缺陷的方法,以解决已知技术中的问题。
本发明披露了一种用来检测一芯片上一缺陷(defect)的方法,其包含有利用多个扫描型样(scan pattern)来扫描该芯片上多个扫描链(scanchain);对于每一个扫描型样,取得至少一嫌疑节点集合(suspected defectset)或一安全节点集合(unsuspected defect set);取得所有非空集合(non-null)的嫌疑节点集合的一交集,其中非空集合的嫌疑节点集合为至少包含有一嫌疑节点的嫌疑节点集合;取得对应该多个扫描型样的所有安全节点集合的一联集;将该交集减去该联集,以取得一结果嫌疑节点集合;以及根据该结果嫌疑节点集合,以检测该芯片上的该缺陷。
本发明还披露了一种用来检测一芯片上一缺陷(defect)的方法,其包含有使用多个扫描型样,来扫描该芯片上多个扫描链,其中每一个扫描链皆包含有多个触发器;对于每一个扫描型样,取得至少对应一特定触发器的一嫌疑节点集合(suspected defect set)或对应所有扫描链的一安全节点集合(unsuspected defect set);取得对应该特定触发器的所有嫌疑节点集合的一第一联集;取得对应该多个扫描型样的所有安全节点集合的一第二联集;将该第一联集减去该第二联集,以取得一结果嫌疑节点集合;以及根据该结果嫌疑节点集合,来检测该芯片的该缺陷。
本发明还披露了一种用来检测一芯片上一缺陷(defect)的方法,其包含有利用多个扫描型样,来扫描该芯片上的多个扫描链;藉由执行缺陷模拟(fault simulation),以产生一缺陷字典(fault dictionary),该缺陷字典包含有多笔数据(entry),每一笔数据包含有一触发器名称;聚集对应一特定触发器名称的多个特定项目并且于该多个特定项目中,至少将一重复的触发器名称删除,以压缩该缺陷字典,来产生一压缩后缺陷字典;查阅该压缩后缺陷字典,以取得一嫌疑节点集合与一安全节点集合;以及分析该嫌疑节点集合与该安全节点集合,以决定该芯片的该缺陷。
本发明披露了一种压缩缺陷字典的方式以及检测芯片缺陷的算法。因此,本发明不但可以提升检测芯片缺陷的正确率,也同时节省了分析节点时所需要的时间以及储存空间。
图1为本发明用来测试芯片的缺陷诊断的流程图。
图2为图1的步骤110中分析嫌疑节点与安全节点的方法流程图。
图3用来说明单一死接缺陷假设的分析方法。
图4用来说明单一扫描链仅包含有单一缺陷假设下的分析方法。
图5说明了如何将一缺陷字典加以压缩。
附图符号说明
具体实施例方式
在此请参阅图1,图1为本发明用来测试芯片的缺陷诊断的流程图。其包含有下列步骤步骤100提供多个扫描型样;步骤102利用多个扫描型样来扫描芯片,以产生一错误纪录;步骤104利用该多个扫描型样来执行一缺陷模拟(fault simulation),以产生一缺陷字典(fault dictionary);步骤106压缩该缺陷字典,以产生一压缩后缺陷字典;步骤108根据压缩后缺陷字典以及错误纪录,取得多个嫌疑节点与多个安全节点;步骤110将多个嫌疑节点与多个安全节点加以分析,以取得芯片的缺陷位置。
首先,取得多个扫描型样以于其后的芯片测试使用(步骤100)。如业界所已知,扫描型样可由一自动测试产生程序(automatic test programgeneration)产生的。自动测试产生程序为一种可以根据不同待侧电路,自动产生扫描型样的程序工具;换言之,芯片设计者可以藉由自动测试产生程序来产生适当的扫描型样,并且利用这些扫描型样来执行其后的测试步骤。
接着,这些扫描型样会用来测试芯片;如前所述,扫描型样会依序地以移位的方式(shift-in)输入芯片内部的扫描链,并且将芯片处理过的测试结果由扫描链以移位的方式取出(shift-out)。这些测试结果会被纪录于前述的错误纪录中(步骤102);举例来说,错误纪录可包含有下列的信息检测到错误的扫描型样,检测到错误的扫描链号码,以及检测到错误的时钟周期(检测到错误的时钟周期代表检测到错误的触发器),因此,如前所述,这些信息便可用来与缺陷模拟的结果加以比较。
缺陷仿真亦根据多个扫描型样执行,如前所述,缺陷模拟用来指出每一个扫描型样可以检测到的节点。在此请注意,本发明先执行缺陷模拟,以产生一缺陷字典(步骤104);换句话说,缺陷模拟的结果已经收集于缺陷字典中。因此,只要错误纪录一产生出来,便可以直接根据错误纪录来查阅缺陷字典,以得知嫌疑节点以及安全节点。
在此请注意,由于缺陷模拟的结果包含有庞大的数据量,必须花费大量的时间来查阅缺陷字典;因此,本发明先将缺陷字典加以压缩(步骤106),以减少缺陷字典整体的数据量。此外,压缩缺陷字典的方法与相关技术将于以后的披露中详述,故不另赘述于此。
于是,压缩后的缺陷字典便可以充分地用来加强根据错误纪录来搜寻嫌疑节点与安全节点的速度。换句话说,查阅缺陷字典的时间与复杂度可以大幅度的减少,并且嫌疑节点与安全节点也可以以更简单的方式确定出来(步骤108)。
最后,如前所述,藉由分析嫌疑节点与安全节点,便可以得出最有可能的缺陷位置(步骤110)。因此,芯片制造者(譬如晶片厂的工程师)便可以依据决定出来的缺陷位置来修改工艺,以提升成品率。在此请注意,本发明分析嫌疑节点与安全节点的方法将于以下的披露中陈述,故不另赘述于此。
在此请注意,在以下的披露之中,会将图1的步骤110加以详细解说,以使此领域具有通常知识者能确实了解本发明分析嫌疑节点与安全节点的方法。请参阅图2,图2为图1的步骤110中分析嫌疑节点与安全节点的方法流程图。其包含有下列步骤步骤200利用单一死接缺陷的假设,来分析嫌疑节点与安全节点;步骤202利用多个死接缺陷的假设,来分析嫌疑节点与安全节点;步骤204假设单一扫描链仅对应单一缺陷,以分析嫌疑节点与安全节点;若芯片符合此一假设,则接至步骤220;否则接至步骤206;步骤206假设单一扫描链对应多个缺陷,以分析嫌疑节点与安全节点;若芯片符合此一假设,则接至步骤220;否则接至步骤208;步骤208假设单一触发器对应一独特缺陷,以分析嫌疑节点与安全节点;若芯片符合此一假设,则接至步骤220;否则接至步骤210;步骤210以统计方式来分析经过步骤208后所剩下的嫌疑节点;步骤220结束。
在此请注意,于图2中,越前面的步骤所检测出来的缺陷命中率越高。举例来说,步骤200所检测出来的缺陷会比步骤202所检测出来的缺陷来的准确,而步骤206所检测出来的缺陷会比步骤208所检测出来的缺陷来的准确,以此类推。因此,于本发明的一较佳实施例中,前述的步骤200~220依序执行,以使本发明能以最准确的方式检测出芯片上的缺陷。然而,这样的顺序并非本发明的限制,实际上,这些步骤200~220可以同时执行,以利用不同的方式检测出所有有可能的缺陷(包含单一死接缺陷假设下的单一缺陷,以及多个死接缺陷假设下的多个缺陷)。而这些步骤200~220如下所述首先,会藉由单一死接缺陷假设来分析嫌疑节点与安全节点(步骤200)。单一死接缺陷假设代表整个芯片仅仅具有一个死接的缺陷;如业界所已知,只要芯片是一个缺陷芯片,芯片绝大多数都包含多个缺陷。因此,单一死接缺陷假设的限制相当严格,如果最后芯片可以经由单一死接缺陷假设进行分析而得到唯一的一个嫌疑节点,那么这个嫌疑节点便非常有可能是真正的缺陷。所以,单一死接缺陷假设的缺陷命中率是最高的。
而单一死接缺陷假设的分析方式可以由下列的方程式(1)表示的单一死接缺陷=嫌疑节点集合_所有扫描链(AND)-安全节点集合_所有扫描链(OR)...方程式(1)在此请注意,在方程式(1)中,嫌疑节点集合_所有扫描链(AND)代表对应每一个扫描型样的所有扫描链的嫌疑节点集合的交集,并且安全节点集合_所有扫描链(OR)代表对应每一个扫描型样的所有扫描链的安全节点集合的联集。
在此请参阅图3,图3用来说明单一死接缺陷假设的分析方法。如图3所示,每一个扫描型样对应多个字母,其中每一个字母皆用来代表芯片上的一个节点,并且这些对应到每个扫描型样的字母显示出所有扫描链上节点的状况。在此请注意,于图3中,框内部的字母代表嫌疑节点,并且其它在框外部的字母便代表安全节点。举例来说,以扫描型样1为例,字母B,E,L,M,N,O,P,Z,Q代表扫描型样1可以检测到的节点,而这些节点都是可以通过测试的节点(亦即这些节点为安全节点);而在扫描型样3的情况下,字母A,B,C,D,E,F,G,H,J,X,Y,Z代表扫描型样3可以检测到的节点,其中,节点A,B,C,D,E,F,G,H,J为嫌疑节点,而节点X,Y,Z则为安全节点;举例来说,节点A,B,C,D,E,F,G,H,J可能对应到一个未通过测试的触发器(亦即该触发器并未输出正确的测试结果)。
当然,在实际应用上,每一个扫描链可能对应上千个节点,并且扫描型样的数目也更大。然而,图3仅显示8个扫描型样,并且每个扫描型样只对应少数的几个节点,这是为了说明上的方便,而非本发明的限制。
如前所述,在单一死接缺陷假设中,缺陷芯片仅仅只具有一个缺陷。因此,对于每个扫描型样,会先取得所有扫描链的嫌疑节点集合的交集,这是因为在交集里面的嫌疑节点会更有可能是真正的缺陷。在图3的实施例中,对于每个扫描型样,会先取得一个嫌疑节点集合以及一个安全节点集合。举例来说,对于扫描型样1,嫌疑节点集合为一空集合,而安全节点集合包含有所有的节点B,E,L,M,N,O,P,Z,Q。而对于扫描型样2来说,嫌疑节点集合包含有节点A,B,C,D,E,F,G,H,J,而安全节点集合则包含有节点X,Y,Z。
在方程式(1)中,首先必须取得所有嫌疑节点集合的交集;很明显地,在图3中,所有嫌疑节点集合的交集为节点A,B,C,D,E,F,G,H,J与节点C,D,E,F,G,H,I,J,K的交集,因此,交集包含有节点C,D,E,F,G,H,J。
另一方面,必须取得所有安全节点集合的联集。由于在安全节点集合之中的节点起码可以通过至少一个扫描型样的测试;因此,当前述嫌疑节点集合的交集减去安全节点集合的联集之后,可以得出一个结果缺陷集合。这个结果缺陷集合仅仅只包含有剩下的嫌疑节点(没有被联集消去的嫌疑节点)。此时,如果剩下的嫌疑节点只有一个,这代表了分析的结果符合当初的单一死接缺陷假设,因此,这个嫌疑节点便会被视为一个缺陷,而回报至芯片制造者(晶片厂)。举例来说,在图3所示的例子中,节点C,D,E,H为扫描型样4的安全节点,而节点F为扫描型样3的安全节点,以及节点J为扫描型样4的安全节点。因此,最后在结果集合中,只有节点G剩余下来,因此,节点G便会被视为一缺陷,而回报给晶片厂。
此外,如果结果缺陷集合为一空集合,便直接否定单一死接缺陷假设,而接至步骤202以利用多个死接缺陷假设来分析。如果结果缺陷集合包含有不只一个节点,一般有两个方法可以用来解决这样的问题。第一个方法是直接否定单一死接缺陷假设,而接至步骤202以利用多个死接缺陷假设来分析;而第二个方法是利用更多的扫描型样来试试看能不能删除结果缺陷集合里面其它的嫌疑节点。举例来说,在图3的例子中,如果一开始仅只用到前面的扫描型样1~7,那么在结果缺陷集合中,就会包含有节点G与节点J。因此,可以多利用另外一个扫描型样8;在扫描型样8中,可以得知节点J是安全节点,所以最后只有节点G遗留下来,而被视为缺陷。
接着,若单一死接缺陷假设无法将缺陷确定出来(举例来说,结果缺陷集合可能包含超过一个节点或是连一个节点都没有),在步骤202中,是利用多个死接缺陷假设来分析芯片的缺陷。
多个死接缺陷假设,顾名思义,假设芯片包含有多个缺陷。为了更精确地分析芯片,步骤204~210皆为多个死接缺陷假设下的不同分析方法。
在步骤204中,假设一个缺陷位于一条扫描链上。换句话说,一条扫描链仅包含有一个缺陷。这样的假设可以帮助系统在分析缺陷时,能够集中分析一条扫描链,而非前述以整个芯片(所有的扫描链)作为分析的主体。很明显地,在前述的假设之中,在扫描链中得到一个缺陷,会比在整个芯片中得到一个缺陷来得简单的多。而此假设的分析方式可以由下列的方程式(2)说明的单一扫描链上的单一缺陷=嫌疑节点集合_单一扫描链(AND)-安全节点集合_所有扫描链(OR)...方程式(2)相同地,在方程式(2)中,嫌疑节点集合_单一扫描链(AND)代表对应每个扫描型样的单一扫描链的嫌疑节点集合的交集;此外,安全节点集合_所有扫描链(OR)仍然代表对应每一个扫描型样的所有扫描链的安全节点集合的联集。在此请注意,方程式(2)与方程式(1)的相似度很高,唯一的不同点在于于方程式(2)中,是取“单一扫描链”的嫌疑节点集合的交集,而非取“所有扫描链”的嫌疑节点集合的交集。换句话说,在方程式(1)中,嫌疑节点集合的交集是根据整个芯片来得到;而在方程式(2)中,嫌疑节点集合的交集是根据单一扫描链来得到。
在此请参阅图4,图4是用来说明单一扫描链仅包含有单一缺陷假设下的分析方法。在此请注意,为了简化说明,图4仅显示7个扫描型样以及2个扫描链。
相同地,每个扫描型样对应多个节点,而每个节点皆利用不同的字母来标示。这些子母对应到不同的扫描链。在下面的披露中,由于其是利用单一扫描链仅包含有单一缺陷的假设,分析的范围针对单一的扫描链。
举例来说,对于扫描链1与扫描型样1来说,嫌疑节点集合包含有节点B,C,E。而对于扫描链1与扫描型样2来说,嫌疑节点集合包含有节点B,C,D,E。而对于扫描链1与扫描型样3来说,嫌疑节点集合包含有节点B,C,E,以此类推。
因此,对于扫描链1来说,嫌疑节点集合的交集包含有节点B,C,E。在此请注意,由于方程式(2)中,联集包含有所有扫描链的安全节点,因此联集的范围是根据整体芯片(所有扫描链)的节点来取得。这代表在嫌疑节点集合的交集减去安全节点集合的联集之后,所得到的结果缺陷集合不会包含有任何一个通过测试的节点(安全节点)。在本实施例中,对于扫描链1与扫描型样4来说,节点E为一安全节点;而对于扫描链2与扫描型样7来说,节点C为一安全节点。因此,节点C与节点E便会从交集中删除,最后只有节点B留下来。
因为对于扫描链1来说,仅仅只有节点B在结果缺陷集合中,这样的结果符合单一扫描链仅包含有单一缺陷的假设,因此,节点B会被视为一个缺陷。
另一方面,对于扫描链2来说,嫌疑节点集合的交集为节点J,X,Y,Z与节点J,X,K,L,M,Z的交集,因此,交集包含有节点J,X,Z。但是,对于扫描链1与扫描型样5来说,节点X与节点Z皆为安全节点;因此,结果缺陷集合仅包含有节点J。根据前述的相同逻辑,节点J也会被视为一个缺陷。
相同地,如果前述的结果缺陷集合包含有超过一个的节点,或是甚至不包含任何一个节点时。其解决方式也是相当类似。其一便是利用更多的扫描型样来检测出结果缺陷集合里面的节点是否有一些是安全节点。而另外一个方法便是直接否定先前的假设,并且接至步骤206以进行分析。
在步骤206中,假设多个缺陷位于单一扫描链中。在此请注意,为了简化分析,“多个缺陷位于单一扫描链”可以解释为“单一缺陷位于一个子扫描链”。子扫描链(sub-chain)定义为单一扫描链的一个子集合;举例来说,一个子扫描链可以包含有单一扫描链中的数个触发器。
在实际应用上,子扫描链藉由对应嫌疑节点的触发器(亦即输出错误值的触发器)的分布情况来决定。因为正常来说,一个缺陷通常会影响邻近区域的数个触发器,因此,对应到嫌疑节点的触发器经常是具有区域性的。所以,对应嫌疑节点的触发器的分布情况可以用来作为区分子扫描链的一个准则。
而“单一缺陷位于一子扫描链”的假设的分析方式可以由下列的方程式(3)说明的位于一子扫描链的单一缺陷=嫌疑节点集合_单一子扫描链(AND)-安全节点集合_所有扫描链(OR)...方程式(3)相同地,在方程式(3)中,嫌疑节点集合_单一子扫描链(AND)代表对应每个扫描型样的单一子扫描链的嫌疑节点集合的交集;此外,安全节点集合_所有扫描链(OR)仍然代表对应每一个扫描型样的所有扫描链的安全节点集合的联集。
在此请注意,方程式(3)与方程式(2)的相似度很高,唯一的不同点在于于方程式(3)中,是取“单一子扫描链”的嫌疑节点集合的交集,来取代取“单一扫描链”的嫌疑节点集合的交集,揭露至此,此领域具有通常知识者应可理解方程式(3)的操作与实施方式,故不另赘述。换句话说,如果方程式(3)中,交集减去联集后所得到的结果缺陷集合仅仅只包含有一个节点,那么代表该节点符合“单一缺陷位于一子扫描链”的假设,因此该节点会被视为一缺陷。
如果“单一缺陷位于一子扫描链”的假设仍然没有办法确实的分析出可能的缺陷,于步骤208中,分析的范围便会更加的缩小至最基本的触发器。因此,在步骤208中,假设一独特缺陷位于一个触发器。
而根据“一独特缺陷位于一个触发器”假设的分析方式,可用下列的方程式(4)说明的位于一触发器的独特缺陷=嫌疑节点集合_触发器(OR)-安全节点集合_所有扫描链(OR)...方程式(4)在方程式(4)中,嫌疑节点集合_触发器(OR)代表对应每个扫描型样的单一触发器的嫌疑节点集合的联集;此外,安全节点集合_所有扫描链(OR)仍然代表对应每一个扫描型样的所有扫描链的安全节点集合的联集。
在此请注意,与方程式(1)~(3)有所不同,在方程式(4)中,不在使用交集而改用联集的方式。这是因为一个触发器所对应的节点为数并不多,不像一个子扫描链或是一个扫描链所对应到的节点数量都相当的大,如果在方程式(4)中仍然以交集的方式进行运算,限制会过于严苛,导致最后的结果缺陷集合都只能得到一个空集合的结果;这样反而不容易找出可疑的缺陷。因此,“独特缺陷”这个名词也是用来与前面“单一缺陷”的名词做出区隔,这隐含了独特缺陷的认定条件并不如前述的单一缺陷的认定条件那么严苛,独特缺陷只是触发器中一个比较有可能是缺陷的节点。
相同地,如果联集减去联集所得到的结果缺陷集合仅包含有一个节点,那么这个节点便会被视为独特缺陷。此外,在方程式(4)的表达式中,可以了解到,独特缺陷并不需要同时被超过一个扫描型样检测到;当一个节点是所有节点之中,唯一一个不是其它扫描型样的安全节点的,那么这个节点便会被视为是独特缺陷。
此时,如果在“独特缺陷位于一触发器”假设下的结果缺陷集合包含有数个节点,那么便必须从数个节点之中选择出一个节点并且将该节点视为一缺陷。在步骤210中,结果缺陷集合中的数个节点将经由一统计结果来分析,以从数个节点中选择一个作为最可能的缺陷。在本发明中,有两种的统计结果可以用来选择出适用的节点。
第一种统计结果是一个节点影响到的触发器总数。举例来说,如果在结果缺陷集合中,其中一个节点A对七个触发器来说,都是嫌疑节点;而节点B仅仅只为3个触发器的嫌疑节点。那么很明显地,节点A比较有可能是真正的缺陷,因此于步骤210中会将节点A选择出来。
第二种统计结果是一个节点影响到的扫描型样总数。举例来说,如果在结果缺陷集合中,其中一个节点A对8个扫描型样来说,都是嫌疑节点;而节点B仅仅只为3个扫描型样的嫌疑节点。那么很明显地,节点A比较有可能是真正的缺陷,因此于步骤210中会将节点A选择出来。
在前述的步骤200~210中,有可能的缺陷应该都已经决定出来,因此晶片厂便可以依据这些缺陷,来修正芯片的工艺,以获得更高的成品率(步骤220)。
在前面的披露中,无论是采用何种假设,当结果缺陷集合包含有超过一个的节点时,一个最常用的做法便是利用更多的扫描型样加以分析。如前所述,当使用到更多的扫描型样时,就必须根据这些扫描型样来进行缺陷模拟,以得知这些扫描型样所检测到的节点;然而,缺陷模拟的结果会收录于缺陷字典之中,因此缺陷字典会更大的数据量。因此,如果必须使用到更多的扫描型样,意味着必须建置更大的缺陷字典,很明显地,更大的缺陷字典不但需要更大的储存空间,也使得查找缺陷字典时更加不易。
对于前述的问题,最好的解决方式便是以聪明的方法来压缩缺陷字典。这也是为什么图1的步骤106中,必须要将缺陷字典加以压缩。而缺陷字典的压缩方式将于以下陈述请参阅图5,图5说明了如何将一缺陷字典压缩。图5显示了一个ATPG所输出缺陷字典的一部份500以及压缩过后的缺陷字典的一部份510。
在原本的缺陷字典500中,每一笔数据都具有扫描型样的号码,节点号码,期望值,以及触发器名称。如图5所示,触发器的名称相当的冗长,会占据很多的储存空间。此外,对于节点号码795685,796769,1510253来说,触发器名称“CORCORE.NBLINKQ.NBSMRSQ.I_NBSMRSQ.I_EDB_DQ.DQ.DATA_BUF_REG12_45.VPG4.DFFX0”都是相同的。这代表在扫描型样1中,节点795685,796769,1510253会被相同的触发器检测到。很明显地,触发器名称会重复三次,而且由于这几笔数据都是以随机数的方式储存于缺陷字典中,因此搜寻不易。
因此,在压缩后缺陷字典510中,对应到一特定触发器名称的数据会收集起来,并且会将这几笔数据中,重复的触发器名称加以删除。如图5所示,对应到一扫描型样以及一特定触发器的所有的节点会以一笔数据的形式,储存于压缩后的缺陷字典510中;这样的做法可以加速搜寻的速度。举例来说,对于前述的触发器“CORCORE.NBLINKQ.NBSMRSQ.I_NBSMRSQ.I_EDB_DQ.DQ.DATA_BUF_REG12_45.VPG4.DFFX0”,对应的节点号码795685,796769,1510253会收录于同一笔数据。这无疑的加快了搜寻的速度,并且节省了储存空间。
相较于已知技术,本发明披露了一种压缩缺陷字典的方式以及检测芯片缺陷的算法。因此,本发明不但可以提升检测芯片缺陷的正确率,也同时节省了分析节点时所需要的时间以及储存空间。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。
权利要求
1.一种用来检测一芯片上一缺陷的方法,其包含有利用多个扫描型样来扫描该芯片上多个扫描链;对于每一个扫描型样,取得至少一嫌疑节点集合或一安全节点集合;取得所有非空集合的嫌疑节点集合的一交集,其中非空集合的嫌疑节点集合为至少包含有一嫌疑节点的嫌疑节点集合;取得对应该多个扫描型样的所有安全节点集合的一联集;将该交集减去该联集,以取得一结果嫌疑节点集合;以及根据该结果嫌疑节点集合,以检测该芯片上的该缺陷。
2.如权利要求1所述的方法,其中每个嫌疑节点集合为一空集合或包含有对应所有扫描链的嫌疑节点,以及每个安全节点集合为一空集合或包含有对应所有扫描链的安全节点。
3.如权利要求2所述的方法,其中检测该芯片的该缺陷还包含有若该结果嫌疑集合仅包含一嫌疑节点,则将该嫌疑节点决定为该芯片的该缺陷。
4.如权利要求1所述的方法,其中每个嫌疑节点集合为一空集合或包含有对应所有扫描链中一特定扫描链的嫌疑节点,以及每个安全节点集合为一空集合或包含有对应所有扫描链的安全节点。
5.如权利要求4所述的方法,其中检测该芯片的该缺陷还包含有若该结果嫌疑集合仅包含一嫌疑节点,则将该嫌疑节点决定为该芯片的该缺陷。
6.如权利要求1所述的方法,其中每个嫌疑节点集合为一空集合或包含有对应一特定扫描链中一子扫描链的嫌疑节点,以及每个安全节点集合为一空集合或包含有对应所有扫描链的安全节点。
7.如权利要求4所述的方法,其中检测该芯片的该缺陷还包含有若该结果嫌疑集合仅包含一嫌疑节点,则将该嫌疑节点决定为该芯片的该缺陷。
8.如权利要求6所述的方法,其中每个扫描链皆包含有多个触发器,以及该方法还包含有根据该特定扫描链中,对应嫌疑缺陷的多个触发器的分布情况,来决定该特定扫描链的该子扫描链。
9.如权利要求1所述的方法,其还包含有藉由执行缺陷模拟,以产生一缺陷字典;将该缺陷字典加以压缩,以产生一压缩后缺陷字典;并且取得该嫌疑节点集合与该安全节点集合的步骤包含有查阅该压缩后缺陷字典,以取得该嫌疑节点集合与该安全节点集合。
10.如权利要求9所述的方法,其中每个扫描链皆包含有多个触发器,该缺陷字典包含有多笔数据,每一笔数据纪录有一触发器名称,以及压缩该缺陷字典的方法包含有聚集对应一特定触发器名称的多笔特定数据;以及于该多笔特定数据中,至少将一重复的触发器名称删除。
11.一种用来检测一芯片上一缺陷的方法,其包含有使用多个扫描型样,来扫描该芯片上多个扫描链,其中每一个扫描链皆包含有多个触发器;对于每一个扫描型样,取得至少对应一特定触发器的一嫌疑节点集合或对应所有扫描链的一安全节点集合;取得对应该特定触发器的所有嫌疑节点集合的一第一联集;取得对应该多个扫描型样的所有安全节点集合的一第二联集;将该第一联集减去该第二联集,以取得一结果嫌疑节点集合;以及根据该结果嫌疑节点集合,来检测该芯片的该缺陷。
12.如权利要求11所述的方法,其中检测该芯片的该缺陷的步骤还包含有若该结果嫌疑节点集合仅包含有一嫌疑节点,则将该嫌疑节点决定为该芯片的该缺陷。
13.如权利要求11所述的方法,其中检测该芯片的该缺陷的步骤还包含有若该结果嫌疑节点集合包含有多个嫌疑节点,则从该多个嫌疑节点之中选择一特定嫌疑节点作为该芯片的缺陷;其中在该多个嫌疑节点之中,该特定嫌疑节点为被最多扫描型样检测到的嫌疑节点。
14.如权利要求11所述的方法,其中检测该芯片的该缺陷的步骤还包含有若该结果嫌疑节点集合包含有多个嫌疑节点,则从该多个嫌疑节点之中选择一特定嫌疑节点作为该芯片的缺陷;其中在该多个嫌疑节点之中,该特定嫌疑节点为影响最多触发器的扫描嫌疑节点。
15.如权利要求11所述的方法,其还包含有藉由执行缺陷模拟,以产生一缺陷字典;将该缺陷字典加以压缩,以产生一压缩后缺陷字典;并且取得该嫌疑节点集合与该安全节点集合的步骤包含有查阅该压缩后缺陷字典,以取得该嫌疑节点集合与该安全节点集合。
16.如权利要求15所述的方法,其中每个扫描链皆包含有多个触发器,该缺陷字典包含有多笔数据,每一笔数据纪录有一触发器名称,以及压缩该缺陷字典的方法包含有聚集对应一特定触发器名称的多笔特定数据;以及于该多笔特定数据中,至少将一重复的触发器名称删除。
17.一种用来检测一芯片上一缺陷的方法,其包含有利用多个扫描型样,来扫描该芯片上的多个扫描链;藉由执行缺陷模拟,以产生一缺陷字典,该缺陷字典包含有多笔数据,每一笔数据包含有一触发器名称;聚集对应一特定触发器名称的多个特定项目并且于该多个特定项目中,至少将一重复的触发器名称删除,以压缩该缺陷字典,来产生一压缩后缺陷字典;查阅该压缩后缺陷字典,以取得一嫌疑节点集合与一安全节点集合;以及分析该嫌疑节点集合与该安全节点集合,以决定该芯片的该缺陷。
全文摘要
一种用来检测一芯片上一缺陷的方法,该方法包含有利用多个扫描型样来扫描该芯片上多个扫描链;对于每一个扫描型样,取得至少一嫌疑节点集合或一安全节点集合;取得所有非空集合的嫌疑节点集合的一交集,其中非空集合的嫌疑节点集合为至少包含有一嫌疑节点的嫌疑节点集合;取得对应该多个扫描型样的所有安全节点集合的一联集;将该交集减去该联集,以取得一结果嫌疑节点集合;以及根据该结果嫌疑节点集合,以检测该芯片上的该缺陷。
文档编号G01R31/28GK101042423SQ20061006801
公开日2007年9月26日 申请日期2006年3月23日 优先权日2006年3月23日
发明者叶家宪, 王淳生 申请人:矽统科技股份有限公司