CN104346583B - 用于保护可编程器件的配置扫描链的方法和装置 - Google Patents

用于保护可编程器件的配置扫描链的方法和装置 Download PDF

Info

Publication number
CN104346583B
CN104346583B CN201410351227.0A CN201410351227A CN104346583B CN 104346583 B CN104346583 B CN 104346583B CN 201410351227 A CN201410351227 A CN 201410351227A CN 104346583 B CN104346583 B CN 104346583B
Authority
CN
China
Prior art keywords
scanning
scan chain
active element
enabled
integrated circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410351227.0A
Other languages
English (en)
Other versions
CN104346583A (zh
Inventor
A·S·多施
B·B·佩德森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Publication of CN104346583A publication Critical patent/CN104346583A/zh
Application granted granted Critical
Publication of CN104346583B publication Critical patent/CN104346583B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17748Structural details of configuration resources
    • H03K19/17768Structural details of configuration resources for security
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318516Test of programmable logic devices [PLDs]
    • G01R31/318519Test of field programmable gate arrays [FPGA]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明公开一种包括多个存储元件和多个控制元件的集成电路器件上的扫描链电路。每个控制元件定位在多个存储元件的相应元件之间,用于将多个存储元件可控制地连接至扫描链。多个相应的扫描使能激活元件控制多个控制元件的相应子多个元件,用于将多个存储元件的相应子多个元件连接至扫描链中。通过不只一个扫描使能激活元件共有的第一使能信号和一个扫描使能激活元件的第二使能信号,每个扫描使能激活元件被激活,以将多个存储元件的相应子多个元件连接至扫描链。可以使用这样的扫描链电路将配置数据输入到可编程集成电路器件中。

Description

用于保护可编程器件的配置扫描链的方法和装置
技术领域
本发明涉及用于保护可编程器件的编程数据——如,现场可编程门阵列(FPGA)或其他可编程逻辑器件(PLD)——不受拷贝的方法和装置,并涉及这样保护的可编程器件。
背景技术
可编程器件是众所周知的。在一类已知的PLD中,每个器件具有大量逻辑门,用户频繁利用器件制造商提供的软件工具编程该器件以采取特定配置的逻辑门,其中软件工具在计算机上执行,所述计算机具有所述器件插入到其中的适配器。这种器件的早期世代产品通常使用某些形式的可编程只读存储器(“ROM”)技术来存储由软件工具产生的配置数据。在那些早期器件中,软件工具引起计算机通过熔断熔丝连接,而将图案“烧录”至PROM存储器中。在较晚一些的产品中,PROM技术可以是可擦除可编程只读存储器(“EPROM”)技术,其不烧录,并且通过暴露于紫外线光可以擦除数据(用于重新编程)。更晚世代的产品可以使用电可擦除可编程只读存储器(“EEPROM”或“E2PROM”)技术。
所有那些技术都是相对安全的。在用户选择使用可编程逻辑器件而不是把所有努力和精力都用于开发定制芯片的情形中,如果用户的竞争对手试图对编程的可编程逻辑器件进行逆向工程,那么竞争对手基本上要逐层切开器件以识别其编程。尽管这种努力可能技术上可行,但是对于所讨论的用户类型,按照定义该用户并非芯片制造商,竞争对手可以或将付出努力的可能性较小。
随后,将其配置数据存储在静态随机访问存储器(“SRAM”)中的可编程逻辑器件变得可用并且盛行。这种器件的优势在于,比基于EPROM技术的器件更小、更快。
然而,SRAM存储器是易失性的;当失去或去掉电力时SRAM存储器不保存其内容。因此,基于SRAM的可编程逻辑器件与非易失性存储器结合起来使用,以在关闭器件或以其他方式未被供电期间保存配置编程数据。可以提供闪存形式的非易失性存储器,尽管可以使用任何形式的非易失性存储器,并且其可以在所述器件上或与所述器件分离。
无论使用何种类型的非易失性存储器,配置数据被非易失性存储的SRAM可编程逻辑器件相对于用户的竞争对手执行的逆向工程不那么安全。这是因为竞争对手可以监控加电时流出非易失性存储器的数据,由此确定可编程逻辑器件的编程配置。实际上,竞争对手甚至不需要分析数据流,只需要记录数据流并将其存储在自己的器件中。
共同受让的美国专利号5768372和5915017,每个专利的公开内容在此通过引用以其整体并入,描述了存储在非易失性存储器中的配置数据的加密和一旦加载到可编程器件中的解密,包括提供用于发信号给解密电路的指示符,其中一些可能的加密/解密方案用于给配置数据加密,因此应当用于解密配置数据。
然而,即使保护非易失性配置数据不在器件配置期间被读出,仍然存在访问该配置数据的未经授权的另一途径。具体地,将配置位保存在编程器件中的配置寄存器通常连接在扫描链中,其可以被激活而用于测试。如果在已经对器件进行编程之后未经授权的人可以激活扫描链,那么这个人可以通过扫描链读出配置数据。
发明内容
本发明涉及用于通过要求在沿着扫描链的多个不同位置的单独局部激活信号,而保护可编程器件的配置扫描链不受未经授权访问的影响的电路和方法。
因此,根据本发明的实施例,提供在集成电路器件上的扫描链电路。该扫描链电路包括在集成电路器件上的多个存储元件,和在集成电路器件上的多个控制元件。每个控制元件定位在多个存储元件中的相应存储元件之间,用于可控制地连接多个存储元件到扫描链中。集成电路器件上存在多个扫描使能激活元件。每个扫描使能激活元件控制多个控制元件的相应子多个元件,用于连接多个存储元件的相应子多个元件到扫描链中。通过不只一个扫描使能激活元件所共用的第一使能信号和用于一个扫描使能激活元件的第二使能信号,每个扫描使能激活元件被激活,以连接多个存储元件的相应子多个元件到扫描链中。
还提供包括这种扫描链电路的可编程集成电路器件和将配置数据输入到这样的可编程逻辑电路器件的方法。
附图说明
在考虑下面的详细说明书之后,结合附图,将理解本发明的进一步特征、性质和各种优势,在附图中相似的附图标记是指相似零件,在附图中:
图1是可以实施本发明的可编程器件的方框图;
图2是配置寄存器扫描链的一个实施方式的代表部分的方框图;
图3是包括本发明的实施例的配置寄存器扫描链的一个实施方式的代表部分的方框图;
图4是包括本发明的实施例的配置寄存器扫描链的另一实施方式的代表部分的方框图;
图5是包括本发明的实施例的配置寄存器扫描链的又一实施方式的代表部分的方框图;
图6是示出对根据本发明的实施例的可编程器件进行编程或配置的方法的一个实例的流程图;和
图7是使用可以根据本发明来编程或配置的可编程逻辑器件的说明性系统的简化方框图。
具体实施方式
通常提供贯穿可编程逻辑器件的扫描链用于测试目的。在制造器件之后,记录(clock)通过扫描链的预定的“一”和“零”模式,并且检查通过扫描链的该模式的进展,贯穿器件的所有零件所述扫描链都具有寄存器。如果与输入模式存在任何偏差,表明可能存在制造缺陷,则通过确定扫描链中的哪个位置模式被毁坏来对所述缺陷进行隔离。
尽管可以随机布置扫描链贯穿器件,因为扫描链旨在帮助定位器件中可能出现过程缺陷的区域,所以配置寄存器布置在其自己的扫描链或链中并不罕见。在测试期间,就任何扫描链来说,记录通过配置寄存器的链的“一”和“零”模式,并且检查通过链的该模式的进展的,或该模式离开链的末端。假设配置寄存器通过扫描链测试,利用各自的用户配置位加载配置寄存器,并且通常不再激活扫描链模式。
然而,想要从所述器件拷贝配置位的未经授权的人可能能够激活扫描链。例如,聚焦的离子束或任何其他合适的探测器能够将信号应用到已编程或配置器件的扫描链激活使能导体,允许未经授权的人读出整个配置比特流。这个人甚至不需要分析或理解该比特流,而仅需要读出该比特流并将其加载到空白可编程器件中。
根据本发明的实施方式,通过将独立授权信号应用于在沿着配置扫描链的多个位置的单独扫描使能元件,防止未授权访问配置比特流。尽管配置扫描链仍可以由能够同时将信号应用于所有位置的人激活,但是人能够同时应用所有那些信号的可能性较小。
因为配置扫描链中的单独寄存器当在扫描链模式时,根据定义被链接在一起,未经授权人未能成功激活链中的至少一个特定寄存器将阻止该人读出该特定寄存器上游的任何配置位。因此,如果未经授权人未能成功激活甚至一个扫描使能元件,不仅所述未经授权人不能访问由所述扫描使能元件控制的任何一个或多个寄存器的内容,而且所述未经授权人也不能访问由扫描使能元件控制的一个或多个寄存器的上游的任何寄存器的内容。
然而,对于额外的安全层,相应扫描使能元件可以链接在一起,因此不仅每个扫描使能元件要求其子集的激活信号,而且还要求成功激活所有上游扫描使能元件。因此,如果任何一个扫描使能元件未激活,那么没有任何一个该扫描使能元件下游的扫描使能元件将被激活。因此,未经授权人不能读出甚至未应用单独激活信号的扫描使能信号最下游的下游的那些扫描使能元件控制的部分比特流。在进一步的改进中,每个扫描使能元件(除了最下游的元件之外)还要求成功激活所有下游扫描使能元件。当应用这样的改进时,只要存在哪怕未应用单独激活信号的一个扫描使能元件,未经授权人也不能读出甚至部分比特流。
现在将参考图1-6描述本发明。
图1中示意性地示出的PLD10是本发明可以使用的器件的一个实例。PLD10具有包括可编程互连结构12可访问的可编程逻辑区域11的可编程逻辑核,所述逻辑区域对多个输入/输出(“I/O”)区域13而言也是可访问的。图1中所示的区域11和互连结构12的布局仅仅是示意性的,因为本领域的普通技术人员已知或可以创造许多实际布置。
可编程逻辑区域11、可编程互连结构12、和I/O区域13优选地是可配置或可编程的,允许PLD10用作用户需要的任何形式的逻辑电路。通过设置贯穿PLD10分散的单独配置位的值可以实现PLD10的配置。配置位,例如可以控制某些开关,由此建立是否形成特定的连接,或引起多路复用器或其他功能控制元件从不同输入或输出中选择,或可以以其他方式通过众所周知的方法确定PLD10的功能。
配置位可以存储在贯穿PLD10分散的配置寄存器中。通常,控制特定元件的配置位的寄存器可以预期为相对接近由该配置位控制的元件定位,但是不一定非要这样,同样,相对于寄存器控制的元件的每个配置寄存器的位置对本发明而言也不重要。
如上所述,PLD10中的相应配置寄存器以一个或多个扫描链连接在一起。PLD10中的配置寄存器数越多,配置寄存器不能连接在单个扫描链中的可能性越大。例如,如果寄存器连接在不同扫描链中,就更容易隔离缺陷,每个扫描链只覆盖PLD10的一部分。
如上所述,所述一个或多个扫描链通常只用于测试PLD10。然而,如果配置寄存器包括在其自己的一个或多个扫描链中——即,与配置寄存器相同的扫描链或链中不包括PLD10的其他寄存器——那么配置寄存器扫描链还可以用于对PLD10进行编程,通过扫描链将配置位记录到配置寄存器中(尽管也可以通过单独寻址配置寄存器来加载配置位)。无论哪种方式,在正常运行操作期间通常不使用扫描链。
图2示出未利用本发明的配置寄存器扫描链200的一个实施方式的代表部分。扫描链20是由多个配置寄存器201构成的,如图所示,每个配置寄存器可以实施为触发器(尽管可以使用其他存储技术)。在每个寄存器201的输入211上的相应多路复用器(或其他控制元件)选择连接至前一寄存器201的输出221(当未处于扫描链模式时,输出221连接由该特定配置位控制的电路元件)的扫描输入212,或用户输入222。扫描使能信号203控制多路复用器202是否选择扫描输入212以扫描链模式工作,或选择用户输入222以用户模式工作。
在用户模式下,用户输入222可以用于通过单独寻址寄存器201而不是在配置数据中连续记录而对PLD10进行编程或配置,或允许基于来自用户或来自PLD10上别处的逻辑的输入而允许匆忙的重新配置(注意的是,“用户输入”表示来自输入/输出引脚的用户实际输入数据,或来自PLD10上别处的用户逻辑的数据)。在扫描链模式下,PLD10可以通过如上所述将配置位连续记录至输入212中而被编程,或如上所述扫描链模式可以用于测试。
无论哪种方式,一旦PLD10已经被编程或配置,通常就不期望使用扫描链模式。由扫描使能激活元件204在两个输入的控制下断言使能信号203。第一输入是用户扫描使能信号214,第二输入是只有当满足某些“安全”准则时才断言的扫描激活信号224。那些准则可以包括授权代码或密钥的用户输入、或熔断元件、或其他授权信号,但是更频繁的是缺乏来自配置寄存器201的配置数据(如,通过“或”操作正在讨论的扫描链中的所有配置寄存器201确定的;未示出)。因此,一旦PLD10已经被编程,就不满足安全准则,而不能激活扫描链200,由此阻止经由扫描链200未经授权读出配置数据流。
然而,如果虽然缺乏安全准则仍有人可以激活扫描使能信号203,则该未经授权人仍可能通过扫描链200读出配置数据流。可以实现的一个方式可以是通过利用聚焦的离子束探针,但是可以隔离和断言信号203(如,显微机械探针)的任何其他技术都可以允许未经授权的访问。即使所有配置寄存器201不是连接在单个扫描链200中,扫描链200的数量很可能相对较小,意味着未经授权人仍需要只探查相对少量的位置,从而能够读出整个配置比特流。
根据本发明的实施方式和实施例,通过大大增加未经授权人为了能够读取整个配置比特流或甚至读出包括在单个扫描链中的整个比特流部分而不得不探查的位置数量,可以提高配置比特流的安全性(配置分布在多个扫描链的位置)。
根据本发明的实施例的扫描链300的实施方式的代表部分在图3中示出。扫描链300可以包括与扫描链200相同(或相似)的配置寄存器201和多路复用器(或其他控制元件)202。然而,代替由单个扫描使能信号214和单个扫描激活信号224激活的单个全局扫描使能激活元件204,扫描链300可以具有由单个扫描使能信号214和相应单独的局部扫描激活信号324激活的多个局部扫描使能激活元件304,以提供相应局部扫描使能信号303。局部扫描激活信号324与扫描激活信号224相似,区别在于每个局部扫描激活信号324可以由正确的用户输入或由预定的安全条件或条件集激活。
明显的是,通过成功地只探查扫描链300中的单个点,未经授权人不能读出扫描链300的整个内容。相反,未经授权人不得不同时成功地激活所有局部扫描激活信号324。一般地,同时探查哪怕两个位置都比较困难,并且随着不得不探查的位置数量增加,困难度也或多或少以指数方式增加。因此,包括在扫描链300中的局部扫描使能激活元件304越多,扫描链300将变得越安全,在25和26元件之间的某点,成功攻击的可能性很可能接近零。
如上所述,扫描链400的安全性能进一步增加,如图4中所示,通过链接局部扫描使能激活元件404,从而除了扫描链400中的第一局部扫描使能激活元件404之外,不能激活局部扫描使能激活元件404,除非该元件不仅接收局部扫描激活信号324,而且接收由先前局部扫描使能激活元件404输出的局部扫描使能信号303(通过正向菊花链链接413)。用于检查要求断言局部扫描激活信号324和先前局部扫描使能信号303两者的局部扫描使能激活元件404中的特定逻辑未被示出。可以使用同时要求信号303和324两者的任何逻辑。例如,可以使用,像“与”门一样简单的某个器件,而到达该门的两个输入是局部扫描激活信号324和先前局部扫描使能信号303。
在图3的实施方式中,如果未经授权人只成功激活某些局部扫描使能激活元件304,那么未经授权人能够读出未激活的局部扫描使能激活元件304最下游的扫描链300下游的部分(除非未激活的最下游局部扫描使能激活元件304是扫描链中的最后局部扫描使能激活元件)。但是在图4的实施方式中,因为还链接使能信号,如果未经授权人未能成功探查任何局部扫描使能激活元件404,那么即使未经授权人成功探查所有其他局部扫描使能激活元件404,也无法激活未成功探查的局部扫描使能激活元件404下游的任何局部扫描使能激活元件404。因此,未经授权人不能读出扫描链的任何部分(除非未经授权人能够在未成功探查的局部扫描使能激活元件404上游的一点处接入扫描链)。
在以上所述的进一步改进中,扫描链500的安全性仍可以进一步提高,如图5中所示,通过朝着两个方向链接局部扫描使能激活元件404。像局部扫描使能激活元件404一样,除了扫描链500中的第一局部扫描使能激活元件504之外,不能激活每个局部扫描使能激活元件504,除非它不仅接收局部扫描激活信号324,而且接收由先前局部扫描使能激活元件504输出的局部扫描使能信号303。此外,与局部扫描使能激活元件404不同,除了扫描链500中最后一个局部扫描使能激活元件504之外,不能激活每个局部扫描使能激活元件504,除非它不仅接收局部扫描激活信号324和由先前局部扫描使能激活元件504输出的局部扫描使能信号303,而且接收由跟在后面的局部扫描使能激活元件504输出的局部扫描使能信号303(通过逆向菊花链链接513)。再一次,未示出局部扫描使能激活元件504中的用于检查断言局部扫描激活信号324和先前和跟在后面的局部扫描使能信号303两者的特定逻辑。可以使用要求断言信号324以及先前和跟在后面的信号303两者的任何逻辑。例如,可以使用像三个输入的“与”门一样简单的某个器件,到门的三个输入是局部扫描激活信号324以及先前和跟在后面的局部扫描使能信号303。
与图4的实施方式不同,在图5的实施方式中,因为在两个方向上均链接使能信号,如果未经授权人未能探查哪怕一个局部扫描使能激活元件504,那么都无法激活其他局部扫描使能激活元件504,无论在上游还是下游。因此,未经授权人不能读出扫描链的任何部分(无论未经授权人能够在哪点接入扫描链)。
如上所述,可以使用根据本发明的实施方式的扫描链,用于测试器件10或用于编程器件10。无论哪种方式,如果满足如上所述的安全条件,并且应用扫描链使能信号,那么扫描使能激活元件304/404/504将引起多路复用器或其他控制元件202将配置存储元件201连接至扫描链。然后,记录通过扫描链的测试数据,查看从扫描链涌现的数据是否与记录的数据相同(成功测试)还是不同(未成功测试)。为了对器件10进行编程,可以记录配置比特流直到记录的第一比特流达到扫描链中的最后一个配置存储元件201。
如果扫描激活信号324的安全条件是在相对应的配置寄存器201中缺乏数据,那么在测试或编程过程开始时不得不锁存那些信号。否则,数据一记录到扫描链中,安全条件就失效,信号324的状态将改变,并且扫描链将无效。
编程或构造过程600的实例在图6中示出,在601开始。在602,从每组配置元件获取安全信号。如上所述,安全信号可以是用户输入代码或密钥,但是更可能是从配置元件本身获取的。具体地,再一次,每组的配置元件的值可以“或”操作在一起,以确定这些值是空的。
在603,使能信号将应用于所有组的相应激活元件,以及相应安全信号应用于每个组的相应激活元件。对于这样使能的每个组,对于安全信号有效的那些,将产生激活信号。在604,该步骤是可选的(因此以虚线绘制),每个元件的激活信号传递至相应下游激活元件,以实现如上所述的目的。相似地,在605,该步骤也是可选的(因此以虚线绘制),如果不执行在604的操作很可能不执行该步骤605,每个元件的激活信号传递至相应上游激活元件,以实现如上所述的目的。
在606,确定是否激活所有激活元件(无论是基于他们自己的信号还是基于来自其他激活元件传递的信号)。如果不是,那么过程600在607结束。如果在606确定激活所有激活元件,那么在608锁存相应安全信号(因为上面讨论的原因),并在609记录配置比特流,之后过程600在607结束。
根据本发明的任何实施例的PLD90可以用于许多类型的电子器件。一个可能的用途是用于如图7中所示的数据处理系统900。数据处理系统900可以包括一个或多个下列部件:处理器901;存储器902;I/O电路903;和外围设备904。这些部件通过系统总线905耦合到一起,并且组装在终端用户系统907包含的电路板906上。
系统900可以用于各种各样的应用程序,例如计算机网络、数据网络、仪器、视频处理、数字信号处理、或利用可编程或可再编程逻辑的优势是理想的任何其他应用。PLD90可以用于执行多种不同逻辑功能。例如,PLD90可以经构造为处理器或与处理器901协同工作的控制器。PLD90还可以用作仲裁器,用于仲裁对系统900中的共享资源的访问。在又一实例中,PLD90可以经构造为在系统900中的处理器901和一个其他部件之间的接口。应当注意,系统900只是示例性的,本发明的保护范围和精神应当由权利要求表示。
各种技术可以用于如上所述地实施PLD90且合并本发明。
将理解的是,前述只是用于说明本发明的原理,并且在不偏离本发明的保护范围和精神的情况下,本领域的普通技术人员可以做出各种改进。例如,本发明的各种元件可以以任何期望数量和/或布置提供在PLD上。本领域的普通技术人员将理解,本发明可以通过除了所述实施例之外的实施例实践,本发明的实施例是为了说明而非限制,并且本发明仅由权利要求限定。

Claims (22)

1.一种可编程集成电路器件,包括:
多个配置存储元件,用于存储用于所述可编程集成电路器件的配置数据;
多个控制元件,每个所述控制元件定位在所述多个配置存储元件的相应元件之间,用于将所述多个配置存储元件可控地连接至扫描链中;以及
多个扫描使能激活元件,每个所述扫描使能激活元件控制所述多个控制元件的相应子多个元件,用于将所述多个配置存储元件的相应子多个元件连接至所述扫描链中;
其中:
每个所述扫描使能激活元件由不止一个所述扫描使能激活元件共有的第一使能信号和用于那个所述扫描使能激活元件的第二使能信号激活,以将所述多个配置存储元件的相应子多个元件连接到所述扫描链中。
2.根据权利要求1所述的可编程集成电路器件,其中,所述第一使能信号是所有所述扫描使能激活元件共有的。
3.根据权利要求1所述的可编程集成电路器件,其中,所述第二使能信号基于安全信息。
4.根据权利要求3所述的可编程集成电路器件,其中,所述安全信息是用户输入的用户密钥。
5.根据权利要求3所述的可编程集成电路器件,其中,所述安全信息基于所述器件的状况。
6.根据权利要求5所述的可编程集成电路器件,其中,所述器件的所述状况是,关于所述扫描使能激活元件的相应元件,在与所述扫描使能激活元件的所述相应元件相对应的所述多个配置存储元件的所述相应子多个元件中,没有任何配置数据。
7.根据权利要求1所述的可编程集成电路器件,其中,每个所述控制元件包括多路复用器,所述多路复用器在用户输入和所述配置存储元件中的另一元件的输出之间进行选择,作为到所述配置存储元件之一的输入。
8.根据权利要求1所述的可编程集成电路器件,其中,为了激活,所述扫描使能激活元件中的至少一个要求由所述扫描使能激活元件的另一元件输出的第三使能信号,以将所述多个配置存储元件的相应子多个元件连接至所述扫描链中。
9.根据权利要求8所述的可编程集成电路器件,其中,除了第一所述扫描使能激活元件之外的所述扫描使能激活元件的每个相应元件要求所述第三使能信号的相应实例,所述第三使能信号的每个相应实例是由所述扫描使能激活元件的相应其他元件输出的。
10.根据权利要求9所述的可编程集成电路器件,其中:
所述扫描使能激活元件的所述相应其他元件在所述扫描使能激活元件的所述相应元件的直接上游;和
除了所述扫描使能激活元件的最后一个元件之外的所述扫描使能激活元件的每个相应元件要求第四使能信号的相应实例,所述第四使能信号的每个相应实例是由所述扫描使能激活元件的直接下游的其他元件输出的。
11.一种在集成电路器件上的扫描链电路,所述扫描链电路包括:
在所述集成电路器件上的多个存储元件;
在所述集成电路器件上的多个控制元件,每个所述控制元件定位在所述多个存储元件的相应元件之间,用于将所述多个存储元件可控地连接至扫描链中;以及
在所述集成电路器件上的多个扫描使能激活元件,每个所述扫描使能激活元件控制所述多个控制元件的相应子多个元件,用于将所述多个存储元件的相应子多个元件连接至所述扫描链中;其中:
每个所述扫描使能激活元件由不止一个所述扫描使能激活元件共有的第一使能信号和用于那个所述扫描使能激活元件的第二使能信号激活,以将所述多个存储元件的相应子多个元件连接至所述扫描链中。
12.根据权利要求11所述的扫描链电路,其中,所述第一使能信号是所有所述扫描使能激活元件共有的。
13.根据权利要求11所述的扫描链电路,其中,所述第二使能信号基于安全信息。
14.根据权利要求13所述的扫描链电路,其中,所述安全信息是用户输入的用户密钥。
15.根据权利要求13所述的扫描链电路,其中,所述安全信息基于所述器件的状况。
16.根据权利要求15所述的扫描链电路,其中,所述器件的所述状况是,关于所述扫描使能激活元件的相应元件,在与所述扫描使能激活元件的所述相应元件相对应的所述多个存储元件的所述相应子多个元件中,没有任何数据。
17.根据权利要求11所述的扫描链电路,其中,每个所述控制元件包括多路复用器,所述多路复用器在用户输入和所述存储元件中的另一元件的输出之间进行选择,作为所述存储元件之一的输入。
18.根据权利要求11所述的扫描链电路,其中,为了激活,至少一个所述扫描使能激活元件需要由所述扫描使能激活元件中的另一元件输出的第三使能信号,以将所述多个存储元件的相应子多个元件连接至所述扫描链中。
19.根据权利要求18所述的扫描链电路,其中,除了所述扫描使能激活元件的第一元件之外的所述扫描使能激活元件的每个相应元件需要所述第三使能信号的相应实例,所述第三使能信号的每个相应实例是由所述扫描使能激活元件的相应其他元件输出的。
20.根据权利要求19所述的扫描链电路,其中,
所述扫描使能激活元件的所述相应其他元件位于所述扫描使能激活元件的所述相应元件的直接上游;和
除了所述扫描使能激活元件的最后一个元件之外的所述扫描使能激活元件的每个相应元件要求第四使能信号的相应实例,所述第四使能信号的每个相应实例是由所述扫描使能激活元件的直接下游的其他元件输出的。
21.一种将配置数据输入到可编程集成电路器件中的方法,所述方法包括:
从所述可编程集成电路器件的多组配置存储元件的每个相应组获取相应安全信号;
将使能信号和所述安全信号的相应安全信号应用于所述可编程集成电路器件的相应扫描使能激活元件,以将所有所述相应组中的所述配置存储元件连接至扫描链中;和
记录通过所述扫描链的所述配置数据。
22.根据权利要求21所述的方法,进一步包括在所述记录之前锁存所述安全信号。
CN201410351227.0A 2013-07-23 2014-07-22 用于保护可编程器件的配置扫描链的方法和装置 Active CN104346583B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/948,433 US9026873B2 (en) 2013-07-23 2013-07-23 Method and apparatus for securing configuration scan chains of a programmable device
US13/948,433 2013-07-23

Publications (2)

Publication Number Publication Date
CN104346583A CN104346583A (zh) 2015-02-11
CN104346583B true CN104346583B (zh) 2018-12-07

Family

ID=51205207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410351227.0A Active CN104346583B (zh) 2013-07-23 2014-07-22 用于保护可编程器件的配置扫描链的方法和装置

Country Status (3)

Country Link
US (1) US9026873B2 (zh)
EP (1) EP2830222B1 (zh)
CN (1) CN104346583B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9577643B1 (en) * 2013-11-26 2017-02-21 Altera Corporation Secure partial reconfiguration regions
CN106324463A (zh) * 2015-06-19 2017-01-11 上海华虹集成电路有限责任公司 扫描链控制电路设计方法及扫描链电路
CN106556792B (zh) * 2015-09-28 2021-03-19 恩智浦美国有限公司 能够进行安全扫描的集成电路
US9934348B2 (en) 2015-12-18 2018-04-03 International Business Machines Corporation Adjusting scan connections based on scan control locations

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4774421A (en) 1984-05-03 1988-09-27 Altera Corporation Programmable logic array device using EPROM technology
US4617479B1 (en) 1984-05-03 1993-09-21 Altera Semiconductor Corp. Programmable logic array device using eprom technology
US4713792A (en) 1985-06-06 1987-12-15 Altera Corporation Programmable macrocell using eprom or eeprom transistors for architecture control in programmable logic circuits
US4609986A (en) 1984-06-14 1986-09-02 Altera Corporation Programmable logic array device using EPROM technology
US4677318A (en) 1985-04-12 1987-06-30 Altera Corporation Programmable logic storage element for programmable logic devices
US4912342A (en) 1988-05-05 1990-03-27 Altera Corporation Programmable logic device with array blocks with programmable clocking
US4871930A (en) 1988-05-05 1989-10-03 Altera Corporation Programmable logic device with array blocks connected via programmable interconnect
US4899067A (en) 1988-07-22 1990-02-06 Altera Corporation Programmable logic devices with spare circuits for use in replacing defective circuits
US5081675A (en) 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
US5033084A (en) 1990-04-02 1991-07-16 Data I/O Corporation Method and apparatus for protection of software in an electronic system
US5121006A (en) 1991-04-22 1992-06-09 Altera Corporation Registered logic macrocell with product term allocation and adjacent product term stealing
US5220214A (en) 1991-04-22 1993-06-15 Altera Corporation Registered logic macrocell with product term allocation and adjacent product term stealing
US5479512A (en) 1991-06-07 1995-12-26 Security Dynamics Technologies, Inc. Method and apparatus for performing concryption
US5371422A (en) 1991-09-03 1994-12-06 Altera Corporation Programmable logic device having multiplexers and demultiplexers randomly connected to global conductors for interconnections between logic elements
US5260610A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic element interconnections for programmable logic array integrated circuits
US5260611A (en) 1991-09-03 1993-11-09 Altera Corporation Programmable logic array having local and long distance conductors
GB9121591D0 (en) 1991-10-11 1991-11-27 Pilkington Micro Electronics Data security arrangement for semiconductor programmable logic devices
NL9200296A (nl) 1992-02-18 1993-09-16 Tulip Computers International Inrichting voor het door middel van het des algoritme vercijferen en ontcijferen van data naar en van een harde geheugenschijf.
FR2702857B1 (fr) 1993-03-18 1995-06-02 Pierre Antonini Procédé et dispositif d'autorisation d'accès à un appareil comportant un système informatique d'exploitation.
US5350954A (en) 1993-03-29 1994-09-27 Altera Corporation Macrocell with flexible product term allocation
US5563592A (en) 1993-11-22 1996-10-08 Altera Corporation Programmable logic device having a compressed configuration file and associated decompression
US5548228A (en) 1994-09-28 1996-08-20 Altera Corporation Reconfigurable programmable logic device having static and non-volatile memory
US5450022A (en) 1994-10-07 1995-09-12 Xilinx Inc. Structure and method for configuration of a field programmable gate array
US5581198A (en) 1995-02-24 1996-12-03 Xilinx, Inc. Shadow DRAM for programmable logic devices
US5768372A (en) 1996-03-13 1998-06-16 Altera Corporation Method and apparatus for securing programming data of a programmable logic device
US6172520B1 (en) 1997-12-30 2001-01-09 Xilinx, Inc. FPGA system with user-programmable configuration ports and method for reconfiguring the FPGA
US20010032318A1 (en) * 1999-12-03 2001-10-18 Yip Kun Wah Apparatus and method for protecting configuration data in a programmable device
GB9930145D0 (en) 1999-12-22 2000-02-09 Kean Thomas A Method and apparatus for secure configuration of a field programmable gate array
US7058177B1 (en) 2000-11-28 2006-06-06 Xilinx, Inc. Partially encrypted bitstream method
US6965675B1 (en) * 2000-11-28 2005-11-15 Xilinx, Inc. Structure and method for loading encryption keys through a test access port
US6931543B1 (en) 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
US7162644B1 (en) 2002-03-29 2007-01-09 Xilinx, Inc. Methods and circuits for protecting proprietary configuration data for programmable logic devices
US7197647B1 (en) 2002-09-30 2007-03-27 Carnegie Mellon University Method of securing programmable logic configuration data
FR2865827A1 (fr) * 2004-01-29 2005-08-05 St Microelectronics Sa Securisation du mode de test d'un circuit integre
WO2006071380A2 (en) 2004-11-12 2006-07-06 Pufco, Inc. Securely field configurable device
US7536559B1 (en) * 2005-05-05 2009-05-19 Xilinx, Inc. Method and apparatus for providing secure programmable logic devices
US7334173B2 (en) * 2005-06-28 2008-02-19 Transmeta Corporation Method and system for protecting processors from unauthorized debug access
US7299390B1 (en) * 2005-12-09 2007-11-20 Altera Corporation Apparatus and method for encrypting security sensitive data
US7339400B1 (en) 2006-06-09 2008-03-04 Xilinx, Inc. Interface port for electrically programmed fuses in a programmable logic device
US7675313B1 (en) 2006-08-03 2010-03-09 Lattice Semiconductor Corporation Methods and systems for storing a security key using programmable fuses
US8505078B2 (en) * 2008-12-28 2013-08-06 Qualcomm Incorporated Apparatus and methods for providing authorized device access
US7683663B1 (en) 2009-01-13 2010-03-23 Xilinx, Inc. Authorization of an implementation of a user design in a programmable integrated circuit
US8438436B1 (en) * 2010-06-04 2013-05-07 Xilinx, Inc. Secure design-for-test scan chains
US8495758B2 (en) * 2010-06-18 2013-07-23 Alcatel Lucent Method and apparatus for providing scan chain security
CN102967824B (zh) * 2011-08-31 2016-05-25 上海华虹集成电路有限责任公司 一种扫描链控制电路及其实现方法
CN102495360B (zh) * 2011-12-16 2014-05-07 浙江大学 一种安全扫描寄存器、安全扫描链及其扫描方法

Also Published As

Publication number Publication date
CN104346583A (zh) 2015-02-11
EP2830222A1 (en) 2015-01-28
US20150033360A1 (en) 2015-01-29
EP2830222B1 (en) 2018-05-30
US9026873B2 (en) 2015-05-05

Similar Documents

Publication Publication Date Title
US10037438B2 (en) Setting security features of programmable logic devices
US5357572A (en) Apparatus and method for sensitive circuit protection with set-scan testing
CN104346583B (zh) 用于保护可编程器件的配置扫描链的方法和装置
US8489888B2 (en) Processor apparatus having a security function
US7363564B2 (en) Method and apparatus for securing communications ports in an electronic device
US6957340B1 (en) Encryption key for multi-key encryption in programmable logic device
US8892837B2 (en) Integrated circuit with tamper-detection and self-erase mechanisms
US8051345B2 (en) Method and apparatus for securing digital information on an integrated circuit during test operating modes
US8495758B2 (en) Method and apparatus for providing scan chain security
KR101022639B1 (ko) 디버그 회로에 안전성을 제공하는 방법 및 장치
US7117372B1 (en) Programmable logic device with decryption and structure for preventing design relocation
US7822995B2 (en) Apparatus and method for protecting diagnostic ports of secure devices
US20070237325A1 (en) Method and apparatus to improve security of cryptographic systems
EP0112367A1 (en) Software protection methods and apparatus
US20010025355A1 (en) Circuit configuration with deactivatable scan path
US20080098224A1 (en) Processes and apparatus for establishing a secured connection with a joint test action group port
US7398441B1 (en) System and method for providing secure boundary scan interface access
CN114814531A (zh) 一种芯片安全测试电路及逻辑芯片
CN110020561A (zh) 半导体装置和操作半导体装置的方法
US8397079B2 (en) Method and apparatus for securing digital information on an integrated circuit read only memory during test operating modes
CN102693189B (zh) 半导体器件
EP1439398A1 (en) Scan chain arrangement
US20070257701A1 (en) Integrated circuit comprising a test mode secured by the use of an identifier, and associated method
CN106935266B (zh) 从存储器中读取配置信息的控制方法、装置和系统
US11734457B2 (en) Technology for controlling access to processor debug features

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant