CN101815951B - 用于可配置扫描架构的测试设计优化器 - Google Patents
用于可配置扫描架构的测试设计优化器 Download PDFInfo
- Publication number
- CN101815951B CN101815951B CN200980000211.2A CN200980000211A CN101815951B CN 101815951 B CN101815951 B CN 101815951B CN 200980000211 A CN200980000211 A CN 200980000211A CN 101815951 B CN101815951 B CN 101815951B
- Authority
- CN
- China
- Prior art keywords
- test
- design
- candidate
- pattern generating
- generating algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318544—Scanning methods, algorithms and patterns
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318583—Design for test
Abstract
粗略地说,根据所考虑的电路设计来优化基于扫描的测试架构。在一个实施例中,形成多个候选测试设计。对于每一个候选测试设计来说,根据电路设计和候选测试设计而生成多个测试矢量,并且这些测试矢量优选是使用同一ATPG算法生成的,其中所述算法会在下游使用,以便生成用于制造集成电路器件的最终测试矢量。在这里为每一个候选测试设计都确定了故障覆盖率之类的测试协议质量量度,并且根据对这些测试协议质量量度所进行的比较来选择其中一个候选测试设计,以便在集成电路器件中加以实施。优选地,只有能被ATPG生成的完整测试矢量集合中的采样才被用于确定每一个特定候选测试设计所要发现的潜在故障的数量。
Description
技术领域
本发明涉及用于集成电路的扫描链测试架构,尤其涉及的是依赖于电路设计的测试架构的优化。
背景技术
更大和更复杂的集成电路(IC)逻辑设计导致需要更复杂的测试来确保这些IC具有可靠的性能。该测试可以代表关于IC的设计、制造和服务成本的重要部分。在一个简单的模型中,关于IC的测试可以包括将多个测试模式应用于电路输入端,并且通过监视其输出来检测故障的发生。故障覆盖率指的是测试模式检测潜在故障范围中的每个故障的效能。因此,如果有一组模式能够基本上检测出每个潜在故障,则可以实现接近于100%的故障覆盖率。
为了促成更好的故障覆盖率以及将测试成本减至最小,人们使用DFT(设计测试)。在一种DFT技术中,可以使用逻辑设计中的结构。特别地,在IC中实施的逻辑设计通常包括多个状态寄存器,例如触发器或锁存器之类的顺序存储元件。这些状态寄存器可以连接成具有计算得到的长度的扫描链,其中所述长度会依照设计而改变。在一个实施例中,设计中的所有状态寄存器是可以扫描的,也就是说,每一个状态寄存器都处于扫描链中。扫描链中的状态寄存器通常也被称为扫描单元。在DFT中,每个扫描链都包含了在扫描模式中充当控制和观察节点的扫描输入引脚(在这里也被称为扫描输入端)以及扫描输出引脚。
扫描链是通过对经由扫描单元的预定逻辑信号定时而被加载测试模式的。因此,如果每个扫描链包括500个扫描单元,则使用500个时钟周期来完成加载过程。应该指出的是,为了简单起见,这里描述的某些实施例具有长度相等的扫描链。但在实际实施例中,DFT会尝试创建这个目标,但却很少能实现该目标。因此,在实际实施例中,软件可以补偿不同的扫描链长度,从而确保对来自每个测试模式的输出进行相应的识别和分析。对本领域技术人员来说,这种方法是已知的,因此在这里不对其进行详细说明。
通常,设计越是复杂,设计中包含的触发器也就越多。不幸的是,设计中可以用作扫描链的终端的输入和输出相对较少,每个扫描链的触发器的数量急剧增加。结果,操作扫描链所需要的时间将会急剧增加,在这里将这个时间称为测试应用时间。
图1示出的是用于顺序电路的典型逻辑设计中的相关部分。该设计包括组合逻辑110以及多个状态寄存器112-0、112-1、112-2和112-3(统称为112)。这里使用的术语“组合逻辑”包括直接连接,因此,经由组合逻辑110的逻辑路径可以包括某些仅仅是线路的路径,而不会对其传送的逻辑信号进行中间变更。在图1中只显示了四个状态寄存器,但是很多设计都具有数千或数百万个状态寄存器。在这里为组合逻辑110提供了多个初级逻辑输入PI0、PI1以及PI2以及多个状态寄存器输出Q0、Q1、Q2和Q3。组合逻辑110的输出包括初级输出PO0、PO1和PO2,以及提供给状态寄存器112的下一状态输入D0、D1、D2和D3。虽然图1的示例通常没有指示组件在集成电路芯片上的物理位置,但是所有同步电路设计都可以采用所示方式来绘制。
图1的示例还将状态寄存器112组织成了两个扫描链114-0和114-1(统称为114)。扫描链114-0包括状态寄存器112-0和112-1,而扫描链114-1则包括状态寄存器112-2和112-3。可以看出,在扫描链114-0中,状态寄存器112-0具有与扫描链114-0的扫描输入S10相连的独立扫描输入,并且状态寄存器112-1具有与状态寄存器112-0的输出Q0相连的独立扫描输入。除了与组合逻辑110相连之外,状态寄存器112-1的输出Q1还被提供给了扫描链114-0的扫描输出SO0。同样可以看出的是,在扫描链114-1中,状态寄存器112-2具有与扫描链114-1的扫描输入SI1相连的独立扫描输入,并且状态寄存器112-3具有与状态寄存器112-2的输出Q2相连的独立扫描输入。除了与组合逻辑110相连之外,状态寄存器112-3的输出Q3还被提供给扫描链114-1的扫描输出SO1。通常,在每个扫描链中都包含了两个以上的状态寄存器,但是为使示例简单,在图1的每个扫描链中都只显示了两个状态寄存器。
器件被设计成可选地在两种模式中的任一模式中工作,并且这两种模式有时也被称为工作模式和扫描模式。在工作模式中,用于状态寄存器112的下一状态数据是从组合逻辑110的输出D0-D3获得的。在该模式中,扫描链是不激活的。在扫描模式中,状态寄存器112的下一状态数据是从相应状态寄存器的扫描输入获取的。
图2是图1设计中的某一部分的另一个视图,其中该视图包含了两个状态寄存器112-0和112-1,以及组合逻辑110的一部分。可以看出,在每一个状态寄存器112内部的触发器223的D输入端都插入了复用器222,以便在来自组合组合逻辑110的相应D输入与来自SI0或来自扫描链中的在先状态寄存器112的扫描输入之间进行选择。在图2中,从扫描链中在先元件的相应输出到复用器222输入的连接以及到SI0和SO0之类的扫描输入和输出引脚的连接合在一起被指定为224。通过使用scan_mode(即控制)信号,复用器222可以被配置成允许将扫描输入值移入触发器223,而不经过组合逻辑110。如果器件处于工作模式,则施加于触发器223的时钟(CLK)端子的脉冲将会获取从组合逻辑110输出的值,如果器件处于扫描模式,那么该脉冲会将来自扫描输入SI0的值移入扫描链。在其将来自扫描输入SI0的值移入扫描链的同时,它还经由扫描输出SO0移出目前处于状态寄存器112中的值。关于“实施”扫描链的处理的一部分包括将D触发器223之类的电路设计中的寄存器替换成类似于扫描寄存器112的寄存器/复用器组合,并且添加扫描链互连224。
图3示出的是一个用于为特定被测器件处理单个扫描测试模式的标准流程300。在流程300中,步骤310将器件设置为扫描模式。步骤302将扫描输入值移入激活的扫描链。步骤303退出扫描模式,由此将器件返回到工作模式。步骤304将附加激励应用于测试电路输入PI0~PI2。如这里使用的,激励同时包含了应用于初级输入PI0~PI2的值以及移入到扫描链中的值。在这里,用于特定测试迭代的激励有时也被称为测试模式或测试矢量。步骤305通过对时钟施以脉动(pulse)来获取状态寄存器112中被测器件的响应。步骤306将器件再次设置成扫描模式,并且步骤307将扫描输出值从激活的扫描链移出。步骤308再次将器件设置成工作模式。器件对测试激励作出的响应由外部设备进行处理,以便检测被测器件的故障,该响应可以包括步骤307中扫描输出的值以及在初级输出PO0~PO2上监视的值。
很明显,步骤301、303~306以及308只在测试器上耗费了一个时钟周期。但是,诸如步骤302和307之类的每个移动操作都会耗费与最长扫描链一样多的时钟周期。在复杂的设计中有可能包含超过百万个的触发器。如果只能提供10个扫描链,那么每个扫描链将会具有100,000(1,000,000/10)个触发器,由此需要100,000个时钟周期来处理单个扫描测试模式。因此,无论通过相邻测试模式的重叠扫描操作实现怎样的优化,测试应用时间都是受控于扫描操作的。
通过使用确定的自动测试模式生成(ATPG),可以产生一组测试模式,以便在测试依照特定电路设计制造的器件中使用。ATPG通常是如下工作的:分析电路设计,识别整套“潜在”故障,然后尝试产生测试最大潜在故障集合所需要的最小测试模式集合。理论上,故障覆盖率接近于100%,但对复杂的电路设计来说,这需要在测试应用设备中具有大量的存储空间,以便将其用于作为激励施加的大量模式以及每个测试模式的预期响应值。ATPG软件通常可以使用单个测试模式来组合多个故障的测试,但是所需要的测试模式数量仍旧是非常庞大的。
某些常规测试架构利用的是这样的观察,即通常只需要设置测试模式中有限数量的位置,即能检测出任何特定故障。对于典型的测试模式来说,只有2%的激励值是所需的。而对测试模式的剩余部分来说,所应用的值对检测该故障的处理毫无影响。在标记速记法中,当设计测试模式时,测试模式中不起作用的位置被称为“不关心(donot care)”位置,并且通常是用逻辑X而不是0或1表示的。
在某些较新的测试架构中,每一个器件扫描输入都与多个扫描链输入相连。在具有N个扫描链和m个器件扫描输入的设计中,每一个扫描输入值都被提供给N/m个扫描链。由此,与传统的扫描架构相比,共享的扫描输入值顾及了很多较短的扫描链。这样一来,器件中的状态寄存器可以组织成数量更多的并行扫描链(与可作为器件扫描输入使用的器件输入的数量相比)。例如,借助四路共享,每个器件的测试时间可以减少近四倍。
但是,在使用这种扫描架构时必须仔细选择测试矢量,以免发生冲突。当测试矢量规定将某个值施加给位于其中某个扫描链的某个位置的状态寄存器,并且将相反的值施加给位于一个共享相同器件扫描输入的不同扫描链的相同位置的状态寄存器时,这时将会发生冲突。这种冲突通常可以通过已知方法避免,已知方法例如重新设计测试模式(由此,在扫描中的每一个特定位置,在共享相同器件输入的所有扫描链中都会出现相同值或“不关心”值),或改变将扫描链指派给器件扫描输入的方式,或改变扫描链内部的状态寄存器的顺序,或改变将状态寄存器指派给扫描链的方式。但是,如果这其中没有一个选项可用,则需要不同的扫描架构或者必须接受不完全的故障覆盖率。
在这里通过参考引入的Kapur等人的美国授权前专利公开号2005/0268190(“Kapur等人”)中描述了一种技术,在该技术中可以动态地根据需要针对每个测试模式的每个移动来重新配置扫描输入测试架构。在器件扫描输入与扫描链之间插入了一个“解压缩器”,其中所述解压缩器可以在多种不同模式中工作,以便将器件扫描输入值(或是从中得出的值)递送到扫描链。针对在测试模式内部扫描链的每次移动,测试器会将解压缩器设置成测试矢量的特定位置所需要的恰当模式。
添加为将器件扫描输入与内部扫描链对接的逻辑被称为解压缩器;这是因为它只耗费了少量输入值来提供很大的接收扫描链集合。添加为将内部扫描链输出对接到器件扫描输出的逻辑被称为压缩器,这是因为它耗费了来自扫描链的很多值,并且将其汇集在一个非常小的器件扫描输出集合中。有时,测试矢量会在作为不可预测的逻辑值的扫描输出位置产生响应。这些不可预测的逻辑值有可能来自未初始化的存储器元件,或者源于与总线竞争或不可预测的定时有关的问题。无论相关故障是否存在,这些扫描输出位置都具有未知值。这些未知值与测试矢量自身当中的“不关心值”相似,并且有时将其标记为逻辑X(未知)。它们有可能对在压缩器中聚集的良好响应的可观察性产生负面影响。
通过识别X来源,以及随后将其移除,或者通过插入附加DFT逻辑,以便通过添加附加测试点来固定X来源,可以前瞻性地阻止那些在响应获取过程中产生的X到达扫描单元。另一种阻止X到达扫描单元的已知方法是仔细地生成测试模式,其中扫描输入矢量中的不关心比特可以被设置成控制值,以便阻止X到达扫描单元。在另一种解决方案中,可以使用错误屏蔽和/或X屏蔽。错误屏蔽包括通过仔细设计压缩器来使多个差错相互抵消,而X屏蔽则包括在扫描链输出与压缩器之间插入屏蔽逻辑,以免将X传播至压缩器输出端。图4显示了用于压缩器的屏蔽逻辑的示例,其中在压缩器XOR中具有冗余度。在该示例中,屏蔽逻辑将会确保在被观察的任何扫描链群组内部,在任何扫描单元中所获取的响应中的逻辑X都不会干涉其他扫描链中的扫描单元的可观察性。尽管如此,屏蔽处理依然会引入其自身的问题,这是因为它降低了设计中的可观察性。因此,在故障覆盖率相同的情况下,测试模式数往往会增加,由此与使用输出压缩器所实现的节约效果部分对立。
就扫描链输入端上的接口逻辑而言,目前业已形成了大量解决方案。在N.A.Touba于2006年7-8月发表于IEEE Design and Test ofComputers,第294-303页的“Survey of Test Vector CompressionTechniques”一文中,阐述了针对这其中的某些解决方案所进行的调查,在这里通过参考并入该文献。这些解决方案包括基于代码的方案,基于线性解压缩器的方案,以及基于广播扫描的方案。这些解决方案可以分成组合或顺序性的。组合解决方案既可以与至内部扫描链的器件扫描输入的直接(但是是共享的)连接一样简单,也可以与那些用于将扫描数据拆散为“1”和“0”的序列的解码逻辑一样复杂。更常见的解决方案在输入端或MUX上使用XOR,以便将来自器件扫描输入的值分配给接收扫描链。顺序解决方案包括为针对扫描压缩定制的逻辑BIST结构的变种的解决方案。借助每隔一定时间或者在每一次移动的时候流式输入的种子(seed),用于故障检测和观察(屏蔽)的激励需求将被编码,以便在测试数据容量和测试应用时间方面提供显著增益。这些顺序解决方案还包括那些通过使用移位寄存器来临时存储使用多种扩展逻辑获取的多个值的解决方案。
大多数现代集成电路设计过程都使用了电子设计自动化(EDA)工具。不同的EDA厂家通过自动地(1)将所提供的电路设计的状态寄存器组织成扫描链以及(2)在扫描链前后插入具有其自身风格的预定压缩和解压缩逻辑来提供自己的解决方案。在这里,有时将状态寄存器组织成扫描链的处理以及压缩和解压缩逻辑连同为了形成测试矢量而被提供给ATPG系统的某些配置设置一起统称为电路设计的“测试设计”。EDA软件允许用户在该处理中做出某些选择,例如在扫描输入与扫描输出功能之间分配器件I/O引脚,在解压缩器中实施的模式的数量,是否应该执行输出屏蔽等等。但是,由于用户通常没有足够能力来对这些问题作出有意义的回答,因此,用户通常只接受软件的默认设置,而所述默认设置通常代表的是用于某些“平均”电路设计的最优回答。结果,由于没有现实的电路设计是“平均的”,因此,无论在数据量方面、故障覆盖率方面还是同时在这两方面,为众多电路设计所实施的测试设计都是次最优的。
发明内容
概括地说,本发明涉及的是根据电路设计本身来为所提供的电路设计优化基于扫描的测试架构。在一个实施例中,形成了多种用于电路设计的候选测试设计。对于每一个候选测试设计来说,根据电路设计和候选测试设计而产生了多个测试矢量,并且这些测试矢量优选是使用同一ATPG算法产生的,其中所述算法会在下游使用,以便产生用于生成集成电路器件的最终测试矢量。在这里为每一个候选测试设计都确定了故障覆盖率之类的测试协议品质因数,并且根据对这些测试协议品质因数所进行的比较来选择其中一个候选测试设计,以便在集成电路器件中加以实施。优选地,只有ATPG可以产生的完整测试矢量集合中的抽样才会被用于确定每一个特定候选测试设计会发现的潜在故障的数量。
本发明的特定方面是在权利要求、说明书以及附图中描述的。
附图说明
针对本发明特定方面描述本发明,并且在这里将对附图加以参考,其中:
图1示出的是用于顺序电路的典型逻辑设计的一些部分。
图2是图1设计中的一部分的另一个视图。
图3示出的是用于为特定被测器件处理单个扫描测试模式的流程。
图4显示的是用于压缩器的屏蔽逻辑的示例。
图5显示的是所示例的数字集成电路设计以及测试流程图的简化表示。
图6示出的是在这里描述的实施例中使用的测试架构。
图7是包括了本发明的特征的测试设计优化器的实施例的流程图。
图8是使用ATPG来产生测试协议的图7步骤的流程图。
图9是包括了本发明的特征的测试设计优化器的实施例的流程图。
图10是可以用于实施包括本发明的方面的软件的计算机系统的简化框图。
具体实施方式
下文中详细描述是参考附图给出的。在这里将对优选实施例进行描述,以便示例本发明,但是这些优选实施例并未限制本发明的范围,并且本发明的范围是由权利要求限定的。本领域技术人员将会认识到针对后续描述所进行的各种等效变化。
设计和测试流程综述
图5显示的是所示例的数字集成电路设计以及测试流程图的简化表示。应该理解的是,与这里的所有流程图一样,在不影响所实现的功能的情况下,图5的很多步骤可以组合、并行执行或以不同顺序执行。在某些情况下,如果重新排列步骤,则只有在施加了某些其他改动的情况下才会实现相同的结果,而在其他情况下,如果重新排列步骤,则只有在满足了某些条件的情况下才会实现相同的结果。对读者来说,这种重排列的可能性是显而易见的。
在高的层次,图5的处理从产品概念开始(步骤500),并且是在EDA(电子设计自动化)软件设计过程中实现的(步骤510)。在完成设计时将会执行制造过程(步骤550)以及封装和装配过程(步骤560),由此最终产生完成的集成电路芯片(步骤570)。在步骤580,使用预定测试矢量和预期响应在测试器设备上将对某些或所有已完成的芯片进行检测。
EDA软件设计过程(步骤510)实际包括多个步骤512~530,为了简单起见,这些步骤都是以线性方式显示的。在实际的集成电路设计过程中,特定的设计有可能退回某些步骤,直至经过某些测试。同样,在实际的设计过程中,这些步骤有可能是按照不同的顺序和组合进行的。由此,该描述是作为上下文和一般性描述提供的,而不是作为用于特定集成电路的具体或推荐设计流程提供的。
现在将要提供的是关于EDA软件设计过程(步骤510)中的组成步骤的简要描述。
系统设计(步骤512):设计人员描述其希望实现的功能,他们可以执行假设规划来精炼功能、检查费用等等。在该阶段中可以产生硬件-软件架构划分。在该步骤中可以使用的来自Synopsys公司的示例EDA软件产品包括Model Architect、Saber、System Studio以及产品。
逻辑设计和功能验证(步骤514):在该阶段中将会编写用于系统中的模块的VHDL或Verilog代码,并且会就功能的准确性而对设计进行检查。更具体地说,检查该设计,确保它会响应于特定的输入激励而产生正确输出。在该步骤中可以使用的来自Synopsys公司的示例EDA软件产品包括VCS、VERA、Magellan、Formality、ESP以及LEDA产品。在这个形成阶段,所述设计在这里有时被称为“逻辑设计”或“电路设计”。虽然某些设计在该阶段有可能已经包含了某些用于测试的设计特征,例如扫描链以及相关联的扫描压缩或解压缩电路,但是这些特征并未包含在这里使用的术语“逻辑设计”和“电路设计”中。
用于测试的合成和设计(DFT)(步骤516):在这里,VHDL/Verilog被转换成网表。该网表可以针对目标技术而进行优化。此外,在这里还执行测试架构实施过程,以便允许检查已完成的芯片。在该步骤中可以使用的来自Synopsys公司的示例EDA软件产品包括DesignPhysical Compiler、Test Compiler、Power Complier、FPGACompiler、TetraMAX以及产品。用于结合如上所述的少量用户指定配置设置来实施测试架构的当前产品是DFT MAX。DFT MAX在Synopsys,DFT MAX Adaptive Scan CompressionSynthesis,Datasheet(2007)中描述,其中在这里通过参考并入该文献。在合成之后以及DFT之前,在该步骤中可以插入本发明的方面。
网表验证(步骤518):在该步骤会就与定时限度的相容性以及与VHDL/Verilog源代码的对应性而对网表进行检查。在该步骤中可以使用的来自Synopsys公司的示例EDA软件产品包括Formality、PrimeTime以及VCS产品。
设计规划(步骤520):在这里将构造芯片的整个平面布置图,并且将针对定时和顶层路由而对其进行分析。在该步骤可以使用的来自Synopsys公司的示例EDA软件产品包括Astro和IC Compiler产品。
物理实施(步骤522):放置(电路元件的定位)和路由(电路元件的连接)可以在这个步骤中进行。在该步骤中可以使用的来自Synopsys公司的示例EDA软件产品包括AstroRail和IC Compiler产品。最终的ATPG运行通常是在该步骤期间发生的,由此形成关于在测试芯片的过程中使用的测试矢量(包括压缩模式选择比特)以及预期响应的数据库。对于可以与本发明的方面结合使用的ATPG软件来说,其示例可以是在Synopsys于2002年5月发布的User Guide,Version 2002.05中描述的其中该文献在这里通过参考全部并入。
分析和提取(步骤524):在该步骤会在晶体管级验证电路功能,而这转而将会允许假设精炼。在该步骤中可以使用的来自Synopsys公司的示例EDA软件产品包括AstroRail、PrimeRail、Primetime以及Star RC/XT产品。
物理验证(步骤526):在该步骤中将会执行各种检查功能,以便确保下列各项的正确性:制造过程、电的问题、光刻问题以及电路。在该步骤可以使用的来自Synopsys公司的示例EDA软件产品包括Hercules产品。
投片(tape-out)(步骤527):该步骤提供“投片”数据用于光刻用途的掩膜的生成以便产生完成的芯片。在该步骤中可以使用的来自Synopsys公司的示例EDA软件产品包括CATS(R)产品族。
分辨率增强(步骤528):该步骤包括对布局执行几何操作,以便提高设计的制造能力。在该步骤中可以使用的来自Synopsys公司的示例EDA软件产品包括Proteus、ProteusAF以及PSMGen产品。
掩膜预备(步骤530):该步骤包括掩膜数据预备以及掩膜自身的写入。
示例测试架构
如所述,可以从不同的EDA厂家得到数种不同的测试架构。这其中的大多数或所有架构都可以从本发明的方面的应用中获益。为了简化示例,在这里描述的实施例中使用的是能够从Mt.View,CA的Synopsys公司提供的工具中得到的架构。但是应该理解,本发明同样适用于那些可以从其他厂家得到的架构。这里使用的测试“架构”是可以在特定软件包中得到的全部类别的测试“设计”。测试“架构”是在确定了可以从测试“架构”得到的各种设计选择之后被定制成特定测试“设计”的结构。在本实施例的测试架构中,很多参数是可以定制的。这里使用的“参数”只是数值的容器。因此,“测试架构”包含了未填充的参数,一旦用数值填充了这些参数,则可以定义一个“测试设计”。
图6示出的是在这里描述的实施例中使用的测试架构。可以看出,状态寄存器610被组织成N个扫描链611。在一个特定的测试设计中扫描链611未必具有相等的长度,但所期望的是具有相等的长度。到扫描链611的扫描输入由解压缩器612驱动,其中所述解压缩器的输入与器件的mI个器件扫描输入相连。对于可供解压缩器612形成提供给N个扫描链输入的数值的逻辑来说,该逻辑是受模式选择输入614影响的,其中所述模式选择输入可以包括若干个比特。扫描链611的扫描输出被提供给压缩器616,该压缩器从中导出数量为mO的一组器件扫描输出。压缩器616包括XOR电路618,并且根据设计选择,它可以包括介于扫描链输出与XOR电路618之间的X屏蔽逻辑620。
解压缩器612可以被配置成提供多种工作模式,其中所述多种工作模式可以经由模式输入614来选择。每一个模式都定义了信号从器件扫描输入(或其逻辑配对物)到扫描链输入的特定路由。换言之,如果选择了预定模式中的某种特定模式,则可以确定由哪一个器件扫描输入来馈送每一个扫描链输入,以及是否应该首先对其进行补充。在本实施例中,解压缩器612是用位于每一个扫描链输入前方的复用器实施的。每一个复用器都具有多个输入。每一个复用器的第一个输入,其在特定设计中,既可以是反向的,也可以是非反向的,被连接成接收来自特定器件扫描输入的数值,其中所述特定器件扫描输入是相应扫描链在第一工作模式中将要接收的输入。同样,每一个复用器的第二输入,其在特定设计中,既可以是反向的,也可以是非反向的,被连接成接收来自特定器件扫描输入的数值,其中该特定器件扫描输入是相应扫描链在第二工作模式中将要接收的输入;依此类推。应该了解的是,在不同测试架构中,组合和/或顺序的多种电路元件可用于在特定的测试设计中使用。
本实施例的测试架构提供了很多配置参数。这些参数包含那些可以分为基本参数、宏参数或ATPG参数的参数。这里使用的基本参数是确定最终得到的器件上的相应特征的参数。其示例包括:
●扫描链数量
●将状态寄存器指派给扫描链的方式
●扫描链内部的状态寄存器的顺序
●为模式选择分配的I/O引脚的数量
●可用的解压缩模式的数量(如果先前已经确定了分配给模式选择的引脚的数量)
●将剩余可用I/O引脚分配给(a)扫描输入和(b)扫描输出的方式
●是否在解压缩器中包含反向,如果是的话,则所述反向在哪些扫描输入上
●将输入(及其反向,如果有的话)指派给各个复用器输入的方式
●是否在压缩电路中实施屏蔽
●屏蔽配置,如果在压缩电路中实施屏蔽
这里使用的宏参数是自身不直接在器件上出现的参数,与此相反,该参数暗指在最终得到的器件上出现的一组一个或多个初级参数的值。其示例包括:
●可用解压缩模式数量(如果分配给模式选择的引脚数量改变)这个宏参数确定的是分配给模式选择的引脚数量,剩余的可用引脚可以作为扫描输入和扫描输出来分配。
●最大目标压缩
这个宏参数确定的是内部扫描链的数量。如果准许的压缩较高,则内部链较多。测试时间和测试数据容量将会减小,但是无法探测故障的概率将会增大。
●是否将响应X移动到在独立屏蔽条件下观察的独立链路,以及分析百分比
一种提升故障可观察性的策略是移动到独立的扫描链中,所有状态寄存器最有可能承载在设计测试矢量时未知的响应值。这是通过仿真电路设计随机测试以及为独立的扫描链选择承载在至少某个预定百分比的随机测试中未知的响应值的所有状态寄存器来完成的,其中举例来说,该预定百分比可以是25%。这个百分比是这个宏参数中的分析百分比。
这个宏参数至少会影响下列初级参数:是否在压缩电路中执行屏蔽,屏蔽配置,以及将状态寄存器指派给扫描链的方式。
●X容差程度
另一种提升故障可观察性的策略是提供从内部扫描链到器件扫描输出引脚的冗余路径。这样做减少了在针对破坏故障可观察性的测试模式所作出的响应中的X的概率。X容差程度确定的是所实施的冗余连接程度。
这个宏参数影响的是在压缩电路中是否执行屏蔽,如果是的话,则屏蔽配置,以及将状态寄存器指派给扫描链的方式。
这里使用的ATPG参数是用于在物理实施步骤522中配置ATPG软件的参数。某些ATPG参数是用于ATPG运行的配置参数,其他参数则仅仅暗指用于ATPG的一个或多个其他配置设置。ATPG参数不会影响器件自身的任何特征。其示例包括:
●是否干扰电路设计时钟编组(在测试期间是否允许用脉冲调节交互时钟域,用于将状态寄存器指派给用于定时的独立域的电路设计)。
●ATPG的异常中断限制。该异常中断限制控制的是允许ATPG为了发现用于测试特定故障的测试模式所进行的尝试次数。
●ATPG合并尝试(merge effort)。该合并尝试参数控制的是允许ATPG为了使用单个测试模式测试一个以上的故障所进行的尝试的次数。
测试设计优化器
如所述,DFT和ATPG软件可以为用户提供众多选项,以便管理测试设计的形成,但是用户通常无法明智选择各种选项的值。结果,用户通常仅仅接受软件提供的默认设置,而这些默认设置是由DFT和ATPG软件厂家选择以针对某些“一般”电路设计提供最优结果。举个例子,压缩和解压缩是结合扫描终端预算来实施的,其中该预算有可能来源于很多来源,例如使用多点测试中的封装限制,测试器限制,设计限制以及制造限制。如果给定了总的扫描终端预算,那么常规软件允许用户分配不同数量的器件扫描输入和器件扫描输出以供扫描压缩和解压缩使用。通常,在输入和输出方面平衡使用扫描终端是工具或用户的默认决定。但是依照设计,可以实现的压缩有可能受到解压缩器或是压缩器中未知容限所创建的依存关系的限制。根据所考虑的电路设计,如果扫描压缩受到输入依存关系的限制,则测试设计应该偏向的是,相比于器件扫描输出,分配更多的器件I/O引脚作为器件扫描输入。另一方面,如果响应中的未知干扰故障的观察,那么相比于器件扫描输入,分配更多的器件I/O引脚作为器件扫描输出。这里使用的术语“I/O引脚”指的是任何可以从外部访问的电路节点。它不必是物理引脚。
对于将器件I/O引脚分配给扫描输入还是扫描输出之类的参数而言,要想知道如何配置这些参数是非常困难的,并且如所述,用户通常会接受那些假设适用于一般电路设计的默认值。结果,对于所考虑的特定电路设计来说,最终得到的测试设计不可能是最优的。即使用户为某些参数选择了非默认值,该情况也是成立的,这是因为用户不可能知道选择怎样的值来优化用于特定电路设计的测试设计。
对于测试设计优化器,例如这里描述的优化器来说,通过创建虚拟环境以及评估策略来回答这些问题,由此可以对测试架构的不同配置进行相互比较,以便允许选择最优的测试设计。由于测试设计优化器包含处于虚拟环境的被测电路设计,因此,其具有形成依照所考虑的特定电路设计,而不是一些一般电路设计,而被优化的测试设计的效果。测试设计优化器的结果是一组在构建实际测试设计时使用的测试设计值。在DFT步骤516中,使用优化器为初级参数和宏参数确定的数值来插入和连接扫描链(如果先前未确定),以及插入压缩和解压缩电路。在步骤522(图5),优化器为ATPG参数确定的数值被应用于ATPG软件,以便控制用于测试设计的测试矢量的生成,而在EDA流程中,此时已经实施了所述流程。在一个实施例中,ATPG参数是自动应用于ATPG的,而在另一个实施例中,它们代表的是用户可以根据需要应用或不应用的建议。
图7是包括本发明的特征的测试设计优化器的实施例的流程图。概略地说,它包括一个迭代搜索过程,用于搜索为所考虑的电路设计产生最佳测试设计的测试参数值集合。在步骤710,确定哪些参数将是固定的以及哪些参数将被改变。在某一大类的实施例中,扫描链是固定的,其在搜索过程中是不允许改变的。也就是说,诸如扫描链数量、将状态寄存器指派给扫描链的方式以及扫描链内部的状态寄存器顺序之类的参数都是预先确定的,并且是不允许改变的。该实施例可以使用DFT MAX之类的已有产品来发展扫描链。在另一个实施例中,这些参数不是固定的,并且是允许作为搜索的一部分而改变的。对于以上列举的示例参数来说,在不同实施例中,任何或所有这些参数以及其他参数在优化搜索期间均可改变。如果宏参数改变,则不必单独改变所述宏参数暗指的初级参数(除非所述宏参数暗指的只是对于初级参数值的限制,在这种情况下,在搜索期间,初级参数是可以在这些限制以内改变的)。
在步骤712,将会确定那些在搜索期间保持固定的参数值,并且将会选择那些允许改变的参数的初始值。在一个实施例中,初始值选择为在某些被视为“一般性”的电路设计中最优的数值。如所述,对很多参数来说,这些值已经可用,并且是作为常规软件提供给用户的默认值来供应的。应该指出的是,如果将ATPG参数取为ATPG软件默认值并且该参数不变,那么在步骤712中不发生用于设置这些数值的步骤,直到步骤716当实际使用ATPG时。
在步骤714中将会启动一个用于搜索多个候选测试设计的循环。第一候选测试设计是由步骤712中设置的参数值暗示的,后续候选设计则是根据所使用的特定搜索算法产生的。有很多潜在搜索算法可用于不同实施例;在下文中参考图8对其中一个特定示例算法进行了论述。从某种意义上讲,候选测试设计虚拟化了组合在一起的电路设计以及测试设计电路,由此可以针对该组合的故障检测能力对组合进行评估。
在步骤716,组合的电路设计和测试设计电路被提供给ATPG,优选提供给作为步骤522(图5)的一部分使用的相同ATPG软件以便产生最终测试矢量。在一个实施例中,在步骤716中使用的是名为“Tetra MAX”的软件包。在该步骤716,用于当前候选测试设计的ATPG配置参数值被提供给ATPG,并且在已知这些参数值以及指定了已知在当前候选测试设计中建立的扫描电路以及压缩和解压缩电路结构的情况下,ATPG继续以形成其最优测试矢量集合。所述ATPG将会产生一个测试协议,其中该协议包括一组测试矢量以及来自每一个测试矢量的预期(即非故障)响应。
概略地说,在Tetra MAX中使用的ATPG算法是如下工作的:首先创建目标故障列表,其中举例来说,目标故障可以是连接或网络固定在0或固定在1。然后,针对每个目标故障,ATPG确定一组输入值,其中该输入值会在故障点产生“差异”(如果存在目标故障,则故障点有一个逻辑值,如果不存在目标故障,则所述故障点存在相反逻辑值)。然后。ATPG“敏化(sensitize)”从故障点到可观察点(扫描寄存器或基本输出)的路径。所述“敏化”包括识别至可观察点的逻辑路径中的所有逻辑门,以及沿着这些逻辑门的其他输入反向行进,以便确定在输入端需要怎样的值来使可观察点出现差异。在故障点注入差异以及敏化至可观察点的路径所需要的输入值集合是一个测试模式,并且在故障不存在时预期的可观察值的集合是来自该测试模式的预期响应。如果可以的话,ATPG还会尝试将每一个新测试模式与先前创建的模式相结合,这是因为如果两个模式能成功地合并,那么所发觉的故障数量会在模式数量未增长的情况下增加。如果允许将ATPG运行至结束,那么它会产生大量测试模式,这些测试模式共同将会发现在ATPG算法开端识别的目标故障的很大一部分。
在步骤718,由ATPG确定的测试协议的故障覆盖率将被评估。这里使用的“故障覆盖率”被定义成是测试协议发觉的电路设计中的故障数量与电路设计中的故障总数的比值。在其他实施例中,其他测试协议质量量度也是可以使用的。这其中的一个其他示例质量量度是“测试覆盖率”,它是由测试协议发觉的电路设计中的故障数量与电路设计中可检测故障总数的比值(例如排除了那些因为位于与任何其他逻辑都不具有电连接的输出上而无法检测的故障,因为位于永久绑定于固定逻辑值的引脚上而无法检测的故障,因为位于屏蔽了故障效果的冗余逻辑路径中而无法检测的故障,以及因为冗余逻辑路径阻碍了它们的控制或可观察性而无法检测的故障)。另一个示例的质量量度是“ATPG有效性”,它是可以被ATPG解决的故障数量与电路设计中的故障总数的比值。对读者来说,其他的质量量度也是显而易见的。
在步骤720,将会确定是否实现了最优故障覆盖率。在该步骤的一个实施例中,被认为产生最优故障覆盖率的测试设计是当前的候选测试设计。也就是说,所述搜索可以将选择窄化至被认为最优的测试设计。在另一个实施例中,被认为产生最优故障覆盖率的测试设计可以是某个其他的候选测试设计。换言之,所述搜索评估处于最后被认为最优的候选测试设计之后的候选测试设计,因此,步骤720中的当前候选测试设计并不是被认为最优的测试设计;它只是最后一个被评估了质量的测试设计。
如果在步骤720,尚未实现最优故障覆盖率,则在步骤722中产生下一个候选测试设计,并且该处理返回步骤714,以便据此产生新的测试协议。用于产生下一个候选测试设计的算法取决于搜索算法。对于穷举搜索而言,该步骤只包括增大其中一个测试参数的值。对焦点更为集中的搜索来说,该步骤可以考虑一个或多个先前评估过的候选测试设计的质量量度,以便锁定最优。
如果在步骤720,确定已经实现了最优故障覆盖率,则在步骤724中,过程继续以实施最优测试设计。依赖于在步骤712中哪些测试参数已经确定,这可以包括在组合设计中共同包括电路设计以及测试设计的结构方面。该处理可以包括将电路设计中的状态寄存器替换成依照最优测试参数值暗指的扫描链组织的扫描寄存器,和/或它可以包括插入由最优测试设计参数值暗指的特定压缩和/或解压缩电路。无论哪一种情况,在被涌现在EDA处理中的下一个步骤、例如网表验证步骤518(图5)的网表中都会反映该结果。此外,在提供给ATPG的设计版本中也会反映该结果,以便在步骤522中用于其最后运行。此时将会产生测试矢量和预期响应的完整集合,随后则将其递送到步骤580中使用的测试设备。实施步骤724所得到的结果最终会反映在步骤530创建的掩膜和芯片570中。最优测试设计的实施过程还可以包括依照针对最后ATPG运行确定为最优的配置参数值,控制步骤522中的最后ATPG运行。测试设计的这个部分并未反映在掩膜或芯片中,而是反映在了被递送到用于在步骤580中测试最终芯片的芯片测试设备的测试数据集合(包括测试矢量和预期响应)中。
可以看出,测试设计的很多方面都可以使用如图7所示的流程来优化,其中包括扫描链结构,解压缩器和压缩器结构以及ATPG配置参数,由此可以获取用于最优测试设计的最优测试矢量集合。用户既不再需要猜测测试参数值,也不再需要接受对于所考虑的特定电路设计而言未必最优的默认值。
此外还可以看出,根据所考虑电路设计的复杂性、在搜索期间允许改变的测试参数的数量以及搜索算法的效率,图7所示的迭代搜索有可能耗费过长时间。例如,ATPG有可能耗费好几个小时来为相对复杂的电路设计的单个测试设计形成测试协议。如果在大型搜索空间中为每一个测试设计运行ATPG到完成,那么这将是不切实际的。因此,在一个实施例中,使用ATPG来产生测试协议的步骤716优选使用了模式采样,更为优选的则是同时使用了模式采样和故障采样,以使如图7所示的迭代搜索更加切实可行。
图8是使用ATPG来产生测试协议的步骤716的流程图。在步骤810,ATPG首先识别电路设计中的所有潜在故障。特别地,ATPG既识别每一个可能固定在0或固定在1的节点,也识别每一个上升或下降速度慢的节点,还识别可以桥接在一起的任何相邻节点配对。
在步骤812,将会选择在步骤810中识别的故障的采样,其中举例来说,所述故障采样可以是所识别的故障的10%。优选地,所选择的故障采样在物理上是均匀分布在芯片上的。
在步骤814,ATPG将被用于产生只以故障采样集为目标的测试矢量。但是,ATPG会在仅仅产生了很少的测试矢量采样之后终止。这里使用的测试矢量的“采样”指的是比允许将ATPG运行至结束时产生的测试矢量总数要少。优选地,在一个实施例中,采样包含的矢量不超过256。更优选的是,其包含的测试矢量不超过128个,此外,更为优选的则是其包含的测试矢量不超过64个。优选地,测试矢量的数量是在32个以上,其中对很多设计来说,32个测试矢量都是不够充足的。这一点可以与在允许ATPG运行至结束的情况下可能产生的成千上万的测试矢量相比较。对于在搜索中所有测试设计来说,测试矢量采样大小应该是恒定的,由此这些结果可以有效地相互比较。
在ATPG产生测试矢量的同时,作为其处理的正常部分,它还会产生一个关于同一测试矢量采样集发现的目标故障的列表。然后,在步骤718中将会使用该列表中的故障数量作为量度,以便评估测试协议的故障覆盖率。
虽然之前在工业中已经使用了故障采样,但模式采样尚未使用。模式采样依赖的是这样一种假设,其中通过前几个模式看到的故障覆盖率与可以通过完整的ATPG运行发现的故障的总百分比单调关联,所述ATPG运行在由ATPG在步骤810识别的故障的完整集合上进行。特别地,图8的方法依赖于这样一个假设,如果ATPG可以确定用于特定测试设计的测试协议,并且其中该测试协议会在少量测试模式之后产生高故障覆盖率,那么当随后在步骤522中以所识别的潜在故障的整个集合为目标而将ATPG运行至结束时,它所确定的测试协议同样会产生高故障覆盖率(或是较少的测试矢量产生相同的故障覆盖率)。该假设被认为在一般情况下是精确的,在不同测试设计产生更好故障覆盖率的少量情形中,改进量并不是非常显著。
如所述,在步骤714,不同实施例可以使用多种不同的搜索算法。在一个实施例中,所执行的是穷举搜索,由此为在搜索期间改变的测试参数尝试了所有可能的数值组合。穷举搜索最有可能产生最优测试设计,但是,除非只允许少量测试参数变化,否则它通常是不切实际的。如果允许大量测试参数改变、使用了故障采样、并且尤其是使用了模式采样,那么它是切实可行的。可使用的其他示例搜索算法是模拟退火和表面响应方法。模拟退火在S.Kirkpatrick;C.D.Gelatt;M.P.Vecchi发表于Science,New Series,第220卷第4598号(1983年5月13日),671-680页的“Optimization by SimulatedAnnealing”中描述,其中该文献在这里通过参考并入。表面响应方法在Box,G.E.P.和Wilson,K.B.发表于Journal of the RoyalStatistical Society Series B13(1):1-45.(1951)的“On the ExperimentalAttainment of Optimum Conditions(with discussion)”中描述,其中该文献在这里通过参考并入。
图9是一个实施例的流程图,在该实施例中,所述搜索是通过首先优化一个参数以及随后移动到下一个参数来工作的。在步骤910,确定哪些参数将是固定的以及哪些参数将会改变。与图7的实施例一样,如果宏参数改变,则不必单独改变所述宏参数暗指的初级参数(除非所述宏参数暗指的只是对于初级参数值的限制,在这种情况下,在搜索期间,初级参数是可以在这些限制以内改变的)。
在步骤912,确定在搜索期间将保持固定的那些参数的值,此外还要为允许改变的参数选择初始值。与图7实施例一样,在一个实施例中,初始值被选定为在被视为“一般”的某个电路设计中为最优的值。
在步骤914中将会开始一个外部循环,以便迭代通过那些将要改变的不同搜索参数。举个例子,如果有10个参数将要改变,则所述循环具有10次迭代,其中每个参数一次。
在步骤915,从用于所有测试参数的当前值中产生候选测试设计。同样,这包括用于当前搜索参数的当前候选值,用于先前优化过的搜索参数的最优值(在循环914的先前迭代中),用于还没有优化的搜索参数的默认值,以及用于不变参数的固定值。测试设计包括扫描链结构、压缩和解压缩电路结构、以及ATPG配置参数值。该候选测试设计虚拟化了组合在一起的电路设计以及测试设计电路,由此可以就故障检测能力而对该组合进行评估。
在步骤916,组合电路设计和候选测试设计电路被提供给ATPG,并且优选提供给将会作为步骤522(图5)的一部分使用的相同ATPG软件,以便产生最终测试矢量。在步骤916中,用于当前候选测试设计的ATPG配置参数值被提供给ATPG,并且在已知那些参数值以及已知在当前候选测试设计中建立的扫描电路以及压缩和解压缩电路结构的情况下,ATPG继续以形成其最优测试矢量集合。优选地,如图8所示,在步骤916中使用了故障采样,而更优选的则是使用模式采样。ATPG产生一个测试协议,其中该协议包括一组测试矢量以及来自每一个测试矢量的预期响应。
在步骤918中将会评估ATPG确定的测试协议的故障覆盖率。在另一个实施例中可以使用另一个质量量度,例如测试覆盖率或ATPG效能。对读者来说,其他的质量量度是显而易见的。
在步骤920,将会确定针对当前搜索参数实是否实现了最优故障覆盖率。与图7一样,在该步骤的一个实施例中,被认为产生最优故障覆盖率的测试设计是当前候选测试设计。在另一个实施例中,被认为产生最优故障覆盖率的测试设计可以是一个其他候选测试设计,其中该测试设计是通过对当前候选测试设计的评估来揭示为最优的。
如果在步骤920中,针对当前搜索参数没有实现最优故障覆盖率,则在步骤922中为当前搜索参数产生下一个候选值,该处理则返回步骤915,以便据此产生新的候选测试设计。
如果在步骤920中,确定针对当前搜索参数实现了最优故障覆盖率,则在步骤923中确定是否还有更多搜索参数需要优化。如果是的话,则该处理返回到步骤914,以便优化下一个搜索参数的值。如果不是的话,则该处理在步骤924中继续以实施最优测试设计。与图7中一样,根据在步骤912哪些测试参数已经固定,如果这包括将电路设计中的状态寄存器替换成依照最优测试设计参数值暗指的扫描链组织的扫描寄存器,和/或实施最优测试设计参数值暗指的特定压缩器和/或解压缩器电路,那么其结果将会反映在被涌现在EDA处理中的下一个步骤、例如网表验证步骤518(图5)的网表中。该结果最终会反映在步骤530创建的掩膜和芯片570中。最优测试设计的实施过程还可以包括将所确定的配置参数值涌现到物理实施步骤522,其中所述配置参数值对于最终的ATPG运行而言是最优的。测试设计的这个部分并未反映在掩膜或芯片中,而是反映在了被递送到用于在步骤580中测试最终芯片的芯片测试设备的测试数据集合中。
应该指出的是,对于不同的搜索参数来说,供步骤920确定确实针对当前搜索参数实现了最优故障覆盖率的测试可以是不同的。同样,对于不同的搜索参数来说,用于在步骤922中产生下一个候选值的算法也可以是不同的。以下列举几个示例。
如果当前搜索参数是在解压缩器中实施的模式的数量,则所述搜索有可能遍历候选值2、3和4。初始值有可能是4,而用于产生下一个候选值的步骤922有可能会将当前候选值减1。对用于确定针对模式数量参数是否实现了最优故障覆盖率的步骤920来说,该步骤可以仅仅是在评估了使用候选值2产生的测试设计之后即行停止。然后,在步骤918中产生了最高故障覆盖率量度的值可以作为用于模式数量参数的最优值。在一个实施例中还可以实施二级规则:如果响应于候选值而产生的最高故障覆盖率以及次最高故障覆盖率相比于某个预定差值更为接近,那么,倘若与模式计数相比更在意芯片面积,则选择这两个值中的较小值;如果与芯片面积相比更在意模式计数,则选择这两个值中的较大值。
如果当前搜索参数是在器件扫描输入与器件扫描输出之间分配可用I/O引脚的方式,则所述搜索有可能遍历那些对称地将默认值围住的候选值,所述默认值则是将相等数量的引脚分配给输入和输出的值。初始值有可能是将最大数量的引脚分配给器件扫描输入,而用于产生下一个候选值的步骤922则可以将一个引脚分配方式从器件扫描输入移至器件扫描输出。用于确定针对引脚分配参数是否实现了最优故障覆盖率的步骤920可以仅仅是在评估了使用分配给器件扫描输出的最大引脚数量所产生的测试设计之后即行停止。然后,在步骤918中产生最高故障覆盖率量度的值可以作为用于引脚分配参数的最优值。
如果当前搜索参数是ATPG异常中断限制,则所述搜索有可能遍历一系列预定候选值,例如10、100、400、700、......、直至某个预定最大值。初始值可以是10,用于产生下一个候选值的步骤922可以是替换该系列中的下一个候选值。对用于确定针对模式数量参数是否实现了最优故障覆盖率的步骤920来说,该步骤可以仅仅是在评估了使用该系列中最后一个候选值产生的测试设计之后即行停止。然后,只有在故障覆盖率比步骤918中另一个值所实现的次较低故障覆盖率高出预定增量的情况下,在步骤918中产生最高故障覆盖率量度的值才可作为用于模式数量参数的最优值。如果用于ATPG异常中断限制的最佳生成值实现的故障覆盖率相互接近,则选择产生了两个最佳故障覆盖率的两个值中的较低值。
如果当前搜索参数是是否干扰所考虑的电路设计的时钟编组,那么该搜索有可能遍历“是”和“否”这两个值,其中所述遍历是以其中一个值开始而以另一个值结束的。用于产生候选测试设计的步骤915包括使用作为配置输入提供的当前参数值来执行设计规则检查器的步骤。如果当前候选值为“是”,则设计规则检查器确定在不出现不利交互的情况下哪些时钟域可以定时在一起,以及将其结果作为指令提供给ATPG,以便在步骤916中使用(最终在步骤522中使用)。如果当前候选值为“否”,则提供给ATPG的指令将会分别脉动所考虑的电路设计中的每一个时钟域。然后,在步骤918中产生最高故障覆盖率量度的值可以作为用于干扰时钟编组参数的最优值。
如果当前搜索参数是解压缩器结构,那么所述搜索有可能遍历包含了如下众多不同排列的候选值:复用器以及器件扫描输入与复用器输入之间连接,其在测试架构内部可以得到,而所述测试架构则通过EDA软件得到。对用于为解压缩器结构产生下一个候选值的步骤922来说,其初始迭代可以是调整某些参数值,从而在步骤915中添加复用器或是改变连接。ATPG在步骤916中运行,并且候选结构的故障覆盖率在步骤918中评估。依照步骤918中确定的故障覆盖率,用于产生下一个候选值的步骤922可以确定接受还是拒绝最近进行的调整,然后则以不同方式来调整参数值。在步骤915中产生的排列同样会在步骤916和918中被评估,并且步骤922将会再次接受或拒绝所述调整,以及执行另一个调整。举个例子,可以采用这种方式来执行模拟退火搜索,以便自动发现最佳解压缩器结构。相似的搜索方法还可以用于自动发现压缩器的最佳结构。
应该指出的是,对步骤714(图7)中众多可能算法来说,某些参数有可能需要在其他参数之前优化。举个例子,如果所要改变的一个参数子集是将状态寄存器指派给一个或多个X链(包含了承载未知响应的概率很高的状态寄存器的扫描链)的方式,则应该在优化解压缩器的架构之前优化该参数子集。同样,在优化输出压缩器结构之前应该选择是否实施输出屏蔽。纯ATPG参数有可能要在最后才被优化。
图10是可以用于实施包括本发明的方面的软件的计算机系统1010的简化框图。虽然这里阐述的流程图和其他算法描述了步骤序列,但是应该了解,该流程图或算法中的每一个步骤都可以通过促使1010之类的计算机系统以规定的方式工作来实施。
计算机系统1010典型包括经由总线子系统1012而与多个外围设备通信的处理器子系统1014。处理器子系统1014可以包含一个或多个处理器。外围设备可以包括:包含了存储器子系统1026和文件存储子系统1028的存储子系统1024,用户接口输入设备1022,用户接口输出设备1020,以及网络接口子系统1016。输入和输出设备允许用户与计算机系统1010进行交互。网络接口子系统1016提供了至外部网络的接口,包括至通信网络1018的接口,并且该子系统经由通信网络1018耦合到其他计算机系统中的相应接口设备。通信网络1018可以包括众多互连的计算机系统和通信链路。这些通信链路可以是有线链路、光学链路、无线链路、或是用于传递信息的任何其他机制。虽然在一个实施例中,通信网络1018是因特网,但是在其他实施例中,通信网络1018可以是任何适当的计算机网络。
网络接口的物理硬件组件有时也被称为网络接口卡(NIC),但是它们没有必要采用卡的形式:例如,它们可以采用直接安装在主板上的连接器和集成电路(IC)的形式,或者具有计算机系统的其他组件的单个集成电路上的宏单元的形式。
用户接口输入设备1022可以包括键盘,指示设备,例如鼠标、轨迹球、触摸板或绘图板,扫描仪,并入到显示器中的触摸屏,音频输入设备,例如语音识别系统、麦克风,以及其他类型的输入设备。通常,术语“输入设备”的使用旨在包含用于将信息输入计算机系统1010或计算机网络1018上的所有可能的设备类型和方式。
用户接口输出设备1020可以包括显示子系统,打印机,传真机,或非视觉显示器,例如音频输出设备。该显示子系统可以包括阴极射线管(CRT),平板设备,例如液晶显示器(LCD),投影设备,或用于创建可视图像的某种其他机制。显示子系统还可以提供非视觉显示,例如借助音频输出设备来提供。通常,术语“输出设备”的使用旨在包含用于将信息从计算机系统1010输出到用户、别的机器或计算机系统的所有可能的设备类型和方式。
存储子系统1024存储的是基本的编程和数据构造,这些构造提供了本发明的某些实施例的功能。例如,用于实施本发明某些实施例的功能的各种模块可以保存在存储子系统1024中。这些软件模块通常是由处理器子系统1014执行的。
存储器子系统1026通常包括多个存储器,包含用于在程序执行过程中存储指令和数据的主随机存取存储器(RAM)1030和存储固定指令的只读存储器(ROM)1032。文件存储子系统1028为程序和数据文件提供了永久性存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移除介质,CD-ROM驱动器,光学驱动器,或是可移除介质盒。用于实施本发明的某些实施例的功能的数据库和模块可以在计算机可读介质,例如一个或多个CD-ROM上提供,并且可以由文件存储子系统1028来保存。其中,主机存储器1026包含了计算机指令,在由处理器子系统1014执行计算机指令时,该计算机指令将促使计算机系统操作或执行这里描述的功能。在这里使用并被称为在“主机”或“计算机”中运行的处理和软件响应于主机存储器子系统1026中的计算机指令以及数据而在处理器子系统1014上执行,其中所述主机存储器子系统1026包含用于此类指令和数据的任何其他本地或远端存储器。
总线子系统1012提供了一种能让计算机系统1010的各种组件和子系统根据需要相互通信的机制。虽然总线子系统1012被示意性地显示成是单个总线,但是总线子系统的替换实施例可以使用多条总线。
计算机系统1010自身可以具有不同的类型,包括个人计算机、便携式计算机、工作站、计算机终端、网络计算机、电视、大型机、并行处理系统、多于一个计算机的网络或任何其他数据处理系统或用户设备。由于计算机和网络的特性不断改变,因此,图10中所述的计算机系统1010的描述仅仅是用于示例本发明优选实施例的一个具体例子。计算机系统1010的众多其他配置都是可行的,其中所述配置可以具有比图10所述的计算机系统更多或更少的组件。
如这里所使用的,如果前导输入影响了指定动作,那么所述指定动作“响应于”前导输入。如果存在中间处理要素、步骤或时段,那么指定动作可以仍旧“响应于”前导输入。如果中间处理要素或步骤组合了一个以上的输入,那么该动作被认为“响应于”每一个输入。指定动作与一个或多个输入的“依存关系”也是以相似的方式定义的。
上文中关于本发明优选实施例的描述是出于示例和描述目的提供的。它并不是为了穷举本发明或将本发明局限于所公开的确切形式。很明显,对本领域从业者来说,众多的修改和变更都是显而易见的。举个例子,尽管图7和9的实施例执行迭代搜索来发现最佳测试设计,另一个实施例可以在不执行迭代的情况下获取相同或相似的结果,例如通过并行评估候选测试设计,可选地使用不同处理器。另举一例,尽管在图7和9的实施例中是根据最优故障回复率(或某个其他质量量度)选择最佳测试设计的,可以理解,在另一个实施例中,最佳测试设计有可能是基于某个其他量度选择的,例如测试过程中的功率损耗,其中最优质量可选地只是次级选择判据。作为替换,具有一个或多个其他因素的加权平均中质量量度可以作为仅一个因素使用。通常,在这里有时会将用于确定“最佳”测试设计的量度称为该测试设计的“品质因数”,而质量量度则仅仅是这种品质因数的一个优选示例。另举一例,如图8的步骤810的步骤中的ATPG可以识别不仅仅电路设计中的所有潜在故障,而是可以识别组合的电路设计和测试设计中的所有潜在故障。这些实施例是为了以最佳方式说明本发明的原理及其实际应用而被选择和描述的,由此能使本领域其他技术人员理解本发明,从而得知各种实施例以及各种修改同样适合所设想的特定用途。本发明的范围是由后续权利要求及其等价物限定的。
Claims (38)
1.一种用于为集成电路设计形成基于扫描的测试设计的方法,包括以下步骤:
为电路设计形成多个候选测试设计,其中包括根据电路设计来生成多个测试矢量;
为每一个候选测试设计生成一个测试协议品质因数;以及
根据对为每一个候选测试设计生成的测试协议品质因数的比较来选择其中一个候选测试设计,以便在集成电路器件中实施,
其中生成多个测试矢量的步骤使用了预定的自动测试模式生成算法,
其中为每一个候选测试设计生成测试协议品质因数的步骤包括以下步骤:仅使用如果预定的自动测试模式生成算法运行至结束将会生成的测试矢量的采样来确定用于每一个特定的候选测试设计的测试协议品质因数。
2.根据权利要求1的方法,其中所述多个候选测试设计包括电路设计的状态寄存器到扫描链的不同排列。
3.根据权利要求1的方法,其中所述多个候选测试设计包括将器件扫描输入引脚互连到扫描链输入的不同解压缩电路。
4.根据权利要求1的方法,其中所述多个候选测试设计包括将扫描链输出互连到器件扫描输出引脚的不同压缩电路。
5.根据权利要求1的方法,其中所述多个候选测试设计包括用于控制所述自动测试模式生成算法操作的不同配置参数值。
6.根据权利要求1的方法,还包括以下步骤:将电路设计以及至少扫描链排列和解压缩器排列并入到组合设计中,其中所述扫描链排列和解压缩器排列来自在选择步骤中选择的候选测试设计;以及
根据组合设计来将所述预定的自动测试模式生成算法运行至结束。
7.根据权利要求1的方法,还包括以下步骤:根据在选择步骤中选择的候选测试设计,将预定的自动测试模式生成算法运行至结束。
8.根据权利要求7的方法,其中运行预定的自动测试模式生成算法至结束的步骤生成多个测试矢量,
还包括以下步骤:向集成电路测试设备提供多个测试矢量,以便在测试依照电路设计和在选择步骤中选择的候选测试设计制造的集成电路芯片中使用。
9.根据权利要求7的方法,其中所述多个候选测试设计包括用于控制自动测试模式生成算法操作的不同配置参数值,
以及其中运行预定的自动测试模式生成算法至结束的步骤包括以下步骤:在选择步骤选定的候选测试设计中应用所述配置参数值。
10.根据权利要求1的方法,还包括以下步骤:根据电路设计以及在选择步骤中选定的候选测试设计来生成一组制造屏蔽。
11.根据权利要求1的方法,其中测试矢量采样至多包含256个测试矢量。
12.根据权利要求11的方法,其中测试矢量采样包含的测试矢量超过32个。
13.根据权利要求1的方法,其中测试矢量采样至多包含64个测试矢量。
14.根据权利要求1的方法,其中预定的自动测试模式生成算法按顺序生成测试模式,
其中测试矢量采样只包括预定的自动测试模式生成算法生成的前N个测试矢量,其中N是预定整数,其对多个候选测试设计中的所有候选测试设计来说都是固定的。
15.根据权利要求14的方法,其中生成多个测试矢量的步骤包括以下步骤:操作所述预定的自动测试模式生成算法,直至生成N个测试矢量;以及
在生成任何进一步的测试矢量之前,停止执行所述预定的自动测试模式生成算法。
16.根据权利要求1的方法,其中测试协议的品质因数是测试协议质量量度。
17.根据权利要求1的方法,其中测试协议品质因数是故障覆盖率。
18.根据权利要求1的方法,其中选择其中一个候选测试设计的步骤包括以下步骤:在候选测试设计中以迭代方式搜索一个将测试协议品质因数最大化的候选测试设计。
19.根据权利要求1的方法,其中根据电路设计来生成多个测试矢量的步骤包括以下步骤:
识别有可能在根据所述电路设计制造的集成电路器件中出现的潜在故障集合;以及
操作所述预定的自动测试模式生成算法,以便仅仅以所述潜在故障集合中的潜在故障采样为目标。
20.一种用于为集成电路设计形成基于扫描的测试设计的系统,包括:
用于为电路设计形成多个候选测试设计的装置,其中包括用于根据电路设计来生成多个测试矢量的装置;
用于为每一个候选测试设计生成一个测试协议品质因数的装置;以及
用于根据对为每一个候选测试设计生成的测试协议品质因数的比较来选择其中一个候选测试设计,以便在集成电路器件中实施的装置,
其中用于生成多个测试矢量的装置使用了预定的自动测试模式生成算法,
其中用于为每一个候选测试设计生成测试协议品质因数的装置包括用于仅使用如果预定的自动测试模式生成算法运行至结束将会生成的测试矢量的采样来确定用于每一个特定的候选测试设计的测试协议品质因数的装置。
21.根据权利要求20的系统,其中所述多个候选测试设计包括电路设计的状态寄存器到扫描链的不同排列。
22.根据权利要求20的系统,其中所述多个候选测试设计包括将器件扫描输入引脚互连到扫描链输入的不同解压缩电路。
23.根据权利要求20的系统,其中所述多个候选测试设计包括将扫描链输出互连到器件扫描输出引脚的不同压缩电路。
24.根据权利要求20的系统,其中所述多个候选测试设计包括用于控制所述自动测试模式生成算法操作的不同配置参数值。
25.根据权利要求20的系统,还包括:
用于将电路设计以及至少扫描链排列和解压缩器排列并入到组合设计中的装置,其中所述扫描链排列和解压缩器排列来自由用于选择的装置选择的候选测试设计;以及
用于根据组合设计将所述预定的自动测试模式生成算法运行至结束的装置。
26.根据权利要求20的系统,还包括:
用于根据由用于选择的装置选择的候选测试设计,将预定的自动测试模式生成算法运行至结束的装置。
27.根据权利要求26的系统,其中用于运行预定的自动测试模式生成算法至结束的装置生成多个测试矢量,
其中所述系统还包括:用于输出多个测试矢量,以便在集成电路测试设备测试依照电路设计和由用于选择的装置选择的候选测试设计制造的集成电路芯片中使用的装置。
28.根据权利要求26的系统,其中所述多个候选测试设计包括用于控制自动测试模式生成算法操作的不同配置参数值,
其中用于运行预定的自动测试模式生成算法至结束的装置包括用于在由用于选择的装置选定的候选测试设计中应用所述配置参数值的装置。
29.根据权利要求20的系统,还包括:用于提供由用于选择的装置选定的候选测试设计,以由屏蔽制作设备来制造屏蔽的装置。
30.根据权利要求20的系统,其中测试矢量采样至多包含256个测试矢量。
31.根据权利要求30的系统,其中测试矢量采样包含的测试矢量超过32个。
32.根据权利要求20的系统,其中测试矢量采样至多包含64个测试矢量。
33.根据权利要求20的系统,其中预定的自动测试模式生成算法按顺序生成测试模式,
其中测试矢量采样只包括预定的自动测试模式生成算法生成的前N个测试矢量,其中N是预定整数,其对多个候选测试设计中的所有候选测试设计来说都是固定的。
34.根据权利要求33的系统,其中用于生成多个测试矢量的装置包括用于操作所述预定的自动测试模式生成算法,直至生成N个测试矢量的装置;以及
用于在生成任何进一步的测试矢量之前,停止执行所述预定的自动测试模式生成算法的装置。
35.根据权利要求20的系统,其中测试协议的品质因数是测试协议质量量度。
36.根据权利要求20的系统,其中测试协议品质因数是故障覆盖率。
37.根据权利要求20的系统,其中用于选择其中一个候选测试设计的装置包括用于在候选测试设计中以迭代方式搜索一个将测试协议品质因数最大化的候选测试设计的装置。
38.根据权利要求20的系统,其中用于根据电路设计来生成多个测试矢量的装置包括:
用于识别有可能在根据所述电路设计制造的集成电路器件中出现的潜在故障集合的装置;以及
用于操作所述预定的自动测试模式生成算法,以便仅仅以所述潜在故障集合中的潜在故障采样为目标的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8245308P | 2008-07-21 | 2008-07-21 | |
US61/082,453 | 2008-07-21 | ||
US12/248,710 | 2008-10-09 | ||
US12/248,710 US8584073B2 (en) | 2008-07-21 | 2008-10-09 | Test design optimizer for configurable scan architectures |
PCT/US2009/042367 WO2010011387A1 (en) | 2008-07-21 | 2009-04-30 | Test design optimizer for configurable scan architectures |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101815951A CN101815951A (zh) | 2010-08-25 |
CN101815951B true CN101815951B (zh) | 2013-09-04 |
Family
ID=41531383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980000211.2A Active CN101815951B (zh) | 2008-07-21 | 2009-04-30 | 用于可配置扫描架构的测试设计优化器 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8584073B2 (zh) |
EP (1) | EP2316040B1 (zh) |
CN (1) | CN101815951B (zh) |
TW (1) | TWI447415B (zh) |
WO (1) | WO2010011387A1 (zh) |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7886263B1 (en) * | 2007-12-10 | 2011-02-08 | Cadence Design Systems, Inc. | Testing to prescribe state capture by, and state retrieval from scan registers |
US7958472B2 (en) * | 2008-09-30 | 2011-06-07 | Synopsys, Inc. | Increasing scan compression by using X-chains |
US8065651B2 (en) * | 2009-01-29 | 2011-11-22 | Synopsys, Inc. | Implementing hierarchical design-for-test logic for modular circuit design |
US8433961B2 (en) * | 2010-05-06 | 2013-04-30 | Arm Limited | Data processing apparatus and method for testing a circuit block using scan chains |
US8887018B2 (en) * | 2010-06-11 | 2014-11-11 | Texas Instruments Incorporated | Masking circuit removing unknown bit from cell in scan chain |
JP5003800B2 (ja) * | 2010-07-13 | 2012-08-15 | カシオ計算機株式会社 | 電波時計 |
WO2012055045A2 (en) * | 2010-10-27 | 2012-05-03 | Solido Design Automation Inc. | Method and system for identifying rare-event failure rates |
US8718998B2 (en) * | 2011-03-17 | 2014-05-06 | Apple Inc. | Identifying initial don't care memory elements for simulation |
JP5361930B2 (ja) * | 2011-03-25 | 2013-12-04 | 株式会社東芝 | 半導体集積回路およびその設計方法 |
CN102156259B (zh) * | 2011-04-02 | 2013-07-03 | 北京大学深圳研究生院 | 一种集成电路的测试方法及一种集成电路 |
CN102737725A (zh) * | 2011-04-13 | 2012-10-17 | 复旦大学 | 自动优化存储器性能的可编程内建自测系统和方法 |
CN102968515B (zh) * | 2011-08-31 | 2016-03-30 | 国际商业机器公司 | 用于计算集成电路模型的验证覆盖率的方法和设备 |
CN102645628B (zh) * | 2012-04-19 | 2014-01-22 | 北京航空航天大学 | 一种数字电路板在线测试的固高固低故障注入电路及方法 |
US9116785B2 (en) | 2013-01-22 | 2015-08-25 | Teradyne, Inc. | Embedded tester |
US9081932B2 (en) * | 2013-02-01 | 2015-07-14 | Qualcomm Incorporated | System and method to design and test a yield sensitive circuit |
US8839061B2 (en) * | 2013-02-07 | 2014-09-16 | Freescale Semiconductor, Inc. | System and method for scan chain re-ordering |
US9329235B2 (en) | 2013-03-13 | 2016-05-03 | Synopsys, Inc. | Localizing fault flop in circuit by using modified test pattern |
US9411014B2 (en) | 2013-03-22 | 2016-08-09 | Synopsys, Inc. | Reordering or removal of test patterns for detecting faults in integrated circuit |
US9239897B2 (en) | 2013-04-03 | 2016-01-19 | Synopsys, Inc. | Hierarchical testing architecture using core circuit with pseudo-interfaces |
US9417287B2 (en) | 2013-04-17 | 2016-08-16 | Synopsys, Inc. | Scheme for masking output of scan chains in test circuit |
US9588179B2 (en) | 2013-06-12 | 2017-03-07 | Synopsys, Inc. | Scheme for masking output of scan chains in test circuit |
US10067187B2 (en) | 2013-07-19 | 2018-09-04 | Synopsys, Inc. | Handling of undesirable distribution of unknown values in testing of circuit using automated test equipment |
CN104700171B (zh) * | 2013-12-06 | 2018-03-02 | 中国飞机强度研究所 | 一种作动筒设备资源的信息管理及优化配置方法 |
US20150178436A1 (en) * | 2013-12-20 | 2015-06-25 | Lattice Semiconductor Corporation | Clock assignments for programmable logic device |
US9612272B2 (en) | 2014-02-26 | 2017-04-04 | Advantest Corporation | Testing memory devices with parallel processing operations |
US9330792B2 (en) * | 2014-02-26 | 2016-05-03 | Advantest Corporation | Testing memory devices with distributed processing operations |
CN104950241B (zh) * | 2014-03-31 | 2017-10-24 | 联发科技(新加坡)私人有限公司 | 集成电路及在集成电路中建立扫描测试架构的方法 |
US10444282B2 (en) * | 2014-10-16 | 2019-10-15 | Mentor Graphics Corporation | Test point insertion for low test pattern counts |
US9274171B1 (en) | 2014-11-12 | 2016-03-01 | International Business Machines Corporation | Customer-transparent logic redundancy for improved yield |
EP3082000B1 (de) * | 2015-04-15 | 2020-06-10 | dSPACE digital signal processing and control engineering GmbH | Verfahren und system zum testen eines mechatronischen systems |
US9842038B2 (en) | 2015-04-30 | 2017-12-12 | Advantest Corporation | Method and system for advanced fail data transfer mechanisms |
CN107851291B (zh) * | 2015-07-28 | 2019-04-19 | 三菱电机株式会社 | 时序数据处理装置 |
US20170254851A1 (en) * | 2016-03-01 | 2017-09-07 | International Business Machines Corporation | Physically aware scan diagnostic logic and power saving circuit insertion |
EP3497574A4 (en) | 2016-08-09 | 2020-05-13 | Sealights Technologies Ltd. | SYSTEM AND METHOD FOR THE CONTINUOUS EXAMINATION AND PROVISION OF SOFTWARE |
US10520550B2 (en) * | 2017-05-22 | 2019-12-31 | Mentor Graphics Corporation | Reconfigurable scan network defect diagnosis |
CN107885925B (zh) * | 2017-11-03 | 2021-06-29 | 中国电子科技集团公司第五十四研究所 | 一种eda验证阶段的寄存器测试方法 |
CN108362943A (zh) * | 2017-12-30 | 2018-08-03 | 广州市迪士普音响科技有限公司 | 一种多通道功放检测设备 |
US11113444B2 (en) * | 2018-06-27 | 2021-09-07 | Taiwan Semiconductor Manufacturing Co., Ltd. | Machine-learning based scan design enablement platform |
US11086759B2 (en) | 2018-09-27 | 2021-08-10 | SeaLights Technologies LTD | System and method for probe injection for code coverage |
CN109445413B (zh) * | 2018-10-26 | 2021-02-02 | 电子科技大学 | 一种大规模电路互连网络的测试向量自动生成方法 |
US10914785B2 (en) * | 2018-11-13 | 2021-02-09 | Realtek Semiconductor Corporation | Testing method and testing system |
US10598730B1 (en) * | 2018-11-13 | 2020-03-24 | Realtek Semiconductor Corporation | Testing method and testing system |
US10816599B2 (en) | 2019-01-16 | 2020-10-27 | International Business Machines Corporation | Dynamically power noise adaptive automatic test pattern generation |
CN110687437A (zh) * | 2019-09-03 | 2020-01-14 | 天津大学 | 一种扫描测试压缩的优化方法 |
US11573885B1 (en) | 2019-09-26 | 2023-02-07 | SeaLights Technologies LTD | System and method for test selection according to test impact analytics |
CN110688821B (zh) * | 2019-09-27 | 2023-10-13 | 北京中电华大电子设计有限责任公司 | 一种复杂算法的测试激励生成器及其控制方法 |
CN112305400B (zh) * | 2020-01-04 | 2023-09-29 | 成都华微电子科技股份有限公司 | 一种参数快速扫描测试装置和方法 |
WO2022109954A1 (zh) * | 2020-11-26 | 2022-06-02 | 华为技术有限公司 | 控制电路及其控制方法、集成电路芯片 |
CN114563693B (zh) * | 2022-04-28 | 2022-12-16 | 深圳比特微电子科技有限公司 | 基于半静态d触发器的支持可测性设计的电路 |
CN115309374B (zh) * | 2022-10-11 | 2022-12-13 | 北京云枢创新软件技术有限公司 | Atpg库模型生成系统 |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991909A (en) * | 1996-10-15 | 1999-11-23 | Mentor Graphics Corporation | Parallel decompressor and related methods and apparatuses |
US5983380A (en) | 1997-09-16 | 1999-11-09 | International Business Machines Corporation | Weighted random pattern built-in self-test |
US6055649A (en) * | 1997-11-19 | 2000-04-25 | Texas Instruments Incorporated | Processor test port with scan chains and data streaming |
JP3243207B2 (ja) | 1997-12-03 | 2002-01-07 | 株式会社半導体理工学研究センター | テスト容易な集積回路、集積回路のテスト容易化設計方法、および集積回路のテスト容易化設計のためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US6708303B1 (en) | 1998-03-06 | 2004-03-16 | Texas Instruments Incorporated | Method and apparatus for controlling a seperate scan output of a scan circuit |
US6662327B1 (en) | 1998-05-13 | 2003-12-09 | Janusz Rajski | Method for clustered test pattern generation |
JP2002526908A (ja) * | 1998-09-30 | 2002-08-20 | ケイデンス デザイン システムズ インコーポレイテッド | ブロックをベースとする設計方法 |
US6442723B1 (en) | 1999-05-12 | 2002-08-27 | International Business Machines Corporation | Logic built-in self test selective signature generation |
US6557129B1 (en) | 1999-11-23 | 2003-04-29 | Janusz Rajski | Method and apparatus for selectively compacting test responses |
US6327687B1 (en) | 1999-11-23 | 2001-12-04 | Janusz Rajski | Test pattern compression for an integrated circuit test environment |
US6684358B1 (en) | 1999-11-23 | 2004-01-27 | Janusz Rajski | Decompressor/PRPG for applying pseudo-random and deterministic test patterns |
US6516432B1 (en) | 1999-12-22 | 2003-02-04 | International Business Machines Corporation | AC scan diagnostic method |
TW538250B (en) * | 2000-04-21 | 2003-06-21 | Ind Tech Res Inst | Built-in self-verification circuit applied in system chip design |
US6865706B1 (en) * | 2000-06-07 | 2005-03-08 | Agilent Technologies, Inc. | Apparatus and method for generating a set of test vectors using nonrandom filling |
US6587996B1 (en) | 2000-06-12 | 2003-07-01 | Intel Corporation | Device and method for increased fault coverage using scan insertion techniques around synchronous memory |
US6990619B1 (en) * | 2000-08-31 | 2006-01-24 | Synopsys, Inc. | System and method for automatically retargeting test vectors between different tester types |
US6904553B1 (en) | 2000-09-26 | 2005-06-07 | Hewlett-Packard Development Company, L.P. | Deterministic testing of edge-triggered logic |
US7137053B2 (en) | 2001-09-04 | 2006-11-14 | Verigg Ipco | Bandwidth matching for scan architectures in an integrated circuit |
EP1296152A1 (de) * | 2001-09-21 | 2003-03-26 | Siemens Aktiengesellschaft | Elektronischer Baustein und Verfahren zu dessen Qualifizierungsmessung |
US20030126533A1 (en) | 2001-12-28 | 2003-07-03 | Mcadams Mark Alan | Testing of circuit modules embedded in an integrated circuit |
US6807645B2 (en) | 2002-02-04 | 2004-10-19 | International Business Machines Corporation | Method and apparatus for implementing enhanced LBIST diagnostics of intermittent failures |
US20030163774A1 (en) * | 2002-02-26 | 2003-08-28 | Parrish Gregory C. | Method, apparatus, and system for efficient testing |
US7234092B2 (en) * | 2002-06-11 | 2007-06-19 | On-Chip Technologies, Inc. | Variable clocked scan test circuitry and method |
US7370254B2 (en) * | 2003-02-13 | 2008-05-06 | Janusz Rajski | Compressing test responses using a compactor |
US7302624B2 (en) * | 2003-02-13 | 2007-11-27 | Janusz Rajski | Adaptive fault diagnosis of compressed test responses |
US6961886B2 (en) | 2003-04-16 | 2005-11-01 | International Business Machines Corporation | Diagnostic method for structural scan chain designs |
US7584392B2 (en) * | 2003-05-23 | 2009-09-01 | Cadence Design Systems, Inc. | Test compaction using linear-matrix driven scan chains |
US8775997B2 (en) * | 2003-09-15 | 2014-07-08 | Nvidia Corporation | System and method for testing and configuring semiconductor functional circuits |
US8280687B2 (en) * | 2004-03-31 | 2012-10-02 | Mentor Graphics Corporation | Direct fault diagnostics using per-pattern compactor signatures |
US7418640B2 (en) | 2004-05-28 | 2008-08-26 | Synopsys, Inc. | Dynamically reconfigurable shared scan-in test architecture |
JP2006023168A (ja) | 2004-07-07 | 2006-01-26 | Matsushita Electric Ind Co Ltd | 半導体集積回路および半導体集積回路の製造方法 |
US7395473B2 (en) * | 2004-12-10 | 2008-07-01 | Wu-Tung Cheng | Removing the effects of unknown test values from compacted test responses |
US7487419B2 (en) * | 2005-06-15 | 2009-02-03 | Nilanjan Mukherjee | Reduced-pin-count-testing architectures for applying test patterns |
US7415678B2 (en) | 2005-11-15 | 2008-08-19 | Synopsys, Inc. | Method and apparatus for synthesis of multimode X-tolerant compressor |
US7840861B2 (en) * | 2006-06-27 | 2010-11-23 | Silicon Image, Inc. | Scan-based testing of devices implementing a test clock control structure (“TCCS”) |
CN101405609B (zh) * | 2006-02-17 | 2012-11-14 | 明导公司 | 多级测试响应压缩器 |
EP1865601A1 (en) * | 2006-06-08 | 2007-12-12 | STMicroelectronics S.r.l. | Asynchronous RS flip-flop having a test mode |
US7793179B2 (en) * | 2006-06-27 | 2010-09-07 | Silicon Image, Inc. | Test clock control structures to generate configurable test clocks for scan-based testing of electronic circuits using programmable test clock controllers |
US7647540B2 (en) * | 2006-07-21 | 2010-01-12 | Janusz Rajski | Decompressors for low power decompression of test patterns |
US7925465B2 (en) * | 2007-02-12 | 2011-04-12 | Mentor Graphics Corporation | Low power scan testing techniques and apparatus |
US7840865B2 (en) * | 2007-03-23 | 2010-11-23 | Mentor Graphics Corporation | Built-in self-test of integrated circuits using selectable weighting of test patterns |
-
2008
- 2008-10-09 US US12/248,710 patent/US8584073B2/en active Active
-
2009
- 2009-04-30 TW TW098114423A patent/TWI447415B/zh active
- 2009-04-30 EP EP09800722.2A patent/EP2316040B1/en active Active
- 2009-04-30 WO PCT/US2009/042367 patent/WO2010011387A1/en active Application Filing
- 2009-04-30 CN CN200980000211.2A patent/CN101815951B/zh active Active
-
2013
- 2013-11-05 US US14/072,529 patent/US8954918B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP2316040A1 (en) | 2011-05-04 |
CN101815951A (zh) | 2010-08-25 |
US20140059399A1 (en) | 2014-02-27 |
TWI447415B (zh) | 2014-08-01 |
TW201009368A (en) | 2010-03-01 |
WO2010011387A1 (en) | 2010-01-28 |
EP2316040A4 (en) | 2012-11-14 |
EP2316040B1 (en) | 2013-12-18 |
US8584073B2 (en) | 2013-11-12 |
US8954918B2 (en) | 2015-02-10 |
US20100017760A1 (en) | 2010-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101815951B (zh) | 用于可配置扫描架构的测试设计优化器 | |
CN100507923C (zh) | 带有可编程组件的基于块的设计方法 | |
CN1331079C (zh) | 基于块的设计方法 | |
CN201740851U (zh) | 用于测试于集成电路中实施的设计的扫描测试系统 | |
US20100083199A1 (en) | Increasing Scan Compression By Using X-Chains | |
CN102317908B (zh) | 使用统计时序分析识别及改进鲁棒设计 | |
US10345369B2 (en) | Augmented power-aware decompressor | |
US20050198597A1 (en) | Method and apparatus for performing generator-based verification | |
CN201837703U (zh) | 用于为集成电路设计形成基于扫描的测试设计的系统 | |
Zhang et al. | EffiTest2: Efficient delay test and prediction for post-silicon clock skew configuration under process variations | |
US9157961B2 (en) | Two-level compression through selective reseeding | |
Nagaraj et al. | An automatic post silicon clock tuning system for improving system performance based on tester measurements | |
Hariharan et al. | From rtl liveness assertions to cost-effective hardware checkers | |
Munko et al. | RMST‐based multiple contrast tests in general factorial designs | |
Mayo | Learning from error, severe testing, and the growth of theoretical knowledge | |
CN115827475A (zh) | 一种电子装备软件质量量化分析评价方法 | |
US10380303B2 (en) | Power-aware dynamic encoding | |
US20030188239A1 (en) | Compacted test plan generation for integrated circuit testing, test sequence generation, and test | |
Koppolu et al. | Hierarchical diagnosis of identical units in a system | |
Beckert et al. | Heuristically creating test cases for program verification systems | |
Kotásek et al. | The use of genetic algorithm to derive correlation between test vector and scan register sequences and reduce power consumption | |
Xu et al. | Soc test-architecture optimization for the testing of embedded cores and signal-integrity faults on core-external interconnects | |
Vohra et al. | Optimal Test Solution for Hierarchical Core Based System-on-Chip | |
Ausoori | Information theoretic and spectral methods of test point, partial-scan and full-scan flip-flop insertion to improve integrated circuit testability | |
Pomeranz | Functional Design-for-Testability for Functional Test Sequences |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |