测试包含秘密信息的集成电路的方法

文档序号:6122505阅读:199来源:国知局
专利名称:测试包含秘密信息的集成电路的方法
技术领域
本发明涉及对集成电路,具体地对包含必须受到保护以防止未授权 访问的秘密信息的集成电路的测试。
背景技术
可测试性和保密性对于集成电路强加了冲突的设计要求。可测试性要求每个电路元件应当被耦合至扫描链(scan chain),这样,电路元件 中预期的缺陷响应来自电路元件的信号而显现,这些电子元件响应来自 扫描链的测试激励信号被捕获至扫描链中。因此,通过采用扫描链施加 测试激励和移出测试响应,很容易测试集成电路。不幸的是,这也意味 着电路元件中由秘密信息影响的信号很容易地通过扫描链访问。在另一方面,采用其中带有秘密信息的电路不以任何方式影响扫描 链中的捕获响应的电路构造,可以实现保密性。这限制了测试这些电路 以观察在正常功能条件下整个电路的功能响应的可能。由此,不可能保 证电路将在所有的环境下正确工作,或者仅仅在长时间的并因此昂贵的 测试之后才行。美国专利6,754,606描述了带有测试链和熔丝的集成电路,用于防 止从扫描链中读也数据。该熔丝可以位于测试控制电路中,例如, 一旦 熔丝熔断,可防止切换至测试操作模式。该熔丝也可以位于扫描链的移 位路径(shift path)中的多个位置,从而熔断熔丝,就不可能访问扫描 链。传统地,熔丝是在其熔断前提供导电连接在熔断后提供断路的一种 电路。替代地,可以采用反熔丝,即,在熔断前提供断路在熔断后提供 导电连接的电路。术语"熔丝元件(fose element)"使用在本文中,以表 示熔丝或反熔丝以及通过熔断熔丝元件来改变状态的任意其他元件,包括例如临近电流通道的浮置栅极结构的充(放)电。术语熔丝元件的"熔断(blowing)"用来表示影响熔丝元件随后状态的任意状态改变。美国专利6,754,606的集成电路易受到熔丝或反熔丝修复的攻击。 采用某些先进设备,有可能将已熔断的熔丝或反熔丝恢复到其原始状态, 即,修复熔丝元件。也就是说,"熔断"变为可逆的行为,从而熔丝可以 处于未熔断状态(其原始状态或恢复后得到的状态)或熔断状态(当处 于未熔断状态的熔丝元件熔断后)。因此,通过采用先进设备将所有熔丝 元件恢复至未熔断状态,该电路可以被返回至其中秘密数据可以用扫描 链读出的状态。发明内容本发明的目的其中之一是使得借助于熔丝元件防止经由扫描链访 问秘密信息的集成电路较不易在修复熔丝元件后受到访问攻击。提供了依据权利要求1的测试集成电路的方法。该方法包括测试前 先熔断第一熔丝元件、测试和随后熔断第二熔丝元件。集成电路被设置 为仅仅当所有第一熔丝元件处于熔断状态并且所有第二熔丝元件处于未 烙断状态时,才允许稳定访问测试访问电路。为再次测试,仅第二熔丝 元件应被修复。另外,修复第一熔丝元件中的任意一个使测试变为不可 能。因为第二熔丝元件不容易从第一熔丝元件中辨别出来,因而不可能 知道哪些熔丝元件需要修复哪些不需要修复。优选地,第一熔丝元件和 第二熔丝元件的数量很大,比如16或更大,优选地为64或更大,使得 需要相当多的试探时间来识别需要恢复的熔丝元件。在一个实施例中,为支持该方法,集成电路配置有第一和第二熔丝 元件,以及仅仅当第一熔丝元件处于熔断状态并且第二熔丝元件处于未 熔断状态时才可稳定访问的测试访问电路。在另一实施例中,将不同的 功能电路制成可测试访问的,但通过熔断逐渐变大的子集的熔丝元件使 其他的功能电路不可访问。在另一实施例中,集成电路将所有熔丝元件 的状态信息组合成控制稳定访问扫描链的单个信号。在另一实施例中, 不同的非空组的熔丝元件控制不同部分的扫描链,使得只有在使用所需的熔断和未熔断的组合时,扫描链才以正常的方式工作。因此通过攻击 集成电路上的单个点不能使扫描链工作。在一个实施例中,仅仅简单地通过阻塞访问(完全移进和/或移出), 对扫描链的稳定访问是不可能的。在另一实施例中,即使没有准确的适 当组合的熔丝元件熔断,扫描链仍保持激活状态,其他熔丝元件未熔断, 但如果没有准确的适当组合的熔丝元件熔断,则在测试数据的转换期间 测试数据通过扫描链中的扫描单元的次数及时变化。次数的改变响应测 试移位定时而进行,不需要外部命令来实现此改变。因此,稳定访问是 不可能的。测试数据通过扫描单元的次数可以改变,比如通过扫描单元 回送测试数据、绕开扫描单元、或在不同的成对外部端子间耦合的不同 扫描链间之间交换测试数据。从利用以下附图对非限制性实施例的描述中,本发明的这些和其他 的目的和有利方面将变得很明显。


图1示出了带有熔丝来防止通过扫描链访问电路的集成电路 图2示出了借助于多个熔丝的扫描功能控制图2a示出了扫描链图2b示出了借助于多个熔丝的扫描功能控制图3示出了其中测试端子与功能端子多路复用的电路图4示出了扫描链图5示出了扫描链图6示出了授权控制电路图6a示出了授权控制电路的另一应用图7示出了多个并联的扫描链具体实施方式
图1示出了集成电路10,包含功能电路12a-c、扫描链14、测试控 制电路16和熔丝元件18。测试控制电路16有耦合至外部测试接口 17的输入端和耦合至扫描链14的控制输出端(未示出连接)。扫描链14 具有耦合至外部测试接口 17的测试数据输入端的输入端和耦合至外部测试接口 17的测试数据输出端的输出端。熔丝元件18耦合至测试控制 电路16和扫描链14。扫描链14耦合至功能逻辑功能电路12a-c中输入 端和输出端。尽管在功能电路12a-c和扫描链14之间示出单个输入和输 出线路,应当理解,在实践中,可以并联提供许多这样的线路。应该强调的是,将附图限制在集成电路中用来解释熔丝元件18的 使用的各方面。已经示出了带有任意外部连接的任意数量的功能电路 12a-c。在实践中,可以给出许多额外的测试特性,如耦合在集成电路-外部输入端与功能电路12a-c的输出端之间的边界扫描链,耦合在相同 测试数据输入端和输出端之间的多个并联的扫描链,共享使用集成电路 IO的端子,用于功能电路和测试接口 17的输入/输出,等等。至少一个功能电路12a-c包含"秘密"信息,即,不应离开集成电 路10的信息。典型地,这种信息是可以存储在相关功能电路12a-c中的 非易失性存储器中、或另外编程在功能电路12a-c中、或通过在功能电 路12a-c中已实现的电路来定义的密钥或识别码。典型地,每个已制造 的集成电路具有其唯一的秘密信息,但替代地,对每类集成电路,该秘 密信息可能相同。在工作中,电路可以在正常功能模式和测试模式间转换。在正常工 作模式中,来自扫描链14的触发器作为耦合在功能电路12a-c输入端和 输出端之间的触发器。在测试模式中,扫描链中触发器的输入端耦合至 扫描链中其他的触发器的输出端上,从而形成了一系列的移位寄存器。当许多个熔丝元件18已经熔断时,集成电路可以在测试模式中通 过传统的扫描测试协议来测试。在此协议的一个例子中,电路首先进入 移位工作模式,其中扫描链中的触发器被串联耦合,并且来自测试数据 输入端的测试激励从它们被施加到功能电路12a-c的输入端的位置逐次 移位通过扫描链14。随后,电路进入捕获模式,其中扫描链14的触发 器的输入端耦合至功能电路12a-c的输出端,从而这些触发器捕获来自 功能电路12a-c的测试响应。在这之后,电路返回至移位模式,其中扫描链14的触发器再次形成移位寄存器并且扫描链14将捕获的数据从集 成电路10中移至测试数据输出端中。不同的熔丝元件18在其未熔断时,分别用于启用或禁用传统的测 试工作。熔丝元件18可连接至测试控制电路16以在测试期间启用或禁 用不同工作模式间的切换。在一个例子中,熔丝元件18被设置成禁用切 换至捕获模式。在另一例子中,熔丝元件18被设置成禁用或启用向来自 扫描链14的电路和/或向测试控制电路16提供测试时钟。熔丝元件18 可以耦合至扫描链14以启用或禁用正常移位,即,通过阻塞或建立通过 扫描链14的移位路径,或通过绕开部分扫描链14。熔丝元件可以是熔丝和/或反熔丝。在这里用的熔丝/反熔丝是一种电连接,可以使其呈现提供导电/非导电(熔断)连接的状态,由此,需要物理修复,如沉淀导电材料,来恢复在熔断前的状态。熔断可以通过比如通过在熔丝/反熔丝两端施加高电压来实现,或通过采用激光束或电加 热熔丝/反熔丝来实现。图2示出了带有多个熔丝20a-b的电路。该电路包括耦合在电源连 接Vdd、 Vss之间的熔丝20a-b和电阻元件22a-b的多个串联配置。尽管 只示出了两个串联配置,应该认识到可以给出任意数量。该电路包括与 门24,其输入端耦合至熔丝20a-b与电阻元件22a-b之间的相应串联配 置中的节点。与门24的一些输入端是反相的而另一些是同相的。与门 24具有耦合至测试电路26的启用/禁用控制输入端的输出端。测试电路 26被构建成使得当它接收到逻辑低的启用/禁用控制信号时禁用正常测 试工作,当接收到逻辑高的启用/禁用控制信号时启用正常测试工作。测 试电路26可以是启用切换至捕获模式、提供测试时钟信号、将测试数据 通过连接扫描链14等的电路。在部分串联配置中,串联配置中的熔丝20a-b将节点耦合至电源连 接Vdd、 Vss之一上。在余下的串联配置中,熔丝20a-b将节点耦合至电 源连接Vdd、 Vss中的另一个上。因此,仅仅当第一类连接的熔丝20a-b 未保持原样且第二类连接的熔丝20a-b保持原样(intact)时,正常测试 工作才被启用。此处,第一类连接的熔丝20a-b是连接至较高电源连接Vdd和与门24的非反相输入端的熔丝20a-b,以及连接至较低电源连接 Vss和与门24的反相输入端的熔丝20a-b。相反地,第二类连接的熔丝 20a-b是连接至较低电源连接Vss和与门24的非反相输入端的熔丝20a-b 和连接至较高电源连接Vdd和与门24的反相输入端的熔丝20a-b。可以采用反熔丝代替部分或所有熔丝20a-b。熔丝和反熔丝将一般 地称为熔丝元件。作为熔丝元件的反熔丝根据它们在测试前是否必须熔 断也可以类似地区分为第一类或第二类。第一类连接的反熔丝20a-b是 连接至较高电源连接Vdd和与门24的反相输入端的反熔丝20a-b,以及 连接至较低电源连接Vss和与门24的非反相输入端的反熔丝20a-b。相 反地,第二类连接的反熔丝20a-b是连接至较低电源连接Vss和与门24 的反相输入端的熔丝20a-b和连接至较高电源连接Vdd和与门24的非反 相输入端的反熔丝20a-b。在制造集成电路10后,所有的熔丝元件20a-b保持原样。在测试前, 第二类连接的熔丝元件20a-b熔断,但第一类连接的熔丝元件未熔断。 于是集成电路准备好测试。测试后,至少一部分第一类连接的熔丝元件 20a-b也熔断。结果,那些不知道哪些熔丝元件具有第一类连接或第二类连接的人 无法预知哪些瑢断的熔丝元件需要修复,哪些不需要修复,以重新启动 测试。正如将理解的那样,通过连接熔丝元件使得其端子处的电压不提 供关于熔丝类型的任何信息,确定熔丝元件的类型变得更加困难。在附 图的例子中,通过对于在熔断时提供高逻辑电平输入信号的熔丝元件使 用与门的反相和非反相输入端,和/或通过对于在熔断时产生低逻辑电平 的输入信号的熔丝元件使用与门的反相和非反相输入端,实现此点。反 相输入可以通过包括位于熔丝元件和与门的输入端(或其他多输入逻辑 电路)之间的奇数个反相电路链来实现。非反相输入可以通过包括位于 熔丝元件和与门输入端(或其他多输入逻辑电路)之间的偶数个反相电 路链或非反相电路来实现。通过采用大于零的偶数数量,使得将区分第 一类和第二类熔丝元件变得更加困难。正如将理解的那样,例如,通过将包含与门24的集成电路的一部分和其反相/非反相输入端置于覆盖层下面,在不损坏电路的情形下不能 轻易移去该覆盖层,通过将与门的分布在集成电路不同的区域上等,确 定连接的类型变得很困难.正如将理解的那样,具有反相和非反相输入端的与门24仅仅是具 有这种效果的电路的一个例子。可以使用仅仅当熔丝20a-b的一个预定 的组合或一些组合之一保持原样而其他未保持原样时才启用测试的任何 其他电路。同样,当然代替地可连接至少部分熔丝20a-b使得它们并不 影响测试。这使得识别那些必须恢复的熔丝变得更困难。使用将熔丝的效果组合成一个信号中的电路并非必要,如图2中的 例子那样。替代地,可以使用这样的电路,其中不同位置的熔丝在测试 电路中有不同的效果,但只有当适当组合的熔丝已熔断/未熔断时,它们 组合后的效果才允许可检测的测试。这使得该电路具有不易受局部篡改 攻击的优点。为防止修复,仅在其中在预定第一位置处影响扫描链的熔 丝已熔断和在第二位置处影响扫描链的熔丝未熔断时的配置中,才应当 允许测试。代替沿扫描链的每一个位置有一个单独的熔丝,可以使用成 组的熔丝。如图2中的电路可以用来实现这个例子。图2a示出了如下的例子,其中具有扫描触发器28的扫描链包含耦 合至相应的熔丝元件18的修改电路29。在此电路中,每个修改电路29 被设置成如果相应的熔丝/反熔丝18未熔断,则按第一方式影响流经扫 描链的测试数据;如果相应的熔丝/反熔丝18熔断,则按第二方式影响 流经扫描链的测试数据。选择修改电路29,使得它们组合的效果是当仅 仅选择的熔丝组合熔断时没有修改。如果熔丝/反熔丝18熔断,修改电路29例如可以向前传输未修改 的数据;如果熔丝/反熔丝18未熔断,向前传输时间相关伪随机序列的 连续测试数据比特的异或(exclusive OR)结果。在该情形下,不同的修 改电路29的伪随机序列可以是彼此的时移版本,时移量对应于它们在扫 描链上的距离,使得组合后的效果是数据移位经过二者的修改电路29 后保持数据未修改。在更复杂的实施例中,对于不同的修改电路29可以 使用不同的伪随机序列,选择所述伪随机序列使得时移后的异或总是为零。因而,它们组合后的效果是数据移位经过二者的修改电路29后保持 数据未修改。在另一实施例中,在扫描链的不同级中可以并联使用不同 的触发器,使得沿着部分扫描链可以获得并联支路。在此实施例中,修改电路29在不同的支路间转换数据,使得仅仅当形成适当组合的开关时,数据才传送到并联支路以外。图2b示出了可以启用不同状态下的工作的电路的例子。提供了多 个与门24,每个用来启用在不同状态中的工作,其中与门启用扫描链(没 有示出)以访问包含秘密信息的不同组的一个或更多个功能电路(没有 示出)。由此可见,与门至少部分地从相同的(反)熔丝接收信号。优选 地,到与门的连接被设置成使得首先选择的(反)瑢丝必须熔断以产生 来自第一与门的使能信号,随后另外的(反)熔丝必须熔断以产生来自 第二与门的使能信号,因此同时禁用第一与门。因而,存在三类(反)熔丝。第一与门连接至所有的三类,使得如 果仅仅第一类(反)熔丝熔断则输出逻辑1,第二与门连接到所有的三 类,使得如果仅仅第一类和第二类(反)熔丝熔断则输出逻辑1。应当 理解的是,可以按此方式使用多于两个的与门,定义更大组的反熔丝必 须熔断。在图2中己注意到,与门和特定的连接仅仅用作说明的目的。可以 使用对测试访问有相同效果的其他电路。此外,尽管来自所有(反)熔 丝的信号耦合至两个与门24,应当理解到这并非必要。尽管如实施例中所示,其中对含有秘密信息的电路的测试访问是作 为整体启用和禁用,应当理解这并非必要。代替地,集成电路可以提供 多个不同的状态,在每一个状态中,仅仅对于秘密信息的相应部分,测 试访问才是可能的(尽管不排除叠加,不同状态的相应部分是不同的)。 在这种情形下,优选地,在测试期间,每次通过熔断额外数量的熔丝或 反熔丝,集成电路被设置为这些状态中的连续状态。优选地,在不同状 态中使用相同的(反)熔丝以启用工作。图3示出了集成电路,该集成电路具有多路复用为测试数据输入端 /输出端和功能电路12a-b的输入端/输出端的外部连接32, 34。在集成电路10的多路复用输出端提供了多路复用器30。每个多路复用器30具有耦合至功能电路12a-c的输出端的第一输入端和耦合至扫描链14a,b 的输出端的第二输入端。多路复用器30的输出端耦合至集成电路10的 外部端子34。多路复用器的控制输入端(没有示出)耦合至测试控制电 路16。多个输入端子并联耦合至功能电路12a-c的输入端和扫描链的输 入端。此外,可以使用能够转换成交替作为输入端和输出端的功能的端 子32。应当理解的是,所示出的多路复用输入端32和输出端34仅是举 例说明。在实际中,可以有数量大得多的端子,其中的一些或所有可以 多路复用为测试输入端和输出端。示出了多个扫描链14a-b。为完整性考虑,所示出的每个功能电路 12a-b耦合至所有扫描链14a-b,尽管当然优选地,每个功能电路12a-b 具有耦合至仅其中一个扫描链上的输入端和输出端。优选地,集成电路被构建成难以确定扫描链14a-b的输入端和/或输 出端耦合至集成电路的哪些外部端子。至少在测试没被授权时,例如由 于正确组的熔丝元件(没有示出)分别没有保持原样/熔断,或在已经提 供了适当的密钥时,通过避免在移进测试输入端的测试数据与移出测试 输出端的测试数据之间的一一对应的关系,实现这一点。各种电路可以 用来隐藏测试数据的输入/输出。图4示出了扫描链的一部分,具有按照其中测试数据移位通过扫描 链的名义次序(nominal sequence)从左向右示出的扫描触发器40a-e。 只示出了用来移位的连接。应当理解的是,对当前和接下来的附图中的 扫描链,所有或大多数扫描触发器40a-e具有耦合至功能电路(没有示 出)的输入端的输出端和/或耦合至功能电路(没有示出)的输出端的输 入端,以及耦合至测试控制电路的控制输入端(没有示出),以控制是否 从功能电路或扫描链中的在前的扫描触发器40a-e中加载数据。在扫描链中加入环路42、旁路46和逻辑门44。提供了环路多路复 用器43,其第一输入端耦合至扫描链中第一扫描触发器40a的输出端, 其输出端耦合至第二扫描触发器40b的输入端,在名义次序的扫描链中 第二扫描触发器40b毗邻第一扫描触发器40a。环路多路复用器43的第二输入端耦合至第三扫描触发器40c的输出端,在名义次序扫描链中第三触发器40c紧随第二扫描触发器40b之后。提供了旁路多路复用器47, 其第一输入端耦合至扫描链中第四扫描链触发器40d的输出端,其输出 端耦合至第五扫描链触发器40e的输入端,在名义次序扫描链中第五扫 描触发器40e毗邻第四扫描触发器40d。环路多路复用器43的第二输入 端耦合至扫描触发器40c的输出端,在名义次序扫描链中第三触发器40c 在第四扫描触发器40d之前。提供了或门44,其第一输入端和输出端分 别耦合至扫描链中名义上接连的触发器40c-d的输出端和输入端。授权控制电路49具有控制线48,该控制线耦合至环路复用器43 和旁路多路复用器47的控制输入端和或门44的第二输入端。在工作中,授权控制电路49检测测试是否被授权,例如由于正确 组的熔丝元件(没有示出)分别没保持原样/熔断,或在提供了适当的密 钥时。当授权控制电路49检测到测试被授权时,控制电路49将某一逻 辑电平的稳定信号施加到控制线48上,使得环路复用器43、或门44和 旁路复用器47通过来自扫描触发器40a-e的测试数据,以便正常次序移 位。当授权控制电路49检测到测试没有被授权时,授权控制电路49对 控制线48施加时变信号(比如随机或伪随机信号)以控制线48。结果, 环路多路复用器43将不时使测试数据被回送,等效于延长了扫描链;旁 路多路复用器47将不时使扫描链变短并且或门44将不时用逻辑1重写 测试数据。由此,对测试数据响应的信号的变化通过扫描链,但在输入 端和输出端的测试数据流之间不再有一一对应的关系。在数据移位通过 扫描链时,功能电路12a-c的输出端保持与外部端子的连接,功能电路 12a-c的输出端连接至集成电路的外部端子并对扫描链中的数据响应,使 得通过测试链的数据的移位在这些端子处引起信号变化。这使得难以将 承载输出信号的集成电路外部端子与其他的外部端子区分开来,例如, 耦合至同样将响应测试数据而产生信号变化的功能电路12a-c的输出端 的端子。应当理解,环路多路复用器43,旁路多路复用器47和或门44的结构及它们的连接仅仅以举例的方式示出。在实际中,可以使用包含不同 数量的扫描触发器的环路和旁路,环路和/或旁路可以叠加。逻辑门可以 用在扫描链中的任意位置,也可以使用其他类型的逻辑门比如与门或异 或门(XOR),也可以提供一个以上的逻辑门。优选地,可使用环路、 旁路和逻辑门的组合,因为这使得更难重构扫描链的结构。图5示出了一部分扫描链,其中增加了更复杂的环路。在此实施例中,当授权控制电路(没有示出)提供适当的控制信号时,形成线性反馈移位寄存器(LFSR)。在扫描链中一些扫描触发器40前提供了多个异 或门52。已经提供了与门50,如果在控制线48上接收到来自授权控制 电路(没有示出)的相应控制信号,则将来自扫描触发器40的信号反馈 至异或门的输入端。应当理解,仅示出了线性反馈移位寄存器(LFSR) 的一个例子,可以使用其他沿扫描链在更多和/或不同的位置具有异或门 的线性反馈移位寄存器(LFSR)。优选地,使用能在反馈时响应逻辑脉 冲时产生长重复周期的重复序列的线性反馈移位寄存器(LFSR)。从线 性反馈移位寄存器(LFSR)的现有技术已知产生长序列的连接的例子。 还应当注意,在没有检测到授权时授权控制电路(没有示出)保持反馈 接通就足够,接通或断开反馈并非必要。优选地,线性反馈移位寄存器 (LFSR)之前是包含一个或更多个类似于或门44或异或门的逻辑门的 扫描链的一部分,所述逻辑门被设置成在移位经过扫描链的数据中产生 逻辑信号变化,即使提供仅包含逻辑0或逻辑1的测试数据。在该情形 下,线性反馈移位寄存器(LFSR)将响应逻辑l,产生更广延的(extensive) 伪随机模式。图6示出了授权控制电路的实施例的一部分。授权控制电路包含密 钥发生器电路66,具有第一触发器60的第一移位寄存器,具有第二触 发器62的第二移位寄存器和异或门64 (XOR)。密钥发生器电路66有 耦合至第一移位寄存器输入端的输出端。第二移位寄存器有耦合至集成 电路外部端子的输入端。异或门64各自具有耦合至相应的一对第一和第 二触发器60、 62的输入端,以及耦合至控制线48的输出端。控制线耦 合至例如图4中所示的扫描链。尽管示出了相对短的第一和第二移位寄存器,应当理解的是,可以使用更长的移位寄存器,和/或可以连接更多 的异或门以产生额外的控制信号。在工作中,密钥发生器电路66 (即,伪随机发生器)输出连续比特的密钥至第一移位寄存器。来自外部输入端的比特被移位通过第二移位寄存器。异或门64比较来自第一和第二寄存器中的对应比特。如果来自 第一和第二寄存器中的比特匹配,异或门64提供信号至控制线48,使 得扫描链正常工作,抑制反馈、和/或绕开、和/或重写测试数据。如果 来自第一和第二寄存器的比特不匹配,控制线上将出现时变信号,这将 引起扫描链偏离正常的移位工作。优选地,第一和第二移位寄存器采用与受到授权控制电路控制的扫 描链(没有示出)相同的时钟计时。作为替代,该时钟的下分频版本 (divided down version)可以用于对第一和二组移位寄存器计时。采用 相同或相关的时钟信号,在测试扫描移位期间,需要继续匹配新比特。 由此,可以使用非常长的运行中的密钥(running keys),这使获得未授 权的访问更困难。此外,这自动为扫描链提供了时变控制信号,使扫描 链很难被识别。尽管对于密钥的比特移位已经示出了使用仅一个移位寄存器,但是 应该理解的是,可以并联使用多个移位寄存器和/或可以作为比较多于一 个比特的外部密钥数据与内部密钥数据的结果而产生控制线48上的控 制信号。授权控制电路可以使用单个密钥比较来控制多个扫描链。替代 地,对于不同扫描链,可并联使用多个密钥比较。另外替代地, 一个密 钥比较器电路可以用来校验不同扫描链的不同密钥。作为一个替代的方案,传统的静态密钥校验可用在授权控制电路 中,或者一旦已经加载完整的密钥则可以阻止第一和第二移位寄存器移 位。在这个方案中,外部密钥被加载进授权控制电路中并且此授权控制 电路检测此密钥是否正确。当授权控制电路发现密钥是正确的,它将设 定控制线48上的控制信号,使扫描链正常起作用。如果密钥不正确,授 权控制电路将来自时变信号发生器,如伪随机发生器甚至真随机发生器 的信号馈送给控制线48。这具有可以使用任意密钥校验技术的优点,但它在密钥的长度和测试需要的总时间之间强加了折中。图6a示出了其中具有第一和第二移位寄存器的结构可以用来启用或禁用对扫描链的访问的实施例。第一和第二移位寄存器分别用来密钥数据和密钥基准(key reference)的移位,由相同或相关的时钟信号计时。 在此实施例中,提供了比较器电路67和置位/复位存储电路68。比较器 电路67的输入端耦合至第一和第二移位寄存器,输出端耦合至置位/复 位存储电路68的置位输入端。置位/复位存储电路68被设置为当它加电 时或集成电路复位时复位。置位/复位存储电路68耦合至扫描链(没有 示出)中使能电路69的启用/禁用控制输入端。在工作中一旦置位/复位 存储电路68被置位,则置位/复位存储电路68禁止输入到扫描链和/或 从扫描链输出。当在第一和第二移位寄存器中发生密钥数据与基准数据 之间的失配时,置位/复位存储电路68由比较器电路67置位。优选地, 置位/复位存储电路68是时控的(没有示出),使得仅仅当存在稳定的比 较结果时才发生置位。优选地,密钥比较无期限地持续,至少直到捕获测试响应。优选地, 密钥发生器产生至少在数据移位通过扫描链所需的周期期间不重复的基 准序列。可以注意,即使没有使用另外的比较器电路64,即,对扫描链没有 产生其他的变化时,仍可应用具有使能电路69的结构。该实施例在测试 数据移位通过扫描链时提供了持续的运行中的密钥比较。由此,由于启 动测试不需要等待比较的结束,因而赢得了时间。因此,可以使用非常 长的密钥而不产生长的延迟。还可以注意,这种结构可以用来启用扫描 链中的使能电路之外的使能电路(甚至不启用扫描链中的使能电路)。因 此,例如在密钥和基准之间失配后,可禁用集成电路的保护功能。这具 有防止未授权使用集成电路和/或未授权访问集成电路的优点。然而,在 扫描链中使用使能电路的优点在于正常的测试访问不必限于防止访问秘 密信息。图7示出了具有第一、第二、第三扫描链的电路,各自具有一组耦 合作为移位寄存器的扫描触发器40a-e, 70, 72。每个扫描链耦合至集成电路不同对的外部端子,将测试数据供给集成电路并且接收来自集成电路的测试结果。交换电路74a-c耦合在成对的扫描链的扫描触发器之间。 交换电路74a-c各自具有两个输入端和两个输出端,并且被设置成在来 自授权控制电路49的控制信号的控制下,将第一和第二输入端的输入信 号分别馈送到第一和第二输出端,或者交叉馈送到第二和第一输出端。 每个交换电路74a-c可以实现为一对多路复用器,控制彼此相反,但其 他的电路也有可能。在工作中,当授权控制电路49授权测试时,它使交换电路74a-c 沿扫描链并联地通过测试数据。当授权控制电路49授权测试时,它将时 变控制信号施加至交换电路74a-c中(例如伪随机信号),使得测试数据 不时从一个扫描链交叉至另一个扫描链,因而掩盖了扫描链的哪些输出 对应于哪些输入。优选地,当测试被授权时,授权控制电路49使交换电路74a-c沿扫 描链并联地通过测试数据。然而,这并非必要。在一个替代的实施例中, 当测试被授权时,授权控制电路使交换电路74a-c以预定的时变方式在 扫描链之间交换连接。效果上,这意味着被用作扫描链的输入端和输出端的外部端子在移 位期间作为时间的函数而变化。在测试数据移进时采用这种形式的交换 时,来自特定扫描链的用于测试的测试数据将必须按照施加到不同扫描 链的外部端子的比特序列而施加到集成电路。类似地,在测试数据移出 时采用这种形式的交换时,来自特定扫描链的测试结果将必须按照从不 同扫描链的外部端子收集的比特序列而收集。这使得识别扫描链变得更 困难。交换扫描链之间连接的预定时变方式可以例如响应复位信号、或响 应检测到已经提供预定的密钥时而启动,随后启动交换的周期性重复模 式。因此,外部测试设备可以被同步到交换的预定时变方式。可以注意,可以并联使用数个扫描链用于测试期间移进和移出。在 该情形下,必须将不同扫描链的测试数据混合在一起,并且必须收集用 于不同扫描链的测试结果。优选地,授权电路被设置成在测试数据的移进和测试结果的移出期 间引起交换。但是,替代地,仅在移进和移出期间,可以启用交换。这 仍然使识别扫描链变困难。在其最简单的形式中,可仅通过在扫描链的输出端和集成电路的外 部端子之间交换电路来实现交换。因而,可以实现将扫描链的输出端时 变连接到不同外部端子,使得识别应当使用哪个外部端子变得更加困难。 然而,在扫描链的不同部分之间使用"内部"交换电路具有额外的优点, 对功能电路的控制更难识别并且相关的外部端子更难识别。当然,交换可以与环路、旁路和逻辑门相加组合至扫描链中。使用其他形式的时间相关的(time dependent)有源逻辑门和/或线性反馈移位 寄存器(LFSR)结构极其有利,因为它将扰乱可以施加到扫描链探针的 任何测试模式。尽管已经示出了二输入二输出的交换电路,替代地,可 以使用n输入n输出的交换电路(例如,纵横开关),"n"是大于2的整 数,使得在不同的时间可以实现不同的交换,或可以实现比交换更复杂 的连接变动(permutation),使识别扫描链变得更为困难。尽管附图建议 将交换电路置于不同扫描链的相应位置(输入端连接至两条链的第m个 扫描触发器),但这并非必要。交换也可以与图6中的授权控制电路组合在一起,使得在第二移位 寄存器和一个或更多个扫描链之间交换比特。应当注意,除了对扫描链的所公开修改,可以采来其他安全机制, 防止秘密信息被加载到任何扫描链和/或移位通过扫描链,除非提供授 权。因此,所提出的方式用于使得确定至扫描链的连接变得很困难,除 非有授权信息。替代地,所公开的修改可以被他们自己使用,以防止访 问和/或识别将要加载或移位的秘密信息。在此情形中,没有提供独立的 安全机制以防止秘密信息加载或移位。所公开的对扫描链的修改可以用来使得确定是否已经提供适当的 密钥或是否恢复了适当的熔丝/反熔丝变得更加困难。相反,熔丝和/或 反熔丝的适当组合的存在可以用于禁止对扫描链的修改,或将它们设定 为允许系统访问测试数据的预定的结构。
权利要求
1.一种测试集成电路(10)的方法,所述集成电路包括功能电路(12a-c),耦合至功能电路(12a-c)的测试访问电路(14,16),和耦合至测试访问电路(14,16)的多个熔丝元件(18),所述熔丝元件(18)按如下电路结构连接该电路结构使得仅仅当所述多个熔丝元件中的第一熔丝元件(18)处于熔断状态并且所述多个熔丝元件中的第二熔丝元件(18)处于未熔断状态时,才可经由测试访问电路(14,16)稳定地访问功能电路(12a-c),该方法包括获得所有第一和第二熔丝元件(18)处于未熔断状态的集成电路(10);选择性地熔断所有第一熔丝元件(18)并保留所有第二熔丝元件(18)未熔断;然后,使用测试访问电路(14,16)执行测试;以及然后,熔断至少部分第二熔丝元件(18)。
2. 如权利要求1所述的方法,其中集成电路(10)包括耦合至测试 访问电路(14, 16)的另一功能电路(12a-c),熔丝元件(18)按如下 电路结构连接该电路结构使得当第一熔丝元件(18)处于熔断状态时, 只要在第二熔丝元件(18)中仅仅一个或更多个第二熔丝元件(18)的 一个预定子集的熔丝元件处于熔断状态时,就可经由测试访问电路(14, 16)稳定地访问所述另一功能电路(12a-c),该方法包括以下步骤在所述执行步骤后,熔断该子集的第二熔丝元件(18);然后 使用测试访问电路(14, 16)执行另一测试;以及然后, 熔断不属于所述子集的至少部分第二熔丝元件(18)。
3. —种集成电路(10),包括功能电路(12a-c),耦合至功能电路 (12a-c)的测试访问电路(14, 16),和耦合至测试访问电路(14, 16)的多个烙丝元件(18),所述熔丝元件(18)按如下电路结构连接该电 路结构使得仅仅当所述多个熔丝元件中的第一熔丝元件(18)处于熔断状态并且所述多个熔丝元件中的第二熔丝元件(18)处于未熔断状态时,才可经由测试访问电路(14, 16)稳定地访问功能电路(12a-c)。
4. 如权利要求3所述的集成电路,包括耦合至测试访问电路(14, 16)的另一功能电路(12a-c),所述多个熔丝元件(18)按照如下电路 结构连接该电路结构使得当第一熔丝元件(18)处于熔断状态时,只 要在第二熔丝元件(18)中仅仅一个或更多个第二熔丝元件(18)的预 定子集的熔丝元件(18)处于熔断状态时,就可经由测试访问电路(14, 16)稳定地访问所述另一功能电路(12a-c)。
5. 如权利要求3所述的集成电路,包括扫描链(14)和沿扫描链在 彼此不同的位置处耦合至扫描链(14)的多个数据修改电路(29),第一 和第二熔丝元件(18)耦合至相应的数据修改电路(29)。
6. 如权利要求3所述的集成电路,包括逻辑电路(24),其输入端 耦合至相应的第一和第二熔丝元件(18)并且其输出端耦合至测试访问 电路(14, 16),以启用稳定的访问,逻辑电路(24)被设置成仅仅当所 述多个熔丝元件中的第一熔丝元件(18)处于熔断状态并且所述多个熔 丝元件中的第二熔丝元件(18)处于未熔断状态时,才产生第一输出信 号。
7. 如权利要求3所述的集成电路,包括外部端子(32, 34),其中, 测试访问电路(14, 16)包括耦合至功能电路(12a-c)并且在外部端子(32, 34)之间的扫描链(14),扫描链(14)包括扫描单元(40b, c, d),该集成电路包括耦合至扫描链(14)和熔丝元件(18)的扫描链修 改电路(42, 43, 46, 47),所述扫描链修改电路(42, 43, 46, 47)按 如下方式设置有条件地当并非所有第一熔丝元件(18)处于熔断状态或 者并非所有第一熔丝元件(18)处于未熔断状态时,响应于引起测试数据 移位通过扫描链(14)的信号,引起测试数据的各个瞬时连续部分在沿 外部端子(32, 34)之间的方向移位期间在其通过扫描链(14)的路程 上穿过扫描链(40b, c, d)的次数之间的差异。
8. 如权利要求7所述的集成电路,其中,扫描链修改电路包括 多路复用电路(43),具有耦合至扫描单元(40b)的输入端的输出端、控制输入端(48)、以及耦合至位于扫描链中该扫描单元之前的第一另外的扫描单元(40a)和位于扫描链(14)中该扫描单元之后的扫描单元 或第二另外的扫描单元(40c)的输出端的信号输入端;时间相关信号发生电路(49),具有耦合至多路复用电路(43)控制 输入端(48)的输出端。
9. 如权利要求7所述的集成电路,其中扫描链修改电路包括 多路复用电路(47),具有控制输入端(48)、耦合至位于扫描链中该扫描单元(40d)之后的第一另外的扫描单元(40e)的信号输出端、 以及耦合至扫描单元(40d)的输出端和位于扫描链中该扫描单元(40d) 之前的第二另外的扫描单元(40c)的输出端的信号输入端;时间相关信号发生电路(49),具有耦合至多路复用电路(47)的控 制输入端的输出端。
10. 如权利要求7所述的集成电路,其中扫描链修改电路包括 切换电路(74a-c),所述切换电路具有耦合至扫描单元(70, 72)输出端的输入端、控制输入端(48)、以及各自直接或经由一个或更多个 相应的扫描单元耦合至相应的一个外部端子的多个输出端,该切换电路 (74a-c)被设置成选择性地将测试数据传送至所选择的一个输出端,通 过来自控制输入端(48)的控制信号选择该输出端;时间相关信号发生电路(49),具有耦合至切换电路(74a-c)的控 制输入端(48)的输出端。
11. 如权利要求10所述的集成电路,包括多个扫描链,包含所述扫 描链,每个扫描链具有耦合在集成电路相应的一对外部端子之间的输入 端和输出端,其中,切换电路(74a-c)被设置成在第一部分扫描链的输 出至第二部分扫描链的输入之间引起可选择的连接变动,在时间相关信 号发生电路(49)的控制下选择该变动。
12. 如权利要求7所述的集成电路,其中扫描链修改电路包括 耦合至扫描单元的路由电路(43, 47, 74-c),可控制地提供用于将将测试数据路径移至扫描单元(40b, 40d, 70),或从扫描单元(40b, 40d, 70)至一个或更多个外部端子的替代路径;时间相关信号发生电路(66);具有耦合至时间相关信号发生电路的输入端的第一移位寄存器 (60);具有从集成电路外部接收密钥信号的输入端的第二移位寄存器 (62);比较器电路(64),耦合至对应级的第一和第二移位寄存器(60, 62) 的输出端,以及耦合至路由电路(43, 47, 74-c)的控制输入端的输出 端。
13.如权利要求7所述的集成电路,包括耦合至扫描链中相应的扫描单元的多个路由电路(43, 47, 74-c), 可控制地提供用于将测试数据路径移至相应的扫描单元、或从相应的扫 描单元至一个或更多个外部端子的替代路径;时间相关信号发生电路(66)具有耦合至时间相关信号发生电路(66)的第一移位寄存器(60); 具有从集成电路外部接收密钥信号的输入端的第二移位寄存器 (62);多个比较器电路(64),每个具有耦合至对应级的相应一对第一和第 二移位寄存器(60, 62)的输出端的输入端、以及耦合至相应的一个路 由电路(43, 47, 74-c)的控制输入端的输出端。
全文摘要
一种集成电路(10),包括功能电路(12a-c),该功能电路包含必须保密防止未授权访问的信息。该集成电路包括耦合至功能电路(12a-c)的测试访问电路(14,16),和耦合至测试访问电路(14,16)的多个熔丝元件(18)。熔丝元件(18)按如下电路结构连接该电路结构使得仅仅当所述多个熔丝元件中的第一熔丝元件(18)处于熔断状态并且第二熔丝元件(18)处于未熔断状态时,才使功能电路(12a-c)可经由测试访问电路(14,16)稳定访问。结果,在选择性地熔断所有第一熔丝元件(18)之后,可以测试集成电路。在测试之后,至少一部分第二熔丝元件(18)熔断。结果,对于不知道哪些熔丝元件是第一熔丝元件和哪些是第二熔丝元件的人,将集成电路恢复到其中可以进行对保密信息的访问的危险的测试访问的状态存在着困难。
文档编号G01R31/3185GK101238382SQ200680029234
公开日2008年8月6日 申请日期2006年8月9日 优先权日2005年8月10日
发明者亨得里克斯·P·E·瓦兰肯, 休伯特斯·G·H·韦尔默朗, 埃里克·J·马里尼森, 安德烈·K·纽兰, 桑迪普库马尔·戈埃尔 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1