用于可配置扫描架构的测试设计优化器的利记博彩app

文档序号:7204724阅读:289来源:国知局
专利名称:用于可配置扫描架构的测试设计优化器的利记博彩app
技术领域
本 发明涉及用于集成电路的扫描链测试架构,尤其涉及的是依赖于电路设计的测 试架构的优化。
背景技术
更大和更复杂的集成电路(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的输出包括 初级输出P00、P01和P02,以及提供给状态寄存器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的 扫描输入SlO相连的独立扫描输入,并且状态寄存器112-1具有与状态寄存器112-0的输 出QO相连的独立扫描输入。除了与组合逻辑110相连之外,状态寄存器112-1的输出Ql 还被提供给了扫描链114-0的扫描输出S00。同样可以看出的是,在扫描链114-1中,状态 寄存器112-2具有与扫描链114-1的扫描输入SIl相连的独立扫描输入,并且状态寄存器 112-3具有与状态寄存器112-2的输出Q2相连的独立扫描输入。除了与组合逻辑110相连 之外,状态寄存器112-3的输出Q3还被提供给扫描链114-1的扫描输出S01。通常,在每个 扫描链中都包含了两个以上的状态寄存器,但是为使示例简单,在图1的每个扫描链中都 只显示了两个状态寄存器。器件被设计成可选地在两种模式中的任一模式中工作,并且这两种模式有时也被 称为工作模式和扫描模式。在工作模式中,用于状态寄存器112的下一状态数据是从组合 逻辑110的输出D0-D3获得的。在该模式中,扫描链是不激活的。在扫描模式中,状态寄存 器112的下一状态数据是从相应状态寄存器的扫描输入获取的。图2是图1设计中的某一部分的另一个视图,其中该视图包含了两个状态寄存器 112-0和112-1,以及组合逻辑110的一部分。可以看出,在每一个状态寄存器112内部的 触发器223的D输入端都插入了复用器222,以便在来自组合组合逻辑110的相应D输入 与来自SIO或来自扫描链中的在先状态寄存器112的扫描输入之间进行选择。在图2中, 从扫描链中在先元件的相应输出到复用器222输入的连接以及到SIO和SOO之类的扫描输 入和输出引脚的连接合在一起被指定为224。通过使用SCan_mode(即控制)信号,复用器 222可以被配置成允许将扫描输入值移入触发器223,而不经过组合逻辑110。如果器件处 于工作模式,则施加于触发器223的时钟(CLK)端子的脉冲将会获取从组合逻辑110输出 的值,如果器件处于扫描模式,那么该脉冲会将来自扫描输入SIO的值移入扫描链。在其将 来自扫描输入SIO的值移入扫描链的同时,它还经由扫描输出SOO移出目前处于状态寄存 器112中的值。关于“实施”扫描链的处理的一部分包括将D触发器223之类的电路设计中 的寄存器替换成类似于扫描寄存器112的寄存器/复用器组合,并且添加扫描链互连224。图3示出的是一个用于为特定被测器件处理单个扫描测试模式的标准流程300。 在流程300中,步骤310将器件设置为扫描模式。步骤302将扫描输入值移入激活的扫描 链。步骤303退出扫描模式,由此将器件返回到工作模式。步骤304将附加激励应用于测试 电路输入PIO PI2。如这里使用的,激励同时包含了应用于初级输入PIO PI2的值以及 移入到扫描链中的值。在这里,用于特定测试迭代的激励有时也被称为测试模式或测试矢 量。步骤305通过对时钟施以脉动(pulse)来获取状态寄存器112中被测器件的响应。步 骤306将器件再次设置成扫描模式,并且步骤307将扫描输出值从激活的扫描链移出。步 骤308再次将器件设置成工作模式。器件对测试激励作出的响应由外部设备进行处理,以 便检测被测器件的故障,该响应可以包括步骤307中扫描输出的值以及在初级输出POO P02上监视的值。很明显,步骤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来源,以及随后将其移除,或者通过插入附加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上使用X0R,以便将来自器件扫描输入的值分配给接收扫描链。顺序解决 方案包括为针对扫描压缩定制的逻辑BIST结构的变种的解决方案。借助每隔一定时间或 者在每一次移动的时候流式输入的种子(seed),用于故障检测和观察(屏蔽)的激励需求 将被编码,以便在测试数据容量和测试应用时间方面提供显著增益。这些顺序解决方案还 包括那些通过使用移位寄存器来临时存储使用多种扩展逻辑获取的多个值的解决方案。大多数现代集成电路设计过程都使用了电子设计自动化(EDA)工具。不同的EDA 厂家通过自动地(1)将所提供的电路设计的状态寄存器组织成扫描链以及(2)在扫描链前 后插入具有其自身风格的预定压缩和解压缩逻辑来提供自己的解决方案。在这里,有时将 状态寄存器组织成扫描链的处理以及压缩和解压缩逻辑连同为了形成测试矢量而被提供 给ATPG系统的某些配置设置一起统称为电路设计的“测试设计”。EDA软件允许用户在该 处理中做出某些选择,例如在扫描输入与扫描输出功能之间分配器件1/0引脚,在解压缩 器中实施的模式的数量,是否应该执行输出屏蔽等等。但是,由于用户通常没有足够能力来 对这些问题作出有意义的回答,因此,用户通常只接受软件的默认设置,而所述默认设置通 常代表的是用于某些“平均”电路设计的最优回答。结果,由于没有现实的电路设计是“平 均的”,因此,无论在数据量方面、故障覆盖率方面还是同时在这两方面,为众多电路设计所 实施的测试设计都是次最优的。

发明内容
概括地说,本发明涉及的是根据电路设计本身来为所提供的电路设计优化基于扫 描的测试架构。在一个实施例中,形成了多种用于电路设计的候选测试设计。对于每一个 候选测试设计来说,根据电路设计和候选测试设计而产生了多个测试矢量,并且这些测试 矢量优选是使用同一 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 以及DesignWare 产品。逻辑设计和功能验证(步骤514)在该阶段中将会编写用于系统中的模块的VHDL 或Verilog代码,并且会就功能的准确性而对设计进行检查。更具体地说,检查该设计,确 保它会响应于特定的输入激励而产生正确输出。在该步骤中可以使用的来自Synopsys公 司的示例 EDA 软件产品包括 VCS、VERA、DesignWare 、Magellan、Formality、ESP 以及 LEDA产品。在这个形成阶段,所述设计在这里有时被称为“逻辑设计”或“电路设计”。虽 然某些设计在该阶段有可能已经包含了某些用于测试的设计特征,例如扫描链以及相关联 的扫描压缩或解压缩电路,但是这些特征并未包含在这里使用的术语“逻辑设计,,和“电路 设计”中。用于测试的合成和设计(DFT)(步骤516)在这里,VHDL/Verilog被转换成网 表。该网表可以针对目标技术而进行优化。此外,在这里还执行测试架构实施过程,以 便允许检查已完成的芯片。在该步骤中可以使用的来自Synopsys公司的示例EDA软件 产品包括 Design Compiler ν Physical Compiler、Test Compiler、Power Complier、 FPGACompiler, TetraMAX以及DesignWare 产品。用于结合如上所述的少量用户指定 配置设置来实施测试架构的当前产品是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 月发布的TetraMAX User Guide, Version 2002. 05 中描述的TetraMΑΧ ,其 中该文献在这里通过参考全部并入。分析和提取(步骤524)在该步骤会在晶体管级验证电路功能,而这转而将会 允许假设精炼。在该步骤中可以使用的来自Synopsys公司的示例EDA软件产品包括 AstroRai 1 > PrimeRai 1 > Primetime \)XR Star RC/XT/^fn。物理验证(步骤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驱动,其中所述解压 缩器的输入与器件的ml个器件扫描输入相连。对于可供解压缩器612形成提供给N个扫 描链输入的数值的逻辑来说,该逻辑是受模式选择输入614影响的,其中所述模式选择输 入可以包括若干个比特。扫描链611的扫描输出被提供给压缩器616,该压缩器从中导出数 量为m0的一组器件扫描输出。压缩器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/ 0引脚作为器件扫描输出。这里使用的术语“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(l) :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可以识别不仅仅电路设计中的所有潜在故障,而 是可以识别组合的电路设计和测试设计中的所有潜在故障。这些实施例是为了以最佳方式 说明本发明的原理及其实际应用而被选择和描述的, 由此能使本领域其他技术人员理解本 发明,从而得知各种实施例以及各种修改同样适合所设想的特定用途。本发明的范围是由 后续权利要求及其等价物限定的。
权利要求
一种用于为集成电路设计形成基于扫描的测试设计的方法,包括以下步骤为电路设计形成多个候选测试设计,其中包括根据电路设计来生成多个测试矢量;为每一个候选测试设计生成一个测试协议品质因数;以及根据对为每一个候选测试设计生成的测试协议品质因数的比较来选择其中一个候选测试设计,以便在集成电路器件中实施,其中生成多个测试矢量的步骤使用了预定的自动测试模式生成算法,以及其中为每一个候选测试设计生成测试协议品质因数的步骤包括以下步骤仅使用如果预定的自动测试模式生成算法运行至结束将会生成的测试矢量的采样来确定用于每一个特定的候选测试设计的测试协议品质因数。
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.一种用于为集成电路设计形成基于扫描的测试设计的系统,包括数据处理器;存储子系统;以及程序代码,其中在由数据处理器执行时,该程序代码将会执行以下步骤为电路设计形成多个候选测试设计,其中包括根据电路设计来生成多个测试矢量;为每一个候选测试设计生成一个测试协议品质因数;以及根据对为每一个候选测试设计生成的测试协议品质因数的比较来选择其中一个候选 测试设计,以便在集成电路器件中实施,其中生成多个测试矢量的步骤使用了预定的自动测试模式生成算法,以及其中为每一个候选测试设计生成测试协议品质因数的步骤包括以下步骤仅使用 如果预定的自动测试模式生成算法运行至结束将会生成的测试矢量的采样来确定用于每 一个特定的候选测试设计的测试协议品质因数。
全文摘要
粗略地说,根据所考虑的电路设计来优化基于扫描的测试架构。在一个实施例中,形成多个候选测试设计。对于每一个候选测试设计来说,根据电路设计和候选测试设计而生成多个测试矢量,并且这些测试矢量优选是使用同一ATPG算法生成的,其中所述算法会在下游使用,以便生成用于制造集成电路器件的最终测试矢量。在这里为每一个候选测试设计都确定了故障覆盖率之类的测试协议质量量度,并且根据对这些测试协议质量量度所进行的比较来选择其中一个候选测试设计,以便在集成电路器件中加以实施。优选地,只有能被ATPG生成的完整测试矢量集合中的采样才被用于确定每一个特定候选测试设计所要发现的潜在故障的数量。
文档编号H01L21/66GK101815951SQ200980000211
公开日2010年8月25日 申请日期2009年4月30日 优先权日2008年7月21日
发明者A·安巴兰, J·塞基阿, P·诺蒂雅斯, R·卡普尔, R·宇普鲁里, S·库尔卡尔尼, T·费尔南德斯 申请人:新思科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1