专利名称:半导体设备的利记博彩app
技术领域:
这里讨论的实施例涉及半导体设备。
背景技术:
扫描测试是公知的测试半导体设备(LSI :大規模集成电路)的方法。图I图示了具有扫描测试功能的LSI的配置示例。此附图中的LSI具有组合电路Cl至c8以及连接到组合电路Cl至c8的扫描触发器sfl至sff,组合电路Cl至c8包括执行数据处理和计算的多个电路元件。扫描触发器(以下称为“FF”)sfl至sff具有多路器功能。此外,图I的LSI在正常操作期间具有用户模式,并且在扫描测试期间具有扫描模式。在用户模式的情况中,组合电路Cl至c8与扫描触发器sfl至sff —起执行对从输入端子UI输入的数据的处理,并且将处理结果输出给输出端子W。 另ー方面,在扫描模式的情况中,扫描输入端子SI和扫描输出端子SO被串联连接以形成扫描链。用户从扫描输入端子SI输入数据图案(data pattern),并且数据可被设置在扫描FF sfl至sff中作为到组合电路Cl至c8的任意输入值。此外,通过移位扫描链,用户可以使得由扫描FFsfl至sff保存的、指示组合电路Cl至c8的处理结果的值从扫描输出端子SO被输出。通过验证数据图案输出,用户可以判断组合电路Cl至c8的处理是否适当地被执行。
发明内容
然而,虽然在诸如图I所示电路之类的LSI中,可以通过形成扫描链来使得能够进行扫描测试,然而也使得能够对扫描FF sfl至sff所保存的值进行输出以及从外部设备进行输入。例如,当组合电路Cl至c8处理计费信息、ロ令或其它内部信息时,内部信息由扫描FF Sfl至Sff保存。第三方对扫描FF sfl至sff所保存的值的非法输入或输出可导致内部信息的泄露或篡改。然而,当LSI没有扫描链吋,用户难以适当地执行对组合电路Cl至c8的验证。已经公开了各种技术来防止能够进行扫描测试的LSI中的数据的泄露和篡改(日本专利申请早期公开No. 2008-2841、日本专利申请早期公开No. 2009-505059)。根据ー个实施例,一种半导体设备包括具有多个触发器的用户电路;以及连接路径,该连接路径在测试模式中将多个触发器相连并且形成扫描链,其中该连接路径具有逻辑运算电路或反相值连接路径,逻辑运算电路对多个触发器中的任意触发器的非反相输出值执行逻辑运算并输出结果,反相值连接路径向后一级触发器输出多个触发器中的任意触发器的反相输出值。
图I是用于图示出具有扫描测试功能的LSI的配置示例的示图。图2是用于图示出对图I的扫描FF sfl至sff的具体说明的示图。
图3是用于图示出图2的扫描FF sfl至sf4的波形图IA和IB的示图。图4是用于图示出具有逻辑反相运算电路Il的扫描链及其波形图2A、2B的示例的示图。图5是用于图示出具有连接路径的扫描链及其波形图3A、3B的示例的示图。图6是用于图示出具有多个逻辑反相运算电路和反相值连接路径的扫描链示例的示图。图7是用于图示出具有逻辑运算电路Xl的扫描链及其波形图4A、4B的示例的示图。图8是用于图示出伪随机数生成电路LF的示例的示图。 图9是用于图示出具有FF f3的扫描链的示例的示图,该FF f3与不同于时钟信号CKl的时序的时钟信号CK2同步地操作。图10是用于图示出图9的扫描链的波形图5A和5B的示图。图11是用于图示出设置了逻辑反相电路IlO的图9的扫描链的示例的示图。图12是用于图示出图11的扫描链的波形图的示图。图13是用于图示出具有逻辑运算电路X3的扫描链的示例的示图,该逻辑运算电路X3在产品出厂之后的扫描模式中重设到FF的数据图案输入值和由FF保存的值。图14是用于图示出图13的扫描链的波形图7A和7B的示图。图15是用于图示出具有単独的逻辑运算电路X4的扫描链的示例的示图,该逻辑运算电路X4在产品出厂之后的扫描模式中重设到FF的数据图案输入值和由FF保存的值。图16是用于图示出图15的扫描链的波形图8A和8B的示图。
具体实施例方式图2具体说明了图I的扫描FF sfl至sff。在该图中,四个扫描FF sfI至sf4被图示为示例;扫描FF sfl至sf4分别具有多路器ml至m4以及触发器(以下称为“FF”) fI至f4。虽然未示出,然而FF fl至f4和组合电路Cl至c3被提供有时钟信号。FF fI至f4在时钟信号的上升沿从Q端子输出所保存的值,并且从D端子获取从多路器ml至m4输出的值。用户电路是扫描测试所视察的电路并且指示FF fl至f4和组合电路Cl至c3。在图2中,扫描使能信号SE是选择多路器ml至m4的信号,并且将输出切换至随后的FF fl至f4。具体地,多路器ml至m4在扫描使能信号为高(以下称为“H”)电平时选择扫描信号SI,并且当为低(以下称为“L”)电平时选择来自组合电路Cl至c3的输出,从而输出给随后的FFfl至f4。接下来,说明用户模式与扫描模式中的操作的差別。在图2中,当在用户模式中吋,扫描使能信号SE被设为L电平。因此,多路器ml选择来自输入端子UI的输入值,并且多路器m2至m4选择来自前ー级组合电路cl至c3的输出值,用于输出给随后的FF f I至f4。通过此方式,FF fl至f4被提供有来自输入端子Π的输入值以及来自组合电路Cl至c3的输出值,并FF f I至f4各自保存的值被输出给随后的组合电路Cl至c3以及输出端子UO0然而,在图2的扫描模式中,扫描使能信号SE被设为H电平。结果,多路器ml选择来自扫描输入端子SI的输入值,多路器m2至m4选择前ー级FF Π至f3的输出值,并且结果被输出给随后的FF fl至f4。即,当扫描模式被设置吋,FF fl至f4被串联连接以形成扫描链,并且移位寄存器操作被执行。结果,用于测试来自扫描输入端子SI的输入的数据图案被输入FF fl至f4,并且由FF fl至f4保存的值被输出给扫描输出端子SO。下面,基于波形图来说明具体操作。图3呈现了图2的扫描FF f I至f4的波形图IA和1B。在该图中,波形图IA是当用于测试的数据图案从扫描输入端子SI被输入时的波形图,并且波形图IB是当由FF fl至f4保存的值被输出到扫描输出端子SO时的波形图。数据图案从扫描输入端子SI的输入和由FF fl至f4保存的值到扫描输出端子SO的输出同时被执行,但是基于分开的波形图进行说明。在此示例中,扫描链具有四个扫描FF fl至f4,并且输入数据图案假设为1010。首先说明图3的波形图1A。该图中的波形图IA表示用于测试的数据图案1010从扫描输入端子SI输入的示例。在此示例中,最初扫描使能信号SE被设为L电平,并且组合电路Cl至c3例如在前ー时钟周期的上升沿处的输出值由FF fl至f4保存(Ilx)。在此状 态中,当扫描使能信号SE变为H电平时,在每个时钟上升沿时,移位寄存器操作被执行。具体地,当扫描使能信号变为H电平之后,在第一个时钟周期t0中,数据图案中的初始值“I”被输入FF fl,并且另外,由FF f2至f4保存的值被输出到随后的FF f3和f4以及扫描输出端子S0。类似地,当扫描使能信号SE仍被设为H电平时,在下ー时钟周期的上升沿处,数据图案1010中的第二值“O”被输入FF fl,并且初始值“I”被移位到FF f2。在此示例中,当扫描使能信号SE变为H电平之后,在第四时钟周期t4的上升沿处,数据图案1010到FF fl至f4的输入完成(Ily)。当数据图案以此方式从扫描输入端子SI被输入时,在将扫描使能信号SE设为H电平时,在每个时钟上升沿,该数据图案通过移位寄存器操作被顺序地输入FF sfl至sf4。例如,在完成输入的状态中(Ily),当扫描使能信号变为L电平时,在下一时钟上升沿处,由FF f I至f4保存的值被输入组合电路Cl至c3,并且组合电路处理基于该数据图案被执行。接下来,说明图3的波形图1B。该图中的波形图IB表示这样的情况,其中,由FFf I至f4保存的、指示组合电路的处理结果的值被输出至扫描输出端子S0。首先,扫描使能信号SE被设为L电平,并且在前一时钟上升沿保存的来自组合电路的输出值由FF fl至f4保存(12x)。当在此状态中扫描使能信号SE变为H电平时,在下一时钟上升沿t3处,由FFfl至f3保存的值被输出给随后的FF f2至f4,并且由FF f4保存的值被输出给扫描输出端子S0。在此示例中,在扫描使能信号SE变为H电平之后的第四个时钟上升沿,由FF Π至f4保存的值已全部被输出到扫描输出端子S0。当由FF fl至f4保存的值以此方式被输出到扫描输出端子SO吋,扫描使能信号SE被设为H电平,并且在每个时钟上升沿,FF的值通过移位寄存器操作被顺序输出到扫描输出端子S0。用户使得由FF fl至f4保存的、指示组合电路的处理结果的值被输出至扫描输出端子S0,并且基于任意数据图案来验证组合电路的处理是否适当。如上面所说明的,具有扫描链的LSI使得能够将任意数据图案从扫描输入端子SI输入扫描FF并且使得能够将由扫描FF保存的值输出到扫描输出端子S0。但是,另ー方面,当ロ令、计费信息或其它内部信息被扫描FF保存时,可能发生内部信息的泄露或篡改。(第一实施例)第一实施例的LSI具有带有多个FF的用户电路以及在测试模式(以下称为“扫描模式”)中将多个FF相连以形成扫描链的连接路径。连接路径具有逻辑运算电路,该逻辑运算电路对多个FF中的ー个FF的非反相输出值执行逻辑运算并输出。在多个FF中,其它FF的非反相输出值被输出到后ー级FF而不执行逻辑运算。通过这种方式,在扫描模式期间,LSI可以改变输入到FF的数据图案,并且可以改变由FF保存的值并使得输出由FF保存的值。图4呈现了具有逻辑反相运算电路Il (逻辑运算电路)的扫描链及其波形图2A、2B,该逻辑反相运算电路Il对FF f2的输出值Q(非反相输出值)执行逻辑反相运算。波形图2A是用于测试的数据图案从扫描输入端子SI被输入的情况中的波形图,并且波形图2B是由FF fl至f4保存的值被输出到扫描输出端子SO的情况中的波形图。在该图中,逻辑反相电路Il被设置在扫描链连接路径中,因此仅在扫描模式中被使用,并且不影响用户模式处理。下面,基于这些波形图给出详细说明。类似于图3的波形图,扫描链具有四个扫描FF fl至f4并且输入数据图案是1010。 首先,说明图4的波形图2A。类似于图3的波形图1A,最初,扫描使能信号SE被设为L电平,并且在前一时钟上升沿保存的来自组合电路的输出值由FF fl至f4保存(21x)。在此状态中,当扫描使能信号变为H电平时,在每个时钟上升沿,类似于图3,数据图案1010通过移位寄存器操作从扫描输入端子SI被输入FF Π至f4。然而,在此示例中,当扫描使能信号SE已变为H电平之后,数据图案的第一输入值“I”的逻辑反相值“O”在第三时钟周期tl中被输入FFf3。接下来,在第四时钟周期t2中,数据图案的第二输入值“O”的逻辑反相值“I”被输入FF f3,并且从FF f3输出的经逻辑反相电路Il反相之后的数据图案的初始值“O”被输入FF f4。结果,当整个数据图案被输入吋,经逻辑反相的值被FF f3和FF f4保存(21y)。在此示例中,逻辑反相电路Il被设置在扫描链的中途(FF f2与FF f3之间),以使得仅数据图案的一部分的值被逻辑反相。以这种方式,通过在扫描链的连接路径中设置逻辑反相电路II,由FF fl至f4输出的值从数据图案1010被改变(为0110)。然而,执行扫描测试的用户提前认识到逻辑反相电路Il被设置在FF f2与FF f3之间,因此可以准备数据图案并在提前假设值的一部分将被逻辑反相电路Il改变的情况下执行扫描测试。然而,第三方不会认识到逻辑反相电路Il被设置在扫描链的连接路径中,因此不能向扫描FF输入任意数据图案。此外,取决于扫描链中逻辑计算电路被安装的位置,数据图案的改变是不同的。即使在第三方认识到逻辑反相电路Il被设置在扫描链的连接路径中的情况中,也难以认识到扫描链中逻辑反相电路Il被安装的位置。因此,本实施例的LSI使得第三方难以向扫描FF输入任意的数据图案,并且抑制了通过滥用扫描链而对内部信息的篡改等。接下来,说明其中由FF fl至f4保存的值被输出到扫描输出端子SO的图4的波形图2B。类似于图3的波形图1B,最初,扫描使能信号SE被设为L电平,并且在前ー时钟上升沿保存的来自组合电路的输出值被保存在FF fl至f4中(22x)。当在此状态中扫描使能信号SE变为H电平时,类似于图3,在每个时钟上升沿,由FF f I至f4保存的值通过移位寄存器操作被输出到扫描输出端子S0。然而,在此示例中,在扫描使能信号SE变为H电平之后的第一时钟周期t3中,由FF f2保存的值“O”的逻辑反相值“I”被输入FF f3。接下来,在第二时钟周期t4中,最初由FF fl保存的来自FF f2的输出值“I”被逻辑反相为“O”并被输入FF f3,并且已经在前ー时钟周期中被逻辑反相的来自FF f3的输出值“I”被输入FF f4。结果,在最初由FFΠ至f4保存的值(22x)中,由FF fl和f2保存的值被逻辑反相并被输出到扫描输出端子SO。此外,由于逻辑反相电路Il被设置在扫描链的中途(FF f2与FF f3之间),因此仅由FF fl和f2的部分保存的值被逻辑反相并被输出到扫描输出SO。然而,执行扫描测试的用户提前认识到逻辑反相电路Il被设置在扫描链所包含的FF f2和FF f3之间,并且因此可以从输出到扫描输出端子SO的数据图案恢复出被逻辑反相电路Il改变之前的值。基于所恢复的数据图案,用户可以执行关于组合电路的处理是否适当被执行的验证。然而,第三方不会认识到逻辑反相电路Il被设置在扫描链的连接路径中,并且不能获取保存在FF中的值。此外,取决于扫描链中逻辑反相电路被安装的位置,数据图案的改变是不同的。即使在第三方认识到逻辑反相电路Il被设置在扫描链的连接路径中的情况中,也难以认识到扫描链中逻辑反相电路Il被安装的位置。因此,第三方难以基于被逻 辑反相电路改变的数据图案恢复出由FF保存的原始值。因此,本实施例的LSI使得第三方难以获取由FF保存的内部信息,并且抑制了由于滥用扫描链而泄露内部信息等。以这种方式,由于在本实施例的LSI中,连接路径具有对FF输出值(非反相输出值)执行逻辑运算(逻辑反相运算)并输出结果的逻辑计算电路,因此可以抑制第三方利用扫描链泄露和篡改LSI中的内部信息。然而,用户通过认识到连接路径中的逻辑计算电路的安装状态,可以生成假设了逻辑计算电路对值的改变的数据图案,并且可以从输出到扫描输出端子SO的数据图案中恢复出被逻辑计算电路改变之前的值。结果,本实施例的LSI可以抑制因滥用扫描链而篡改和泄露内部信息,同时使能扫描测试。(第二实施例)第二实施例的LSI具有带有多个FF的用户电路以及形成了在测试模式(以下称为“扫描模式”)中将多个FF相连的扫描链的连接路径。该连接路径具有将多个FF中的FF的反相输出值输出到后ー级FF的反相值连接路径。在多个FF中,其它FF将非反相输出值输出到后ー级FF。结果,当在扫描模式中吋,LSI可以改变输入FF的数据图案并且可以改变并输出保存在FF中的输出值。图5图示出了具有如下连接路径的扫描链及其波形图3A、3B的示例,所述连接路径(反相值连接路径)将FF f2的逻辑反相值QX(反相输出值)输出到后ー级FF f3。波形图3A是用于测试的数据图案从扫描输入端子SI被输入的情况中的波形图,并且波形图3B是由FF fl至f4保存的值被输出到扫描输出端子SO的情况中的波形图。在该图中,将FF f2的逻辑反相值QX输出到后ー级FF f3的连接路径被设置在扫描链的连接路径中,因此仅在扫描模式中被使用,并且不影响用户模式处理。下面,基于这些波形图给出详细说明。类似于图3的波形图,扫描链具有四个扫描FFfl至f4并且输入数据图案是1010。首先,说明图5的波形图3A。类似于图3的波形图1A,例如,最初扫描使能信号SE被设为L电平,并且在前一时钟上升沿时来自组合电路的输出值被FF fl至f4保存(31x)。当在此状态中扫描使能信号变为H电平时,在每个时钟上升沿,类似于图3,数据图案1010通过移位寄存器操作从扫描输入端子SI被输入FF Π至f4。然而,在此示例中,在扫描使能信号SE变为H电平之后的第三时钟周期tl中,FFf2所保存的值“I”的逻辑反相值QX “O”被输入FF f3。接下来,在第四时钟周期t2中,数据图案中的第二个值“O”的逻辑反相值QX “I”被输入FF f3,并且从FF f3输出的并且已经被FF f2逻辑反相的数据图案的第一值“O”被输入FF f4。结果,类似于图3的波形图2A,当整个数据图案已被输入时,经逻辑反相的值被FF f3和f4保存(31y)。同样,在此示例中,通过将输出逻辑反相值QX的FF f2安装在扫描链的中途,输入数据图案的仅一部分被逻辑反相。以这种方式,通过由FF f2输出逻辑反相值QX,输入FF fl至f4的值从数据图案1010被改变(为0110)。然而,执行扫描测试的用户提前认识到扫描链中的FF f2的逻辑反相值QX被输出到FF f3,因此可以准备提前假设了由于FF f2的逻辑反相值输出而对值的改变的数据图案并执行扫描测试。然而,第三方不会认识到向后ー级FF输出逻辑反相值QX的反相值连接路径被设置在扫描链中,因此不能向扫描FF输入任意的数据图案。此外,取决于扫描链中反相值连接路径被安装的位置,数据图案的改变是不同的。因此,即使第三方认识到反相值连接路径 被设置在扫描链中,也难以认识到反相值连接路径在扫描链中被安装的位置。因此,本实施例的LSI使得第三方难以向扫描FF输入任意的数据图案,并且可以抑制通过滥用扫描链而对内部信息的篡改。接下来,说明图5的波形图3B。类似于图3的波形图1B,最初,扫描使能信号SE被设为L电平,并且前一时钟上升沿时组合电路的输出值被保存在FF f I至f4中(32x)。当在此状态中扫描使能信号SE变为H电平时,类似于图3,在每个时钟上升沿,由FF fl至f4保存的值通过移位寄存器操作被输出到扫描输出端子SO。然而,在此示例中,在扫描使能信号SE变为H电平之后的第一时钟周期t3中,由FF f2保存的值“O”的逻辑反相值QX “I”被输入FF f3。然后,在第二时钟周期t4中,最初保存在FF fl中的值“I”的逻辑反相值QX “O”被输入FF f3,并且已经在前ー时钟周期中被逻辑反相的从FF f3输出的值“I”被输入FF f4。结果,在最初由FF fl至f4保存的值(32x)中,由FF fl和f2保存的值被逻辑反相并被输出到扫描输出端子S0。同样,在此示例中,输出逻辑反相值QX的FF f2被安装在扫描链的中途,以使得仅由FF fl和f2的部分保存的值被逻辑反相并被输出到扫描输出端子S0。然而,执行扫描测试的用户提前认识到扫描链中FF f2的逻辑反相值QX被输出到FF f3,并且因此可以从输出到扫描输出端子SO的数据图案恢复出被FF f2的逻辑反相输出改变之前的值。基于所恢复的数据图案,用户可以验证组合电路的处理是否适当地被执行。然而,第三方不会认识到向后ー级FF输出逻辑反相值QX的反相值连接路径被设置在扫描链中,因此不能获取保存在FF中的值。此外,取决于扫描链中反相值连接路径被安装的位置,数据图案的改变是不同的。因此,即使在第三方认识到反相值连接路径被设置在扫描链中的情况中,也难以认识到反相输出路径在扫描链中被安装的位置。因此,第三方难以基于被反相输出路径改变的数据图案来恢复出FF保存的原始值。因此,本实施例的LSI使得第三方难以获取FF保存的内部信息,并且抑制了通过滥用扫描链而对内部数据的篡改等。以这种方式,由于在本实施例的LSI中,连接路径具有向后ー级FF输出逻辑反相值QX (反相输出值)的反相值连接路径,因此可以抑制第三方利用扫描链泄露和篡改LSI的内部信息。然而,用户通过认识到扫描链中所设置的反相值连接路径的数目和安装位置,可以生成假设了反相值连接路径对值的改变的数据图案,并且可以从输出到扫描输出端子SO的数据图案中恢复出被反相值连接路径改变之前的值。结果,本实施例的LSI可以抑制因滥用扫描链而篡改和泄露内部信息,同时使能扫描测试。此外,在本实施例的LSI中,无需在连接路径中设置単独的逻辑计算电路,例如第ー实施例那样的电路(图4中的逻辑计算电路II)。结果,本实施例的LSI使得第三方更加难以基于LSI布图样式分析出扫描链的连接路径。因此,本实施例的LSI可以更加有效地抑制第三方对内部信息的篡改和泄露。在第一和第二实施例中,呈现了连接路径具有一个逻辑反相电路Il或反相值连接路径的LSI的示例。然而,扫描链可以具有多个逻辑反相电路或反相值连接路径,或者它们两者。
图6图示出了具有多个逻辑反相电路和反相值连接路径的扫描链的示例。在该图中,扫描链SCl具有三个逻辑反相电路12至14,并且扫描链SC2具有三个输出逻辑反相值QX的扫描FF sfll至sfl3。扫描链SC3具有两个逻辑反相电路15和16与ー个输出逻辑反相值QX的扫描FF sf 14的组合。例如,第三方可能使任意数据图案输入扫描链并从扫描链输出,并且通过分析前后的数据图案中的突变,可能分析出设置在扫描链中的逻辑反相电路和反相值连接路径的安装状态(扫描链连接路径的分析)。然而,通过在具有非常大量FF的扫描链中安装多个分布式逻辑反相电路和反相值连接路径,数据图案中的突变变得更加复杂,并且使得对扫描链的分析更加困难。因此,在本实施例的LSI中,通过在扫描链的连接路径中安装多个分布式逻辑反相电路和反相值连接路径,使得对连接路径的分析更加困难,并且可以进一歩增强抑制对内部信息的篡改和泄露的效果。(第三实施例)第三实施例的LSI具有带有多个FF的用户电路以及在测试模式(以下称为“扫描模式”)中将多个FF相连以形成扫描链的连接路径。该连接路径具有逻辑运算电路,该逻辑运算电路以多个FF中的ー个FF的非反相输出值和指定值作为输入,并执行如下运算电路的逻辑运算中的ー种逻辑运算AND(与)运算电路、OR(或)运算电路、XOR(异或)运算电路、NAND (与非)运算电路、NOR (或非)运算电路和XNOR (异或非)运算电路。在多个FF中,其它FF将非反相输出值输出到后ー级FF而不执行逻辑运算。以这种方式,当在扫描模式中时LSI可以改变输入到FF的数据图案,并且可以改变并输出由FF保存的输出值。此外,该LSI使得第三方难以分析扫描链,并且可以更加有效地抑制对内部信息的泄露和篡改。具体地,在本实施例中,呈现了如下示例,其中,扫描链的连接路径具有对伪随机值(指定值)和来自FF f2的输出值(非反相输出值)执行非排他逻辑和(以下称为“X0R”)运算的逻辑运算电路。然而,由该逻辑运算电路执行的运算不限于XOR运算,而还可以是AND运算、OR运算、NAND运算、NOR运算、XNOR运算等中的任一者。此外,指定值不限于伪随机值,而还可以是固定值或基于指定图案的值。图7呈现了具有逻辑运算电路Xl的扫描链及其波形图4A和4B的示例,该逻辑运算电路Xl对伪随机值(指定值)和FF f2的输出值(非反相输出值)执行XOR运算。该图中的逻辑运算电路Xl在伪随机值与FF f2的输出值相同时向FF f3输出值“0”,否则输出“ I”。伪随机值由伪随机数生成电路LF生成并被输出到逻辑运算电路XI。逻辑运算电路Xl被设置在扫描链的连接路径中,因此仅在扫描模式中被使用,并且不影响用户模式中的处理。图8图示出了伪随机数生成电路LF的示例。该图的伪随机数生成电路LF是具有多个寄存器fxO至fxf以及逻辑运算电路Xll至X13的线性反馈移位寄存器。由于寄存器fxO至fxf可以采取的是有限数目个状态,因此随机数值(O或I)以循环模式被输出。通过此方式,用户可以提前认识到从伪随机数生成电路LF输出的值的输出图案。然而,第三方要识别从伪随机数生成电路LF输出的随机值的图案将需要极大量时间并且是困难的。伪随机数生成电路LF不限于该图的示例。例如,为了使所输出伪随机值的图案的识别更加困难,用户可以向LSI提供多个伪随机数生成电路LF,并且可以定期切換所使用的伪随机数生成电路LF。
返回图7,波形图4A是用于测试的数据图案从扫描输入端子SI被输入的情况中的波形图,并且波形图4B是由FF fl至f4保存的值被输出到扫描输出端子SO的情况中的波形图。类似于图3的波形图,扫描链具有四个FF fl至f4,并且输入数据图案为1010。下面,将基于这些波形图给出具体说明。首先说明波形图4A。类似于图3的波形图1A,最初,扫描使能信号SE被设为L电平,并且例如在前一时钟上升沿时保存的来自组合电路的输出值被FF fl至f4保存(41x)。当在此状态中扫描使能信号变为H电平时,在每个时钟上升沿,类似于图3,数据图案1010通过移位寄存器操作从扫描输入端子SI被输入FF Π至f4。然而,在此示例中,在扫描使能信号变为H电平之后的第三时钟周期tl中,作为逻辑运算电路Xl对从FF f2输出的数据图案中的第一个值“ I ”和伪随机值“O”进行XOR运算的结果的“I”被输出给FF f3。接下来,在第四时钟周期t2中,在前ー时钟周期中锁存的逻辑运算电路Xl的结果“I”从FF f3被输出给FF f4,并且作为逻辑运算电路Xl在从FFf2输出的数据图案中的第二个值“O”与伪随机值“I”之间进行XOR运算的结果的值“I”被输出给FF f3。结果,当整个数据图案被输入时,数据图案中的前两个值与伪随机值的运算结果被保存在FF f3和FF f4中(41y)。在此示例中,同样,通过在扫描链的中途安装逻辑运算电路XI,输入数据图案中的仅一部分被改变为逻辑运算结果值。以这种方式,通过在扫描链的连接路径中设置逻辑运算电路XI,设置在FF fl至f4中的值从数据图案1010被改变(为1110)。然而,执行扫描测试的用户提前认识到逻辑运算电路Xl被设置在FF f2与FF f3之间以及所执行的运算和伪随机值的图案,因此可以准备提前假设了值被逻辑运算电路Xl改变的数据图案并且可以执行扫描测试。然而,即使假定第三方认识到逻辑运算电路Xl被设置在扫描链的连接路径中,也难以识别出逻辑运算电路Xl的安装位置和运算以及伪随机值的图案并且生成提前假设了逻辑运算电路Xl对值进行的改变的数据图案。因此,本实施例的LSI使得第三方更加难以向扫描链的FF输入任意数据图案,并且更加有效地抑制了通过滥用扫描链而对内部信息的算改等。接下来,说明由图7中的FF fl至f4保持的值被输出到扫描输出端子SO的情况中的波形图4B。类似于图3的波形图1B,最初,扫描使能信号SE被设为L电平,并且在前一时钟上升沿所保存的来自组合电路的输出值被保存在FF fl至f4中(42x)。当在此状态中扫描使能信号SE变为H电平时,类似于图3,在每个时钟上升沿,由FF fl至f4保存的值通过移位寄存器操作被输出到扫描输出端子SO。然而,在此示例中,在扫描使能信号变为H电平之后的第一时钟周期t3中,作为逻辑运算电路Xl对从FF f2输出的值“O”和伪随机值“O”进行XOR运算的结果的值“O”被输出给FF f3。在接下来的第二时钟周期t4中,在前ー时钟周期中锁存的逻辑运算电路Xl的结果“O”从FF f3被输出给FF f4,并且此外作为逻辑运算电路Xl对来自FF f2的输出值“O”和伪随机值“I”进行运算的结果的值“O”被输出给FF f3。结果,在最初由FF fl至FF f4保存的值中(42x),由FF fI和f2保存的值被改变为运算结果值并被输出到扫描输出端子S0。在此示例中,同样,通过在扫描链的中途安装逻辑运算电路XI,仅仅由FF fl和f2的部分保存的值被改变为运算结果值并被输出到扫描输出端子S0。然而,执行扫描测试的用户提前认识到逻辑运算电路Xl被设置在FFf2与FF f3之间以及所执行的运算和伪随机值的图案,因此可以从输出到扫描输出端子SO的数据图 案中恢复出被逻辑运算电路Xl改变之前的FF的值。并且,基于恢复出的数据图案,用户可以验证组合电路的处理是否已被适当地执行。然而,即使假定第三方认识到逻辑运算电路Xl被设置在扫描链的连接路径中,也难以识别出逻辑运算电路Xl的安装位置和运算以及伪随机值的图案并且恢复出被逻辑运算电路Xl改变之前的FF的值。因此,本实施例的LSI使得第三方难以获取保存在扫描链的FF中的内部信息,并且可以更加有效地抑制通过滥用扫描链而对内部信息的泄露等。以这种方式,由于在本实施例的LSI中连接路径具有对指定值(伪随机值)和FF的输出值(非反相输出值)执行逻辑运算并输出结果的逻辑运算电路,因此可以增强抑制第三方利用扫描链泄露和篡改LSI中的内部信息的效果。然而,认识到逻辑运算电路在连接路径中的安装状态的用户可以生成假设了逻辑运算电路对值的改变的数据图案,并且可以将输出到扫描输出端子SO的数据图案恢复为被逻辑运算电路改变之前的值。结果,本实施例的LSI可以更加有效地抑制通过滥用扫描链而对内部信息的篡改和泄露,同时使能扫描测试。(第四实施例)第四实施例的LSI具有具有与第一时钟同步操作的多个FF的用户电路;在测试模式时将多个FF相连以形成扫描链的连接路径,该扫描链与第一时钟同步地执行移位操作;以及对指定值和第一时钟执行逻辑运算并输出第二时钟的时钟生成电路。多个FF中的FF之一在测试模式(以下称为“扫描模式”)中与第二时钟同步地操作,并且在用户模式中与第一时钟同步地操作。在多个FF中,其它FF即使在扫描模式中也与第一时钟同步地操作。以这种方式,LSI可以在扫描模式中忽略或改变输入FF的数据图案的一部分,并且可以忽略或改变由FF保存的值的一部分并使得值被输出。此外,LSI使得第三方难以分析扫描链,并且可以更加有效地抑制内部信息的泄露和篡改。具体地,在此实施例中,将说明时钟生成电路输出通过对第一时钟和伪随机值(指定值)进行XOR (逻辑乘积)运算获得的第二时钟的情況。然而,逻辑运算不限于XOR运算,而还可以是AND运算、OR运算、NAND运算、NOR运算、XNOR运算等中的任一者。此外,指定值不限于伪随机值,而还可以是固定值或基于指定图案的值。图9图示出了具有与时钟信号CK2 (第二时钟)同步地操作的FF f3的扫描链的示例,该时钟信号CK2不同于时钟信号CKl (第一时钟)的时序。在该图中,其它FF fl、f2和f4与第一时钟信号CKl同步地操作。此外,该图中的扫描链具有逻辑运算电路X2(时钟生成电路),该逻辑运算电路X2对时钟信号CKl和从伪随机数生成电路LF输出的伪随机值执行XOR运算并输出时钟信号CK2。逻辑运算电路X2被设置在扫描链的连接路径中,因此FF f3在用户模式中与时钟信号CKl同步地操作。下面,将基于波形图给出具体说明。图10呈现出了图9的扫描链的波形图5A和5B。波形图5A是用于测试的数据图案从扫描输入端子SI被输入的情况中的波形图,并且波形图5B是由FF f I至f4保存的值被输出到扫描输出端子SO的情况中的波形图。类似于图3的波形图,扫描链具有四个扫描FF fl至f4,并且输入数据图案为1010。首先说明时钟信号CK2。在此示例中,当时钟信号CKl和伪随机值不同吋,逻辑运 算电路X2向FF f3输出H电平时钟信号CK2。例如,在图10中的时刻t5处,逻辑运算电路X2基于L电平时钟信号CKl和伪随机值“I”输出H电平时钟信号CK2。接下来,在时刻t6,由于时钟信号CKl转变为H电平,因此逻辑运算电路X2基于与随机值“O”的XOR运算继续输出H电平时钟信号CK2。并且,在时刻t7,时钟信号CKl转变为L电平,以使得基于与伪随机值“O”的XOR运算,时钟信号CK2转变为L电平。以这种方式,提供给FF f3的时钟信号CK2在于时钟信号CKl不同的时刻进行转变。具体地,在图10的波形图5A中,在扫描使能信号变为H电平之后的第三时钟信号上升沿t8处,FF f2将数据图案中的第一个值“I”输出给FF f3。然而,在时刻t8时时钟信号CK2为L电平,并且因此FF f3不获取从FF f2输出的值“I”。在时刻t9时时钟信号CK2转变为H电平,FFf3获取来自FF f2的输出值。然而,来自FF f2的输出值已经转变为数据图案中的第二个值“O”。因此,FF f3获取第二个值“0”,并且数据图案中的初始值Si被跳过。并且在时刻tlO处,FF f4获取第二个值而非数据图案的初始值。以这种方式,FF f3与时钟信号CK2同步地执行处理,并且其他FFfl、f2和f4与时钟信号CKl同步地执行处理,以使得数据图案的一部分的值被忽略,并且数据图案被改变并被输入FF。在此示例中,数据图案的初始值Si被忽略,并且设置在FF fl至f4中的值从数据图案1010被改变(为0010) (51y)。然而,执行扫描测试的用户认识到用于使FF同步的时钟信号CKl和CK2,并且因此可以认识到数据图案值被改变。因此,用户可以准备提前假设了值改变的数据图案并且可以执行扫描测试。然而,即使假定第三方认识到形成扫描链的FF的一部分与不同于其他FF的时钟信号同步地执行处理,也难以识别出生成时钟信号的运算电路以及伪随机值图案并且生成提前假设了值被改变的数据图案。因此,本实施例的LSI使得第三方更加难以将任意数据图案输入形成扫描链的FF,并且可以更加有效地抑制通过滥用扫描链而对内部信息的篡改
坐寸ο接下来,说明由图9中的FF fl至f4保持的值被输出到扫描输出端子SO的情况中的波形图5B。在扫描使能信号变为H电平之后的第一个时钟信号上升沿tll,FF f2将所保存的值“O”输出给FF f3。然而,在时刻t8时时钟信号CK2为L电平,因此FF f3不获取从FF f2输出的值“I”。在时刻112时时钟信号CK2转变为H电平,FF f3获取来自FF f2的输出值。然而,来自FF f2的输出值已经转变为由FF fl保存的值“I”。因此,FFf3获取由FF f I保存的值“1”,并且由FF f2保存的值“O”或s2被跳过。以这种方式,由于FF f3与不同的时钟信号CK2同步,因此由FF中的一部分FF保存的值不被输出。然而,执行扫描测试的用户认识到用于使FF同步的时钟信号CKl和CK2,并且因此可以认识到由于保存在一部分FF中的值被忽略而导致的输出值的改变。因此,已认识到一些FF值被忽略的用户可以基于有效值来验证组合电路。然而,即使假定第三方认识到形成扫描链的FF的一部分与不同于其他FF的时钟信号同步地执行处理,也难以识别出生成时钟信号的运算电路以及伪随机值图案并且难以识别出保存在FF中的哪些值已被忽略。因此,本实施例的LSI使得第三方更加难以获取由形成扫描链的FF保存的内部信息,并且可以更加有效地抑制通过滥用扫描链而对内部信息的泄露等。
以这种方式,由于本实施例的LSI具有在扫描模式中与不同于其它FF的时钟信号同步地操作的FF,因此可以使第三方更加难以利用扫描链来泄露和篡改LSI的内部信息,并且可以增强抑制效果。然而,用户可以生成提前假设了 FF对值的改变的数据图案,并且可以从被输出给扫描输出端子SO的数据图案中认识出被忽略的值。因此,本实施例的LSI可以进ー步增强抑制通过滥用扫描链而篡改和泄露内部信息的效果,同时使能扫描测试。一个或多个逻辑运算电路可以被组合并被设置在图9的扫描链中。结果,本实施例的LSI可以使第三方对扫描链的分析更加困难。图11图示出了设置了逻辑反相电路IlO的图9的扫描链的示例。在该图中,与不同的时钟信号CK2同步的FF f3的输出值进ー步被执行逻辑反相的逻辑运算电路IlO逻辑反相并且被输出给FF f4。图12呈现出了图11的扫描链的波形图。如在该图的波形图6A中,在时钟CKl的上升沿t21的时刻,FF f4锁存由FF f3保存的值“O”的逻辑反相值“I”。类似地,在该图的波形图6B中,在时钟CKl的上升沿吋,FF f4锁存由FF f3保存的值的逻辑反相值。以这种方式,当第三方向FF输入任意数据图案并从FF输出以在分析扫描链的目的下执行验证时,输出数据图案将以更加复杂的方式改变。结果,对扫描链的分析变得更加复杂,并且抑制对内部信息的篡改和泄露的效果被增强。(第五实施例)第五实施例的LSI具有带有多个FF的用户电路以及在测试模式(以下称为“扫描模式”)中将多个FF相连以形成扫描链的连接路径。连接路径具有逻辑运算电路,以使得在产品出厂之前多个FF中的ー个FF的非反相输出值与第一值的逻辑运算值为非反相输出值,并且在产品出厂之后第二值与非反相输出值的逻辑运算值为恒定值。指定值在产品出厂之前被设为第一值,并且在产品出厂之后被设为与第一值不同的第二值。在多个FF中,其它FF将非反相输出值输出给后ー级FF而不执行逻辑运算。结果,当在产品出厂之前的扫描模式中时LSI使得能够向FF输入数据图案并输出由FF保存的值,而在产品出厂之后的扫描模式中,输入FF的数据图案值和由FF保存的值可以通过指定值和逻辑运算被重设。因此,该LSI避免了第三方通过滥用扫描链而对内部信息的泄露和篡改。
具体地,在本实施例中,将说明如下情况的示例其中,连接路径具有这样的逻辑运算电路,其在产品出厂之前将对H电平信号(第一值)和来自前ー级FF的输出值进行逻辑乘积(以下称为“AND”)运算的结果输出作为输出值,并且在产品出厂之后,输出值“O” (恒定值)作为对L电平信号(第二值)和输出值进行AND运算的結果。图13图示出了具有逻辑运算电路X3的扫描链的示例,逻辑运算电路X3在产品出厂之后的扫描模式中重设到FF的数据图案输入值和由FF保存的值。逻辑运算电路X3对从下拉电路H)输出的测试信号TE和FF f2的输出值执行逻辑乘积(以下称为“AND”)运算。在此示例中,下拉电路H)在产品出厂之前输出H电平信号,而在产品出厂之后输出L电平信号。因此,逻辑运算电路X3基于对来自FF f2的输出值和H电平测试信号TE的AND运算在产品出厂之前总是输出来自FF f2的输出值。此外,在产品出厂之后,逻辑运算电路X3基于对来自FF f2的输出值和L电平测试信号TE的AND运算总是向FF f3输出值“O”。下面,基于波形图给出具体说明。图14呈现出了图13的扫描链的波形图7A和7B。波形图7A是针对产品出厂之前的,而波形图7B是针对产品出厂之后的,同时在扫描模式中是针对数据图案从扫描输入端 子SI被输入的情况的。类似于图3的波形图,扫描链具有四个扫描FF fl至f4,并且输入数据图案为1010。在图14的波形图7A中,在产品出厂之前的扫描模式中,测试信号TE被设为H电平并且扫描使能信号SE被设为H电平。逻辑运算电路X3在每个时钟周期上升沿时,作为对从FF f2输出的值和H电平测试信号TE进行AND运算的結果,向FF f3输出与从FF f2输出的值相同的值。结果,在产品出厂之前的扫描模式中,数据图案1010从扫描输入端子SI 被输入 FF fl 至 f4(71y)。然而,在波形图7B中,当在产品出厂之后的扫描模式中时,测试信号TE被设为L电平并且扫描使能信号SE被设为H电平。因此,在每个时钟周期上升沿处,作为对从FF f2输出的值和L电平测试信号TE进行AND运算的結果,逻辑运算电路X3向FF f3输出值“O”。結果,当在产品出厂之后的扫描模式中时,值“O”总是被输入FF f3和f4(72y)。在图14的波形图中,呈现了数据图案从扫描输入端子SI被输入的情況,但是这同样适用于由FF fl至f4保存的值被输出到扫描输出端子SO的情況。如上面针对波形图7A说明的,在产品出厂之前的扫描模式中,逻辑运算电路X3总是向FF f3输出从FF f2输出的值。因此,由FF fl至f4保存的值不被重设,而被输出到扫描输出端子S0。然而,在产品出厂之后的扫描模式中,逻辑运算电路X3总是向FF f3输出值“O”。因此,在由FF fI至f4保存的值中,由FF fl和f2保存的值被重设为值“O”并被输出到扫描输出端子S0。在此实施例中执行重设的逻辑运算电路不限于AND运算电路。接下来,将呈现另一扫描链的示例,其中,在产品出厂之后的扫描模式中,数据图案值被输入FF并且由FF保存的值被重设。图15图示出了具有単独的逻辑运算电路X4的扫描链的示例,其中,在产品出厂之后的扫描模式中,逻辑运算电路X4重设输入FF的数据图案值和由FF保存的值。逻辑运算电路X4对从上拉电路PU输出的测试信号TE和FF f2的输出值执行逻辑和(以下称为“0R”)运算。在此示例中,上拉电路在产品出厂之前输出L电平信号,并且在产品出厂之后输出H电平信号。因此,逻辑运算电路X4,在产品出厂之前,作为对来自FF f2的输出值和L电平测试信号TE进行OR运算的结果,总是向FFf3输出来自FF f2的输出值,并且在产品出厂之后,基于对来自FF f2的输出值和H电平测试信号TE进行的OR运算总是向FF f3输出值“I”。下面,基于波形图给出具体说明。图16呈现出了图15的扫描链的波形图8A和8B。波形图8A和8B是针对数据图案从扫描输入端子SI被输入的情况的、分别为产品出厂之前和产品出厂之后的扫描模式中的波形图。类似于图3的波形图,扫描链具有四个扫描FF fl至f4,并且输入数据图案为1010。在图16的波形图8A中,在产品出厂之前的扫描模式中,测试信号TE被设为L电平并且扫描使能信号SE被设为H电平。在每个时钟上升沿时,作为对从FF f2输出的值和被固定为L电平的测试信号TE进行OR运算的結果,逻辑运算电路X4向FF f3输出与从FFf2输出的值相同的值。结果,在产品出厂之前的扫描模式中,数据图案1010从扫描输入端子SI被输入FF Π至f4(81y)。然而,在波形图SB中,当在产品出厂之后的扫描模式中时,测试信号TE被设为H 电平并且扫描使能信号SE被设为H电平。因此,在每个时钟上升沿处,作为对从FF f2输出的值和被固定为L电平的测试信号TE进行OR运算的結果,逻辑运算电路X4向FF f3输出值“I”。结果,当在产品出厂之后的扫描模式中时,值“I”总是被输入FF f3和f4(82y)。因此,在本实施例的LSI中,当在产品出厂之前的扫描模式中时,通过将来自前一级的FF的输出值输出到设置在连接路径中的逻辑运算电路,使得能够进行数据图案到FF的输入以及对FF所保存的值的输出,并且扫描测试可以被执行。然而,在本实施例的LSI中,在产品出厂之后的扫描模式中,通过使得设置在连接路径中的逻辑运算电路输出恒定值,到FF的数据图案输入值和由FF保存的值被重设。结果,第三方不能向扫描FF输入任意的数据图案,并且不能输出由FF保存的输出值。因此,由于本实施例的LSI具有在产品出厂之前输出来自前ー级FF的输出值并且在产品出厂之后输出固定值的逻辑运算电路,因此避免了第三方在产品出厂之后利用扫描链泄露和篡改LSI内部信息,同时使能产品出厂之前的扫描测试。这里记载的所有示例和条件语言g在用于教导的目的以辅助读者理解实施例以及发明人为了改进技术而贡献的概念,并且应被解释为不是对具体记载的示例和条件的限制,说明书中这些示例的组织也不涉及对实施例的优越性和低劣性的示出。虽然已详细描述了实施例,然而应当明白,可以在不脱离本发明的精神和范围的情况下对其作出各种改变、替代和变更。
权利要求
1.一种半导体设备,包括用户电路,具有多个触发器;以及连接路径,该连接路径在测试模式中将所述多个触发器相连并且形成扫描链,其中所述连接路径具有逻辑运算电路或反相值连接路径,所述逻辑运算电路对所述多个触发器中的任意触发器的非反相输出值执行逻辑运算并输出结果,所述反相值连接路径向后一级触发器输出所述多个触发器中的任意触发器的反相输出值。
2.根据权利要求I所述的半导体设备,其中,所述逻辑运算电路是逻辑非电路。
3.根据权利要求I所述的半导体设备,其中,所述连接路径包括多个逻辑运算电路或反相值连接路径,或者它们两者。
4.根据权利要求I所述的半导体设备,其中,所述逻辑运算电路以指定值和触发器的非反相输出值作为输入,并且是如下运算电路中的任一者与运算电路、或运算电路、异或运算电路、与非运算电路、或非运算电路和异或非运算电路。
5.根据权利要求4所述的半导体设备,其中,所述指定值是伪随机值。
6.根据权利要求4所述的半导体设备,其中所述指定值在产品出厂之前被设为第一值,并且在产品出厂之后被设为与所述第一值不同的第二值,并且所述逻辑运算电路执行逻辑运算以使得在产品出厂之前,所述第一值和所述非反相输出值的逻辑运算值是所述非反相输出值,并且在产品出厂之后,所述第二值和所述非反相输出值的逻辑运算值是固定值。
7.一种半导体设备,包括用户电路,具有与第一时钟信号同步地操作的多个触发器;连接路径,该连接路径在测试模式中将所述多个触发器相连并且形成与所述第一时钟信号同步地执行移位操作的扫描链;以及时钟生成电路,该时钟生成电路对指定值和所述第一时钟信号执行逻辑运算并且输出第二时钟信号,其中,所述多个触发器中的任意触发器在测试模式中时与所述第二时钟信号同步地操作,并且在用户模式中时与所述第一时钟信号同步地操作。
8.根据权利要求7所述的半导体设备,其中,所述时钟生成电路的逻辑运算是如下运算中的任一者与运算、或运算、异或运算、与非运算、或非运算和异或非运算。
9.根据权利要求7所述的半导体设备,其中,所述指定值是伪随机值。
10.根据权利要求7所述的半导体设备,其中,所述连接路径包括逻辑运算电路或反相值连接路径,所述逻辑运算电路对所述多个触发器中的任意触发器的非反相输出值执行逻辑运算并输出结果,所述反相值连接路径向后一级触发器输出所述多个触发器中的任意触发器的反相输出值。
全文摘要
本发明公开了半导体设备。一种半导体设备包括具有多个触发器的用户电路;以及连接路径,该连接路径在测试模式中将多个触发器相连并且形成扫描链,其中该连接路径具有逻辑运算电路或反相值连接路径,逻辑运算电路对多个触发器中的任意触发器的非反相输出值执行逻辑运算并输出结果,反相值连接路径向后一级触发器输出多个触发器中的任意触发器的反相输出值。
文档编号G01R31/28GK102830339SQ20121016128
公开日2012年12月19日 申请日期2012年5月14日 优先权日2011年6月13日
发明者三浦大祐, 小山田信次 申请人:富士通半导体股份有限公司