CN110377924B - 硬错误模拟及其使用 - Google Patents
硬错误模拟及其使用 Download PDFInfo
- Publication number
- CN110377924B CN110377924B CN201910295312.2A CN201910295312A CN110377924B CN 110377924 B CN110377924 B CN 110377924B CN 201910295312 A CN201910295312 A CN 201910295312A CN 110377924 B CN110377924 B CN 110377924B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- value
- hard error
- computer
- 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
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 44
- 238000013461 design Methods 0.000 claims abstract description 72
- 238000012360 testing method Methods 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012544 monitoring process Methods 0.000 claims abstract description 39
- 238000003860 storage Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000001052 transient effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
用于硬错误模拟及其使用的方法、装置和产品。该方法包括:获得电路的设计,该电路包括用于识别错误的一个或多个监测信号和一个或多个关键节点;获得电路的测试的运行的轨迹;以及获得节点上的硬错误故障。该方法包括确定硬错误故障的硬错误测试覆盖,其中,硬错误测试覆盖指示上述一个或多个监测信号是否在测试的执行期间识别到硬错误故障,并且其中,所述确定包括:模拟电路的执行以及硬错误故障,并注明上述一个或多个监测信号中的任何一个或多个是否检测到硬错误故障。可以输出硬错误故障覆盖的指示。
Description
相关申请的交叉引用
本申请是2015年2月18日提交的题为“CIRCUIT SIMULATION USING A RECORDINGOF A REFERENCE EXECUTION(使用参考执行的记录的电路模拟)”的美国非临时申请No.14/624,603的部分继续申请,该美国非临时申请是2015年1月21日提交的题为“DETERMININGSOFT ERROR INFLICTION PROBABILITY(确定软错误施加概率)”的美国非临时申请No.14/601,312现美国专利No.9,430,599的继续申请并且其是非临时申请并要求2014年2月18日提交的题为“ERROR INJECTION ENGINE(错误注入引擎)”的美国临时专利申请No.61/941,125的权益;本申请还是2016年2月17日提交的题为“DETERMINING TRANSIENT ERRORFUNCTIONAL MASKING AND PROPAGATION PROBABILITIES(确定瞬态错误功能屏蔽和传播概率)”的美国非临时申请No.15/045,448的部分继续申请,该美国非临时申请是2015年1月1日提交的题为“DETERMINING TRANSIENT ERROR FUNCTIONAL MASKING AND PROPAGATIONPROBABILITIES(确定瞬态错误功能屏蔽和传播概率)”的美国临时专利申请No.62/106,305的非临时申请并且是前述美国非临时申请No.14/601,312的部分继续申请,所有上述申请的全部内容均通过引用并入本文,并不会造成否认。
技术领域
本公开内容大体上涉及微电子设计,且特别地涉及设计的模拟。
背景技术
设计模拟是一种有用的技术,其允许工程师确定电路设计的功能。可以在实体电路制造之前(即,投产前阶段)进行模拟,并且模拟可以允许根据设计中的每个线在每个周期的值来容易地追踪电路功能。
在一些情况下,制造的设计可能会遇到硬错误。硬错误是由所述设计制造的特定产品在某一时间点出现的缺陷,一种会更改设计的功能的缺陷。硬错误可能由于制造问题而出现,或者硬错误可能在制造后很久在产品已在使用中时才发生。在一些情况下,硬错误可能是即使重新启动设计也无法纠正的永久性错误。
发明内容
本公开主题的一个示例实施方式是计算机实施的方法,包括:获得电路的设计,其中,电路包括节点,节点在执行期间被分配值,其中,电路包括用于识别错误的一个或多个监测信号和一个或多个关键节点;获得电路的测试的运行的轨迹;获得节点上的硬错误故障,其中,硬错误故障潜在地能够使错误值到达该一个或多个关键节点;通过处理器确定硬错误故障的硬错误测试覆盖(coverage,覆盖率),其中,硬错误测试覆盖指示该一个或多个监测信号是否在测试的执行期间识别到硬错误故障,并且其中,所述确定包括:模拟电路的执行以及硬错误故障,并注明该一个或多个监测信号中的任何一个或多个是否检测到硬错误故障,以及输出硬错误测试覆盖的指示。
本公开主题的另一示例实施方式是一种计算机程序产品,包括留存程序指令的计算机可读存储介质,所述程序指令在由处理器读取时使所述处理器进行:获得电路的设计,其中,电路包括节点,节点在执行期间被分配值,其中,电路包括用于识别错误的一个或多个监测信号和一个或多个关键节点;获得电路的测试的运行的轨迹;获得节点上的硬错误故障,其中,硬错误故障潜在地能够使错误值到达该一个或多个关键节点;通过处理器确定硬错误故障的硬错误测试覆盖,其中,硬错误测试覆盖指示该一个或多个监测信号是否在测试的执行期间识别到硬错误故障,并且其中,所述确定包括:模拟电路的执行以及硬错误故障,并注明该一个或多个监测信号中的任何一个或多个是否检测到硬错误故障,以及输出硬错误测试覆盖的指示。
本公开主题的又一示例实施方式是一种计算机化设备,包括处理器和留存根据本公开主题的计算机程序产品的存储器,或者设备被配置为进行根据本公开主题的方法的步骤。
可选地,所述确定是关于电路中包括的多个节点进行的,由此对多个节点中的每个节点确定测试覆盖,其中,所述输出包括输出多个节点以及多个节点上的硬错误故障的关联覆盖值的列表。
可选地,其中,所述输出包括输出总覆盖值,其中,总覆盖值是在所有可能的执行中检测到硬错误故障的执行所占的比率。
可选地,所述模拟执行包括:确定模拟硬错误故障的经修改设计,其中,经修改设计被配置为将每个周期中节点的值设置为恒定值。
可选地,所述模拟执行包括:确定模拟硬错误故障的经修改设计,其中,经修改设计被配置为将每个周期中节点的值设置为不受到节点的输入信号的影响的随机值。
可选地,所述模拟执行包括:确定模拟硬错误故障的经修改设计,其中,经修改设计被配置为将每个周期中节点的值设置为表示未知值的X值。
可选地,所述模拟执行包括:确定模拟硬错误故障的经修改设计,其中,设计包括对限定每个周期中的信号的值的第一函数进行建模,其中,经修改设计包括对限定每个周期中的信号的值的第二函数进行建模,其中,第二函数与第一函数不同。
可选地,一个或多个监测信号中的至少一个是内置自测试(BIST)的一部分或者锁步或三模冗余(TMR)构造的一部分。
可选地,方法还包括:获得电路的参考执行的记录,其中,记录包括多个周期中节点的记录值;并且其中,使用参考执行的记录值进行所述模拟电路的执行。
可选地,方法还包括:识别一个或多个感兴趣节点,其中,该一个或多个感兴趣节点中的每一个的影响逻辑(LOI)包括至少一个监测信号和至少一个关键节点;其中,所述模拟包括,在每个周期的模拟期间:确定感兴趣节点的子集,该子集的值可能与参考执行中对应周期中的记录值不同;对于不在节点的子集中的每个节点,使用记录值作为该节点的值;以及对于在节点的子集中的每个节点,计算该节点的值。
可选地,所述确定包括:对于每个感兴趣节点,确定感兴趣节点的影响节点集的值在所述模拟中是否与在参考执行中的相同,其中,影响节点集是设计中限定该节点的值的节点集。
可选地,第一周期中该感兴趣节点的影响节点集与第二周期中该感兴趣节点的影响节点集不同,由此基于不同周期中不同的节点集确定是否计算该感兴趣节点的值。
可选地,所述模拟包括在每个周期的模拟期间避免计算一个或多个不可检测节点的值,其中,该一个或多个不可检测节点中每个的影响逻辑(LOI)不包括该一个或多个监测信号中的任何监测信号。
可选地,方法还包括:确定参考执行缺失了一个或多个周期中一个或多个非输入信号的记录值;以及响应于所述确定参考执行缺失了记录值,使用没有任何故障的模拟重新构建缺失值。
可选地,方法还包括验证具有硬错误故障的节点是感兴趣节点,其中,所述验证包括确定节点的影响逻辑(LOI)以及验证LOI包括至少一个监测信号和至少一个关键节点;其中,所述方法还包括:将在其相应LOI中没有任何关键节点的所有节点标记为安全节点;以及将在其相应LOI中具有至少一个关键节点并且在其相应LOI中不具有任何监测信号的所有节点标记为对于所有测试均是不可检测的。
附图说明
根据下文的详细描述,结合附图,将更全面地理解和领会本公开的主题,在附图中,对应或相同的附图标记或文字指示对应或相同的部件。除非另有指示,否则附图提供本公开内容的示例实施方式或方面,并不限制本公开内容的范围。在附图中:
图1示出了根据本主题的一些示例实施方式的轨迹的图示;
图2示出了根据本主题的一些示例实施方式的电路的图示;
图3示出了根据本公开主题的一些示例实施方式的方法的流程图;
图4示出了根据本公开主题的一些示例实施方式的方法的流程图;以及
图5示出了根据本主题的一些示例实施方式的其中使用了本公开主题的计算机化环境。
具体实施方式
在本公开内容中,术语“信号(signal,信号器、发信号部件)”,也称“节点”,指电路设计的接收值的元件。信号可以是设计中的任何线,诸如但不限于输入、输出、存储器元件的输出、存储器元件的输入、栅极的输出,等等。
在本公开内容中,术语“存储器元件”或“触发器”指电路的在不同周期留存数据的任何元件,包括但不限于双稳态触发器、寄存器、锁存器、计数器、能够留存其值的数字元件,等等。
本公开主题解决的一个技术问题是确定设计对硬错误的易感性。
另一技术问题是提供一种模拟设计在硬错误情况下的功能的有效故障模拟过程。要注意,设计是任何表示的电路,诸如例如,RTL电路、门级电路、其组合等等。优选地,所期望的故障模拟远比仅单纯地独立模拟每个故障快。
一个技术方案是计算硬错误测试覆盖。在一些示例实施方式中,可以对给定的设计和给定的测试计算硬错误测试覆盖。该测度可以用于确定被给予该测试的设计对硬错误的易感性。在一些示例实施方式中,可以对设计的错误检测和纠正功能进行分析,以确定它们针对设计中可能出现的硬错误是否提供足够的保护。
通常通过定期执行测试并将其结果与正确结果进行比较来解决硬错误。如果有测试失败,就暴露了故障的存在(有足够的手段将硬故障或永久故障与软故障或瞬态故障区分开,这超出了本申请的范围)。然而,该方法很大程度上取决于所述测试的适当评估质量,即,该测试可以暴露多少缺陷以及有多少会逃过测试而不被注意到。
在一些示例实施方式中,电路可以包括用于检测或纠正错误的一个或多个信号,称为“监测信号”。在一些情况下,监测信号可以是内置自测试(BIST)的一部分,诸如在启动期间进行或定期进行。另外地或可替代地,监测信号可以是锁步或三模冗余(TMR)构造的一部分。另外地或可替代地,监测信号可以用作检测机制诸如周期冗余校验(CRC)的一部分,用作纠正机制诸如错误纠正码(ECC)的一部分,等等。在一些示例实施方式中,监测信号可以被配置为识别当由受影响节点限定的值传播进入监测信号时设计中出现的错误。在一些示例实施方式中,对于给定测试,使一故障传播到一个或多个监测信号的任何故障都视为该测试“检测到的”故障。
在一些示例实施方式中,电路可以包括被认定为“关键的”一个或多个节点。在一些示例实施方式中,关键节点是如果故障到达其处则被系统视为安全隐患的节点。换言之,可能显示为无法到达任何关键节点的任何故障都可以被视为是安全的。在一些示例实施方式中,仅那些造成安全风险、其故障可能对关键节点潜在地造成影响的节点被视为“敏感的”并出于计算测试覆盖的目的而将其考虑在内。在一些示例实施方式中,仅那些可以被一个或多个监测信号检测到的敏感节点被视为“感兴趣的”,而所有其他敏感节点被视为“不可检测的”并被报告为可能引起安全破坏但永远无法检测到的节点。
在一些示例实施方式中,可以通过对每个感兴趣信号(但不对不感兴趣信号)的每个故障(使用模拟或其他方式)执行故障模拟并对检测到的故障与所有测试故障之间的比进行校验来计算总(aggregated,总计、合计)测试覆盖。换言之,给定测试的总测试覆盖可以计算为M/N,其中M是在节点中检测到错误的执行的数量,并且N是总的可能执行的数量。总的可能执行的数量可以是过程一旦结束实际进行的执行的总数量。另外地或可替代地,总的可能执行的数量可能大于要进行的执行的数量,诸如在由于一些优化而避免了一些执行的情况下(如,避免了对不可检测或安全节点中出现的故障执行模拟)。在一些情况下,到达监测信号的传播可能需要在预定数量的周期内到达。在一些情况下,可以模拟不同的硬错误。另外地或可替代地,模拟中可以使用不同的初始状态。
另一技术方案是将参考执行的记录用作本模拟过程的基础。在一些示例实施方式中,进行参考执行——如模拟——并且参考执行可以提供有价值的信息。例如,在计算了其中记录所有节点或节点的子集的值的百万个周期后,该记录(如,轨迹文件)可以用于加速新的模拟实例。每个模拟实例均可以利用来自该记录的值,除了得到不同值的节点中的值(如,受错误影响的节点,以及修改值传播到达的任何节点)。可以对测试的完整执行进行模拟,对预定数量的周期进行模拟,或者进行模拟直到达到中止条件,诸如修改值传播进入监测信号。通过使用参考模拟,可以知道大部分信号的值,而且不需要任何额外的计算,通过集中于计算仅那些受到当前模拟过程与参考模拟之间的差异影响的值,大幅加速了过程。
在一些示例实施方式中,为了模拟硬错误,可以在设计的网表中引入变化。网表中的变化可以是永久的(即,在引入变化后影响每个周期)或者是暂时的(即,影响一个周期或多个周期)。可以在任何周期引入变化,包括模拟的第一周期,或者在后一周期引入。
网表中的变化可以是某个信号的行为的建模的变化。例如,代替信号A的原始的网表公式(A=B和C),可以使用修改公式(A’=B或C)。再如,行为可以是某些信号是定置的或固定为常数0或常数1(对于所有周期:C=0)。再如,行为可以建模为随机行为。再如,随机行为可以是给定了用户可以进行控制的限制的受限随机行为。再如,可以确定一组周期的信号的值,诸如基于设定周期中的信号值的用户特定模式(如,模式“0001100”可以指示对于3个周期将值设置为“0”,对于两个周期将值设置为“1”,对于两个周期将值设置为“0”)。再如,可以引入特定建模。特定建模可以是例如如果信号在该周期(n)上升,我们将该上升延迟到下一周期:如果cy(n-l)==0且cy(n)==l,则cy(n)=0且cy(n+l)=l。另一建模可以使用X传播,其中,符号X用于指未知的值,可能是0值,也可能是1值,值X在某一节点给定,然后通过逻辑传播。其他示例可以包括其他故障模型,诸如电路故障、开路故障、桥接故障、延迟故障等等。根据本公开内容,可以使用的其他故障模型对于本领域普通技术人员是明显的。
又一技术方案可以包括避免模拟不感兴趣或不可检测故障。不感兴趣故障可以是可能不会影响任何关键节点的故障。如果故障不会影响任何关键节点,则可以将该故障视为安全的,且模拟该故障没有益处。如果故障通过任何监测信号都检测不到,则应将其标记为安全风险,但模拟该故障也是没有益处的。基于LOI对安全和不可检测故障的这种识别使得减少了值的计算,节约时间。由于电路的很大一部分可以包括具有不感兴趣或不可检测故障的节点,因此这种方案可以大幅降低设计模拟的每个周期中的计算要求,并可以提供显著加速。
利用本公开主题的一个技术效果是提供对设计的操作的有用洞察,并确定适当机制是否足以提供期望水平的可靠性。在一些情况下,通过计算给定测试的测试覆盖,设计者可以获知设计或测试的对错误行为不需要太多监测的方面。
利用本公开主题的另一技术效果是基于减少要求的计算来对模拟进行加速。在进行的一些实验结果中,比计算每个周期中每个节点的传统模拟加速了20,000倍。
现在参照图1,示出了根据本主题的一些示例实施方式的轨迹的图示;
轨迹100可以用于表示电路设计诸如例如微处理器等中信号的记录值。轨迹100可以可视化为状态机的一系列快照。每个快照显示电路的节点在执行的给定周期时的行为。在一些示例实施方式中,轨迹100可以是包括电路的执行中所记录二进制值的文件。可以通过电路的软件模拟过程来计算轨迹的值。另外地或可替代地,可以通过逻辑分析器从电路的实际执行或从任何来源捕捉轨迹。
在一些示例实施方式中,轨迹100可以包括时钟信号110。时钟信号110可以用作同步时钟,以限定电路的周期。在一些示例实施方式中,轨迹100可以包括有限数量的周期,其中每个周期均可以按顺序编号。在一些示例实施方式中,轨迹的长度可以由周期的数量来确定。轨迹可以包含多个时钟信号,其中,电路中的每个节点都可以与给定的/不同的时钟信号相关联。另外地或可替代地,轨迹100的仅一部分是感兴趣的,诸如其一个或多个部分。在一些示例实施方式中,可以设置预定的标记周期,以指示轨迹内感兴趣区域(ROI)的边界。例如,ROI可以是轨迹的被视为表示设计的典型行为的部分(也称为“典型轨迹”)。
在一些示例实施方式中,轨迹100可以示出电路的信号随时间的值,诸如曲线120。在一些示例实施方式中,曲线120可以是指示电路的信号的状态的波形。曲线120可以指示每个周期的值,诸如例如在CY1 130处的值。
另外地或可替代地,曲线120可以与触发器的输出相关联,并显示与触发器相同的值。在一些示例实施方式中,曲线120的值可能依赖于周期,并且可以在周期到周期间变化。例如,曲线120的值在周期CY1 130和CY2中可以为“1”,而在CYn-1和CYn中,曲线120的值为“0”。
另外地或可替代地,可以以表示不同周期中每个节点的记录值的数字形式提供轨迹100。在一些示例实施方式中,轨迹还可以包括与附加信号的值相关的信息。
现在参照图2,示出了根据本主题的一些示例实施方式的电路的图示。
电路200可以是电路的设计表示。电路200中描绘的设计可以包括硬件元件以及将硬件元件彼此链接的线。在一些示例实施方式中,电路200可以获得为一个或多个电子设计文件的形式,例如网表文件,门级,寄存器传送级(RTL),硬件描述语言(HDL)如Verilog、SystemVerilog或VHDL,其组合等等。
在一些示例实施方式中,电路200可以包括触发器,诸如触发器201。触发器201可以是存储器元件,诸如例如双稳态触发器、寄存器、锁存器、计数器、能够留存其值的数字元件,等等。触发器201可以具有输入、输出和时钟输入(未示出)。触发器的输出,也称为触发器或节点的状态,可以对其输入在每个周期的值、时钟边沿等(如,时钟高或者时钟上升)进行取样。因此,触发器将其值留存直到下一周期、边沿等。
在一些示例实施方式中,触发器的输入可以与不同触发器(未示出)的输出连接。另外地或可替代地,触发器的输入可以与电路的输入端口连接,例如,输入端口243与触发器201的输入连接。另外地或可替代地,触发器的输入可以与组合逻辑块(combo-logicblock)的输出连接,例如组合逻辑231可以与触发器205的输入连接。要注意,触发器的输入可以连接其他线。在一些示例实施方式中,触发器的输出可以与不同触发器(未示出)的输入连接。另外地或可替代地,触发器的输出可以与电路的输出端口连接。例如,触发器210的输出与输出端口251连接。另外地或可替代地,触发器的输出可以与组合逻辑连接。例如,触发器201的输出与组合逻辑231连接。要注意,触发器的输出可以连接其他线。组合逻辑块可以具有单个输出或多个输出,其中,每个输出表示利用到组合逻辑块的输入的一个逻辑公式。
在一些示例实施方式中,电路200可以包括组合逻辑,诸如组合逻辑231。组合逻辑231可以包括非存储器元件;逻辑门,诸如例如与门、或门、非门、与非门、或非门、异或门;其组合,等等。组合逻辑可以与电路的任何元件的任何输入或输出连接。在一些示例实施方式中,组合逻辑可能没有能力留存其元件在连续周期中的值。
在一些示例实施方式中,电路200可以包括输入端口,诸如输入端口241。在一些示例实施方式中,输入端口可以用于从不同电路、同一电路的不同部分、外部设备等等接收信号。
在一些示例实施方式中,电路200可以包括输出端口,诸如输出端口251。在一些示例实施方式中,输出端口可以用于向不同电路、同一电路的不同部分、外部设备等等传输信号。
在一些示例实施方式中,电路200可以包括监测信号,诸如监测信号261。监测信号261可以从比较器260接收其值,该比较器对3对信号进行比较,信号被设计为具有相同值。触发器202a是触发器202的复制品。类似地,触发器203a、206a、207a分别是触发器203、206、207的复制品,由相同输入或对应复制品的输入馈送。例如,触发器202和202a由相同输入馈送,而触发器206和206a由对应输入、两对对应复制元件触发器202&202a以及触发器203&203a的输出馈送。因此,触发器202a、203a、206a、207a被设计为在每个周期中分别与触发器202、203、206、207具有相同的值。因此,如果出现错误,并且馈送进入比较器260的值不相同,则监测信号261的值检测这种不符,并可以用于识别错误。
在一些示例实施方式中,电路200可以包括指定的关键节点,诸如输出端口251。
在一些示例实施方式中,触发器201、202、203、205、206和207以及输入端口243和241可以在触发器210的影响逻辑(LOI)中。换言之,触发器210的LOI可以包括下述的所有节点:所述节点具有与触发器210的输入中的任何输入(包括但不限于数据输入、时钟输入、设置输入、重置输入、启用输入等等)的直接或间接路径且因此可以影响触发器210。
在一些示例实施方式中,触发器201和输入端口241可以在触发器205的最接近(immediate,紧邻、即刻、直接)LOI中。换言之,触发器205的最接近LOI可以包括下述的所有节点:所述节点具有到触发器205的输入中的任何输入(包括但不限于数据输入、时钟输入、设置输入、重置输入、启用输入等等)的——包括通过组合逻辑但不通过存储器元件——的直接路径,且因此可以影响后一周期中的触发器205。
在一些示例实施方式中,输出端口251以及触发器206、207和210可以在触发器203的负载中。换言之,触发器203的负载可以包括下述所有节点:所述节点具有自触发器210的输出中的一个输出起的直接或间接路径且因此可以被触发器210影响。
在一些示例实施方式中,触发器206、207和210可以在触发器203的最接近负载中。换言之,触发器203的最接近负载可以包括下述的所有节点:所述节点具有自触发器203的输出中的一个输出起的直接路径——包括通过组合逻辑,且因此可以在下一周期中被触发器203影响。
现在参照图3,示出了根据本公开主题的一些示例实施方式的方法的流程图。
在步骤310,可以获得给过程的输入。该输入可以是待施加于设计的一组变化(如,位翻转、网表修改等等)。每个施加的变化均可以指示为在特定周期、在一组周期、在特定周期之后的每个周期等施加。
在步骤310,可以得到电路的表示。在一些示例实施方式中,该表示可以是电路的网表表示。然而,本公开主题不限于这种表示。
此外,在步骤310,可以获得轨迹。轨迹,也称“原始轨迹”,可以是参考执行的轨迹。轨迹诸如图1的轨迹100可以包括多个周期中信号的记录值。轨迹可以由至少一个轨迹文件表示。在一些示例实施方式中,用户可以确定一个或多个轨迹的一个或多个ROI区段。要注意,参考执行可以是实际执行或模拟执行。在一些情况下,当执行时,可以记录仅一部分信号的值,并且轨迹可以是不完整的,但根据本公开主题仍然是可用的。在一些情况下,不是输入(不是外部输入、来自黑盒的输入、来自存储器的输入等)信号的的记录值可能不可用(整体不可用或在特定周期中不可用),诸如由于瞬间跟踪缺陷,由于数据丢失等等。
在一些示例实施方式中,可以通过本公开主题克服这种缺陷。在一些示例实施方式中,如果发现信号的不是输入(即,不是外部输入、来自黑盒的输入、来自存储器的输入等)的记录值不可用(整体不可用或在特定周期中不可用),则过程可以通过下述来克服输入中的这种失误:使用没有任何故障的模拟计算缺失值,并且之后将这些计算的值用在过程的其余部分中,就像它们存在于原始轨迹中。
在步骤320,当前周期变量被初始化为-1,以指示在第一周期之前的周期,当前周期通常可以称为周期0。
在步骤330,对模拟执行施加与故障相关联的一个或多个变化。与故障相关联的一个或多个变化可以模拟在轨迹的第一周期出现的硬错误。
在步骤340,确定在下一周期(CC+1)中可能被该周期或之前周期中的变化影响的一组感兴趣节点(表示为MAY_NODES)。在一些示例实施方式中,该组MAY_NODES可以仅包括触发器节点。该组节点可以包括下述节点:所述节点在其最接近LOI中包括相对于参考执行具有变化值的节点。该组节点可以包括变化会影响其计算公式的节点,且特别是携带故障的节点。在一些示例实施方式中,该组节点可以忽略不可检测的节点,即使该不可检测节点在其最接近LOI中包括相对于参考执行具有变化值的节点。
在步骤350,可以计算在步骤340中确定的该组节点在下一周期(CC+1)的值。在一些示例实施方式中,可以计算相关非触发器信号在当前周期(CC)的值。可以基于施加的变化并基于节点在当前周期(CC)的值来计算所述值。要注意,在CC的节点与参考轨迹不同的情况下,无论是考虑到在CC施加的变化还是之前施加的并传播到CC的变化,都可以使用节点的计算值代替其记录值。
在一些示例实施方式中,在周期CC+1可能不受影响的每个节点的值可以从参考执行的原始轨迹复制,并可以避免其计算。由于大部分节点都未受影响,因此可以大幅减少所需的计算时间和存储要求。
在步骤355,下一周期的值可以转存至轨迹文件(NEW_TRACE)或以其他方式留存。下一周期的值可以是步骤350的计算值以及所有其他节点的记录值。在一些示例实施方式中,本公开主题可以仅留存差文件,差文件仅包括值与参考执行或定置节点子集不同的节点的计算值。在一些情况下,避免复制参考执行的未变化部分可以大量降低存储要求,并可以使计算加速,因为可以去除I/O瓶颈制约。
在步骤360,可以识别下一周期中的受影响节点(AFFECTED_NODES)。在一些示例实施方式中,受影响节点可以是MAY_NODES中计算值与其在原始轨迹中在CC+1的记录值不同的任何节点。
在步骤370,在AFFECTED_NODES中的一个是检测节点的情况下,可以进行步骤396,并可以在过程结束、确定检测到故障(390)之前复制剩余周期的记录值,如果有的话。否则,如果受影响节点中没有一个是检测节点,则进行步骤380。
在步骤380,在轨迹结束的情况下,方法可以以确定未检测到故障(390)结束。否则,在步骤395,计数器CC增加,以指示前进至下一周期,并且可以针对该新周期再次进行步骤340-370。
现在参照图4,示出了根据本公开主题的一些示例实施方式的方法的流程图。
在步骤400,可以获得电路表示。
在步骤410,可以获得轨迹。
在步骤420,可以选择节点。该选择可以是自动的,诸如迭代选择所有节点,或者可以是手动的。在一些示例实施方式中,所选择节点可以验证为在其LOI中具有至少一个关键节点并且在其LOI中具有至少一个监测信号的节点。在其LOI中不具有关键节点的节点被视为安全的,不考虑模拟故障。在其LOI中不具有监测信号的节点被视为不可检测的,因为没有测试会检测到该节点。
在步骤430,确定待对设计施加的影响所选择节点上的硬错误。可以计算经修改设计,以允许模拟影响设计的硬错误。
在步骤440,可以进行经修改设计的一个或多个模拟。模拟可以基于轨迹的值,也可以不基于轨迹的值。在一些示例实施方式中,进行每个模拟直到测试结束,一直到预定数量的周期,或者直到监测信号检测到错误功能。
在一些示例实施方式中,可以对同一节点进行若干次步骤430-440,从而模拟各种轨迹或影响所选择节点上的硬错误。
在步骤450,对故障计算检测结果(检测到的或未检测到的)。在一些示例实施方式中,可以对节点的所有故障和所有轨迹计算检测结果。
在一些示例实施方式中,可以重复进行步骤420-450,每次关于不同的节点进行,从而得到不同节点的故障的检测结果。
在步骤460,可以提供输出。在一些示例实施方式中,输出可以是硬错误测试覆盖的指示。输出可以涉及单个硬错误,单个节点,单个故障,一组节点诸如设计中的所有节点或设计的子集、诸如设计的所有感兴趣节点,其组合等等。另外地或可替代地,输出可以包括总覆盖值,计算为M/N,其中M是检测到故障的数量,N是总的已分析故障的数量(即,检测到和未检测到的故障以及所有不可检测故障)。在一些示例实施方式中,总的已分析故障的数量N还包括不敏感节点(即,未造成安全风险的节点,因为其故障不可能影响关键节点)上的故障。
在一些示例实施方式中,用户诸如设计者、工程师等可以获知设计的总覆盖值。另外地或可替代地,可以针对覆盖不同地分析设计的部分,诸如向用户指示设计的覆盖值在预定阈值诸如30%、50%、80%等以下的那些部分。在一些示例实施方式中,本公开主题可以提供建议,诸如引入额外的监测信号、查看设计的部分,等等。
现在参照图5,示出了根据本公开主题的一些示例实施方式的装置。装置500可以是适于进行诸如图3和图4中描绘的方法的计算机化装置。
在一些示例实施方式中,装置500可以包括处理器502。处理器502可以是中央处理单元(CPU)、微处理器、电子电路、现场可编程门阵列(FPGA)、图形处理单元(GPU)、集成电路(IC)、这些中的一个的虚拟机或模拟装置,等等。处理器502可以用于进行装置500或其任何子部件所需的计算。
在本公开主题的一些示例实施方式中,装置500可以包括输入/输出(I/O)模块505。I/O模块505可以用作在装置500与外部I/O设备诸如工作站590等等之间传输和/或接收信息和指令的接口。
在一些示例实施方式中,I/O模块505和工作站590可以用于向系统的用户595提供接口,诸如通过提供输出、可视化的结果、报告等等。在一些示例实施方式中,向用户595提供的输出可以是每个周期处节点的模拟值。在一些示例实施方式中,工作站590可以用于从用户595获得参数,诸如用户指令、典型轨迹、电路、网表、模拟阈值、周期标记、监测信号和关键节点的指示、其组合等等。
在一些示例实施方式中,装置500可以包括存储单元507。存储单元507可以是硬盘驱动器、闪存盘、随机存取存储器(RAM)、存储芯片,等等。在一些示例实施方式中,存储单元507可以留存程序代码,程序代码可操作以使处理器502进行与装置500的任何子部件相关联的动作,诸如进行与图3和图4中所示步骤相关联的动作。
在一些示例实施方式中,存储单元507可以用于留存部件,诸如电路表示520、参考轨迹530等等。在一些示例实施方式中,电路表示520可以是例如描述数字电路设计的网表文件,诸如图2中描绘的。电路表示520可以包括节点。在一些示例实施方式中,参考轨迹530可以包括一个或多个轨迹文件中包含的表示电路设计的典型操作的模拟的信息。参考轨迹530诸如图1的轨迹100可以可视化为状态机的快照,快照显示在轨迹的每个给定周期处相关节点的值。在一些示例实施方式中,参考轨迹530可以是模拟的产品,其可以由下述进行:HDL软件模拟器、RTL软件模拟器、门级模拟器、仿真器和硬件加速器或这些的组合等等。
硬错误注入器550可以是软件产品,该软件产品修改电路表示520以引入影响节点的模拟硬错误。例如,硬错误注入器550可以将节点的网表公式修改为不同的公式(如,恒定值、随机值、X值、组合公式等等)。
模拟器540可以是用于进行根据本公开主题的模拟的软件产品。模拟器540可以使用参考轨迹530模拟修改电路表示520的执行。模拟器540可以使用参考轨迹530避免冗余计算,冗余计算的结果可以从参考轨迹530中检索,不用再计算。
硬错误测试覆盖计算器560可以被配置为基于测试运行期间影响节点上的硬错误的模拟来计算节点的测试覆盖。在一些示例实施方式中,还可以为设计或设计子集中的多个节点或所有信号或所有感兴趣信号提供故障检测结果。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括一个(或多个)计算机可读存储介质,计算机可读存储介质上具有计算机可读程序指令,用于使处理器实施本发明的方面。
计算机可读存储介质可以是可以留存并存储供指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、任何其他存储设备或前述的任何适合组合。计算机可读存储介质的更多具体示例的非详尽列表包括下述:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式只读存储光盘(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备诸如穿孔卡或槽中的其上记录有指令的突出结构、任何其他存储设备以及前述的任何适合组合。本文所用计算机可读存储介质不应理解为暂时信号本身,诸如无线电波或其他自由传播的电磁波、传播通过波导或其他传输介质的电磁波(如,穿过光纤电缆的光脉冲)或通过线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备或通过网络下载到外部计算机或外部存储设备,网络例如互联网、局域网、广域网、无线网和/或任何其他网络。网络可以包括金属(如铜)传输电缆、光传输电缆、无线传输、路由器、防火墙、交换机、网间连接计算机和/或边缘服务器。计每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令并转发计算机可读程序指令,以存储在相应计算/处理设备内的计算机可读存储介质中。
用于实施本发明的操作的计算机可读程序指令可以是汇编程序指令、指令集架构(ISA)指令、机器指令、机器依赖指令、机器独立指令、微码、固件指令、状态设置数据,用一个或多个编程语言的任何组合编写的源代码或目标代码,包括面向对象的编程语言诸如Smalltalk、C++等等,以及常规程序编程语言诸如“C”编程语言或类似的编程语言,以及脚本语言诸如Python或TCI,或者任何其他类型的编程语言。计算机可读程序指令可以作为独立的软件包完全在用户的计算机上执行、部分地在用户的计算机上执行,部分地在用户的计算机上部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行,或者在机器——其中一些可能属于用户一些则不属于——的组合上执行。在后一种情况中,远程计算机或机器可以通过任何类型的网络与用户的计算机或机器连接,包括局域网(LAN)或广域网(WAN),或者可以与一个或多个外部机器连接(例如,使用互联网服务提供商通过互联网连接)。在一些实施方式中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过使用计算机可读程序指令的状态信息将电子电路个性化来执行计算机可读程序指令,以进行本发明的方面。
本文参考根据本发明的实施方式的方法、装置(系统)和计算机程序产品的流程图图示和/或框图对本发明的方面进行了描述。要理解的是,可以通过计算机可读程序指令实施流程图图示和/或框图中的每个框以及流程图图示和/或框图中框的组合。
可以将这些计算机可读程序指令提供给通用计算机、专用计算机的一个或多个处理器或者其他可编程数据处理装置以产生机器,使得通过计算机的处理器或者其他可编程数据处理装置执行的指令形成用于实施一个或多个流程图框和/或框图框中规定的功能/动作的手段。这些计算机可读程序指令还可以存储在计算机可读存储介质中,计算机可读吨车介质可以引导计算机、可编程数据处理装置和/或其他设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包括一系列包括制造的指令,该指令实施一个或多个流程图框和/或框图框中规定的功能/动作的方面。
计算机可读程序指令还可以加载至一个或多个计算机、其他可编程数据处理装置或其他设备上,以使待在计算机、其他可编程装置或其他设备上进行的一系列操作步骤产生计算机实施的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实施一个或多个流程图框和/或框图框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施方式的系统、方法和计算机程序产品的可能实施的架构、功能和操作。在这一点上,流程图或框图中的每个框都可以表示模块、区段或指令的部分,其包括用于实施规定逻辑功能的一个或多个可执行指令。在一些可替代实施中,框中标示的功能可以不按附图中标示的顺序发生。例如,示出为连续的两个框实际上可以基本同时执行,或者框有时可以以倒序执行,取决于涉及的功能。还要注意,框图和流程图图示的每个框以及框图和流程图图示中的框的组合可以由进行规定功能或动作或实施专用硬件和计算机指令的组合的基于硬件的专用系统实施。
本文所用的术语仅是为了描述特定实施方式,并不意在限制本发明。如本文所用,单数形式“a(一)”、“an(一)”和“the(该)”意在还包括复数形式,除非上下文清楚地另有指示。还要理解,在本说明书中使用时,术语“包括(comprises)”和/或“包括(comprising)”明确所陈述的特征、整体、步骤、操作、元件和/或部件的存在,但并不排除还有一个或多个和/或成组的其他特征、整体、步骤、操作、元件、部件或者它们的存在。
本文权利要求中的对应结构、材料、动作和所有手段或步骤以及功能元件的同等物意在包括用于结合具体要求保护的其他要求保护元件进行功能的任何结构、材料或动作。已为说明和描述之目的呈现了本发明的描述,但该描述并不意在是详尽的或局限于所公开内容的发明形式。在不脱离本发明的范围和精神的情况下,许多修改或变型对于本领域普通技术人员将是明显的。选择和描述了实施方式,以最好地解释本发明的原理以及实际应用,使本领域普通技术人员理解,只要适合所设想的特定用途,本发明的各种实施方式有各种修改。
Claims (18)
1.一种计算机实施的方法,包括:
获得电路的设计,其中,所述电路包括节点,所述节点为电路设计的元件,其中,每个节点接收值,其中,所述节点在执行期间被分配值,其中,所述电路包括用于识别错误的一个或多个监测信号和一个或多个关键节点;
获得所述电路的参考执行的记录,其中,所述记录包括多个周期中所述节点的记录值;
获得节点上的硬错误故障,其中,所述硬错误故障潜在地能够使错误值到达所述一个或多个关键节点;
基于对一个或多个感兴趣节点的各自的影响逻辑的分析来识别所述一个或多个感兴趣节点,其中,所述一个或多个感兴趣节点中的每一个的影响逻辑包括至少一个监测信号和至少一个关键节点;
通过处理器确定所述硬错误故障的硬错误测试覆盖,其中,所述硬错误测试覆盖指示所述一个或多个监测信号是否在测试的执行期间识别到所述硬错误故障,并且其中,所述确定包括:模拟所述电路的执行以及所述硬错误故障,并注明所述一个或多个监测信号中的任何一个或多个是否检测到所述硬错误故障,其中,所述模拟包括:在每个周期的模拟期间,
确定所述一个或多个感兴趣节点的子集,所述子集的值潜在地与所述参考执行中对应周期中的所述记录值不同;
对于不在节点的所述子集中的每个节点,使用所述记录值作为所述节点的值;以及
对于在节点的所述子集中的每个节点,计算所述节点的值;以及
输出所述硬错误测试覆盖的指示。
2.根据权利要求1所述的计算机实施的方法,其中,关于所述电路中包括的多个节点进行对所述硬错误测试覆盖的所述确定,由此对所述多个节点中的每个节点确定测试覆盖,其中,所述输出包括输出所述多个节点以及所述多个节点上的所述硬错误故障的关联覆盖值的列表。
3.根据权利要求2所述的计算机实施的方法,其中,所述输出包括输出总覆盖值,其中,所述总覆盖值是在所有可能的执行中检测到所述硬错误故障的执行所占的比率。
4.根据权利要求1所述的计算机实施的方法,其中,所述模拟执行包括:确定模拟所述硬错误故障的经修改设计,其中,所述经修改设计被配置为将每个周期中所述节点的值设置为恒定值。
5.根据权利要求1所述的计算机实施的方法,其中,所述模拟执行包括:确定模拟所述硬错误故障的经修改设计,其中,所述经修改设计被配置为将每个周期中所述节点的值设置为不受到所述节点的输入信号影响的随机值。
6.根据权利要求1所述的计算机实施的方法,其中,所述模拟执行包括:确定模拟所述硬错误故障的经修改设计,其中,所述经修改设计被配置为将每个周期中所述节点的值设置为表示未知值的X值。
7.根据权利要求1所述的计算机实施的方法,其中,所述模拟执行包括:确定模拟所述硬错误故障的经修改设计,其中,所述设计包括对限定每个周期中所述信号的值的第一函数进行建模,其中,所述经修改设计包括对限定每个周期中所述信号的值的第二函数进行建模,其中,所述第二函数与所述第一函数不同。
8.根据权利要求1所述的计算机实施的方法,其中,所述一个或多个监测信号中的至少一个是内置自测试(BIST)的一部分或者锁步或三模冗余(TMR)构造的一部分。
9.根据权利要求1所述的计算机实施的方法,其中,所述确定所述子集包括:对于每个感兴趣节点,确定该感兴趣节点的影响节点集的值在所述模拟中是否与在所述参考执行中的相同,其中,所述影响节点集是所述设计中限定该节点的值的节点集。
10.根据权利要求9所述的计算机实施的方法,其中,第一周期中该感兴趣节点的所述影响节点集与第二周期中该感兴趣节点的所述影响节点集不同,由此基于不同周期中不同的节点集确定是否计算该感兴趣节点的值。
11.根据权利要求1所述的计算机实施的方法,其中,所述模拟包括在每个周期的模拟期间避免计算一个或多个不可检测节点的值,其中,所述一个或多个不可检测节点中的每一个的影响逻辑不包括所述一个或多个监测信号中的任何监测信号。
12.根据权利要求1所述的计算机实施的方法,还包括:
确定所述参考执行缺失一个或多个周期中一个或多个非输入信号的记录值;以及
响应于所述确定所述参考执行缺失所述记录值,使用没有任何故障的模拟重新构建缺失的所述记录值。
13.根据权利要求1所述的计算机实施的方法,还包括验证具有所述硬错误故障的节点是感兴趣节点,其中,所述验证包括确定所述节点的影响逻辑以及验证所述影响逻辑包括至少一个监测信号和至少一个关键节点;其中,所述方法还包括:将在其相应影响逻辑中没有任何关键节点的所有节点标记为安全节点;以及将在其相应影响逻辑中具有至少一个关键节点并且在其相应影响逻辑中不具有任何监测信号的所有节点标记为对于所有测试均是不可检测的。
14.一种计算机可读存储介质,所述计算机可读存储介质留存程序指令,所述程序指令在由处理器读取时使所述处理器进行:
获得电路的设计,其中,所述电路包括节点,所述节点为电路设计的元件,其中,每个节点接收值,其中,所述节点在执行期间被分配值,其中,所述电路包括用于识别错误的一个或多个监测信号和一个或多个关键节点;
获得所述电路的参考执行的记录,其中,所述记录包括多个周期中所述节点的记录值;
获得节点上的硬错误故障,其中,所述硬错误故障潜在地能够使错误值到达所述一个或多个关键节点;
基于对一个或多个感兴趣节点的各自的影响逻辑的分析来识别所述一个或多个感兴趣节点,其中,所述一个或多个感兴趣节点中的每一个的影响逻辑包括至少一个监测信号和至少一个关键节点;
通过处理器确定所述硬错误故障的硬错误测试覆盖,其中,所述硬错误测试覆盖指示所述一个或多个监测信号是否在测试的执行期间识别到所述硬错误故障,并且其中,所述确定包括:模拟所述电路的执行以及所述硬错误故障,并注明所述一个或多个监测信号中的任何一个或多个是否检测到所述硬错误故障,其中,所述模拟包括:在每个周期的模拟期间,
确定所述一个或多个感兴趣节点的子集,所述子集的值潜在地与所述参考执行中对应周期中的所述记录值不同;
对于不在节点的所述子集中的每个节点,使用所述记录值作为所述节点的值;以及
对于在节点的所述子集中的每个节点,计算所述节点的值;以及
输出所述硬错误测试覆盖的指示。
15.根据权利要求14所述的计算机可读存储介质,其中,所述确定是关于所述电路中包括的多个节点进行的,由此对所述多个节点中每个节点确定测试覆盖,其中,所述输出包括输出所述多个节点以及所述多个节点上的所述硬错误故障的关联覆盖值的列表。
16.根据权利要求15所述的计算机可读存储介质,其中,所述输出包括输出总覆盖值,其中,所述总覆盖值是在所有可能的执行中检测到所述硬错误故障的执行所占的比率。
17.根据权利要求14所述的计算机可读存储介质,其中,所述确定包括:对于每个感兴趣节点,确定该感兴趣节点的影响节点集的值在所述模拟中是否与在所述参考执行中的相同,其中,所述影响节点集是所述设计中限定该节点的值的节点集。
18.根据权利要求14所述的计算机可读存储介质,其中,所述模拟包括在模拟每个周期期间避免计算一个或多个不可检测节点的值,其中,所述一个或多个不可检测节点中的每一个的影响逻辑不包括所述一个或多个监测信号中的任何监测信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/951,869 | 2018-04-12 | ||
US15/951,869 US10546086B2 (en) | 2014-02-18 | 2018-04-12 | Hard error simulation and usage thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110377924A CN110377924A (zh) | 2019-10-25 |
CN110377924B true CN110377924B (zh) | 2024-05-14 |
Family
ID=66349272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910295312.2A Active CN110377924B (zh) | 2018-04-12 | 2019-04-12 | 硬错误模拟及其使用 |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP3553681B1 (zh) |
CN (1) | CN110377924B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114546822A (zh) * | 2021-12-27 | 2022-05-27 | 芯华章科技股份有限公司 | 测试设计的方法、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3715573A (en) * | 1971-04-14 | 1973-02-06 | Ibm | Failure activity determination technique in fault simulation |
US7844886B1 (en) * | 2006-05-16 | 2010-11-30 | Altera Corporation | Parallel processing error detection and location circuitry for configuration random-access memory |
CN102789416A (zh) * | 2012-06-13 | 2012-11-21 | 北京航空航天大学 | 面向bit软件测试的存储器故障注入方法及其模拟器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7296249B2 (en) * | 2003-10-10 | 2007-11-13 | Thomas Hans Rinderknecht | Using constrained scan cells to test integrated circuits |
US20070050740A1 (en) * | 2005-08-29 | 2007-03-01 | Christian Jacobi | Method and System for Performing Functional Formal Verification of Logic Circuits |
GB0519363D0 (en) * | 2005-09-22 | 2005-11-02 | Advanced Risc Mach Ltd | Error propagation in integrated circuits |
US9032266B2 (en) * | 2011-06-28 | 2015-05-12 | Terence Wai-kwok Chan | Multithreaded, mixed-HDL/ESL concurrent fault simulator for large-scale integrated circuit designs |
-
2019
- 2019-04-12 CN CN201910295312.2A patent/CN110377924B/zh active Active
- 2019-04-12 EP EP19168962.9A patent/EP3553681B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3715573A (en) * | 1971-04-14 | 1973-02-06 | Ibm | Failure activity determination technique in fault simulation |
US7844886B1 (en) * | 2006-05-16 | 2010-11-30 | Altera Corporation | Parallel processing error detection and location circuitry for configuration random-access memory |
CN102789416A (zh) * | 2012-06-13 | 2012-11-21 | 北京航空航天大学 | 面向bit软件测试的存储器故障注入方法及其模拟器 |
Also Published As
Publication number | Publication date |
---|---|
EP3553681A1 (en) | 2019-10-16 |
CN110377924A (zh) | 2019-10-25 |
EP3553681B1 (en) | 2022-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003817B2 (en) | Hard error simulation and usage thereof | |
US6931611B2 (en) | Design verification system for avoiding false failures and method therefor | |
US11068629B2 (en) | Circuit simulation using a recording of a reference execution | |
CN108694323B (zh) | 用于检测故障点的设备和方法 | |
Breuer | The effects of races, delays, and delay faults on test generation | |
US8453082B2 (en) | Soft error verification in hardware designs | |
EP3789780A1 (en) | Method to perform hardware safety analysis based on a structural analysis and cones of influence | |
US10502779B2 (en) | Determining transient error functional masking and propagation probabilities | |
CN110377924B (zh) | 硬错误模拟及其使用 | |
US9404972B2 (en) | Diagnosis and debug with truncated simulation | |
Grosso et al. | Exploiting fault model correlations to accelerate SEU sensitivity assessment | |
US9581644B2 (en) | Digital IC simulation | |
Bosio et al. | A comprehensive framework for logic diagnosis of arbitrary defects | |
JP2022166154A (ja) | フォーマルフォールト伝搬分析のためのシステム及び方法 | |
Blackstone et al. | A unified model for gate level propagation analysis | |
US8539403B2 (en) | Reducing observability of memory elements in circuits | |
Leveugle et al. | Soft error effect and register criticality evaluations: Past, present and future | |
US7467366B2 (en) | Method for generating a timing path software monitor for identifying a critical timing path in hardware devices coupled between components | |
US10527674B2 (en) | Circuit structures to resolve random testability | |
US10572624B2 (en) | Modified design debugging using differential trace back | |
Reddy et al. | High speed fault injection tool (FITO) implemented with VHDL on FPGA for testing fault tolerant designs | |
Marwedel | Validation | |
WO2016116938A1 (en) | Determining transient error functional masking and propogation probabilities |
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 |