专利名称:保护扫描链数据的电路的制作方法
技术领域:
本发明公开的方面设计扫描链的数据安全性。在特定的实施例中,所述扫描链配置用于确保使扫描链中的选定数据不能被访问。
背景技术:
扫描链技木通常用于测试具有逻辑电路的集成电路(IC)。在测试期间将逻辑电路切換到测试模式,在测试模式下将触发器(flip-flop)临时地与其运算输入端断开,并且进行切换以形成连续的移位寄存器。通过移位寄存器来输入测试输入图(pattern),使得每一个单独的触发器接收测试图的相应比持。在一种类型的测试中,通过使具体的图通过扫描链中的所有触发器并验证所述具体的图是否出现在扫描链的输出处,来测试触发器以发现故障(例如,固定型故障 (stuck-at fault))。在另ー种类型的测试中,在已经移入(shift-in)测试输入数据之后,在一个或多个时钟周期内将寄存器切換回正常运算输入和输出,以便捕获逻辑电路对于寄存器中的测试图的响应。随后,再次切換寄存器以形成移位寄存器,通过所述移位寄存器提取出所捕获的逻辑电路的响应。具有扫描链的IC可能易于受到以恢复电路的寄存器中存储的敏感数据为目的的攻击。这种敏感数据可以包括解密密钥或想要保密的其他数据。在ー种攻击模式下,攻击者按照正常功能模式操作1C,然后将IC切换到扫描输出模式。然后将数据移出(shift-out)1C,从而产生了敏感数据。本发明公开的实施例涉及扫描链的数据安全性,可以配置用于防止在扫描链的使用期间读取受保护的数据。
发明内容
根据本发明公开的ー个实施例,一种保护扫描链中的数据的方法包括随着从扫描链中扫描输出数据来扫描输入数据。监测所述扫描链,以发现数据从扫描链中的初始扫描触发器向扫描链中的指定扫描触发器的扫描输入。响应于没有检测到数据从初始扫描触发器向指定扫描触发器的扫描输入,阻止将数据从指定扫描触发器扫描输出。响应于检测到数据从初始扫描触发器向指定扫描触发器的扫描输入,使能将数据从指定扫描触发器扫描输出。因此,所述方法使得可以在敏感数据所占据的扫描触发器(“安全触发器”)中不再存储有敏感数据之前,始終阻止从扫描链扫描输出敏感数据。可以使用多种方法来确定安全触发器何时不再具有敏感数据。在一个实施例中,已经通过安全触发器的具体代码将会以信号的形式来通知停止对敏感数据的阻止。在另ー个实施例中,可以对移动(shift)的次数进行计数,以确保已经将非安全数据移入安全触发器中。阻止来自扫描链的敏感数据可能会导致输出伪随机数据、输出逻辑O的恒定流、或者输出逻辑I的恒定流。在另ー个实施例中,提供了一种保护扫描链中的数据的方法。所述电路包括在扫描链中耦合的多个扫描触发器。输入电路配置用于将输入数据移至扫描触发器,保护电路与扫描触发器耦合。保护电路配置用于检测数据从输入电路向ー个指定的扫描触发器的扫描输入。保护电路响应于检测到数据从输入电路向指定扫描触发器的扫描输入,使能将数据从指定扫描触发器扫描输出。保护电路响应于没有检测到数据从输入电路向指定扫描触发器的扫描输入,防止将数据从指定扫描触发器扫描输出。在另ー个实施例中,一种用于保护扫描链中的数据的电路包括直接稱合在扫描链中的两个扫描触发器之间的多个中间扫描触发器。检测器电路与中间扫描触发器耦合。检测器电路检测扫描输入到中间扫描触发器的具体值。检测器电路响应于检测到所述具体值产生第一状态的使能信号,并且响应于没有检测到所述具体值产生第二状态的使能信号。数据阻断器电路与检测器电路和中间扫描触发器耦合。数据阻断器电路响应于使能信号处于第一状态,使能从中间扫描触发器移出数据。响应于使能信号处于第二状态,数据阻断器电路阻止从中间扫描触发器移出数据。
以上讨论并非意欲描述每ー个实施例或每ー种实现。附图和以下描述也明确地描述了多种实施例和落在本发明公开的精神和范围内的其他实施例、修改、等价和替代。考虑到结合附图的以下详细描述,可以更加全面地理解各种示例实施例,其中图I示出了具有保护电路的扫描链电路,所述保护电路用于保护扫描链寄存器中的敏感数据不受到未授权的访问;图2示出了根据ー个实施例的保护电路;图3是用于保护扫描链中的敏感数据不受到未授权访问的示例方法的流程图;图4是根据一个实施例的保护电路的示意图;以及图5是示出了图4的电路图中信号之间关系的时序图。
具体实施例方式尽管本发明公开可以具有多种修改和替换形式,但是在附图中已经作为示例描述了其示例并且将详细描述。然而应该理解的是,其并非意欲将本发明公开局限于所示和/或所述的具体实施例。相反,其意欲覆盖落在本发明的精神和范围内的所有修改、等同和替换。确信所公开的实施例可以应用于多种不同类型的处理、设备和结构以与多种不同类型的系统和设备一起使用。尽管实施例不必如此限制,通过使用上下文对示例的讨论可以理解本发明公开的各个方面。根据ー个或多个实施例,通过确保在扫描测试期间不能扫描输出敏感数据,来保护扫描链的扫描触发器中的敏感数据。为了保护敏感数据,电路对扫描输入到扫描链中的数据进行监测,并阻止扫描输出所述敏感数据。一旦非安全数据占据了安全触发器,就使能扫描输出安全触发器中的数据。因此,对敏感数据的阻止防止了某一方(a party)从扫描链中扫描输出敏感数据。图I示出了具有保护电路的扫描链电路100,所述保护电路100用于保护扫描链寄存器中的敏感数据不受到未授权的访问。扫描链电路包括连接为扫描链的多个扫描触发器,例如扫描触发器102。每ー个扫描触发器包括扫描输入管脚、数据输入管脚和数据输出管脚,对于示例的扫描触发器,这些管脚被示为分别与线路104、106和108相连。为了便于说明,未示出与扫描触发器的时钟管脚和测试使能管脚相连的信号线。在扫描测试期间,每一个扫描触发器102在扫描输入管脚处从扫描链中的在先扫描触发器输入数据。在正常エ作模式期间,每ー个扫描触发器根据与该扫描触发器相连的应用逻辑(未示出)在数据输入管脚处输入数据。电路100还包括扫描输入端ロ 112、保护电路114和扫描输出端ロ 116。扫描输入端ロ可以包括通过其将扫描输入的数据输入到扫描链中的电路,并且还可以包括用于控制至扫描触发器102的扫描测试使能信号和扫描测试复位信号的电路。扫描输出电路包括通过其将来自扫描链的数据从设备移出的电路。保护电路114控制是否可以将扫描链中的敏感数据扫描输出。在扫描输出期间会发生的任何移动之前,被保护的敏感数据将占据特定的扫描触发器。为了说明的目的,例如,敏感数据占据了邻近的一组扫描触发器122。如果在发起扫描输出之前敏感数据占据了扫描触发器122,保护电路114阻止敏感数据移至扫描触发器124,从而防止了经由扫描输出端ロ 116将敏感数据移出。当发起扫描输出时,保护电路监测扫描输入的数据。在一个实施例中,保护电路114连续地阻止从扫描触发器122移动数据,直到非安全数据占据了之前由敏感数据占据的扫描触发器。也就是说,在扫描输入端ロ处已输入的数据占据先前具有安全数据的扫描触发器之前,或者备选地在保护电路114检测到比特值的特定序列之前,保护电路114始終连续地阻止从扫描触发器122移动数据。一旦保护电路确定非安全数据占据了先前由敏感数据占据的扫描触发器,保护电路使能将数据从扫描触发器122扫描输出。到保护电路使能将数据从扫描触发器122扫描输出吋,已经将敏感数据移出扫描触发器122并阻止敏感数据传递到扫描链中的扫描触发器124。在一个实施例中,保护电路114直接耦合在扫描链中的两个扫描触发器之间。例如,保护电路接收来自扫描触发器128的移动数据,并且将数据提供给扫描触发器130。保护电路是否阻止将来自扫描触发器128的数据移至扫描触发器130取决于新扫描输入的数据是否传递到扫描触发器122。在一个实施例中,在电路设计中可以容易地将保护电路114集成到扫描链设计中,作为连接在两个扫描触发器之间的模块。保护电路连接在扫描链中的点取决于扫描链中的哪些扫描触发器具有敏感数据。因为保护电路选择性地阻止从保护电路移出数据,可以将保护电路连接在扫描链中具有敏感数据的最后一个扫描触发器后面。例如在图I中, 如果扫描触发器122具有敏感数据,则将保护电路连接在扫描触发器128后面,所述扫描触发器128是具有敏感数据的最后ー个扫描触发器。在保护电路连接在扫描链中的两个扫描触发器之间的实施例中,扫描链中在保护电路后面的扫描触发器中存在的并且在开始扫描输出之前的数据不会受到保护。图2示出了根据ー个实施例的保护电路114。所述保护电路包括一组中间扫描触发器152、扫描输入序列检测器电路154和数据阻断器电路156。将来自扫描链的数据移入中间扫描触发器152。检测器电路154监测移入的数据,以发现扫描数据的使能序列。在一个实施例中,所述使能序列可以是数据量,所述数据量足以使敏感数据从扫描链中的扫描触发器(例如扫描触发器122)移出并被数据阻断器电路156阻止。可以通过对扫描链中数据移动的次数进行计数来检测所述数据量。在另ー个实施例中,所述使能序列可以是移入中间扫描触发器152的比特值的特定序列。检测到所述序列表示已发生数据从输入电路向指定扫描触发器的扫描输入。一旦检测到所述序列,检测器电路154就产生具有对已经检测到所需序列加以表示的状态的使能信号。数据阻断器156从扫描触发器152移入数据,并且阻止扫描数据移出数据阻断器,直到扫描输入序列检测器电路154以使能信号来通知不再需要阻止移动数据。在一个实施例中,数据阻断器电路通过输出比特值的伪随机序列来阻止数据。在另ー个实施例中,数据阻断器电路通过输出全部为逻辑O的流、全部为逻辑I的流或者逻辑O和逻辑I交替的流来阻止数据。图3是用于保护扫描链中的敏感数据不受到未授权访问的示例方法的流程图。在块202,开始从扫描链中扫描输出数据。在块204,随着从扫描链的末端扫描输出数据,在扫描链的前端或输入侧扫描输入数据。在判定块206,进程确定是阻止还是使能从扫描链中的安全触发器输出数据。所述安全触发器是包含敏感数据的触发器,所述敏感数据是应用用户或设计者不希望被未授权方发现的数据。在块208,如果安全扫描触发器中的安全数据尚未被移入的数据改写,进程阻止从 安全触发器扫描输出数据。例如,所述扫描输出数据的阻止可以是通过以下方式来实现的输出已经移动通过线性反馈移位寄存器(LFSR)的数据,以产生逻辑值的伪随机序列。在块210,一旦进程检测到在安全触发器中敏感数据已被改写,进程就使能从安全触发器扫描输出数据。可以通过对扫描链中数据的移动进行计数,或者通过检测合特定的序列何时被扫描输入并且移至扫描链中的至少ー个指定扫描触发器,来确定对已改写的敏感数据的检测。在块204,连续地扫描输入数据。图4是根据一个实施例的保护电路400的详细示意图。保护电路包括三个主要部分,这三个主要部分包括检测器电路402、控制电路404和LFSR电路406。在检测器电路检测到扫描链中特定的比特序列之前,LFSR始终根据移至LFSR的扫描链数据来产生比特值的伪随机序列。当检测器检测到特定的比特序列时,检测器以信号的形式通知控制电路t匕特序列已经在扫描链中传递至保护电路。作为响应,控制电路以信号的形式通知LFSR电路可以输出移动的扫描数据,这使LFSR电路移出扫描数据而不是LFSR数据,所述LFSR数据根据来自扫描链的移动数据而产生的。检测器电路包括连接在扫描链中的多个扫描触发器412、414、416和418。扫描触发器的每ー个均包括测试管脚(TI),用于接收扫描链中的移动数据;数据输入管脚(D),绑定至逻辑O ;时钟管脚(CP);数据输出管脚(Q);以及测试使能管脚(TE)。在将扫描使能信号断言(assert)到扫描触发器的TE管脚时,将数据在扫描触发器中移动;在将扫描使能信号对扫描触发器的TE管脚去断言(deassert)时,将初始值(图4中的逻辑O值)输入至触发器。检测器电路402还包括比较电路422,所述比较电路422将来自扫描链触发器412、414、416和418的输出与编程的代码值进行比较。可以利用例如熔丝或反熔丝(anti-fuse)将编程的代码值硬件实现到(hardwired to)应用电路,或者可以将编程的代码存储在应用电路中的锁存器、触发器或类似装置(comparable device)中。将编程的代码(未示出)的比特以及来自扫描触发器的输出输入到“与(AND)”门424。如果所有的比特匹配,将匹配信号425断言到控制电路404中的复用器426的输入端。
将来自检测器电路的匹配信号输入至控制电路404的复用器426。还将扫描测试复位信号428和扫描使能信号430输入至控制电路404。在触发器432中捕获扫描使能信号430的状态。从“与,,门436输出的事件信号434是扫描使能信号的延迟版本,并且用作复用器426的选择输入。触发器438捕获复用器426的输出,所述输出是来自触发器438的反馈检验值440或者是来自检测器电路的匹配信号425。将检验信号430和扫描使能信号430输入至“与”门442,所述“与”门输出信号444,信号444的状态控制LFSR是将扫描数据移动通过触发器452、454、…、456还是将LFSR数据移动通过触发器。当去断言使能信号444吋,LFSR电路中的扫描触发器452和454将输入D输入管脚上的数据,所述数据是LFSR数据。当断言使能信号444吋,扫描触发器452和454将输入测试输入管脚TI上的数据,所述数据是移动通过扫描链的数据。因此,LFSR通过在去断言使能信号时输出LFSR数据,阻止了扫描链数据的移出。一旦断言了使能信号,LFSR电路就允许将扫描链数据移出。
应该理解的是,检测器电路402中的扫描触发器的个数和LFSR电路中扫描触发器的个数将取决于实现要求。图5是示出了图4的电路图中的信号之间的时序关系的时序图。当扫描输入/输出开始时断言扫描测试复位信号,并且在整个扫描过程中断言所述扫描测试复位信号。CP是时钟脉冲信号。信号se_l是从触发器432输出的信号,事件信号是从“与”门436输出的。检验信号是从触发器438输出的。扫描输入与移入扫描触发器412的扫描数据相对应,扫描输出与移出LFSR电路406的数据相对应。se_s信号与从控制电路404提供给LFSR电路406的使能信号444相对应。根据扫描输出可以看出,在断言se_s信号之前始终输出来自LFSR的数据,断言se_s信号表示擦除序列(erase sequence)已经完成(例如检测到所需的代码存在于检测器电路的扫描触发器412-418中)。响应于扫描使能信号和检验信号均被断言,来断言se_s信号。只要脉动了(pulse)事件信号并且来自比较电路422的输出检测到在移入的比特值集合与编程的代码之间的匹配(擦除序列检测),就断言检验信号并保持断言所述检验信号。基于以上讨论和说明,本领域普通技术人员应该理解的是,可以进行各种修改和变化,而不必严格遵循这里所示和所述典型实施例和应用。例如,电压电平和特定的电路是作为示例来提供的,而不必限于此。这种修改并没有脱离包括在所附权利要求中阐述的本发明公开的真实精神和范围。
权利要求
1.一种用于保护扫描链中的数据的电路,包括 多个扫描触发器,耦合在扫描链中; 输入电路,配置用于将输入数据移至扫描触发器; 保护电路,耦合至扫描触发器,所述保护电路配置用于 检测数据从输入电路向扫描触发器中的指定扫描触发器的扫描输入; 响应于检测到数据从输入电路向指定扫描触发器的扫描输入,使能将数据从指定扫描触发器扫描输出;以及 响应于没有检测到数据从输入电路向指定扫描触发器的扫描输入,防止将数据从指定扫描触发器扫描输出。
2.根据权利要求I所述的电路,其中所述保护电路直接耦合在扫描链中的两个扫描触发器之间。
3.根据权利要求2所述的电路,其中所述保护电路包括扫描链中的多个扫描触发器。
4.根据权利要求3所述的电路,其中所述保护电路还包括 检测器电路,与保护电路的所述多个扫描触发器耦合,其中所述检测器电路配置用于 检测是否发生了数据从输入电路向指定扫描触发器的扫描输入;以及产生使能信号,所述使能信号具有对是否发生了数据从输入电路向指定扫描触发器的扫描输入加以表不的状态。
5.根据权利要求4所述的电路,其中所述保护电路还包括 数据阻断器电路,与检测器电路和保护电路的所述多个扫描触发器耦合,其中所述数据阻断器电路配置用于响应于具有对数据从输入电路向指定扫描触发器的扫描输入尚未发生加以表示的状态的使能信号,阻止从保护电路的所述多个扫描触发器移出数据。
6.根据权利要求4所述的电路,其中所述保护电路还包括 线性反馈移位寄存器LFSR,与检测器电路以及保护电路的所述多个扫描触发器耦合,其中所述LFSR配置用于 响应于具有对尚未发生数据从输入电路向指定扫描触发器的扫描输入加以表不的状态的使能信号,阻止从保护电路中的所述多个扫描触发器移出数据;以及 响应于具有对发生了数据从输入电路向指定扫描触发器的扫描输入加以表不的状态的使能信号,从保护电路的所述多个扫描触发器移出数据。
7.根据权利要求I所述的电路,其中 所述保护电路包括扫描链中的多个扫描触发器,所述保护电路直接耦合在扫描链中的两个扫描触发器之间,并且所述保护电路包括 序列检测器,配置用于检测扫描输入到保护电路中的触发器中的具体值,响应于检测到所述具体值来产生第一状态的使能信号,响应于没有检测到所述具体值来产生第二状态的使能信号;以及 数据阻断器,耦合用于从序列检测器接收使能信号,所述数据阻断器配置用于响应于第一状态的使能信号来使能从保护电路中的扫描触发器移出数据;以及配置用于响应于第ニ状态的使能信号来阻止从保护电路中的扫描触发器移出数据。
8.根据权利要求7所述的电路,其中所述数据阻断器包括线性反馈移位寄存器LFSR,耦合用于接收使能信号并且与保护电路的扫描触发器耦合,其中所述LFSR配置用于 响应于第一状态的使能信号来阻止从保护电路中的所述多个扫描触发器移出数据;以及 响应于第二状态的使能信号来从保护电路中的所述多个扫描触发器移出数据。
9.一种用于保护扫描链中的数据的电路,包括 多个中间扫描触发器,直接耦合在扫描链中的两个扫描触发器之间; 检测器电路,与所述中间扫描触发器耦合,其中所述检测器电路配置用干 检测扫描输入到中间扫描触发器中的具体值; 响应于检测到所述具体值来产生第一状态的使能信号;以及 响应于没有检测到所述具体值来产生第二状态的使能信号;以及 数据阻断器电路,与检测器电路和中间扫描触发器耦合,所述数据阻断器电路配置用于 响应于第一状态的使能信号来使能从中间扫描触发器移出数据;以及 响应于第二状态的使能信号来阻止从中间扫描触发器移出数据。
10.根据权利要求9所述的电路,其中所述数据阻断器电路还包括 线性反馈移位寄存器LFSR,与检测器电路耦合并且与中间扫描触发器耦合,其中所述LFSR配置用于 响应于第二状态的使能信号来阻止从中间扫描触发器移出数据;以及 响应于第一状态的使能信号来使能从中间扫描触发器移出数据。
11.一种保护扫描链中的数据的方法,包括 随着从扫描链中扫描输出数据来扫描输入数据; 监测数据从扫描链中的初始扫描触发器向扫描链中的指定扫描触发器的扫描输入;响应于没有检测到数据从初始扫描触发器向指定扫描触发器的扫描输入,阻止将数据从指定扫描触发器扫描输出;以及 响应于检测到数据从初始扫描触发器向指定扫描触发器的扫描输入,使能将数据从指定扫描触发器扫描输出。
12.根据权利要求11所述的方法,其中阻止数据的扫描输出包括将来自指定扫描触发器的数据移动通过线性反馈移位寄存器LFSR。
13.根据权利要求12所述的方法,其中 使能数据的扫描输出包括响应于检测到数据从初始扫描触发器向指定扫描触发器的扫描输入,将来自指定扫描触发器的数据移动通过多个扫描触发器,并选择扫描输入的数据以输入到所述多个扫描触发器中;以及 阻止数据的扫描输出包括响应于没有检测到数据从初始扫描触发器向指定扫描触发器的扫描输入,选择线性反馈数据以输入到所述多个扫描触发器中。
14.根据权利要求11所述的方法,还包括 将来自指定扫描触发器的数据移动通过多个中间扫描触发器;以及 所述监测包括将中间扫描触发器中的比特值与编程的值进行比较。
15.根据权利要求14所述的方法,其中阻止数据的扫描输出包括将来自指定扫描触发器的数据移动通过线性反馈移位寄存器LFSR。
16.根据权利要求15所述的方法,其中 使能数据的扫描输出包括响应于检测到数据从初始扫描触发器向指定扫描触发器的扫描输入,将来自指定扫描触发器的数据通过多个扫描触发器,并选择扫描输入的数据以输入到所述多个扫描触发器中;以及 阻止数据的扫描输出包括响应于没有检测到数据从初始扫描触发器向指定扫描触发器的扫描输入,选择线性反馈数据以输入到所述多个扫描触发器中。
17.根据权利要求14所述的方法,还包括 响应于中间扫描触发器中的比特值等于编程的值,使能数据从指定扫描触发器的扫描输出;以及 响应于中间扫描触发器中的比特值不等于编程的值,阻止数据的扫描输出。
18.根据权利要求11所述的方法,其中阻止数据的扫描输出包括以指定扫描触发器为开始将伪随机数据移动通过扫描链。
19.根据权利要求11所述的方法,其中阻止数据的扫描输出包括以指定扫描触发器为开始将逻辑O值移动通过扫描链。
20.根据权利要求11所述的方法,其中阻止数据的扫描输出包括以指定扫描触发器为开始将逻辑I值移动通过扫描链。
全文摘要
提出了一种用于防止安全数据在扫描链输出期间被读取的方法、设备和电路。多个扫描触发器耦合在扫描链中,并且输入电路配置用于将输入数据移至扫描触发器。保护电路耦合至扫描触发器,并且保护电路配置用于检测数据从输入电路向指定扫描触发器的扫描输入。响应于检测到数据从输入电路向指定扫描触发器的扫描输入,使能将数据从指定的扫描触发器扫描输出。响应于没有检测到数据从输入电路向指定的扫描触发器的扫描输入,防止将数据从指定的扫描触发器扫描输出。
文档编号G01R31/28GK102692595SQ20121007600
公开日2012年9月26日 申请日期2012年3月21日 优先权日2011年3月25日
发明者保罗艾瑞·波黎斯克蒂 申请人:Nxp股份有限公司