CN108694323A - 用于检测故障点的设备和方法 - Google Patents

用于检测故障点的设备和方法 Download PDF

Info

Publication number
CN108694323A
CN108694323A CN201810296263.XA CN201810296263A CN108694323A CN 108694323 A CN108694323 A CN 108694323A CN 201810296263 A CN201810296263 A CN 201810296263A CN 108694323 A CN108694323 A CN 108694323A
Authority
CN
China
Prior art keywords
function block
integrated circuit
sensitive
netlist
tuples
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.)
Granted
Application number
CN201810296263.XA
Other languages
English (en)
Other versions
CN108694323B (zh
Inventor
S·吉耶
T·布韦
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.)
Intelligent Ic Card Co
Secure IC SAS
Original Assignee
Intelligent Ic Card Co
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 Intelligent Ic Card Co filed Critical Intelligent Ic Card Co
Publication of CN108694323A publication Critical patent/CN108694323A/zh
Application granted granted Critical
Publication of CN108694323B publication Critical patent/CN108694323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
    • 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/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/31835Analysis of test coverage or failure detectability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system 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/2851Testing of integrated circuits [IC]
    • G01R31/2884Testing of integrated circuits [IC] using dedicated test connectors, test elements or test circuits on the IC under test
    • 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/31718Logistic aspects, e.g. binning, selection, sorting of devices under test, tester/handler interaction networks, Test management software, e.g. software for test statistics or test evaluation, yield analysis
    • 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/31719Security aspects, e.g. preventing unauthorised access during test
    • 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/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318314Tools, e.g. program interfaces, test suite, test bench, simulation hardware, test compiler, test program languages
    • 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/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318342Generation of test inputs, e.g. test vectors, patterns or sequences by preliminary fault modelling, e.g. analysis, simulation
    • G01R31/318357Simulation
    • 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
    • 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/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318583Design for test
    • G01R31/318588Security aspects
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/20Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Abstract

提供了用于检测集成电路(IC)中的故障点的设备、方法和计算机程序产品。集成电路器件是通过包括多个元件的结构描述(2)来描述的,元件表示单元和将单元互连的线,结构描述还包括表示一组敏感功能块(16)的部分,每个敏感功能块包括一个或多个输入、至少一个敏感输出和互连而使得敏感输出的值是敏感功能块的输入值的布尔函数的一组元件。检测设备(100)包括:‑选择单元(101),其被配置为至少在网表中的与所述敏感功能块对应的部分中迭代地选择元件的n元组,‑测试单元(104),其被配置为测试每个选择的元件的n元组,所述测试单元被配置为:‑将所述选择的元件的n元组从初始状态修改成测试状态;‑确定与每个敏感功能块相关联的布尔函数的导数是否等于零,所述检测设备(100)被配置为如果与所述敏感功能块相关联的布尔函数的导数等于零,则检测到所述n元组表示所述集成电路(IC)器件中的阶数为n的故障点。

Description

用于检测故障点的设备和方法
技术领域
本发明一般地涉及电子电路,并且具体地涉及用于检测此类电路中的故障点的设备和方法。
背景技术
在诸如智能卡或安全元件之类的众多嵌入式设备中使用的集成电路(IC)可以包含秘密安全密钥并且实施秘密数据。
集成电路可能在集成电路器件的物理结构(诸如芯片、半导体器件等)上易受攻击。
集成电路可以包括用于确保针对攻击的防护的多个保护块,诸如旨在检测可能的攻击的一个或多个传感器。例如,集成电路可以包括用于检测物理攻击(包括但不限于探测攻击或扰动攻击)的传感器、屏蔽件、数字传感器等。集成电路可以被配置为使用例如CFI(控制流完整性)验证来检测网络攻击。
集成电路的结构通常包含与其故障会导致阻碍整个集成电路安全运行的集成电路的关键元件相对应的某些点(称为单故障点或SPOF)。
单故障点是设计弱点,如果存在且随后被攻击者定位,则会危害集成电路的安全性。
集成电路包括多个敏感功能块,诸如保护块,当它们检测到集成电路的异常运行时,产生关键信号(例如,警报)。如果警报是单一信号(对应于单线),则它表示“单故障点”(SPOF)。事实上,攻击者可以使用如聚焦离子束(FIB)的工具将与SPOF对应的该易受攻击“线”切断来消除警报并且因此获得对“编辑后”电路中所包含的全部秘密的访问,以及对共享相同秘密的同一产品线的实例的访问。此外,因为工具不能轻易达到网(例如,由于其上的路由拥塞),并且因为FIB不完全可靠,所以利用FIB的电路编辑通常是困难的。因此,针对FIB攻击的防护通常假设攻击者仅能够“编辑”(即,切断、打开、或系连到‘0’或‘1’)有限数量的网。
因此,安全集成电路的主要挑战是电路中的单故障点的检测和消除。SPOF表示集成电路的安全链中的“最弱链接”。复杂检测IP可能通过单个FIB切割而绕过的事实代表了重要的安全脆弱性。FIB的效果可以是打开(即,断开)网,或者甚至是将其系连到‘0’或‘1’。事实上,FIB工具还能够修复电路,并且在这点上,其能够用于强制任意网的值。
已知的是通常通过根据以下方法使警报冗余来使警报多样化:
-信号的简单复制(或倍增),
–对信号进行编码使得改动本身可被检测到,
–使用多个独立的测试(例如,在屏蔽件中,独立地检查不同的区域)。
当手动实现警报信号的倍增时,可能的是其中一些可能会遗漏。或者,即使正确地实现,也可能发生合成器将多样化优化掉。例如,各种警报信号可以被重构而使得新的单故障点再次出现。
现有的方法是基于自动测试向量生成(ATPG)的。提出这些解决方案来测试集成电路以便使用测试向量来识别SPOF。例如,引用的美国专利6134689A描述了一种测试包含逻辑器件的集成电路的方法,该方法包括以下步骤:识别与由于对逻辑器件的测试导致的测试失败对应的第一测试向量,将第一测试向量从第一输入引脚格式转换成与逻辑器件相关联的状态数据,以及搜索状态数据来识别一组上次移位转变。
其它解决方案是基于模拟并且依赖于生产后铸造测试的。然而,即使在最清洁且最合格的工业条件下实现IC工艺并且即使耐受一些灰尘和工艺变化,管芯上的物理误差仍会出现,例如由于外周上的较低晶片质量、在掩蔽或图案化期间的灰尘、晶片切割等。这些现有的生产后铸造测试根据计划测试通过例如扫描链来验证管芯的信号连续性。这些计划测试是借助于常规软件技术(诸如突变测试)来生成的,并且仅符合有效性标准(诸如陈述覆盖、分支覆盖等)。计划测试主要包含揭示门的输入或输出是否停留在不期望的水平或者金属线或过孔是否在多个制造阶段中已经损坏,而不考虑测试信号的相关性。
因此,存在用于检测IC器件中的故障点的需要。
发明内容
为了解决这些和其它问题,提供了一种用于检测集成电路(IC)中的故障点的设备,该集成电路由包括多个元件的集成电路的结构描述来描述,元件表示单元和将单元互连的线,集成电路的结构描述还包括表示一组敏感功能块的部分,每个敏感功能块包括一个或多个输入、至少一个敏感输出以及互连而使得所述敏感输出的值是所述敏感功能块的输入值的布尔函数的一组元件。所述设备包括:
-选择单元,其被配置为至少在所述集成电路的结构描述中的与所述敏感功能块对应的部分中迭代地选择元件的n元组,
-测试单元,其被配置为测试每个选择的元件的n元组,所述测试单元被配置为:
-将所述选择的元件的n元组从初始状态修改成测试状态;
-确定与每个敏感功能块相关联的布尔函数的导数是否等于零,
所述设备被配置为如果与所述敏感功能块相关联的布尔函数等于零,则检测到所述n元组表示所述集成电路(IC)器件中的阶数为n的故障点。
在实施例中,测试单元可以被配置为通过至少执行由以下构成的组中的动作来修改所述选择的元件的n元组:去除所述元件的n元组,以及将所述元件的n元组维持为预定义的二进制值。
在实施例中,所述测试单元可以被配置为,如果与所述敏感功能块相关联的布尔函数的导数等于零,则存储与所述元件的n元组相关的信息。
所述测试单元可以被配置为,在选择元件的另一n元组之前,将所述选择元件的n元组从所述测试状态修改回所述初始状态。
所述设备可以包括用于存储与测试的元件的n元组相关的信息的数据结构,所述数据结构包括针对每个元件的n元组的条目。
与每个元件的n元组相关的信息可以包括每个n元组元件在所述集成电路的结构描述中的路径。
在实施例中,所述设备可以包括注入器,所述注入器被配置为确定所述集成电路的结构描述中所包括的每个敏感功能块的类型,所述注入器被配置为取决于所述敏感功能块的类型将测试元件插入到集成电路的结构描述中的与敏感功能块对应的部分中,这提供了所述集成电路的修改后的结构描述,所述注入器被配置为将修改后的结构描述发送到所述选择单元以用于n元组元件的选择。
在实施例中,所述注入器可以被配置为如果所述敏感功能块表示包括缓冲器的链的数字传感器,则强制发生以下状态,所述状态被配置为将所述结构描述中的与所述敏感功能块对应的所述部分中的所述缓冲器的链反转。
所述选择单元可以包括解析器,所述解析器用于至少解析所述结构描述中的与所述敏感功能块对应的所述部分。
所述选择单元可以被配置为通过对所述部分应用宽度优先遍历来解析所述结构描述中的与所述敏感功能块对应的所述部分。
所述结构描述可以是在由以下构成的组中选择的:门级网表、IC布局描述和晶体管级网表。
在实施例中,用于设计集成电路器件的设计装置,所述装置包括:
-行为描述生成器,其被配置为根据所述IC器件的模型来确定所述IC器件的行为描述;
-门级网表生成器,其被配置为根据所述行为描述的模型来生成门级网表;
-布局布线器,其被配置为对单元进行布局和布线以确定所述IC器件的物理布局,
-晶体管级网表生成器,其被配置为从所述布局中提取包括晶体管和连接的晶体管级网表。
所述装置包括根据前述实施例中的任一个的用于根据结构描述来检测所述故障点的设备,所述设备结构描述是从所述门级网表、所述布局描述文件、所述晶体管级网表中的至少一个导出的,所述设计装置被配置为响应于检测到至少一个故障点而修改所述模型。
在实施例中,提供一种用于验证至少一个集成电路的集成电路验证装置,所述装置包括:
-结构描述提取器,其被配置为提取所述IC器件的结构描述,
所述装置包括根据前述实施例中的任一个用于从所述提取的描述文件检测所述集成电路中的故障点的设备。
在实施例中,提供了用于检测集成电路(IC)中的故障点的方法,所述集成电路器件是由包括多个元件的结构描述来描述的,所述元件包括单元和将单元互连的线,所述结构描述还包括表示一组敏感功能块的部分,每个敏感功能块包括一个或多个输入、至少一个敏感输出以及互连而使得所述敏感输出的值是所述敏感功能块的输入值的布尔函数的一组元件,其中所述方法包括以下步骤的至少一次迭代:
-至少在网表中的与所述敏感功能块对应的部分中选择元件的n元组,
-测试每个选择的元件的n元组,所述测试步骤包括:
-将所述选择的元件的n元组从初始状态修改成测试状态;
-确定与每个敏感功能块相关联的布尔函数的导数是否等于零,
所述方法用于如果与所述敏感功能块相关联的布尔函数等于零,则检测到所述n元组表示所述集成电路(IC)器件中的阶数为n的故障点。
还提供了用于检测集成电路(IC)中的故障点的计算机程序产品,所述集成电路器件是由包括多个元件的结构描述来描述的,所述元件表示单元和将单元互连的线,所述结构描述还包括表示一组敏感功能块的部分,每个敏感功能块包括一个或多个输入、至少一个敏感输出以及互连而使得所述敏感输出的值是所述敏感功能块的输入值的布尔函数的一组元件,其中所述计算机程序产品包括:
非暂时性计算机可读存储介质;以及
存储在所述非暂时性计算机可读存储介质上的程序代码,所述程序代码当由一个或多个处理器执行时使所述一个或多个处理器用于:
-至少在结构描述中的与所述敏感功能块对应的部分中选择元件的n元组,
-测试每个选择的元件的n元组,所述测试步骤包括:
-将所述选择的元件的n元组从初始状态修改成测试状态;
-确定与每个敏感功能块相关联的布尔函数的导数是否等于零,
所述一个或多个处理器被进一步使得如果与所述敏感功能块相关联的布尔函数等于零,则检测到所述n元组表示所述集成电路(IC)器件中的阶数为n的故障点。
本发明的实施例可以通过在集成电路的制造期间可靠地检测故障点而允许增强可信电路的安全性。在其它应用中,本发明的实施例可以允许在一个或多个集成电路制造后检测所述一个或多个集成电路中的故障点,例如用于在电路评估应用中,检查铸工在制作之前是否已经修改了电路的布局而降低其可靠性/安全性。
附图说明
并入本说明书且构成本说明书的部分的附图示出了本发明的各个实施例,并且下面给出的实施例的详细描述与上文给出的一般描述一起用于解释本发明的实施例。
图1是根据一些实施例的故障点检测设备的框图;
图2是描绘根据一些实施例的IC设计方法的流程图;
图3表示示例性的敏感功能块;
图4是根据一个实施例的故障点检测设备的框图;
图5是描绘了根据一些实施例的故障点检测方法的流程图;
图6是根据一些实施例的表示集成电路设计装置600的框图;以及
图7是根据一些实施例的用于检测故障点的示例性的计算系统的图解视图。
具体实施方式
本发明的实施例提供了用于根据集成电路(下文也称为“IC器件”)的结构描述来检测集成电路(IC)中的故障点(下文也称为“POF”)的改进的方法和设备。故障点可以是单故障点(SPOF)或多故障点。
单故障点(SPOF)是指电路中的这样的点:如果在电路的该点处发生故障,则整个电路故障。
多故障点(MPOF)是指电路的多个这样的点:如果在这些点中的至少两个点处发生故障,则整个电路故障。
如本文所使用的,术语“阶数为n的故障点”将用来指定如果在电路的所有这n个点处发生故障则整个电路故障的一个或多个故障点(如果n=1,则为单故障点,或者如果n严格大于1,则为多故障点),其中n是大于或等于一(1)的整数。
图1表示包括POF检测设备10的POF检测系统100的剖视图,POF检测设备10被配置为根据集成电路器件1的结构描述来检测集成电路(IC)器件1中的阶数为n的故障点,其中n≥1(n大于1)。集成电路器件的结构描述包括多个元件,所述元件表示单元和将单元互连的线。
IC器件的结构描述可以是IC网表或从这样的网表得出的集成电路的任何结构描述,诸如在IC器件的设计阶段期间生成的IC器件的细化结构描述(诸如门级网表、布局描述文件、晶体管级网表等的细化网表)。
主要参考网表类型的IC器件的结构描述来进行对一些实施例的以下描述,但是技术人员将容易理解,本发明类似地应用于IC器件的任何结构描述,诸如例如细化网表(例如,晶体管级网表或布局描述文件)。在下面的描述中,集成电路器件的结构描述因此将称为“网表”。
在设计阶段的任何步骤中,可以在IC器件的制造期间使用POF检测设备10,所述设计阶段提供了IC器件的结构描述(例如,网表或细化网表),该结构描述由POF检测设备使用来检测POF。如果未检测到POF,则IC器件1的这样的结构描述然后可用于在铸造中完成IC器件2的制造。
可选地,POF检测设备10可以应用于制造的IC器件,来评估或测试IC器件,POF检测设备10使用从IC器件提取的结构描述(诸如网表)来确定IC器件是否包括POF。例如,在可靠计算的上下文中,需要知道给定的IC器件是否具有SPOF或更一般地具有低多重性的MPOF。事实上,在以下情况下IC器件是不可靠的:
-在SPOF处发生的自然故障生成异常,因此产生安全问题,和/或
–由攻击者注入的诡计故障能够绕过安全机制。
因此,可能需要检查集成电路中不存在故障点。
应当注意的是,如果铸工不可信且在制作前发生了修改布局来降低其可靠性/安全性,则在制作设计的同时会引入故障点。在IC器件制造后评估IC器件允许检测IC器件中的这些漏洞。
在另一示例中,可能需要在供应集成电路之前验证《现成》集成电路上的故障点的不存在。在这样的应用中,POF检测设备10可由第三方(可能的买方)通过提取打算购买的IC器件的网表(例如,通过进行集成电路的样本的反向工程,例如通过拆层,对样本应用共焦显微镜检查或X射线断层摄影)并且将POF检测设备应用于该网表(作为IC器件的结构描述)来使用。如果POF被检测到,则第三方可以要求重新设计集成电路来去除POF,或选择另一集成电路,优选的是经防POF明确测试过的另一集成电路。
对一些实施例的下面描述主要参考集成电路的设计过程中本发明应用于对故障点的检测,但是技术人员将容易理解下面的实施例还可以类似地应用于对制造出的IC器件的评估。POF检测设备10可以包括用于执行故障点(SPOF或MPOF)的检测的POF检测单元11。POF检测单元11可以连接到存储单元以提取IC器件的网表1。在一些实施例中,POF检测设备10和存储网表1的存储单元可以实现在同一计算系统上。在一些实施例中,POF检测单元11可以通过能够从存储单元取回的网表的远距服务器(客户端/服务器连接)来访问网表。在本发明的特定实施例中,POF检测设备10可以测试在IC器件的设计流程中产生的网表1(例如,门级网表)。
网表1包括表示IC器件2的部件的多个元件。网表的元件包括单元和将单元互连的线。网表还包括表示IC器件的一组敏感功能块的部分16。
每个敏感功能块16包括一个或多个输入、至少一个敏感输出和互连而使得输出的值是敏感功能块16的输入值的布尔函数的一组元件。如本文所使用的,“敏感功能块”是指这样的IC器件的块:如果与敏感输出对应的线被切断,则整个电路故障。
POF检测设备10被配置为测试与敏感功能块16中的至少一些对应的网表的部分中所包含的选择的元件的n元组。对于每个选择的元件的n元组,POF检测设备10可以被进一步配置为将选择的元件的n元组从初始状态修改成测试状态(即,“编辑”元件的n元组),并且然后确定与该敏感功能块的至少一些相关联的布尔函数是否是常数(POF测试条件)。
如本文所使用的,术语“编辑”是指网表中的元件的n元组的初始状态修改为打开(即,断开)网或将其固定到预定义值(例如,‘0’或‘1’),这是攻击者将要执行的。
在一些实施例中,POF检测设备1可以针对IC器件的全部敏感功能块16检查POF测试条件。如果与每个功能块相关联的布尔函数对于所考虑的敏感功能块是常数,则n元组表示集成电路(IC)中的阶数为n的故障点。然后,可以存储与元件的n元组相关的信息。在选择元件的另一n元组之前,元件的n元组被重新插入网表中。
因此,POF检测系统100允许在制造IC器件2前检测到任何阶数n的故障点。响应于检测到网表中的一个或多个故障点(SPOF或MPOF),IC器件的模型可以被细化,并且新的网表可由模型迭代地构建,直至没有检测到故障点。IC器件2然后可根据无POF的网表来制造。
在一些实施例中,POF检测系统100还可以包括通知单元12,该通知单元被配置为响应于检测到至少一个故障点而发出通知。通知可以包括与一个或多个检测到的故障点有关的信息,诸如包括IC器件中的故障点的路径的报告。
在一些实施例中,POF检测系统100还可以包括修正单元13,其被配置为响应于检测到的故障点而确定修正过程。特别地,该修正单元13可以被配置为,考虑到由通知单元11报告的故障点相关的信息来确定与IC器件的设计有关的建议。在一些实施例中,修正单元13可以被配置为将冗余编码应用于检测到的故障点。该冗余编码可以包括例如复制携带负责检测到的故障点的信号的门,或者复制并反转该门从而包含一些多样性。还可以包括由产生与SPOF相关的x个信号的任何门集合来取代该门,这将SPOF(即,倍数为1的MPOF)变成了倍数为x的MPOF。
通过网表描述的IC器件2可以是任何IC器件,特别是包含秘密数据和/或需要完整性级别的任何嵌入式设备或系统,诸如智能卡、安全设备、多媒体播放器、记录器或如存储卡和硬盘等的移动存储设备。IC器件可以在各种各样的通信和数据处理应用中使用,例如在汽车行业、安全访问解决方案、移动电话设备、诸如银行方案之类的支付领域等中。
取决于该应用,IC器件2可以是指:
–已制造的IC器件,IC器件的至少一个样本的结构描述(例如,网表)能够从IC器件中提取,或者
–在IC器件的设计过程中所设计(即,打算制造)的IC器件,IC器件的结构描述(网表)是在用于制造IC器件的设计阶段中产生的。
由网表描述的IC器件2可以是任何类型的,例如ASIC、FPGA、GPU或CPU类型的电路等。
与IC器件相关联的网表1包括表示IC器件的电气部件的一组单元以及表示单元之间的连接的线(也称为“线路”)。IC器件的每个部件包括多个引脚(也称为“端子”或“端口”),多个引脚可以与属于其它单元的引脚互连。如本文所使用的,网表的“网”是指表示单元的一个或多个引脚之间的互连的线。网可以与标签或属性相关联,这取决于用来写网表的语言。网表可以包括IC器件的相同零件的一个或多个实例。实例与列出该实例的可能连接的定义相关联。
网表可以包括一个或多个相关的列表。网表至少列出IC器件中的电气部件的引脚以及将部件的引脚互连的互连(“网”)。
网表可以使用各种类型的结构和表示。例如,网表可以是物理或逻辑网表,以及基于实例的或基于网的网表、平面式或层级式网表(折叠或展开的层级式网表)。
在实施例中,网表可以是IC器件的门级网表(门级网表的单元由门表示)或在IC设计过程中生成的晶体管级网表。更一般地,网表可以涉及电路的任何级别的描述。一些实施例的以下描述将参考这样的门级网表,其中单元由门表示,仅用于示例说明的目的。因此,本发明在其较宽的方面不限于具体的细节、代表性方法和所示出和描述的说明性的示例。
在门级网表中,IC器件的变量由基本布尔变量来表示,每个变量由一个比特表示,并且IC器件的门可以包括一组互连逻辑门(例如,与门(AND)、或门(OR)、异或门(XOR)等),诸如为:
–表示与状态相关联的电路的门的顺序门(该门通常由框图表示,其中电路由框(诸如矩形)表示,在一面上有小的三角形),以及
–表示不与状态相关联的且能够用于实施中间计算的门的组合门(无状态门);由中间计算(例如,对数据的计算或对计算的校验)得到的值不在本地存储,而是发送给顺序门。
顺序门(或顺序逻辑)的输出可取决于门的当前输入,而且取决于过去的输入的顺序(输入历史)。
逻辑门可以由信号在上面循环的线(也称为“线路”)连接。网表形成表示IC器件的各个逻辑门之间的连接(“网”)的逻辑门互连图。在顺序门中存储的变量对应于门的输出线路可以携带的变量。
顺序门(下文也称为顺序资源)通常可以包括存储器点,诸如锁存器,但是同样可以包括存储器(SRAM、FLASH等)。
如本说明书中所使用的,术语“变量”表示能够携带数据并且与读数据和写数据的操作相关联的容器。该定义可以对应于例如IC器件1的寄存器、门或一组顺序逻辑门。类似地,IC器件1的线或一组线还可以由术语“变量”来表示,读操作和写操作常常受分别测量和修改一条线路或多条线路携带的电压电平所影响。
存储在顺序门中的电路的变量还可以称为“顺序变量”。因此,顺序变量表示顺序资源(顺序门)中所包含的数据项,即,存储的数据。该顺序变量存储计算的状态。
图2是描绘了根据本发明的制作IC器件2的过程的流程图。
为了便于理解一些实施例,下面的描述将主要参考包括使用SPOF检测单元11的SPOF检测设备10的SPOF检测系统100来进行,SPOF检测单元11被配置为检测集成电路(IC)器件2中的单个故障点(即,阶数n=1的故障点),仅为了示例说明的目的。
集成电路(IC)的制造包括导致执行起初由设计者构建的规范文档中所描述的功能的布局级设计的多个阶段。布局级设计是IC设计的最低级描述。布局级设计包括表示为具有诸如长度、宽度和位置等的物理尺寸的几何图的晶体管。
在IC制造过程的每个中间步骤中,IC在不同的具体性级别上进行描述,这尤其包括:
–IC的“行为描述”,其是IC或寄存器传输级(RTL)的较高级描述。在行为描述中,IC部件(例如,IC的寄存器、功能块)通过变量和数据运算符诱导;
–处于门级的IC的逻辑级描述(IC的次低级描述),其中IC被表示为一组互连逻辑门(例如,AND门、OR门)和存储器部件(例如,触发器)。这种表示对应于门级网表(也称为门互通图)。将RTL转换成网表的过程通常称为“合成”。
IC器件的制造过程开始于步骤200,其中在建模阶段(硬件和/或软件建模)中生成规范文档。在步骤200中,考虑到针对IC器件设定的应用约束,在较高级下对IC器件建模,以便从质量方面验证针对IC器件所选择的架构。
在步骤201中,根据规范文档来生成行为描述(也称为“RTL描述”)。这提供了高级语言,其中电路的实现以顺序元件(寄存器、锁存器)和对应于顺序元件的输入/输出与电路的主要输入/输出之间的组合的组合逻辑元件的形式在寄存器传输级处被描述。该描述可利用高级编程语言(例如,系统C、VHDL等)进行编码。
然后,可以使用用于根据输入刺激在时间上模拟每个互连信号的模拟器来执行逻辑模拟步骤(图2中未示出)以模拟RTL描述。这样的模拟可以包括与电路的处理器(如果电路包括处理器)相关联的可执行程序的模拟。还可以实现功能验证步骤(图2中未示出)来补充模拟,尤其是模拟长期操作,来加速模拟,并且使用基于断言建模的语言来获得更完整的结果,定义电路必须验证的功能特性。功能验证可以利用相对于参考模型的结果的自动验证基于随机刺激生成器来实现,或者使用正式功能验证工具。
在步骤202中,实现由规范文档所规定的功能的门级网表是根据IC的RTL描述来生成的(“逻辑合成”步骤)。在步骤202中,使用关于正要使用的单元以及单元彼此连接的方式的信息。逻辑合成步骤旨在细化电路的行为描述来基于目标技术和/或将制作电路的铸造厂所特定的逻辑门(例如,AND、OR门、锁存器等)的库来产生逻辑门级(网表)的结构描述。逻辑合成可以考虑到各种操作约束。逻辑合成可以通过电子设计自动化工具的手段来实现,该工具被配置为将高级语言的行为描述变换成以一般化的形式描述组合和顺序逻辑元件的通用结构描述(独立于逻辑门库),然后,用来自逻辑门库的元件来取代它们,从而相对于时间约束(例如,电路工作频率)、空间约束(硅尺寸)和功耗约束来满足施加于电路特性(电路的逻辑路径)的条件。如果选择的元件不满足约束,则合成工具可以测试来自库的其它门。网表可以与任何适合格式的计算机文件(对应于网表)相关联,诸如Verilog、VHDL、EDIF(“电子设计互换格式”的缩略词)。该文件表示来自库的门及表示电子电路的其互连的实例化。该表示可以仅包括布尔变量,每个由1个比特来表示。
在步骤204中,测试网表来确定IC设计是否包括SPOF(SPOF的检测)。如果在测试步骤204中检测到一个或多个SPOF,则可通过迭代步骤200至204直至没有检测到SPOF来修改设计。
如果在步骤204中没有检测到SPOF(测试块205),则执行步骤206。步骤206包括确定在步骤202中识别的单元是否要放置在IC器件的芯片衬底上,并且单元之间的连接如何在衬底上布线(“布局和布线”步骤)。该步骤建立了芯片的物理布局。步骤206可以考虑到由于优化阶段而导致网表修改的若干约束(诸如定时、面积和功率)。可以迭代步骤200至206。
在步骤208中,晶体管级网表可以从包括晶体管元件的布局中提取。另外,可以针对某些特性(例如关于电池寿命的功耗)来测试IC,并且通过迭代步骤200至208,可以取决于这样的测试结果来进一步修改设计。
在步骤210中,对应于IC器件的芯片可以基于晶体管级网表以及标准几何布局数据库(GDSII)在工厂(铸造厂)进行制造。
在一些实施例中,IC器件的敏感功能块16是由网表的部分表示的保护块。保护块的功能是向电路的其余部分报告任何异常,使得可以采取充分的措施。通常,保护块的敏感输出可以包括一个或多个警报。然而,保护块可以包括附加敏感输出,诸如与警报相关联的安全性相关的状态字输出。如本文所使用的,“保护块”是指产生与安全性问题相关的这样的敏感信号的网表的部分。因此,每个保护块对应于IC器件的至少一个关键信号,诸如警报信号。下面对一些实施例的描述将参考类型保护块的敏感功能块以及由警报输出表示的敏感输出,仅用于示例说明的目的。然而,技术人员将容易理解,本发明应用于由集成电路的任何类型的敏感功能块递送的所有类型的敏感输出。
每个保护块包括一个或多个输入、至少一个敏感输出(在所考虑的示例中由警报输出表示)以及互连而使得警报输出的值是保护块的输入值的布尔函数的一组元件。这样的布尔函数定义了与保护块相关联的警报的激活条件。
IC器件2的设计可被准备以将多个保护块嵌入以保护IC器件2免于攻击。每个保护块对应于IC器件2的子电路。在一些实施例中,保护块可以包括旨在检测可能的攻击的一个或多个传感器。例如,IC器件2可以包括被配置为检测物理攻击(诸如探测攻击或扰动攻击)的传感器。IC器件2还可包括其它传感器或保护块,诸如屏蔽件、数字传感器等。在另外的实施例中,IC器件2可以被配置为检测网络攻击,诸如CFI(控制流完整性)验证。这些若干选项可以单独或组合实现。
这样的保护块被配置为响应于检测到IC器件的异常操作而在其输出处产生警报。在门级网表中,每个保护块包括一个或多个信号输入以及至少一个警报输出并且由线连接的一组门表示。应用于保护块的信号输入的值导致保护块的警报输出的特定值。保护块的警报输出的值包括激活值(例如,“1”),其指示IC器件的异常操作(警报被触发),以及去激活值(例如,“0”),其指示IC器件的正常操作。保护块(由网表中的门和线表示)因此实现了对应的警报的激活条件。
在这样的实施例中,POF检测设备10可以被配置为选择网表2中的元件的n元组,通过编辑(例如,去除或固定到给定值)网表中的选择的n元组的元件来测试选择的n元组,并且检查对于保护块中的至少一些当中的每个保护块是否满足POF测试条件,该POF测试条件包括检查与每个保护块相关联的布尔函数是否是常数。
图3示出了对应于IC器件的两个警报块的要被测试的网表部分的示例。
网表部分的第一警报块30由第一警报输出“alarm#1”构成,所述第一警报输出“alarm#1”的状态取决于三个信号输入“combi#1”、“verif#1”和“VerifEnableControl”上的条件,该条件使用XOR门300和AND门302表示如下:
alarm#1=(combi#1 XOR verif#1)AND VerifEnableControl
网表部分的第二警报块31由的第一警报输出“alarm#2”构成,所述第一警报输出“alarm#2”的状态取决于三个信号输入“combi#2”、“verif#2”和“VerifEnableControl”上的条件,该条件例如通过使用XOR门301和AND门303表示如下:
alarm#2=(combi#2 XOR verif#2)AND VerifEnableControl
技术人员将容易理解到,提供上述条件仅仅是为了示例说明的目的,并且保护块的激活条件可以取决于不同的信号输入和布尔运算符。
下面对一些实施例的描述可以参见与保护块对应的敏感功能块来进行,仅为了示例说明的目的。
本发明的实施例提供了用于在铸造厂中制造IC器件之前使用与IC器件的保护块中的至少一些对应的网表的部分来可靠地检测IC器件中的POF的设备和方法。这使得相应地修改IC器件的设计来防止最终的IC器件中的POF。
图4示出了根据一些实施例的SPOF检测设备10的框图,其中n=1。
在与如图4中所描述的SPOF的检测有关的本发明的一个应用中,选择单元101可以实现为网表解析器,其被配置为遍历与IC器件的保护块对应的网表部分中所包含的每个元件(门或线)。
网表的每个所遍历的元件可以对应于网表的门或线。
网表解析器101可以使用已知技术在提取网表后处理网表,例如如结合步骤202(门级网表)或208(晶体管级网表)所描述的。
网表解析器101可以直接操作于整个网表或者可替代地操作于与IC器件的保护块对应的网表的选定部分。对网表的选定部分的遍历可以由网表解析器101使用各种已知技术来执行。例如,在网表由树表示的实施例中(每个网表门则由树的节点表示,而连接线由链接节点的链路来表示),网表解析器101可以被配置为根据例如宽度优先遍历来遍历IC器件网表。深度优先遍历使得在较深级的节点在后续级的节点前被处理。
SPOF检测设备10还可以包括用于测试由网表解析器10遍历的每个元件的测试单元104。更具体地,测试单元104可以被配置为“编辑”所遍历的元件(例如,通过去除该元件或将其维持到给定值)并且确定是否满足SPOF测试条件,SPOF测试条件与同被测试元件有关的保护块的警报输出的值有关。如果满足条件,则检测到SPOF。测试单元104可以基于与检测到的SPOF有关的信息将条目添加到SPOF数据结构111(例如,表或列表)中。在一些实施例中,数据结构的每个条目可以与检测到的SPOF相关联并且将检测到的SPOF的路径存储在网表中。示例性的路径可以是例如:从/top/verif_enable_control经/top/and_302门到/top/alarm_#1。
测试单元104可以被配置为,响应于被测试元件的编辑而检查网表的任何信号改动是否能够使得一组警报输出固定到去激活值(不活跃值可以例如等于零)。换言之,SPOF测试条件包括检查警报的激活条件是否未改变,即,每个警报输出的去激活值(或激活值)和与警报输出对应的保护块的输入值之间的条件。对于与警报对应的给定保护块,每个保护块的保护块的警报输出的值是保护块的输入的布尔函数,该布尔函数表示保护块的警报条件。就布尔函数而言,SPOF测试条件则可以通过检查表示每个保护块的警报条件的布尔函数是否是常数来实现(SPOF测试条件随后被满足并且揭示了被遍历元件处SPOF的存在)。在一个实施例中,为了检查与给定保护块相关联的布尔函数是否是常数,首先计算布尔函数的导数。如果导数对于任何输入值都等于零,则确定布尔函数是常数,并且因此SPOF测试条件得到满足。
在基于图3的一个示例中,测试单元104可以将“signal/top/verif_enable_control”元件固定在级‘0’,同时根据警报应唤起的用例来指定“driving/top/combi_#1”和“/top/verif_#1”信号。在该示例中,总是在“/top/alarm_#1”信号上检测到‘0’级。
“编辑”网表的被测试元件是指对网表的单次修改。这相当于将网表中的线断开。如此执行以测试SPOF的对网表的修改捕获了攻击者的动作。
如果满足条件(即,警报的激活条件不变),这意味着检测到SPOF。
SPOF检测设备因此允许检查,对于网表的所有单比特修改,是否存在两个不同的输入配置,诸如警报是活跃的和不活跃的。本发明的优点之一是在IC器件1的设计阶段检测SPOF,从而防止制造的IC器件中的SPOF存在。
如图4所示,SPOF检测设备10还可以包括通知单元12,该通知单元被配置为,响应于检测到SPOF数据结构中的至少一个非空条目(即,在网表中检测到至少一个SPOF),在通过测试单元104执行的测试的每次迭代之后发出报告。该报告可以在由测试单元104执行的测试的结束时例如发送给IC设计者。在使用修正单元13的实施例中,修正单元13可以基于SPOF数结构111中所包含的数据来确定修正过程。由通知单元12发出的报告则可以包括修正过程的描述。
在一些实施例中,SPOF检测单元11还可以包括注入器102,其被配置为初始地将一组元件插入网表中,该组元件模拟可能由攻击者执行的可能的攻击。更确切地,对于被配置为检测物理问题(例如,由于激光发射导致的扰动、电磁脉冲、时钟上或功率上的假信号等)的某些类型的保护块,SPOF检测单元11可以被配置为激活注入器102,以在执行SPOF测试之前增加网表1的元件的数目。
在一些实施例中,注入器102可以被配置为确定网表中所包含的每个保护块的类型,并且将测试元件插入网表中的与保护块(或更一般地敏感功能块)对应的部分中,这取决于所识别的保护块的类型。这提供了修改后的网表。注入器(102)可以被配置为将修改后的网表发送到选择单元101以用于元件的n元组的选择。
例如,如果保护块表示包括缓冲器链的数字传感器,则注入器102可以将与测试元件有关的信号冻结为级‘0’而不是‘1’(或者相反的情况),该信号被配置为将网表的与数字传感器对应的部分中的缓冲器链反转。
注入器102可以使用数据库108,取决于其类型,来识别网表中的与每个保护块对应的部分中的要冻结的测试元件以及测试元件的关于保护块的元件的连接。
在一些实施例中,注入器102可以在诸如模拟器(例如,HDL模拟器)之类的测试台架上进行建模。这提供了通过直接来自顶部硬件模块的层级来容易地扭转任何信号的扩展。在与数字传感器对应的保护块的示例中,该模拟器可以根据构成数字传感器的每个单个实体的规范和侦探输入、输出和内部信号而影响数字传感器行为。
在使用晶体管级网表的一些实施例中,注入器102还可以使用模拟/数字混合模型来模拟晶体管级网表上的一个或多个最终应用攻击,以便检测到弱点。
应当注意的是,在一些实施例中,并且取决于被测试的保护块的类型,例如,对于具有诸如软件中的漏洞之类的逻辑源的不当行为,可能不需要通过注入器102插入测试元件。例如,可能不使得注入器102注入针对类型网络CPU的保护块的元件。
图5是描绘了根据一些实施例的检测单个点的方法的流程图。
在步骤500,提取网表。
如果在步骤502中检测到注入条件,则在步骤503中将测试元件注入(即,插入)网表中。注入条件可以包括识别每个保护块的类型以及确定测试元件是否从数据库被插入到网表中的与保护块对应的部分中。如果是,则使用从数据库提取的布局和布线信息将测试元件可以插入网表中。
如果在步骤502中没有检测到注入条件,则步骤504可以针对网表来执行,或者如果在步骤502中检测到注入条件,则可以在步骤503中将测试元件注入网表中之后针对修改后的网表执行步骤504。对检测方法的以下步骤的描述简单地参考术语“网表”来进行,该术语因此涵盖了原始提取的网表或修改后的网表。
在步骤504中,至少遍历网表中的与保护块对应的部分。以下步骤针对每个遍历的元件(门或线)来执行。
对于每个遍历的元件(在框506中选定),执行网表的测试。这包括:
–在步骤508中通过编辑遍历的元件来执行对网表的修改(即,打开对应的网或将元件维持到预定义的二进制值);
–在步骤510中检查是否满足SPOF测试条件,即,对于每个保护块,保护块的敏感输出的激活条件是否不变。
步骤510可以通过确定对于任意输入值而言表示每个保护块的警报条件的布尔函数的导数是否等于零来执行。如果布尔函数的导数为常数,则SPOF测试函数得以满足。这意味着保护块的激活条件不变。
在选择元件的另一n元组之前,选择的元件的n元组可以从测试状态修改回初始状态(编辑元件之前的状态)。
在步骤506中执行的网表(例如,门级网表、晶体管级网表、布局)的“修改”捕获攻击者的动作。因此,如果与线的断开对应的这样的修改导致与遍历的元件相关联的变量固定到给定值(例如,为零或一),则检测到SPOF。
应当注意,虽然已经结合单故障点描述了本发明的实施例,这类似地适用于多于两个故障点的检测以及更一般的n故障点的检测(n是大于或等于一的整数值)。然后,步骤506和508将包括篡改n个元件,而不是单个元件。
因此,检测方法允许测试表示集成电路器件2的网表中的可能的缺陷。如果检测到一个或多个POF(n≥1),则可以进一步应用修正步骤。修正步骤可以包括将冗余编码应用于每个检测到的POF(例如,复制携带负责POF的信号的门,或者复制并反转该门以包括某些多样性,或者将该门替换成产生与SPOF相关的x个信号的门的任意集合,将SPOF(即,倍数为1的POF)变换成倍数为x的POF,等等)。
IC设计者可以使用POF检测方法来验证关于安全性和完整性观点(没有指定信号的单故障点)的整个警报电路规范。该方法不仅检查具体信号的传播,而且检查通过该门的电子级以及从HDL到布局和布线设计的正确变换(合并的信号、反转器/复合门插入等等)。
在一个实施例中,如图6中所示,POF检测设备10可以是用于设计集成电路器件的集成电路设计装置600的部分。设计装置100可以包括:
–行为描述生成器602,其被配置为根据IC器件的模型来确定IC器件的行为描述;
–门级网表生成器603,其被配置为根据行为描述的模型来生成门级网表;
-布局-布线器604,其被配置为对单元进行布局和布线以确定IC器件的物理布局;
-晶体管级网表生成器606,其被配置为从布局中提取包括晶体管和连接的晶体管级网表。
虽然POF检测设备10在图6中表示为集成电路设计装置600的部分,但是技术人员将容易理解到,在替代实施例中,POF检测设备10可以与集成电路设计装置600分离并且通过使用由装置600生成的已生成的结构描述文件与装置600协作,如关于图6所描述的。
在这样的实施例中,设计装置600可以包括用于检测门级网表、和/或物理布局(通过物理描述文件描述)和/或晶体管级网表中的故障点的检测设备100。IC设计装置100可以被配置为如果检测到至少一个故障点则修改模型。
在另一应用中,POF检测方法可以在上游使用来评估制造的集成电路并且确保它们不包括POF(IC评估应用、认证过程等)。在这样的应用中,POF检测设备10可由集成电路评估装置使用来评估和验证制造的集成电路器件。该集成电路评估装置可以包括结构描述提取器,其被配置为从IC器件的至少一个样本或部分中提取结构描述(例如,网表),POF检测装置被配置为从提取的描述文件中检测集成电路中的故障点。
本发明的实施例可以呈现为包含硬件和软件元件的实施例的形式。
此外,本文所描述的POF检测方法可以由计算机程序指令来实现,所述计算机程序指令通过供应给任何类型的计算机的处理器以产生具有执行所述指令来实现本文指定的功能/动作的处理器的机器。这些计算机程序指令还可以存储在能够引导计算机以特定方式运作的计算机可读介质中。为此目的,计算机程序指令可以加载到计算机系统上,来使得执行一系列操作步骤。
图7是示出了通用可编程计算机系统700的简化框图,其中SPOF检测方法可根据一些实施例来实现。计算机700可以包括处理器72、存储器74、大容量存储设备76、输入/输出(I/O)接口73以及人机接口(HMI)740。计算机700还可以经由网络71和/或I/O接口73操作地耦合到一个或多个外部资源75。外部资源可以包括但不限于服务器、数据库、大容量存储设备、外围设备、基于云的网络服务或可以由计算机700使用的任何其它适合的计算资源。特别地,描述IC器件的网表可以作为外部资源75被提供给计算机系统。
处理器72可以包括选自微处理器、微控制器、数字信号处理器、微型计算机、中央处理单元、现场可编程门阵列、可编程逻辑器件、状态机、逻辑电路、模拟电路、数字电路或基于存储在存储器74中的操作指令来操纵信号(模拟或数字)的任何其它设备的一个或多个设备。存储器74可以包括单一存储器设备或多个存储器设备,包括但不限于,只读存储器(ROM)、随机存取存储器(RAM)、易失性存储器、非易失性存储器、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、闪速存储器、高速缓冲存储器或能够存储信息的任何其它设备。大容量存储存储器设备76可以包括数据存储设备,诸如硬盘驱动器、光盘驱动器、磁带驱动器、非易失性固态设备或能够存储信息的任何其它设备。数据库764可以驻存在大容量存储存储器设备76上,并且可用于收集和组织由本文所描述的各种系统和模块使用的数据。
处理器72可以在驻留于存储器74中的操作系统726的控制下操作。操作系统726可以管理计算资源,使得体现为诸如驻存在存储器74中的应用728之类的一个或多个计算机软件应用的计算机程序代码可以具有由处理器72执行的指令。在替代的实施例中,处理器72可以直接执行应用728,在该情况下可以省略操作系统726。一个或多个数据结构720也可以驻存在存储器74中,并且可由处理器72、操作系统726和/或应用728来使用以存储或操纵数据。在一个实施例中,SPOF数据结构111可以包含在存储器74的数据结构块720中。
当由处理器执行时,程序代码使得处理器用于:
–至少在网表中的与敏感功能块对应的部分中选择元件的n元组,
–测试每个选择的元件的n元组,测试步骤包括:
将选择的元件的n元组从初始状态修改为测试状态;
确定与每个敏感功能块相关联的布尔函数的导数是否等于零。
处理器72进一步被使得如果与敏感功能块相关联的布尔函数等于零,则检测到n元组表示集成电路(IC)器件中的阶数为n的故障点。
I/O接口73可以提供将处理器32与诸如网络71和/或外部资源75等的其它设备和系统可操作地耦合的机器接口。因此,应用728通过经由I/O接口73通信来与网络712和/或外部资源75协同工作来提供包括本发明的实施例的各种特征、功能、应用、过程和/或模块。应用728还可以具有由一个或多个外部资源75执行的程序代码,或者以其它方式依赖于由计算机700外部的其它系统或网络组件提供的功能和/或信号。实际上,给定各种硬件和软件可能配置,本领域的普通技术人员将理解,本发明的实施例可以包括位于计算机700外部、分布于多个计算机或其它外部资源75当中的或者由作为经网络71的服务(诸如云计算服务)提供的计算资源(硬件和/或软件)提供的应用。
HMI 740可以通过已知的方式与计算机700的处理器72操作地耦合,以允许计算机700的用户直接与计算机700进行交互。HMI 740可以包括视频和/或字母数字显示、触摸屏、扬声器以及能够向用户提供信息的任何其它适合的音频和视觉指示器。HMI 740还可以包括能够接受来自用户的命令或输入并且将键入的输入发送到处理器72的输入设备和控件,诸如字母数字键盘、指示设备、小键盘、按钮、控制旋钮、麦克风等。
附加的优点和修改对于本领域技术人员而言将是显而易见的。因此,本发明在其较宽的方面不限于具体的细节、代表性的方法和所示出和描述的说明性的示例。

Claims (15)

1.一种用于检测集成电路(IC)中的故障点的设备(100),所述集成电路器件是由包括多个元件的所述集成电路(2)的结构描述来描述的,所述元件表示单元和将所述单元互连的线,所述集成电路的结构描述还包括表示一组敏感功能块(16)的部分,每个敏感功能块包括一个或多个输入、至少一个敏感输出以及互连而使得所述敏感输出的值是所述敏感功能块的输入值的布尔函数的一组元件,其中,所述设备包括:
-选择单元(101),其被配置为至少在所述集成电路的所述结构描述中的与所述敏感功能块对应的部分中迭代地选择元件的n元组,
-测试单元(104),其被配置为测试每个选择的元件的n元组,所述测试单元被配置为:
-将所述选择的元件的n元组从初始状态修改成测试状态;
-确定与每个敏感功能块相关联的所述布尔函数的导数是否等于零,
所述设备被配置为如果与所述敏感功能块相关联的布尔函数等于零,则检测到所述n元组表示所述集成电路(IC)器件中的阶数为n的故障点。
2.如权利要求1所述的设备,其中,所述测试单元(104)被配置为通过至少执行由以下构成的组中的动作来修改所述选择的元件的n元组:去除所述元件的n元组,以及将所述元件的n元组维持为预定义的二进制值。
3.如前述权利要求中的任一项所述的设备,其中,所述测试单元(104)被配置为,如果与所述敏感功能块相关联的布尔函数的导数等于零,则存储与所述元件的n元组相关的信息。
4.如前述权利要求中的任一项所述的设备,其中,所述测试单元(104)被配置为,在选择元件的另一n元组之前,将所述选择元件的n元组从所述测试状态修改回所述初始状态。
5.如前述权利要求中的任一项所述的设备,其中,其包括用于存储与测试的元件的n元组相关的信息的数据结构(60),所述数据结构包括针对每个n元组元件的条目。
6.如前述权利要求中的任一项所述的设备,其中,与每个n元组元件相关的所述信息包括每个n元组元件在所述集成电路的结构描述中的路径。
7.如前述权利要求中的任一项所述的设备,其中,所述设备包括注入器(102),所述注入器(102)被配置为确定所述集成电路的结构描述中所包括的每个敏感功能块的类型,所述注入器被配置为取决于敏感功能块的类型将测试元件插入到所述集成电路的结构描述中的与所述敏感功能块对应的部分中,这提供了所述集成电路的修改后的结构描述,所述注入器(102)被配置为将所述修改后的结构描述发送到所述选择单元(101)以用于n元组元件的选择。
8.如权利要求7所述的设备,其中,所述注入器被配置为如果所述敏感功能块表示包括缓冲器链的数字传感器,则强制发生以下状态:所述状态被配置为将所述结构描述中的与所述敏感功能块对应的部分中的所述缓冲器链反转。
9.如前述权利要求中的任一项所述的设备,其中,所述选择单元(101)包括解析器,所述解析器用于至少解析所述结构描述中的与所述敏感功能块对应的部分。
10.如权利要求9所述的设备,其中,所述选择单元(101)被配置为通过对所述部分应用宽度优先遍历来解析所述结构描述中的与所述敏感功能块对应的部分。
11.如前述权利要求中的任一项所述的设备,其中,所述结构描述是在由以下构成的组中选择的:门级网表、IC布局描述、以及晶体管级网表。
12.一种用于设计集成电路器件的设计装置,所述装置包括:
-行为描述生成器,其被配置为根据所述IC器件的模型来确定所述IC器件的行为描述;
-门级网表生成器,其被配置为根据所述行为描述的模型来生成门级网表;
-布局布线器,其被配置为对单元进行布局和布线以确定所述IC器件的物理布局;
-晶体管级网表生成器,其被配置为从所述布局中提取包括晶体管和连接的晶体管级网表,
其中,所述装置包括根据前述权利要求1至11中的任一项所述的设备(100),所述设备用于根据从所述门级网表、所述布局描述文件、所述晶体管级网表中的至少一个导出的结构描述来检测所述故障点,所述设计装置被配置为响应于检测到至少一个故障点而修改所述模型。
13.一种用于验证至少一个集成电路的集成电路验证装置,所述装置包括:
-结构描述提取器,其被配置为提取所述IC器件的结构描述,
其中,所述装置包括根据前述权利要求1至11中的任一项的用于根据提取的描述文件来检测所述集成电路中的故障点的设备(100)。
14.一种用于检测集成电路(IC)中的故障点的方法,所述集成电路器件是由包括多个元件的结构描述来描述的,所述元件包括单元和将所述单元互连的线,所述结构描述还包括表示一组敏感功能块(16)的部分,每个敏感功能块包括一个或多个输入、至少一个敏感输出以及互连而使得所述敏感输出的值是所述敏感功能块的输入值的布尔函数的一组元件,其中,所述方法包括以下步骤的至少一次迭代:
-至少在所述结构描述中的与所述敏感功能块对应的部分中选择(504、506)元件的n元组,
-测试(510)每个选择的元件的n元组,所述测试步骤包括:
-将所述选择的元件的n元组从初始状态修改成测试状态;
-确定与每个敏感功能块相关联的布尔函数的导数是否等于零,
所述方法用于如果与所述敏感功能块相关联的布尔函数等于零,则检测到所述n元组表示所述集成电路(IC)器件中的阶数为n的故障点。
15.一种用于检测集成电路(IC)中的故障点的计算机程序产品,所述集成电路器件是由包括多个元件的结构描述来描述的,所述元件包括单元和将所述单元互连的线,所述结构描述还包括表示一组敏感功能块(16)的部分,每个敏感功能块包括一个或多个输入、至少一个敏感输出以及互连而使得所述敏感输出的值是所述敏感功能块的输入值的布尔函数的一组元件,所述计算机程序产品包括:
非暂时性计算机可读存储介质;以及
存储在所述非暂时性计算机可读存储介质上的程序代码,所述程序代码当由一个或多个处理器执行时,使所述一个或多个处理器用于:
-至少在网表中的与所述敏感功能块对应的部分中选择(504、506)元件的n元组,
-测试(510)每个选择的元件的n元组,所述测试步骤包括:
将所述选择的元件的n元组从初始状态修改成测试状态;
确定与每个敏感功能块相关联的布尔函数的导数是否等于零,
所述一个或多个处理器进一步被使得如果与所述敏感功能块相关联的布尔函数等于零,则检测到所述n元组表示所述集成电路(IC)器件中的阶数为n的故障点。
CN201810296263.XA 2017-04-04 2018-04-04 用于检测故障点的设备和方法 Active CN108694323B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP17305406.5 2017-04-04
EP17305406.5A EP3385735B1 (en) 2017-04-04 2017-04-04 Device and method for detecting points of failures

Publications (2)

Publication Number Publication Date
CN108694323A true CN108694323A (zh) 2018-10-23
CN108694323B CN108694323B (zh) 2021-09-24

Family

ID=59061940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810296263.XA Active CN108694323B (zh) 2017-04-04 2018-04-04 用于检测故障点的设备和方法

Country Status (4)

Country Link
US (1) US10691855B2 (zh)
EP (1) EP3385735B1 (zh)
KR (1) KR102049665B1 (zh)
CN (1) CN108694323B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110210133A (zh) * 2019-06-03 2019-09-06 哈尔滨工程大学 一种edif网表级组合逻辑电路的自动故障注入方法
CN111460747A (zh) * 2020-04-10 2020-07-28 重庆百瑞互联电子技术有限公司 一种用于集成电路设计的标准单元追踪方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663382B1 (en) * 2018-09-24 2023-05-30 Architecture Technology Corporation Systems and methods for hardware trojan detection and mitigation
EP3672140B1 (en) * 2018-12-20 2021-08-18 Secure-IC SAS Devices and methods for the detection and localization of fault injection attacks

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763289A (en) * 1985-12-31 1988-08-09 International Business Machines Corporation Method for the modeling and fault simulation of complementary metal oxide semiconductor circuits
US5748497A (en) * 1994-10-31 1998-05-05 Texas Instruments Incorporated System and method for improving fault coverage of an electric circuit
US20070113127A1 (en) * 2005-10-28 2007-05-17 Nec Electronics Corporation Circuit design system and circuit design program
US20080079463A1 (en) * 2006-10-03 2008-04-03 Freescale Semiconductor, Inc. System and method for monitoring clock signal in an integrated circuit
CN101158873A (zh) * 2007-09-26 2008-04-09 东北大学 一种非线性过程故障诊断方法
CN101201386A (zh) * 2007-12-25 2008-06-18 电子科技大学 一种模拟集成电路参数型故障的定位方法
CN103123659A (zh) * 2011-11-17 2013-05-29 台湾积体电路制造股份有限公司 堆叠管芯互连验证
CN103294048A (zh) * 2012-02-27 2013-09-11 阿尔特拉公司 用于自动故障检测的方法和装置
CN104101496A (zh) * 2013-04-09 2014-10-15 广东美的制冷设备有限公司 空调系统及其传动机构的故障检测及控制方法、控制装置
US20160239647A1 (en) * 2007-02-23 2016-08-18 Irdeto Canada Corporation System and method of interlocking to protect software-mediated program and device behaviours

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134689A (en) 1998-02-12 2000-10-17 Motorola Inc. Method of testing logic devices
JP2001174525A (ja) * 1999-12-21 2001-06-29 Advantest Corp 電子回路網の診断装置及びこの診断装置を用いた診断方法
JP2002032427A (ja) * 2000-07-19 2002-01-31 Nec Microsystems Ltd Lsiの接続検証装置、接続検証方法および接続検証プログラムを記録した媒体
CN101720474A (zh) * 2007-05-23 2010-06-02 Nxp股份有限公司 工艺窗发觉检测以及掩模层处光刻印刷问题的校正
US9342647B2 (en) * 2014-03-21 2016-05-17 Taiwan Semiconductor Manufacturing Company, Ltd. Integrated circuit design method and apparatus

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763289A (en) * 1985-12-31 1988-08-09 International Business Machines Corporation Method for the modeling and fault simulation of complementary metal oxide semiconductor circuits
US5748497A (en) * 1994-10-31 1998-05-05 Texas Instruments Incorporated System and method for improving fault coverage of an electric circuit
US20070113127A1 (en) * 2005-10-28 2007-05-17 Nec Electronics Corporation Circuit design system and circuit design program
US20080079463A1 (en) * 2006-10-03 2008-04-03 Freescale Semiconductor, Inc. System and method for monitoring clock signal in an integrated circuit
US20160239647A1 (en) * 2007-02-23 2016-08-18 Irdeto Canada Corporation System and method of interlocking to protect software-mediated program and device behaviours
CN101158873A (zh) * 2007-09-26 2008-04-09 东北大学 一种非线性过程故障诊断方法
CN101201386A (zh) * 2007-12-25 2008-06-18 电子科技大学 一种模拟集成电路参数型故障的定位方法
CN103123659A (zh) * 2011-11-17 2013-05-29 台湾积体电路制造股份有限公司 堆叠管芯互连验证
CN103294048A (zh) * 2012-02-27 2013-09-11 阿尔特拉公司 用于自动故障检测的方法和装置
CN104101496A (zh) * 2013-04-09 2014-10-15 广东美的制冷设备有限公司 空调系统及其传动机构的故障检测及控制方法、控制装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
秦玉伟: "一种简易的智能数字芯片检测装置", 《计量技术》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110210133A (zh) * 2019-06-03 2019-09-06 哈尔滨工程大学 一种edif网表级组合逻辑电路的自动故障注入方法
CN110210133B (zh) * 2019-06-03 2022-07-08 哈尔滨工程大学 一种edif网表级组合逻辑电路的自动故障注入方法
CN111460747A (zh) * 2020-04-10 2020-07-28 重庆百瑞互联电子技术有限公司 一种用于集成电路设计的标准单元追踪方法
CN111460747B (zh) * 2020-04-10 2023-03-31 重庆百瑞互联电子技术有限公司 一种用于集成电路设计的标准单元追踪方法

Also Published As

Publication number Publication date
CN108694323B (zh) 2021-09-24
EP3385735A1 (en) 2018-10-10
US10691855B2 (en) 2020-06-23
US20180285483A1 (en) 2018-10-04
KR20180112725A (ko) 2018-10-12
EP3385735B1 (en) 2019-12-04
KR102049665B1 (ko) 2019-11-28

Similar Documents

Publication Publication Date Title
US11270002B2 (en) Hardware trojan detection through information flow security verification
CN108694323A (zh) 用于检测故障点的设备和方法
Basu et al. CAD-Base: An attack vector into the electronics supply chain
US20070050740A1 (en) Method and System for Performing Functional Formal Verification of Logic Circuits
US7188061B2 (en) Simulation monitors based on temporal formulas
US10606977B2 (en) Graphical view and debug for coverage-point negative hint
US11036604B2 (en) Parallel fault simulator with back propagation enhancement
US11416662B1 (en) Estimating diagnostic coverage in IC design based on static COI analysis of gate-level netlist and RTL fault simulation
Sabri et al. SAT-based integrated hardware Trojan detection and localization approach through path-delay analysis
Shazli et al. Using boolean satisfiability for computing soft error rates in early design stages
Vali et al. Bit-flip detection-driven selection of trace signals
Rousset et al. Derric: A tool for unified logic diagnosis
US6662323B1 (en) Fast error diagnosis for combinational verification
JP2003196339A (ja) テスト容易性解析システムおよびテスト容易性解析方法、並びにテスト容易化設計システムおよびテスト容易化設計方法
US20180011962A1 (en) Physically aware test patterns in semiconductor fabrication
Baarir et al. Complementary formal approaches for dependability analysis
CN110377924A (zh) 硬错误模拟及其使用
Mogollón et al. Metrics for the measurement of the quality of stimuli in radiation testing using fast hardware emulation
EP3789780B1 (en) Method to perform hardware safety analysis based on a structural analysis and cones of influence
Leveugle et al. Soft error effect and register criticality evaluations: Past, present and future
Taatizadeh et al. An automated SAT-based method for the design of on-chip bit-flip detectors
Brotz et al. FPGA Authentication Methods.
Vali On-chip Tracing for Bit-Flip Detection during Post-silicon Validation
Alagappan Dictionary-Less Defect Diagnosis as Real or Surrogate Single Stuck-At Faults
Maistri et al. Towards automated fault pruning with Petri Nets

Legal Events

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