具体实施方式
本发明的实施例在此结合示例性测试系统和对应集成电路进行例示,该集成电路包括用于支持对那些集成电路的附加电路的扫描测试的扫描测试电路。然而,应当理解,本发明的实施例可更一般性地用于任何测试系统或关联集成电路,其中,希望通过选择性地旁路扫描链的一部分而在扫描测试期间提供减少的测试时间和/或低功耗。
图1示出了本发明的实施例,其中测试系统100包括测试器102和进行测试的集成电路104。集成电路104包括耦接至利用扫描测试电路106进行测试的附加内部电路108的扫描测试电路106。测试器102存储有与集成电路的扫描测试相关联的扫描数据110。这种扫描数据可以对应于由测试图案生成器112提供的测试图案。在其它实施例中,测试器102的至少一部分(如测试图案生成器112)可以被并入集成电路104中。另选的是,整个测试器102可以被并入集成电路104中。
如图1所示的测试系统100的特定构造仅是示例性的,并且其它实施例中的测试系统100除了或代替特别示出的那些元件以外还包括其它元件,包括在这种系统的常规实现方式中普遍采用的类型的一个或更多个元件。例如,测试器102的各种元件或系统100的其它部件可以利用微处理器、中央处理单元(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其它类型的数据处理装置,以及这些和其它装置中的一部分或组合(仅作为例示而没有限制地)来实现。
本发明的实施例可以被配置成利用压缩或未压缩扫描测试,并且本发明在这点上不受限制。然而,图2所示说明性实施例主要在压缩扫描测试的背景下进行描述。
下面,参照图2,集成电路104的一种可能的构造的一部分将更详细地示出。在该压缩扫描测试配置中,扫描测试电路106包括:解压器200、压缩器202、以及多个扫描链204-k,其中,k=1、2、...K。每一个扫描链204都包括多个扫描单元206,并且可被配置成作为集成电路104的扫描移位操作模式下的串行移位寄存器进行操作,并且在集成电路104的功能操作模式下捕获来自进行测试的电路207的功能数据。假定了扫描链204中的至少一个是多时钟域扫描链,即,扫描链包括与相应的独立时钟域相关联的子链。
扫描链204通常在解压器200的相应输出部与压缩器202的相应输入部之间彼此并行地布置,从而在扫描移位操作模式下,来自解压器200的扫描测试输入数据被移位到扫描链204中,而扫描测试输出数据被从扫描链204移出,进入压缩器202中。
第一扫描链204-1具有长度n1,并因此包括n1个扫描单元,指示为206-1到206-n1。更一般地说,扫描链204-k具有长度nk,并因此包括总计nk个扫描单元。
在本发明的实施例中,扫描链204的长度被平衡,使得需要相同的时间量来将希望的扫描测试图案集移位到所有扫描链中。因此,可以在没有限制的情况下假定所有扫描链204具有长度n,使得n1=n2=...=nk=n。
这个实施例中的进行测试的电路207包括多个组合逻辑模块,其中示出了示例性模块208、210以及212。所述组合逻辑模块例示性地布置在主输入部214与主输出部216之间并且通过扫描链204彼此分离。
诸如208、210以及212的组合逻辑模块可以被视为在此更通称为“附加电路”的示例,所述附加电路利用本发明实施例的扫描测试电路进行测试。作为示例,集成电路104的这种内部电路模块可以表示不同集成电路内核的各部分,如硬盘驱动器(HDD)控制器应用中的芯片上系统(SOC)集成电路的响应读取通道和附加内核,其被设计用于从HDD的一个或更多个磁存储盘读取和写入数据。在其它实施例中,通过扫描链进行测试的电路模块可以以任意组合方式包括其它类型的功能逻辑电路,并且术语“附加电路”意图宽泛地解释为覆盖逻辑电路的任何这种布置。
扫描测试电路106的解压器200接收来自测试器102的压缩扫描数据,并且解压该扫描数据,以在将这种链配置为扫描移位操作模式下的相应串行移位寄存器时,生成移位到扫描链204中的扫描测试输入数据。同样在这种链被配置为扫描移位操作模式下的相应串行移位寄存器时,扫描测试电路106的压缩器202接收移出扫描链204的扫描测试输出数据,并且压缩该扫描测试输出数据,以将其传送回测试器102。
压缩扫描输入数据被测试器102应用至解压器200的N个扫描输入部,并且将压缩扫描输出数据经由N个扫描输出部从压缩器202提供回测试器102。如前所述,K个扫描链204如所示地在解压器200的相应输出部与压缩器202的相应输入部之间并行地布置。每一个单独的扫描链204都可配置成作为集成电路104的扫描移位操作模式下的串行移位寄存器进行操作,并且还在集成电路104的功能操作模式下捕获来自组合逻辑元件的功能数据。
扫描链204的数量K通常大于压缩器202的扫描测试输出部的数量N。K与N的比率提供了对扫描测试电路106中设置的扫描测试图案压缩程度的度量。然而,应注意到,压缩器输出部的数量不需要和解压器输入部的数量相同。例如,可以具有N个解压器输入部和L个压缩器输出部,其中,N≠L,但N和L都远小于K。
解压器200的扫描输入部可以被视为对应于在此更通常被称为集成电路104的“扫描通道”的相应输入部。
有关诸如解压器200和压缩器202的扫描压缩元件的操作的附加细节可以在上述美国专利No.7831876中得到。此外,诸如解压器200和压缩器202的扫描压缩元件可以不存于与本发明的其它实施例中。在本发明的没有扫描压缩的实施例中(其中,去除了解压器200和压缩器202),扫描通道可以简单地对应于扫描链204中的相应扫描链。
应用至本实施例中的扫描链204的指定测试图案可以被视为扫描矢量,其中,扫描矢量包括其中将扫描测试输入数据移位到所有扫描链204中的移入阶段(shift-in phase),之后是其中捕获功能数据的捕获阶段(capture phase),之后是其中将扫描测试输出数据从所有扫描链204移出的移出阶段(shift-out phase)。针对不同测试图案的扫描矢量可以彼此交叠,因为随着输入数据针对指定测试图案移入,可以将针对前一图案的捕获数据移出。移入和移出阶段在此可以单独地或统称为扫描矢量或关联测试图案的一个或更多个扫描移位阶段。
如前所述,集成电路扫描测试中的重要问题包括测试时间和功耗。本实施例中的扫描测试电路106通过动态地旁路一个或更多个扫描链204中的特定子链来解决这些问题。该功能通过并入到扫描测试电路中的时钟域旁路电路来实现,如下面结合图3、4以及5更详细地描述的。
图3更详细地示出了扫描测试电路106的特定扫描链204-k。如图所示的扫描链是在此更通称为多时钟域扫描链的示例,即,包括与集成电路104的相应的独立时钟域相关联的多个子链的扫描链。假定该扫描链204-k具有与其相关联的时钟域旁路电路,但该电路在该特定图形中并未示出。
本发明的该实施例中的每一个子链300都包括两个或更多个扫描单元206。更具体地说,扫描链204-k包括扫描单元206-1到206-nk,它们被分组成与相应的时钟信号CLK1、CLK2、CLK3以及CLK4相关联的四个子链300-1、300-2、300-3以及300-4。在这个实施例中,时钟信号CLK1、CLK2、CLK3以及CLK4中的每一个都被假定成与集成电路104的不同时钟域相关联。然而,应当清楚,如在此使用的术语“时钟域”意图被宽泛地解释,并因此不应被视为需要或排除时钟信号之间的任何特定关系。
本实施例中的每一个扫描单元206都具有数据输入部(D)、数据输出部(Q)、扫描输入部(SI)、扫描输出部(SO)以及时钟输入部(CLK),并且可以包括未明确地示出的附加或另选输入部和输出部。每一个子链300中的两个或更多个扫描单元206按照与该子链相关联的对应时钟信号CLK1、CLK2、CLK3或CLK4进行时钟控制(clocked)。
子链300-1包括更特别地指示为FF1-C1到FFa-C1的扫描单元206,其中,a是指定该子链中的扫描单元的总数量的变量。类似的是,子链300-2包括更特别地指示为FF1-C2到FFb-C2的扫描单元206,子链300-3包括更特别地指示为FF1-C3到FFc-C3的扫描单元206,以及子链300-4包括更特别地指示为FF1-C4到FFd-C4的扫描单元206,其中,b、c以及d是指定相应子链中的扫描单元的总数量的变量。在本实施例中,a、b、c以及d中的每一个都被假定成大于或等于2。子链300中的每一个可以具有不同数量的扫描单元206,或者两个或更多个子链可以具有相同数量的扫描单元。
本实施例中的子链300-1、300-2、300-3以及300-4被相应的加锁锁存器302-1、302-2、302-3以及302-4彼此分离。这些加锁锁存器中的每一个都被实施为D型触发器,该D型触发器具有通过对应的时钟信号CLK1、CLK2、CLK3或CLK4进行时钟控制的使能输入部(EN)。与子链300-1、300-2、300-3以及300-4相关联的加锁锁存器更特别地分别指示为LL-C1、LL-2、LL-C3以及LL-C4。
在扫描移位操作模式下,扫描链204-k可配置成形成包括比全部子链300少的子链的串行移位寄存器。由此,一个或更多个子链300可以通过上述时钟域旁路电路选择性地旁路,从而不成为由扫描移位模式下的扫描链204-k所形成的串行移位寄存器的一部分。更具体地说,该时钟域旁路电路被配置成旁路多个子链300中的、被确定成针对特定测试图案停用的一个或更多个子链,使得时钟域旁路电路可以旁路这些子链300中的、针对不同测试图案的不同子链。
本实施例的时钟域旁路功能至少部分地基于发明人认识到不将所有时钟域用于每一个应用测试图案。例如,图3中假定了每一个子链都仅包括两个扫描单元、使得整个扫描链包括至多8个扫描单元的布置。因此,需要8个时钟周期,来将整个扫描链的内容移入或移出。如果在指定测试图案的关联功能数据捕获阶段中未使用一个特定的时钟域,在以扫描数据不移位通过对应子链的这种方式旁路该停用时钟域的情况下,则可以使扫描移位时间减少两个时钟周期,使得针对指定测试图案的扫描移位时间节省25%。
因此,显著减少扫描测试时间可通过针对要应用的每一个测试图案识别空闲或停用的时钟域,并且在应用对应测试图案时旁路那些停用的时钟域来实现。因为所旁路的子链的时钟域停用,所以不需要移出那些子链中的扫描单元的内容,就像那些扫描单元没有检测到故障一样。换句话说,针对在指定测试图案的捕获阶段中没有脉冲化的任何时钟域,因为没有传播至那些扫描单元的故障,所以不需要将内容移出对应的扫描单元。因此,在本实施例中,针对指定测试图案,仅移出对应时钟域在指定测试图案的捕获阶段中启用的那些特定子链。
图4示出了图3的扫描链204-k及其关联时钟域旁路电路400。该时钟域旁路电路400被配置成选择性地旁路如前所述的多个子链300中的一个或更多个,使得在扫描移位操作模式下的扫描链204-k形成包括比全部子链300少的子链的串行移位寄存器。本实施例中的时钟域旁路电路400包括多个时钟域旁路复用器402和多个时钟域旁路寄存器404。
本实施例中的时钟域旁路复用器402更特别地包括与子链300-1、300-2、300-3以及300-4中的相应子链相关联的二对一复用器405-1、405-2、405-3以及405-4。复用器405如图所示配置在CLK1、CLK2、CLK3以及CLK4时钟域之间的扫描路径扫描链204-k中,并且每一个这种复用器405紧跟在对应时钟域的加锁锁存器302之后。
本实施例中的时钟域旁路寄存器404更特别地包括与子链300-1、300-2、300-3以及300-4中的相应子链相关联的移出旁路寄存器410-1、410-2、410-3以及410-4。时钟域旁路寄存器404存储用于向时钟域旁路复用器402的相应选择线应用的相应控制值,并且那些存储值控制是否针对指定测试图案旁路对应时钟域CLK1、CLK2、CLK3以及CLK4。
多个时钟域旁路复用器405中的指定一个具有耦接至多个子链300中的对应子链的输入部的第一输入部,和耦接至多个子链300中的该对应子链的输出部的第二输入部。该指定时钟域旁路复用器被配置成响应于存储在其关联时钟域旁路寄存器410中的控制值,选择性地旁路其对应子链300。在这个实施例中,存储在寄存器410中的逻辑“1”值指示在扫描移位模式中将旁路对应子链,而存储在寄存器410中的逻辑“0”值指示在扫描移位模式中将不旁路对应子链。由此,例如,如果寄存器410-2存储有逻辑“1”值而另一寄存器存储有逻辑“0”值,则旁路子链300-2,并且由扫描链204-k形成的串行移位寄存器包括子链300-1、300-3以及300-4。
如图5所示,时钟域旁路寄存器410-j(其中,在本实施例中,j=1、2、3或4)中的指定一个包括可设置D型触发器500和逻辑门502。触发器500具有指示为D并且耦接至电压电势(例示性地耦接至VSS或地)的数据输入部,指示为Q并且耦接至多个时钟域旁路复用器405中的对应一个的选择线的数据输出部,耦接至旁路信号线的设置输入部,以及指示为CLK并且根据关联时钟域的时钟信号CLKx和扫描使能(SE)信号而驱动的时钟输入部。
该SE信号被驱动成第一逻辑电平,以将集成电路104设置在扫描移位操作模式中,所述第一逻辑电平在本发明该实施例中出于说明性目的,被假定成为逻辑“1”电平;以及被驱动成第二逻辑电平,以将集成电路104设置在功能操作模式中,所述第二逻辑电平在本发明该实施例中出于说明性目的,被假定成为逻辑“0”电平,但在本发明其它实施例中可以使用其它类型和组合的操作模式和扫描使能信令。例如,集成电路104及其关联扫描测试电路106的不同部分可以利用分离的扫描使能信号来控制。
逻辑门502可操作成生成用于根据关联时钟域的时钟信号CLK和SE信号向触发器500的时钟信号输入部应用的信号。本实施例中的逻辑门更特别地包括与门,该与门具有适于接收关联时钟域的时钟信号CLKx的正相输入部,和适于接收SE信号的反相输入部,以使通过与门502生成的、用于向触发器500的时钟输入部应用的信号对应于通过SE信号的反转形式选通的关联时钟域的时钟信号CLKx。
因此,当SE信号处于与扫描移位操作模式相对应的逻辑“1”电平时,SE信号的反转形式处于逻辑“0”电平,使得通过与门502防止将CLKx应用至触发器500的CLK输入部。因此,当扫描使能信号处于逻辑“0”电平(其在测试图案的捕获阶段中出现)时,触发器500可以仅重置成存储总是存在于图5的实施例中的其D输入部处的逻辑“0”值。
当SE信号处于逻辑“1”电平时,该布置由此断开应用至触发器500的时钟信号。旁路信号线上的向下转变将触发器中的存储值设置回逻辑“1”值。由此,当旁路信号从逻辑“1”电平转变至逻辑“0”电平时,触发器的Q输出从逻辑“0”电平转变至逻辑“1”电平。
紧接在完成扫描移位阶段之后,旁路信号从逻辑“1”电平转变至逻辑“0”电平,这可以处于关联捕获阶段开始处,并接着针对捕获阶段的剩余部分返回至逻辑“1”电平。在捕获阶段期间,SE信号处于逻辑“0”电平,使得如果在CLKx信号中的捕获期间发生转变,则该转变通过门502传播至触发器500的CLK输入,使Q输出从逻辑“1”电平转变至逻辑“0”电平。
图6例示了图4和5的时钟域旁路电路的操作。该时序图示出了关于两个测试图案、旁路和SE信号以及时钟信号CLK1、CLK2、CLK3以及CLK4的示例波形。如前所述,指示为测试图案1的第一测试图案的移出阶段与指示为测试图案2的第二测试图案的移入阶段交叠。这些阶段在图6时序图的背景下更通称为移位阶段。
在应用第一测试图案之前,将旁路信号设置成逻辑“1”电平,SE信号被设置成逻辑“0”电平,并且CLKx信号均被脉冲化一次,以便将旁路移位寄存器触发器500的Q输出设置成“0”电平。当测试进入移位阶段时,将SE信号设置成逻辑“1”电平,以经由与门502切断时钟信号,使得触发器500的Q输出保持在逻辑“0”电平。当完成移位阶段时,捕获阶段开始。
在捕获阶段开始时将旁路信号脉冲化至逻辑“0”电平一次,这使得触发器500的Q输出移动至逻辑“1”电平。如果CLKx随后在捕获阶段期间进行至少一次转变,则对应触发器500的Q输出将返回至逻辑“0”电平,意味着对应时钟域不应被旁路。对于其中在捕获阶段期间在对应时钟信号中不存在转变的停用时钟域来说,关联旁路寄存器中的触发器500的Q输出保持在逻辑“1”电平。在图6的示例中,在捕获阶段期间存在针对CLK1和CLK4时钟信号的时钟脉冲,意味着CLK1和CLK4时钟域在该捕获阶段中启用,而CLK2和CLK3时钟域在该捕获阶段中停用。启用的特定时钟域通常根据对应的应用测试图案从捕获阶段改变至捕获阶段。
在完成针对测试图案1的捕获阶段之后,该处理针对每一个附加测试图案重复,从测试图案2开始。
因此,响应于旁路信号线的断言,将用于指定旁路子链300-j中的一个的逻辑“1”值存储在对应时钟域旁路寄存器410-j中,其在每一个应用测试图案的捕获阶段期间出现一次。这还被称为设置触发器500,并且旁路信号在本实施例中低电平启用(active low)。而且,寄存器410-j结合将多个不同测试图案中的每一个应用至扫描链来重置。这在SE信号处于逻辑“0”电平时发生,并由此超出扫描移位模式范围,如前所述。更具体地说,每一个时钟域旁路寄存器410在结束针对每一个测试图案的扫描移位阶段之后重置。
如图4所示的时钟域旁路电路400可以全部旁路一个或更多个子链300,并由此将所需扫描移位时间减少了根据旁路子链的扫描单元的总长度而给出的时钟周期数。应注意到,当旁路特定时钟域时,在该域中的扫描单元的内容被保持并且可以在下一个测试图案中使用。因此,如果特定时钟域针对指定测试图案的捕获阶段停用,则针对该特定时钟域的时钟信号应当针对下一个测试图案的扫描移位阶段断开,使得该扫描单元保持它们的内容。
如上所述,时钟域旁路寄存器410在完成每一个测试图案的扫描移位阶段之后,具有设置成逻辑“1”值的其相应存储值。应注意到,一个或更多个额外时钟周期可以在针对指定测试图案的实际扫描移位阶段结束之后添加,从而方便确定针对下一个测试图案哪些时钟域不应移出。例如,可以在扫描移位阶段的结束与捕获阶段的开始之间引入一个或更多个额外周期,并且这种周期可以被用于断言相应旁路寄存器410中的触发器500的设置输入,以在所有寄存器410中存储“1”值,同时断开扫描移位时钟。接着,在捕获阶段期间,与启用时钟域相关联的旁路寄存器中的选定的旁路寄存器可以被重置成逻辑“0”值,使得剩余旁路寄存器继续存储“1”值,并由此,它们的停用时钟域在下一个扫描移位阶段被旁路。
在该类型的布置中,所有旁路寄存器在开始第一测试图案之前都被初始地重置成存储逻辑“0”值,接着,所有旁路寄存器都通过在开始或接近开始捕获阶段时旁路信号的单一断言而被设置成存储逻辑“1”值,并且最后,旁路寄存器中的与启用时钟域相对应的所选旁路寄存器响应于在捕获阶段期间在关联时钟信号中出现至少一个转变,而再次被重置成逻辑“0”值。该处理针对每一个测试图案重复。如上所示,在下一个测试图案的扫描移位阶段期间,处于针对前一测试图案的停用时钟域中的扫描单元将保持它们的内容。许多另选的信号发送布置都可以被用于在旁路寄存器中存储控制值,以提供对停用时钟域的希望旁路。
对于其中扫描链具有相等的长度n的实施例中的每一个测试图案来说,在每一个扫描链中应当具有至少一个未使用时钟域,以便减少针对该测试图案的测试时间。如果不存在未使用的时钟域,则该测试图案会照原样应用,而没有任何变化。
应当清楚,图4和5所示特定电路仅通过说明性示例来呈现,并且时钟域旁路电路的许多另选布置可以被用于减少测试时间和功耗,如在此所公开的那样。这些减少在不存在对集成电路面积需求或功能定时需求的任何显著负面影响的情况下实现。
图1的测试系统100中的测试器102不需要采取任何特定形式,并且各种传统的测试系统布置可以按简单的方式进行修改,以支持在此公开的转变控制功能。图7中示出了一种可能示例,其中,测试器702包括负载板704,其中要利用在此公开的技术进行扫描测试的集成电路705被安装在该负载板704的中央部分706中。测试器702还包括处理器和存储器元件707和708,以执行所存储的计算机代码。在本实施例中,处理器707被示出为实现测试图案生成器712。关联的扫描数据710存储在存储器708中。可以将许多另选测试器用于执行如在此公开的对集成电路的扫描测试。而且,如前所述,在另选实施例中,可以将测试器的一部分并入到集成电路本身中,如在内置的自测试(BIST)布置中那样。
插入用于形成集成电路设计的扫描链、转变控制器以及其它扫描测试电路的扫描单元可以在图8所示类型的处理系统800中执行。该实施例中的这种处理系统更特别地包括被配置成供在设计诸如集成电路104的集成电路中使用的设计系统,以包括具有时钟域旁路电路400的扫描测试电路106。
系统800包括耦接至存储器804的处理器802。网络接口806还耦接至处理器802,其用于允许该处理系统通过一个或更多个网络与其它系统和装置通信。因此,网络接口806可以包括一个或更多个收发器。处理器802实现扫描模块810,以结合对集成电路设计软件816的使用,按在此公开的方式补充具有扫描单元814和关联时钟域旁路电路的内核设计812。
通过示例的方式,包括扫描链204和关联时钟域旁路电路400的扫描链电路106可以利用RTL描述在系统800中生成,并接着利用特定技术库综合成门级别。接着可以创建测试生成模型,以利用测试生成工具来生成测试图案。可以使用控制文件来向测试生成工具提供诸如旁路时钟域的方式的信息。一旦对应规则适当,规则检查器就可以运行,使得测试生成工具具有考虑时钟域旁路电路的操作的扫描链的可见性。接着按常规方式生成测试图案。
在测试图案生成期间,测试生成工具具有有关时钟域旁路电路的功能的信息,并且生成针对每一个扫描通道的希望响应,以考虑这种功能。由此,由测试生成工具提供的希望响应将基于那些时钟域在指定测试图案的捕获阶段是启用还是停用,来反映针对该指定测试图案的一个或更多个时钟域的旁路。
诸如810、812、814以及816的元件至少部分地采用存储在存储器804中并且通过处理器802处理的软件的形式来实现。例如,存储器804可以存储程序代码,该程序代码通过处理器802执行,以在总体集成电路设计处理中实现模块810的特定扫描链和转变控制电路插入功能。存储器804是在此更通称为计算机可读介质或其它类型的计算机程序产品的示例,其具有嵌入在其中的计算机程序代码,并且例如可以包括:诸如RAM或ROM的电子存储器、磁性存储器、光学存储器,或采用任何组合的其它类型存储装置。处理器802可以包括:微处理器、CPU、ASIC、FPGA或其它理类型处理装置,以及这种装置的一部分或组合。
如上所示,本发明的实施例可以以集成电路的形式来实现。在给定的这种集成电路实现方式中,相同管芯(die)典型地在半导体晶片的表面上以重复的图案形成。每一个管芯都包括如在此描述的扫描测试电路,并且可以包括其它结构或电路。从所述晶片切割或切分单个管芯,接着将其封装为集成电路。本领域技术人员应当知道怎样切分晶片以及封装管芯以生成集成电路。这样制造的集成电路被视为本发明的一部分。
此外,应当强调的是,如在此描述的本发明的实施例仅是说明性的。例如,与在此描述的实施例中包括的扫描测试电路相比,本发明的其它实施例可以利用各种各样的其它类型的扫描测试电路(具有不同类型和布置的时钟域旁路电路、逻辑门以及其它电路元件,以及不同类型和配置的旁路信号和测试图案阶段)来实现。所附权利要求书的范围内的这些和众多其它另选实施例对本领域技术人员而言是显而易见的。