用于半导体集成电路的可测试性的技术的制作方法

文档序号:6916012阅读:197来源:国知局
专利名称:用于半导体集成电路的可测试性的技术的制作方法
技术领域
本发明涉及一种用于半导体集成电路的可测试性的技术。
背景技术
图12展示了一种测试半导体集成电路的常规方法的配置。在图12中,附图标记0201表示芯片,附图标记0202表示内存(RAM随机存取存储器),附图标记0203表示CPU(中央处理器),附图标记0204表示被测试的电路,附图标记0205表示用于将上述的组成部分相互连接起来的内部总线,附图标记0206表示与内部总线0205以及与被测试的电路0204相连的扫描测试电路,附图标记0206a表示用于把被测试的电路0204的、与扫描测试相关的端子连接到扫描测试电路0206上的信号线,附图标记0207表示用于将内部总线0205连接到输入—输出端子0208的外部总线接口(IF)部件。
当在试验中测试电路0204时,从中央处理器(CPU)0203或输入—输出端子0208通过总线0205来对扫描测试电路0206进行控制。将测试数据设置和输入到将被测试的电路0204的与扫描测试相关的端子。然后,读出被测试的电路0204的与扫描测试相关的端子的值。
该测试集成电路的方法被称作全扫描(full scan)测试方法。该方法是根据以下事实利用扫描寄存器替代被测试的电路0204中的所有寄存器,并将这些扫描寄存器连接成扫描链。结果,那些可以直接从总线控制或观测的寄存器也都被扫描寄存器替代了。然而,该扫描寄存器占据的面积比普通寄存器大。结果,需要大的芯片面积,以利用扫描寄存器替代所有的寄存器。
同样,在扫描测试的时候,除了用于正常操作的时钟之外,还将用于扫描测试的扫描时钟从扫描测试电路0206输入到被测试的电路0204中。通过从中央处理器(CPU)0203或输入—输出端子0208经由总线0205控制扫描测试电路0206,来产生和输出该测试时钟。然而,正常地,总线速度比内部时钟速度低。因此,不能以正常地操作速度进行测试。

发明内容
因此,本发明的主要目的是获得高速的操作,同时减小浪费的芯片面积。
根据本发明,为了达到该目的,包括以下方法。特别是,一种用于半导体集成电路的可测试性的技术包括以下所述的多个步骤在第一步骤中,通过根据预定的测试模式对半导体集成电路进行故障模拟,将可检测的故障和不可检测的故障相互区分开来。
在第二步骤中,列出不可检测的故障。
在第三步骤中,确定用于测试未检测出的故障的测试条件。
在第四步骤中,从用于第一步骤中的故障模拟的预定测试模式中确定最有可能满足第三步骤中的测试条件的测试模式。
在第五步骤中,利用扫描寄存器替代与第二步骤中的未检测出的故障有关的寄存器,所述扫描寄存器连接成扫描链从而组成改进电路。
在第六步骤中,在使用第四步骤中确定的用于改进电路的预定测试模式未检测出故障的时刻,通过切换到在第三步骤中确定的测试条件来执行故障模拟。
执行关于该配置的操作如下。特别是,与利用扫描寄存器替代所有寄存器的常规全扫描测试方法不同,只利用扫描寄存器替代那些与未检测出的故障有关的寄存器。将测试数据从外部源设置和输入到位于被测试的组合逻辑电路的输入侧的扫描寄存器。在该组合逻辑电路的输入侧,将其余的测试数据从集成电路端子或内置的处理器设置和输入到非扫描寄存器的寄存器。将其余的测试数据从外部源设置和输入到扫描寄存器。这样,可以利用准备用于像功能验证那类用途的预定测试模式将部分的测试数据设置和输入到扫描寄存器。将其余的测试数据从外部源设置和输入到扫描寄存器,并执行故障模拟和测试。与全扫描测试方法相比,利用扫描寄存器替代的寄存器的数量可以减小到所需的最小数,并且可以有效抑制芯片面积的增大。同样,可以控制整个输入—输出操作,并且利用具有用于操作与故障无关的寄存器的正常基本时钟的预定测试模式,能够进行高速处理。
在以上所述的用于半导体集成电路的可测试性的技术中,可以对第五步骤作以下改进。特别是,可以通过利用具有设置功能或复位功能的寄存器而不是扫描寄存器来替代与未检测出的故障有关的输入寄存器,来配置改进的电路。在这种情况下,除了以上所述的作用之外,该具有设置功能或复位功能的寄存器可以提高集成电路端子或内置的处理器的可控性,从而能够进行更高效的处理。
作为达到以上所述目的的另一种方法,本发明采用以下方法。特别是,该用于半导体集成电路的可测试性的技术包括以下多个步骤在第一步骤中,将连接到半导体集成电路中被测试的组合逻辑电路的一组寄存器分为以下三类第一寄存器,可以通过处理器直接控制和观测;第二寄存器,可以从半导体集成电路的端子直接控制和观测;以及第三寄存器,该第三寄存器是除第一和第二寄存器之外的寄存器。然后,利用连接成扫描链从而组成改进电路的扫描寄存器替代第三寄存器。
在第二步骤中,将测试数据分别从处理器和集成电路端子设置和输入到第一和第二寄存器。
在第三步骤中,通过扫描链将测试数据设置和输入到具有移位操作的第三寄存器。
在第四步骤中,捕获测试数据以用于组合逻辑电路。
在第五步骤中,通过扫描链利用移位操作输出第三寄存器中构成测试结果的数据。
在第六步骤中,输出第一和第二寄存器中构成测试结果的数据。
以下说明该配置的作用。特别是,与利用扫描寄存器替代所有寄存器的常规全扫描测试方法不同,只有不能直接从处理器控制和观测以及不能直接从集成电路端子控制和观测的第三寄存器才被扫描寄存器替代。同样,在故障模拟和测试中,将正常的测试数据设置和输入到第一和第二寄存器,而通过扫描链将测试数据设置和输入到具有移位操作的第三寄存器。关于被观测的测试结果数据,第三寄存器通过扫描链利用移位操作输出数据,而利用处理器或端子从第一和第二寄存器读出测试结果数据。通过这样做,与全扫描测试方法相比,利用扫描寄存器替代的寄存器的数量可以减少,从而抑制芯片面积的增大。
当连同附图一起考虑,根据以下对本发明的说明,本发明的上述及其它特征将变得更明显。


图1所示的电路图展示了不是被设计用于根据本发明第一到第三实施例的可测试性的原始电路。
图2所示的电路图展示了根据本发明第一实施例从原始电路进行可测试性改进的电路。
图3A所示的简图展示了在根据本发明第一实施例的改进电路中使用的扫描寄存器的配置,图3B所示的电路图展示了该扫描寄存器的配置的等效电路。
图4所示的流程图展示了包括根据本发明第一实施例产生改进的电路和产生测试模式的测试操作。
图5所示的时序图用于说明根据本发明第一实施例的改进电路的操作。
图6所示的电路图展示了根据本发明第二实施例从原始电路进行可测试性改进的电路。
图7所示的流程图展示了包括根据本发明第二实施例产生改进的电路和产生测试模式的测试操作。
图8所示的时序图用于说明根据本发明第二实施例的改进电路的操作。
图9所示的电路图展示了根据本发明第三实施例从原始电路进行可测试性改进的电路。
图10所示的流程图展示了包括根据本发明第三实施例产生改进的电路和产生测试模式的测试操作过程。
图11所示的时序图用于说明根据本发明第三实施例的改进电路的操作。
图12所示的框图展示了测试集成电路的常规方法的配置。
在所有这些附图中,分别以相同的附图标记表示同样的部件。
具体实施例方式
以下参照附图对根据本发明的优选实施例的、用于半导体集成电路的可测试性的技术进行详细说明。
(实施例1)图1展示了在利用根据本发明的可测试性设计进行改进之前的原始电路C0。在逻辑电路设计阶段,执行用于可测试性的电路校正,即执行原始电路C0的可测试性设计。
在图1中,附图标记101、102和103表示输入一旦确定之后输出就唯一确定的组合逻辑电路。该组合逻辑电路不包括寄存器、锁存器或存储器。在该例中,组合逻辑电路102是测试的对象。为了简化说明,该组合逻辑电路只包括一个与(AND)电路29。附图标记104表示安装在半导体集成电路上的处理器,附图标记105表示用于连接处理器104和各部分的总线,附图标记106表示地址译码器。该地址译码器106将总线105的地址部分译码,并产生和输出写使能信号(write enable signal)WE2和读使能信号(read enable signal)RE1及RE3。
附图标记1-14表示每个都包括一个D触发器的寄存器。
寄存器1可以控制来自处理器104的写操作。配置寄存器1,使得该寄存器1根据来自地址译码器106的写使能信号WE2通过选择器30取进总线105的数据部分的值。
寄存器8可以控制来自处理器104的数据读操作。该寄存器8根据来自地址译码器106的读使能信号RE1通过三态缓冲器(读使能电路)31向总线105得数据部分输出数值。
处理器104可以读取输出到总线105的数据部分的值。符号CK表示用于组合逻辑电路的基本时钟,并由该处理器104提供。
图2展示了在对不是被设计用于可测试性的原始电路进行可测试性校正之后的改进电路C1。在该改进的电路C1中,分别用扫描寄存器寄存器2’和10’来替代原始电路中的寄存器2和10(通过稍后参照附图4和5说明的替代方法)。该扫描寄存器2’和10’组成扫描链。
图3A展示了用于图2中的改进电路C1的扫描寄存器的配置。图3B展示了该扫描寄存器配置的等效电路。该扫描寄存器除了具有用于正常操作的数据输入(D)之外,还包含扫描测试数据输入(TD),并进一步包含扫描使能输入(scan enable input)(SE)。在该扫描寄存器中,只要扫描使能输入(SE)保持为“0”,则在时钟输入(CK)的上升沿取进数据输入(D)的值。另一方面,只要扫描使能输入(SE)为“1”,则在时钟输入(CK)的上升沿取进测试数据输入(TD)的值。
在图2中,符号TDI(测试数据输入)表示包括扫描寄存器2’和10’的扫描链的数据输入端子。符号TDO(测试数据输出)表示包括扫描寄存器2’和10’的扫描链的数据输出端子。符号TCK表示测试时钟输入端子。从测试数据输入端子TDI取进数据,并在扫描链中将该取进的数据移位,并将通过组合逻辑电路102获得的数据输出到测试数据输出端子TDO。在该操作中,来自测试时钟输入端子TCK的测试时钟控制定时。
附图标记32表示或(OR)电路。该或电路32具有两个输入,包括来自外部测试时钟输入端子TCK的测试时钟和来自处理器104的基本时钟CK。将该或(OR)电路32的输出连接到组成扫描链的扫描寄存器2’和10’的时钟输入(CK)。
在改进电路C1中,扫描链由替代寄存器的扫描寄存器2’和10’以及与该扫描寄存器2’和10’相连的测试数据输入端子TDI和测试数据输出端子TDO组成。当测试该扫描链时,处理器104停止基本时钟CK的输出,同时将扫描使能信号SE切换到激活态“1”。分别将该扫描使能信号SE施加到扫描寄存器2’和10’的扫描使能输入端子(SE)。结果,扫描寄存器2’和10’将数据输入端子从用于正常操作的数据输入(D)切换到测试数据输入(TD)。通过或(OR)电路32将来自外部测试时钟输入端子TCK的测试时钟提供给扫描寄存器2’和10’的时钟输入(CK)。结果,可以将任意的测试数据从外部测试数据输入端子TDI输入到扫描寄存器2’的测试数据输入端子(TD)。通过组合逻辑电路102对来自扫描寄存器2’的数据输出(Q)的数据输出进行逻辑合成。将该逻辑合成的结果输入到扫描寄存器10’的数据输入端子(D),并从扫描寄存器10’的数据输出(Q)输出到外部测试数据输出端子TDO。换句话说,可以观测通过组合逻辑电路102所进行的逻辑合成。
图4所示的流程图展示了通过将图1中的原始电路C0校正为图2中的改进电路C1、同时产生用于该改进电路C1的测试模式而进行的测试操作。
假定,已经存在用于原始电路C0的测试模式。为了提高故障检测率,执行可测试性设计,并增加测试模式。故障检测率是指以百分数表示的、利用给定的测试模式检测出的故障与所有的故障之比。故障检测率是代表测试模式的完善性的指数。
首先,在步骤S1中,对原始电路C0进行故障模拟。故障模拟是一个设计过程,或者特别是,故障模拟是与测试有关的测试设计。在故障模拟中,利用给定的测试模式序列检查可检测的故障和不可检测的故障。通过将一个已经产生的测试模式应用于原始电路C0来执行故障模拟。
接下来,在步骤S2中,列出在故障模拟中未检测出的故障。在故障模拟中未检测出的故障被定义为利用在故障模拟中使用的测试模式不能发现和检测出的给定部分的故障。在本例中,假定原始电路C0的寄存器2的输出信号线16保持为“1”(以下称作“SA1”)这个故障仍然没有被检测出。将该保持(stuck-at)故障定义为逻辑值固定为“0”或“1”的情况。
接下来,在步骤S3中,确定用于测试未检测出的故障(信号线16SA1)的条件(测试条件)。为了检测未检测出的故障(信号线16SA1),以这种方式进行测试,即通过信号线16保持为“1”这个故障的发生来改变作为期望值被观测的值。为此,确定输入侧的测试条件如下寄存器1的输出信号线15“1”寄存器2的输出信号线16“0”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”除非在以上条件下故障(信号线16SA1)发生了,否则与(AND)电路29的输出信号线24将变成“0”;而另一方面,如果故障(信号线16SA1)发生了,与(AND)电路29的输出信号线24将变成“1”。
接下来,在步骤S4中,在执行故障模拟期间搜索最有可能满足测试条件的状态,以产生测试模式。在本例中,假定以下显示的在时间点T12的状态最可能满足测试条件寄存器1的输出信号线15“1”寄存器2的输出信号线16“1”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”接下来,对原始电路C0进行改进以便容易地产生测试模式。
特别是,在步骤S5中,利用扫描寄存器来替代处于最有可能满足测试条件但未能满足测试条件的状态的寄存器。在本例中,利用扫描寄存器2’来替代寄存器2。同样,利用扫描寄存器替代输出/期望值随故障是否发生而改变的信号被设置和输入到其中的寄存器。在本例中,利用寄存器10’替代寄存器10。
同时,增加用于设置和输入扫描测试数据的测试数据输入端子TDI。同样,增加用于观测扫描数据的测试数据输出端子TDO。进一步,增加测试时钟输入端子TCK,其用于输入来于设置/输入、移位和输出测试数据的测试时钟。同样,在处理器104中增加用于设置扫描模式的扫描使能信号SE。将测试数据输入端子TDI连接到位于扫描链起始级的扫描寄存器2’的测试数据输入端子(TD)。同样,将测试数据输出端子TDO连接到位于扫描链最末级的扫描寄存器10’的数据输出(Q)。进一步,将扫描使能信号SE连接到扫描寄存器2’和10’的扫描使能使输入(SE)。将测试时钟输入端子TCK连接到或(OR)电路32的一个输入端子。将或(OR)电路32的另外输入端子与处理器104的基本时钟CK相连。将或(OR)电路32的输出连接到扫描寄存器2’和10’的时钟输入(CK)。将扫描寄存器2’的数据输出(Q)连接到扫描寄存器10’的测试数据输入端子(TD)。
在本例中,只有一个未检测出的故障,因此将图1所示的原始电路C0改进为图2所示的改进电路C1。另一方面,在存在多个未检测出的故障的情况下,利用扫描寄存器重复替代和未检测出的故障一样多的寄存器。
接下来,在步骤S6中,产生用于检测图2所示的改进电路C1中的未检测出的故障(信号线16SA1)的测试模式。一直到最有可能满足测试条件的状态发生了的时间点T12,都使用步骤S1中的故障模拟的测试模式(稍后参照图5详细说明)。利用该测试模式,在时间点T12经常发生的条件如下寄存器1的输出信号线15“1”寄存器2的输出信号线16“1”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”由该状态,通过激活扫描链来产生能够检测未检测出的故障(信号线16SA1)的测试模式。在本例中,产生的测试条件如下寄存器1的输出信号线15“1”寄存器2的输出信号线16“0”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”在存在多个故障的情况下,重复产生该测试模式。
图5所示的时序图用于说明图2所示的改进电路C1的操作。图5显示了基本时钟CK、测试时钟输入端子TCK、扫描使能信号SE、测试数据输入端子TDI和测试数据输出端子TDO的波形,以及寄存器1-4和10保存的值。
在从时间点T1到T12的期间,以不同于扫描操作的正常操作模式执行故障模拟。在从时间点T1到T12的期间,测试时钟输入端子TCK为“0”。扫描使能信号SE也为“0”。寄存器1到4(其中2’表示扫描寄存器)和扫描寄存器10’以与故障模拟相同的方式改变其值。
在时间点T12,寄存器1到4呈现最有可能满足图4所示的测试设计流程中的测试条件的状态。一旦达到该状态,就将扫描寄存器2’临时切换到扫描操作模式。通过重写扫描寄存器2来产生测试条件,并作为扫描操作的结果。从时间点T12的后半段,将基本时钟CK设置为“0”,将扫描使能信号SE设置为“1”,并将测试数据输入端子TDI设置为将要被设置和输入到扫描寄存器2’的数据“0”。
在时间点T13的开始,激活测试时钟输入端子TCK,以便将测试数据输入端子TDI的数据“0”取进扫描寄存器2’。该状态完全满足测试条件。从而产生如下的测试模式寄存器1的输出信号线15“1”寄存器2’的输出信号线16“0”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”为了在该测试条件下,将与(AND)电路29的输出取进扫描寄存器10’,从时间点T13的后半段将扫描使能信号SE设置为“0”。
在时间点T14的开始,激活测试时钟输入端子TCK,并将与(AND)电路29的输出取进扫描寄存器10’。在本例中,扫描寄存器10’保存的值为“0”,并且在时间点T14将该“0”值输出到测试数据输出端子TDO。通过在时间点T14比较在测试数据输出端子TDO的值与期望数据“0”,可以检测未检测出的故障(信号线16SA1)。在本例中,有一个未检测出的故障,因此完成了所需的测试。
在存在多个未检测出的故障的情况下,重复进行和未检测出的故障一样多次数的测试。
本实施例代表了只利用扫描寄存器替代所需的寄存器的部分扫描测试。与利用扫描寄存器替代所有寄存器的全扫描测试不同,因此可以将增加的芯片面积抑制在更小的程度。
在全扫描测试中,组成扫描链的寄存器在数量上增加了,并且扫描链长度的增加也造成了不便。特别是,许多数据都需要利用用于设置和输入测试条件的测试数据输入端子TDI来设置和输入,从而消耗了长的时间。同样,需要消耗相当长的时间从测试数据输出端子TDO读取结果。
相反,根据本实施例,利用并行操作的寄存器的正常操作条件(步骤S1中的测试模式的操作条件)来产生测试条件。进一步,将扫描链的长度减小到所需的最小长度。结果,可以在更短的测试时间内捕获未检测出的故障。
(实施例2)图6展示了对图1中不是被设计用于可测试性的原始电路C0进行可测试性改进后的电路C2。如该改进的电路C2所示,利用具有复位功能的寄存器2”替代原始电路C0中的寄存器2。同样,利用扫描寄存器10’替代寄存器10。
特别是,在图1中,利用具有复位功能的寄存器2’来替代被认为甚至在处理器104的控制下也难以将值设置为“0”的寄存器2,以便强制地设置和输入“0”值。“复位”表示用于强制复位的复位信号,并且在本例中,由处理器104输出该复位信号。尽管如此,不是必须由处理器104输出该复位信号。另一方面,认为在处理器104的控制下也难以观测图1中的寄存器10,因此利用扫描寄存器10’替代该寄存器10。稍后参照图7来说明利用具有复位功能的寄存器2”替代寄存器2和利用寄存器10’替代寄存器10的方法。
扫描使能信号SE指示扫描寄存器10’从测试数据输入端子(TD)取进数据。将该扫描寄存器10’的数据输出(Q)连接到扫描链的数据输出端子TDO。在本例中,扫描寄存器只限于扫描寄存器10’,因此不构成扫描链。然而,在存在多个扫描寄存器的情况下,通过连续地将数据输出(Q)连接到下一个扫描寄存器的测试数据输入(TD)来构成扫描链。将测试时钟输入端子TCK通过或(OR)电路32连接到扫描寄存器10’的时钟输入(CK)。特别是,或(OR)电路具有两个输入端子,分别用于接收来自处理器104的基本时钟CK和来自外部测试时钟输入端子TCK的信号。将或(OR)电路32的输出连接到扫描寄存器10’的时钟输入(CK)。来自测试时钟输入端子TCK的测试时钟将扫描链的数据移位,并控制操作的定时以输出数据到测试数据输出端子TDO。
图7所示的流程图展示了通过将图1所示的原始电路C0校正为图6所示的电路C2、同时产生用于该改进电路C2的测试模式而进行的测试操作。
假定,已经存在用于原始电路C0的测试模式。为了提高故障检测率,进行可测试性设计,并增加测试模式。
首先,在步骤S11中对原始电路C0执行故障模拟。
接下来,在步骤S12中,列出在故障模拟中未检测出的故障。在本例中,假定原始电路C0中的寄存器2的输出信号线16保持为“1”的这个故障没有被检测出。
接下来,在步骤S13中,确定用于测试未检测出的故障(信号线16SA1)的条件(测试条件)。如上所述的情况,确定用于检测未检测出的故障(信号线16SA1)的输入侧的测试条件如下寄存器1的输出信号线15“1”寄存器2的输出信号线16“0”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”在以上条件下,在没有故障(信号线16SA1)的情况下,与(AND)电路29的输出信号线24将变成“0”;而在出现了故障(信号线16SA1)的情况下,与(AND)电路29的输出信号线24将变成“1”。
接下来,在步骤S14中,在执行故障模拟期间搜索最有可能满足测试条件的状态,以产生测试模式。在本例中,在时间点T12应用以下的状态寄存器1的输出信号线15“1”寄存器2的输出信号线16“1”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”接下来,以这种方式对原始电路进行改进以方便产生测试模式。
特别是,在步骤15中,利用具有设置或复位功能的扫描寄存器来替代处于最有可能满足测试条件但未能满足测试条件的状态的寄存器,以满足测试条件。在本例中,利用具有复位功能的寄存器2”替代寄存器2。同样,利用扫描寄存器替代输出或期望值随故障是否发生而改变的信号被设置和输入到其中的寄存器。在本例中,利用扫描寄存器10’替代寄存器10。
同时,增加用于观测扫描数据的测试数据输出端子TDO和测试时钟输入端子TCK,所述测试时钟输入端子TCK被输入用于设置和输入、移位及输出测试数据的测试时钟。在处理器104中增加用于设置扫描模式的扫描使能信号SE。将测试数据输出端子TDO连接到扫描寄存器10’(一般来说为扫描链的最末扫描寄存器)的数据输出(Q)。将扫描使能信号SE连接到扫描寄存器10’的扫描使能输入(SE)。将测试时钟输入端子TCK连接到或(OR)电路32的一个输入端子。将或(OR)电路32的另外输入端子与处理器104的基本时钟CK相连。将或(OR)电路32的输出连接到扫描寄存器10’的时钟输入(CK)。
在本例中,将扫描寄存器10’(一般来说为扫描链的第一扫描寄存器)的测试数据输入(TD)固定为VDD,但是也可替换地固定为GND。作为另一个替换方案,提供用于设置和输入扫描数据的测试数据输入端子TDI,并将该测试数据输入端子TDI连接到扫描寄存器10’的测试数据输入(TD)。
在本例中,只有一个未检测出的故障,因此通过以上所述的步骤将图1所示的原始电路C0改进为图6所示的电路C2。在存在多个未检测出的故障的情况下,重复替代和未检测出的故障一样多的寄存器。
接下来,在步骤S16中,通过图6所示的改进电路C2产生能够检测未检测出的故障(信号线16SA1)的测试模式。一直到达到最有可能满足测试条件的状态达到了的时间点T12,实际上都使用在步骤S11中的故障模拟(如稍后参照图8详细说明的)。在该状态下,保持以下的条件寄存器1的输出信号线15“1”寄存器2”的输出信号线16“1”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”由该状态,开启复位信号RESET,从而产生能够检测未检测出的故障的测试模式。在本例中,产生的模式如下寄存器1的输出信号线15“1”寄存器2”的输出信号线16“0”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”在存在多个未检测出的故障的情况下,重复以上所述的测试模式产生过程。
图8所示的时序图用于说明了图6所示的改进电路C2的操作。
以不涉及扫描操作的正常操作模式,在从T1到T12的期间执行故障模拟。在从T1到T12的期间,测试时钟输入端子TCK为“0”。扫描使能信号SE也为“0”。寄存器1到4(其中的寄存器2具有设置功能)和扫描寄存器10’以与故障模拟中相同的方式逐渐地改变其值。
在时间点T12,寄存器1到4呈现最有可能满足图10所示的测试设计流程中的测试条件的状态。在时间点T13,停止基本时钟CK,并开启复位信号RESET,以便重写具有复位功能的寄存器2”的值,从而产生测试条件。这样,就产生了以下的测试模式寄存器1的输出信号线15“1”寄存器2”的输出信号线16“0”寄存器3的输出信号线17“1”寄存器4的输出信号线18“1”为了在测试条件下,将与(AND)电路29的输出取进扫描寄存器10’,在时间点T14的后半段将扫描使能信号SE设置为“1”。在时间点T15,一旦激活测试时钟输入端子TCK,就将与(AND)电路29的输出取进扫描寄存器10’。在本例中,扫描链只包括扫描寄存器10’。可以从测试数据输出端子TDO观测扫描寄存器10’的值。另一方面,在扫描链包括多个寄存器的情况下,当激活测试时钟输入端子TCK时,保持扫描使能信号SE为“1”。这样,通过扫描链从测试数据输出端子TDO顺序地观测寄存器的值。在本例中,只有一个未检测出的故障,因此结束所需的测试。
在存在多个未检测出的故障的情况下,重复进行和未检测出的故障一样多次数的测试。
本实施例也代表部分扫描测试。只利用具有复位功能的寄存器(或具有设置功能的寄存器)和扫描寄存器替代所需的寄存器。因此,与利用扫描寄存器替代所有寄存器的全扫描测试相比,该部分扫描测试可以将增加的芯片面积抑制在更小的程度。
同样,如在第一实施例中一样,利用寄存器并行操作的正常操作条件(步骤S11中的测试模式的操作条件)来产生测试条件,同时将扫描链减小到所需的最小长度。这样,可以在更短的测试时间内捕获未检测出的故障。
(实施例3)图9展示了对图1中仍然不是被设计用于可测试性的原始电路C0进行可测试性改进后的电路C3。在原始电路C0中,可以将数据从处理器104设置和输入到寄存器1,并且寄存器8可以从处理器104读取特殊的数据。利用扫描寄存器替代除上述的两个寄存器1和8之外的寄存器,以组成图9所示的改进电路C3。特别是,分别利用扫描寄存器2’到7’和9’到14’替代原始电路中的寄存器2到7和9到14(稍后参照图10和图11说明该方法)。该扫描寄存器2’到7’和14’到9’组成了扫描链。将每个扫描寄存器的数据输出(Q)连接到位于下一级的扫描寄存器的测试数据输入(TD)。
将测试数据输入端子TDI连接到位于扫描链第一级的扫描寄存器2’的测试数据输入(TD)。将测试数据输出端子TDO连接到位于扫描链最末级的扫描寄存器9’的数据输出(Q)。将来自处理器104的基本时钟CK和来自外部测试时钟输入端子TCK的信号施加到或(OR)电路32的两个输入端子,将该或(OR)电路32的输出连接到组成扫描链的扫描寄存器2’到7’和9’到14’的每一个的时钟输入(CK)。将来自处理器104的扫描使能信号SE的信号线连接到扫描寄存器2’到7’和9’到14’的每一个的扫描使能输入(SE)。
在改进电路C3中,扫描链由替代寄存器的扫描寄存器2’到7’和14’到9’以及与该扫描寄存器2’到7’和14’到9’相连的测试数据输入端子TDI和测试数据输出端子TDO组成。在测试该扫描链时,处理器104停止基本时钟CK的输出,同时将扫描使能信号SE切换到激活态“1”。结果扫描寄存器2’到7’和14’到9’将数据输入端子从用于正常操作的数据输入(D)切换到测试数据输入(TD)。从测试时钟输入端子TCK输入外部测试时钟。通过或(OR)电路32将该测试时钟提供给扫描寄存器2’到7’和14’到9’的每一个的时钟输入(CK)。从而,可以通过测试时钟输入端子TCK将任意的测试数据从外部源设置和输入到位于扫描链第一级的扫描寄存器2’的测试数据输入端子(TD),并将该设置和输入的测试数据顺序地移位到位于随后的扫描级的扫描寄存器。在将期望的测试数据设置和输入到扫描寄存器2’到7’的情况下,执行捕获操作。从而,通过组合逻辑电路102对从扫描寄存器2’到7’的每一个的数据输出(Q)产生的数据进行逻辑合成。将该逻辑合成的结果设置和输入到扫描寄存器9’到14’的每一个的数据输入端子(D)。再次执行扫描操作,以便将扫描寄存器14’的数据移位到扫描寄存器13’,以及将扫描寄存器13’的数据移位到扫描寄存器12’,等等。这样,将扫描寄存器10’的数据移位到扫描寄存器9’。进一步,将数据从扫描寄存器9’的数据输出(Q)输出到外部测试数据输出端子TDO。换句话说,可以观测由组合逻辑电路102进行的逻辑合成。
图10所示的流程图展示了将图1所示的原始电路C0校正为图9所示的改进电路C3、并产生该改进电路C3的测试模式的操作。根据本实施例,与第一和第二实施例中的可测试性设计不同,没有用于原始电路C0的测试模式,并且在图9的状态下产生测试模式。
首先,在步骤S21中,利用扫描寄存器替代原始电路C0中的、不能直接设置和输入数据或不能直接从中读取数据的寄存器。在本例中,利用扫描寄存器替代寄存器2到7和9到14。
同时,增加用于设置和输入用于扫描操作的测试数据的测试数据输入端子TDI。同样,增加用于观测扫描数据的测试数据输出端子TDO。进一步,增加用于输入测试时钟的测试时钟输入端子TCK,以设置和输入、移位及输出测试数据。同样,在处理器104中,增加用于设置扫描模式的扫描使能信号。将测试数据输入端子TDI连接到位于扫描链第一级的扫描寄存器2’的测试数据输入(TD)。将测试数据输出端子TDO连接到位于扫描链最末级的扫描寄存器9’的数据输出(Q)。将扫描使能信号SE连接到扫描寄存器2’到7’和14’到9’的每一个的扫描使能输入(SE)。将测试时钟输入端子TCK连接到或(OR)电路32的一个输入端子。将或(OR)电路32的另外输入端子与处理器104的基本时钟CK相连。将或(OR)电路32的输出连接到扫描寄存器2’到7’和14’到9’的每一个的时钟输入(CK)。这样,将图1所示的原始电路C0改进为图9所示的改进电路C3。
接下来,在步骤S22中,列出涉及的故障。在本例中,假定存在信号线16保持为“1”这个故障。在多个故障发生的情况下,和故障一样多次数地重复根据以下所述的原理和步骤产生测试模式的操作。
在步骤S23中,确定用于测试所涉及的故障的条件。在本例中,考虑用于输入和输出信号到组合逻辑电路102中的与(AND)电路29的信号线。与(AND)电路29的输入侧与分别连接到寄存器1以及扫描寄存器2’、3’、4’上的信号线15到18相连,而与(AND)电路29的输出侧与扫描寄存器10’的信号线24相连。确定用于测试信号线16保持为“1”这个故障的测试条件。确定测试条件如下寄存器1的输出信号线15“1”寄存器2’的输出信号线16“0”寄存器3’的输出信号线17“1”寄存器4’的输出信号线18“1”在步骤S24中,利用程序将测试数据设置和输入到可以通过根据程序操作处理器104来设置和输入测试数据的寄存器。另一方面,关于可以从集成电路端子设置和输入测试数据的寄存器,利用特殊的集成电路端子设置和输入测试数据。在本例中,使用一种根据程序将测试数据设置和输入到寄存器1的模式。
接下来,在步骤S25中,通过扫描链将数值设置和输入到不能通过根据程序操作处理器104或不能通过从集成电路端子输入数据来设置测试数据的寄存器。在本例中,使用一种通过扫描链将测试数据设置和输入到扫描寄存器2’、3’和4’的模式。这样,就构成了满足测试条件的模式。
在步骤S26中,为了在满足测试条件之后观测测试结果,通过扫描链观测那些不能通过根据程序操作处理器104或不能通过从集成电路端子输出数据来观测测试数据的寄存器的测试数据。在本例中,通过扫描链观测扫描寄存器10’的值。换句话说,在将数据移位到扫描寄存器9’之后,从数据输出端子TDO读取数据。
接下来,在步骤S27中,看情况,利用程序或集成电路端子来观测可以通过根据程序操作处理器104或可以通过从集成电路端子的输出来观测测试数据的寄存器的测试数据。在本例中,虽然不是必需的,但是例如,通过根据程序操作处理器104来观测寄存器8的值。
图11所示的时序图用于说明图9所示的改进电路C3的操作。图9显示了与图5中相同的部件、写使能信号WE2以及读使能信号RE1。
在从时间点T1到T2的期间,以正常的操作模式而非扫描操作模式将测试数据设置和输入到可以通过程序或集成电路端子控制的寄存器。在本例中,通过操作处理器104将“1”设置和输入到寄存器1。特别是,在时间点T1,处理器104将指示寄存器1的地址和将被写进寄存器1的数据“1”输出到总线105。
在时间点T2,在基本时钟CK的上升沿将数据“1”写进寄存器1。
在从时间点T3到T5的期间,执行扫描操作以便将测试数据设置和输入到扫描寄存器2’、3’和4’。为了执行该扫描操作,从时间点T2的后半段将扫描使能信号SE设置为“1”,并且停止来自处理器104的基本时钟CK,同时从测试时钟输入端子TCK提供测试时钟。
从时间点T2的后半段,将测试数据输入端子TDI设置为“1”。该值“1”最终将被设置和输入到扫描寄存器4’。
在时间点T3,在测试时钟输入端子TCK的上升沿将测试数据输入端子TDI的值取进扫描寄存器2’。
从时间点T3的后半段,将测试数据输入端子TDI设置为“1”。该值“1”最终将被设置和输入到扫描寄存器3’。
在时间点T4,在测试时钟输入端子TCK的上升沿将扫描寄存器2’的值取进扫描寄存器3’。同样,将测试数据输入端子TDI的值取进扫描寄存器2’。
从时间点T4的后半段,将测试数据输入端子TDI设置为“0”。该值“0”最终将被设置和输入到扫描寄存器2’。
在时间点T5,在测试时钟输入端子TCK的上升沿将扫描寄存器3’的值取进扫描寄存器4’。同样,将扫描寄存器2’的值取进扫描寄存器3’。进一步,将测试数据输入端子TDI的值取进扫描寄存器2’。在时间点T5的状态构成了测试模式。换句话说,将数据“1”、“0”、“1”和“1”分别设置和输入到寄存器1、2’、3’和4’。
从时间点T5的后半段,将扫描使能信号SE设置为“0”。
在时间点T6,一旦激活基本时钟CK,就将测试模式中的与(AND)电路29的输出取进扫描寄存器10’。为了通过扫描链在测试数据输出端子TDO读取扫描寄存器10’的值,从时间点T6的后半段将扫描使能信号SE设置为“1”在时间点T7,一旦激活测试时钟输入端子TCK,就将扫描寄存器10’的值取进扫描寄存器9’。将该值从扫描寄存器9’的数据输出(Q)输出到测试数据输出端子TDO,从而可以观测该值。
利用以上所述的方式,可以检测信号线16保持为“1”的这个故障SA1。
在本例中,虽然不是必需的,但是可以以这种方式通过根据一个程序操作处理器104来观测寄存器8即,从时间点T7的后半段将扫描使能信号SE设置为“0”,同时将指示寄存器8的地址放置在总线105的地址部分上。在时间点T8,激活基本时钟CK,以便在总线105的数据部分读取和观测寄存器8的值。
与利用扫描寄存器替代所有的寄存器1到14的全扫描测试相比,该实施例保留了可以直接从处理器104控制和观测的寄存器1和8。另一方面,只利用扫描寄存器替代不能直接控制和观测的寄存器2到7和9到14。结果,抑制了芯片面积的增大。
同样,利用寄存器并行操作的正常操作条件来产生测试条件,并尽可能地缩短扫描链。结果,可以在更短的时间内捕获未检测出的故障。
以上说明了三个实施例。可以将第一实施例与第二实施例结合,可以将第二实施例与第三实施例结合,可以将第一实施例与第三实施例结合,以及可以将第一实施例与第二实施例和第三实施例结合。
如上所述,本发明不同于利用扫描寄存器替代所有寄存器的常规的全扫描测试方法。根据本发明,只利用扫描寄存器替代那些与未检测出的故障有关的寄存器。作为替换方案,利用扫描寄存器替代那些具有设置或复位功能的寄存器。作为另一个替换方案,只利用扫描寄存器替代那些不能直接从内置的处理器或集成电路端子进行控制或观测的寄存器。与全扫描测试方法相比,采用这种部分扫描测试方法可以减少被扫描寄存器替代的寄存器的数量。结果,可以阻止芯片面积的增加。同时,可以利用正常的基本时钟进行部分的测试,从而能够进行快速处理。
具有设置功能或复位功能的寄存器提高了从处理器或集成电路端子的可控性。
由以上说明,本发明提供的内容将更明显。
权利要求
1.一种用于半导体集成电路的可测试性的技术,包括第一步骤,根据预定的测试模式对半导体集成电路进行故障模拟,并将可检测的故障和不可检测的故障相互区分开来;第二步骤,列出不可检测的故障作为未检测出的故障;第三步骤,确定用于测试该未检测出的故障的测试条件;第四步骤,从第一步骤的故障模拟的预定测试模式中确定最有可能满足第三步骤中的测试条件的测试模式;第五步骤,利用扫描寄存器替代与第二步骤中的与未检测出的故障有关的寄存器,并将该扫描寄存器连接为扫描链,从而组成改进的电路;以及第六步骤,在使用第四步骤中确定的用于改进电路的测试模式未检测出故障的时刻,通过切换到在第三步骤中确定的测试条件来进行故障模拟或测试。
2.根据权利要求1所述的用于半导体集成电路的可测试性的技术,其中,第五步骤包括利用具有设置或复位功能的寄存器而不是扫描寄存器来替代与未检测出的故障有关的输入侧的寄存器,从而组成改进的电路。
3.一种用于半导体集成电路的可测试性的技术,其中将连接到在半导体集成电路中的、构成测试对象的组合逻辑电路的寄存器分为以下三类第一寄存器,可以直接从内置的处理器进行控制和观测;第二寄存器,可以直接从半导体集成电路的端子进行控制和观测;以及第三寄存器,该第三寄存器是除第一和第二寄存器之外的寄存器,该技术包括第一步骤,利用扫描寄存器替代第三寄存器,并将该扫描寄存器连接为扫描链,从而组成改进的电路;第二步骤,将测试数据分别从处理器和集成电路端子设置和输入到第一和第二寄存器;第三步骤,通过扫描链将测试数据设置和输入到具有移位操作的第三寄存器;第四步骤,捕获用于组合逻辑电路的测试数据;第五步骤,通过扫描链从具有移位操作的第三寄存器输出测试结果数据;第六步骤,从第一和第二寄存器输出测试结果数据。
全文摘要
公开了一种用于半导体集成电路的可测试性的技术。在第一步骤中,根据预定的测试模式进行故障模拟,以便将可检测的故障和不可检测的故障相互区分开来。在第二步骤中,列出未检测出的故障。在第三步骤中,确定用于未检测出的故障的测试条件。在第四步骤中,从多个测试模式当中选择最有可能满足测试条件的测试模式。在第五步骤中,利用扫描寄存器替代与未检测出的故障相关的寄存器,同时将该扫描寄存器连接为扫描链,从而组成改进的电路。在第六步骤中,在使用用于改进电路的测试模式未能检测出故障的时刻,通过切换到在第三步骤中确定的测试条件来进行故障模拟。
文档编号H01L21/70GK1495434SQ0315897
公开日2004年5月12日 申请日期2003年9月17日 优先权日2002年9月17日
发明者杉村幸夫, 小川淳 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1