一种小时延缺陷演绎模拟器实现方法

文档序号:10723054阅读:286来源:国知局
一种小时延缺陷演绎模拟器实现方法
【专利摘要】本发明涉及一种小时延缺陷演绎模拟器实现方法。现有方法所需内存较大、编程难度高、硬件要求高。本发明方法包括波形表示方法、故障模拟策略、演绎模拟方法。波形表示方法基于整型数据拼接的二进制位序列;故障模拟策略针对不同位置的故障,采用不同的模拟策略;演绎模拟方法建立在敏感路径标记基础上,通过敏感路径的标记,排除了故障效应重汇聚。本发明方法考虑了冒险可测,可有效提供小时延缺陷的精确模拟,加快小时延缺陷模拟速度、减小测试代价。
【专利说明】
一种小时延缺陷演绎模拟器实现方法
技术领域
[0001]本发明属于集成电路技术领域,涉及数字集成电路的小时延故障缺陷模拟技术,具体是一种小时延缺陷演绎模拟器实现方法。
【背景技术】
[0002]小时延缺陷是指电路中具有小于系统时钟周期的延迟缺陷,在测试中这些缺陷可能会通过短路径逃脱测试,但在以后执行某特定的功能操作时又可能会通过较长路径传播出来,从而影响芯片的可靠性。故障模拟器是集成电路设计验证和测试的必要工具。不同于固定型故障或跳变时延故障,小时延缺陷的故障模拟需要记录具体波形,因而其所需的存储开销大、故障模拟过程复杂。此外,由于集成电路的大规模和高复杂度的迅速发展,小时延缺陷测试所需的测试向量数越来越多,致使小时延缺陷模拟成本越来越高。因此,高效的小时延缺陷模拟器在降低小时延缺陷模拟成本、减少测试代价、提高测试质量上变得非常重要。
[0003]串行故障模拟是最简单的故障模拟技术。串行故障模拟技术首先进行无故障电路演算,保存电路节点状态和输出结果,然后依次注入目标故障,模拟故障电路。针对每个故障重复这个过程,一次模拟一个故障。此方法实现简单,可模拟任何引入模型的故障。然而,面对如今的超大规模集成电路来说,串行故障模拟方法会由于消耗大量的CPU时间而变得不切实际。
[0004]并行故障模拟技术利用计算机中的位并行思想,将好电路以及多个故障电路同时模拟。如机器字长为N,采用并行故障模拟则可以一次模拟N-1个故障,其中预留一位用来标识好电路。然而,并行模拟并不能准确模拟电路中信号的上升和下降延时。只有假定所有门都具有一样的传播延时,并行故障模拟才是最有效的。
[0005]演绎模拟技术只对无故障电路进行模拟。故障电路的传播情况将在无故障电路模拟时通过结合电路的结构演算出来。这样,带有演算过程的单次模拟就可以处理完所有的故障。一般演绎模拟适用于门级模拟。演绎过程从电路的输入端到输出端按层次逐级演算。对每个信号线i生成一个故障列表L111表示当前无故障模拟和故障电路中i值不同的所有的故障集合。根据门类型和对应的输入值,演绎模拟方法按照定义好的规则来计算输出信号线的故障列表。当满足演绎条件时,演绎模拟速度是极快的。
[0006]并发故障模拟以最为有效的方式将事件驱动方法应用到电路的故障模拟中,能处理各种电路模型、故障模型和信号状态。该方法基本思路与演绎故障模拟方法相似,对于每个测试向量只需进行一遍模拟就可以模拟完所有故障,只是它们的故障表内容有所不同。演绎模拟的故障列表只针对信号线,列出的是会影响到这个信号线的故障,故障只是用名称和位置来进行标志。而在并发模拟中,其故障列表针对的为门,影响到这个门的输入的全部故障都包含在列表中,因此并发故障模拟中故障列表更长,故障表示的信息更丰富,包括故障的名称、位置以及门的输入和输出值。并发故障模拟基于对单个元器件的求值,它的主要缺点是模拟所需的内存太大,且无法事先精确知道模拟中所需的内存容量,给编程带来一定的难度。当模拟大规模电路时,对硬件要求也非常高。

【发明内容】

[0007]本发明的目的是针对现有技术的不足,提供了一种小时延缺陷演绎模拟器实现方法,实现了演绎模拟方法和传统串行模拟方法在小时延缺陷模拟中的有效结合,有效提供小时延缺陷的精确模拟,加快小时延缺陷模拟速度。
[0008]本发明方法包括:波形表示方法、故障模拟策略、演绎模拟方法。
[0009]所述的波形表示方法基于整型数据拼接的二进制位序列,具体方法是:
[0010]模拟器建立在基于单位时延模型的基础上,将每个门延时的大小量化为单位时延的倍数,采用整型数据即机器字长来存储量化后的二进制位序列波形,对于每个门s的时延模拟,用2个数据表示波形:整数数据EAT(S)记录最早达到状态,二进制位串Bitmap(s)记录t = 一⑴时的初始状态和EAT(S)到最终稳定态之间的波形;由于机器字长能表示的波形长度有限,采用有符号-无符号整数拼接技术来解决更长的波形表示问题,即将多个整型数拼接在一起,第一个整型数采用有符号整数,符号位存放初始状态,其余字采用无符号整数。
[0011]所述的故障模拟策略针对不同位置的故障,采用不同的模拟策略,对故障影响扇出重汇聚的故障,采用传统二进制位序列波形串行模拟,其他的故障则采用演绎故障模拟方法;具体是:
[0012]对电路节点进行扇出重汇聚标记,扇出重汇聚节点上的故障效应有可能通过重汇聚后彼此影响;
[0013]对电路的输入敏感线进行标记,一个门的输入线为敏感输入线当且仅当改变该输入的取值后,将改变该门的输出,即该输入线上存在故障时,其故障效应可以传播到该门的输出;
[0014]处理重汇聚源时,当重汇聚点扇出的多条敏感路径重汇聚时进行串行模拟,即对门进行波形模拟时,当输入线为两个以上的故障影响线时才进行串行模拟,否则进行演绎模拟。多条是指一条以上。
[0015]所述的演绎模拟方法建立在敏感路径标记基础上,通过敏感路径的标记,排除了故障效应重汇聚,演绎模拟故障列表处理中不存在传统演绎方法的“与”操作,针对不同逻辑门的处理方法如下:
[0016]输入a为O时,NOT门输出端c的故障列表为La U c ;
[0017]输入a为I时,NOT门输出端c的故障列表为La U c;
[0018]输入a为0,输入b为O时,AND门输出端c的故障列表为c;
[0019]输入a为O,输入b为I时,AND门输出端c的故障列表为LaU c;
[0020]输入a为I,输入b为O时,AND门输出端c的故障列表为Lb U c ;
[0021]输入a为I,输入b为I时,AND门输出端c的故障列表为[La U Lb ] U c;
[0022]输入a为0,输入b为O时,OR门输出端c的故障列表为[La U Lb] Uc;
[0023]输入a为O,输入b为I时,OR门输出端c的故障列表为LbU c;
[0024]输入a为I,输入b为O时,0R门输出端c的故障列表为LaUC;
[0025]输入a为I,输入b为I时,0R门输出端c的故障列表为c;
[0026]其中Li表不信号线i上的故障列表,c表不信号线c上被激活的时延缺陷,多输入门和其它类型门,传播规则通过该规则扩展得到。
[0027]本发明中,基于整型数据拼接的二进制序列波形表示方法实现了波形的精确表示,减少了波形存储开销,并提升了处理速度;采用字拼接技术表示波形具有较多优势:首先,波形表示长度不受跳变次数影响,相比其它波形表示方法,其存储开销更低;其次,二进制位序列的右移(首字进行有符号右移,其余前一字低位的移出位移入到下一字的高位)对应了波形的延时表示,且本发明只需记录部分波形,相比于以前的二进制位完整表示方法,存储开销更低,可行性更高;再次,在实际操作中,电路的基本门元件与门、或门、非门等在计算机指令中都有对应的与、或、非等操作,使得高层的波形模拟像运行在低层指令级一样,提升了模拟速度。针对不同位置的故障,采用不同的模拟策略实现了演绎模拟方法和传统串行模拟方法的有效结合,加快了模拟速度。基于敏感路径标记的演绎模拟方法简化了传统演绎模拟方法故障列表的计算,使得演绎模拟方法能有效应用于小时延缺陷模拟。
【附图说明】
[0028]图1为本发明二进制位序列波形表示方法示例图;
[0029]图2为本发明演绎故障模拟中故障列表的传播规则图;
[0030]图3为传统演绎故障模拟中故障列表的传播规则图;
[0031 ]图4为无故障波形模拟示例图;
[0032]图5为小时延缺陷串行模拟示例图;
[0033]图6为小时延缺陷演绎模拟示例图。
【具体实施方式】
[0034]—种小时延缺陷演绎模拟器实现方法,包括:波形表示方法、故障模拟策略、演绎模拟方法。
[0035]波形表示方法基于整型数据拼接的二进制位序列,具体方法是:
[0036]模拟器建立在基于单位时延模型的基础上,将每个门延时的大小量化为单位时延的倍数,采用整型数据即机器字长来存储量化后的二进制位序列波形,对于每个门s的时延模拟,用2个数据来表示波形:整数数据EAT(S)记录最早达到状态,二进制位串Bitmap(s)记录t= 一⑴时的初始状态和EAT(S)到最终稳定态之间的波形;由于机器字长能表示的波形长度有限,采用有符号-无符号整数拼接技术来解决更长的波形表示问题,即将多个整型数拼接在一起,第一个字采用有符号整数,符号位存放初始状态,其余字采用无符号整数。如初始状态为0,第二个向量信号最早到达时间为20,最终稳定态为0,EAT(s)到最终稳定态之间波形为100101的表示方法如图1所示。
[0037]所述的故障模拟策略针对不同位置的故障,采用不同的模拟策略,对故障影响扇出重汇聚的故障,采用传统二进制位序列波形串行模拟,其他的故障则采用演绎故障模拟方法;具体是:
[0038]对电路节点进行扇出重汇聚标记,扇出重汇聚节点上的故障效应有可能通过重汇聚后彼此影响;
[0039]对电路的输入敏感线进行标记,一个门的输入线为敏感输入线当且仅当改变该输入的取值后,将改变该门的输出,即该输入线上存在故障时,其故障效应可以传播到该门的输出,由于在小时延测试中,向量对(VI,V2)中的Vl向量用来稳定电路初始状态,V2向量用来激发和传播故障,因此,在敏感输入路径追踪时,我们只需在向量V2下进行;
[0040]处理重汇聚源时,与传统方法只要遇到重汇聚点就进行串行模拟的策略不同的是,本申请只有当重汇聚点扇出的多条敏感路径重汇聚时进行串行模拟,即对门进行波形模拟时,当输入线为两个以上的故障影响线时才进行串行模拟,否则进行演绎模拟。
[0041 ]所述的演绎模拟方法建立在敏感路径标记基础上,通过敏感路径的标记,排除了故障效应重汇聚,演绎模拟故障列表处理中不存在传统演绎方法的“与”操作,针对不同逻辑门的处理方法如图2所示,其中Li表示信号线i上的故障列表,c表示信号线c上被激活的时延缺陷,多输入门和其它类型门,传播规则通过该规则扩展得到。图3为传统固定型故障演绎模拟时对应的传播规则,其中U表;^信号线i上的故障列表,c i表;^信号线c上被激活的s-a-Ο和s-a-Ι故障。与传统演绎模拟方法相比,本发明的演绎模拟方法在处理逻辑门时故障列表的处理更为简单。
[0042]无故障波形模拟:
[0043]图4给出了一个二输入或门的无故障波形模拟示例。输入线a上的二进制序列1B表示a在向量¥1下的初始值为I,在V2向量下的最早到达时间EAT(a) = 13跳变为O。同理,输入线b在向量¥1下的初始值为O,在V2向量下的最早到达时间EAT (b) = 14跳变为I。该门的输出端c的波形计算如下:EAT(C)为输入线中最小的EAT(i)值加上该门的传播延时2。由于为I,因而c的二进制序列Bitmap(c)为Bitmap(a)0R右移EAT(b)和EAT(a)差值的二进制序列Bitmap(b)。为了便于计算,二进制序列的空白低位填充为最终稳态值。
[0044]故障电路波形模拟:
[0045]本申请采用了单故障模型,考虑了冒险激活故障条件,采用波形中的最后一个跳变一一关键跳变来判断故障的激活。针对不同位置的故障,采用不同的模拟策略:对故障影响扇出重汇聚的故障,采用传统串行模拟,其他的故障则采用基于敏感路径标记的演绎故障模拟方法。
[0046]串行故障模拟:
[0047]对于扇出效应重汇聚的故障,串行模拟按如下法则处理。
[0048]法则1:分别用二进制序列GL和FL处理受故障影响的信号线S,其中GL记录无故障电路波形,FL记录故障的传播效应。
[0049]法则2:用波形区间[LST(s),+⑴]记录没有受故障影响的信号线S。因为在最终稳态LST (s)时刻之前发生的一切跳变都不会影响电路T。时刻的输出值。
[0050]图5为串行模拟示例。这里仅考虑信号线a上的故障检测,其中GL(a)= 10001111B,依照冒险激活故障条件,慢上升时延故障f被激活。根据法则I,信号线a受故障f影响,因此采用FL(a)来记录故障效应。由于最后关键跳变发生在时刻3,因此FL(a)赋值为00001111B,表示EAT(a)+3+x时刻发生了慢上升跳变故障。信号线b没有受故障f影响,根据法则2,GL’(b)赋值为LST(b)后的稳定值11111111B。输出线c的结果按图5中的方法进行计算,FL(C) =GL ’(b)>> 1&&FL(a)。串行模拟继续往前推进,直到抵达故障主宰线、扇出自由点或Ρ0/ΡΡ0。故障的传播效应可通过EAT (s)和FL (s)得到。若c为输出端,系统时钟周期T。= 30,则故障f的可检测区间计算为[30-27,30],意味着若f的大小大于3个单位时延,在输出端c将被检测到。
[0051]图6为小时延缺陷演绎模拟示例。其中每个输入线s的无故障波形用GL(s)表示,门上的数值i/j分别表示该门的上跳传播延时和下跳传播延时。敏感路径追踪结果如图所示,敏感输入标记为粗线。由于故障传播只能发生在敏感路径,因此在演绎模拟时我们只需考虑敏感路径上的故障表处理,非敏感输入上的故障列表视为空。参照图2演算规则,各节点上的故障列表分别为(Li表示信号线i上的故障列表,F1、Ri分别表示节点i上的上跳变和下跳变时延缺陷):
[0052]La= [Ra],Lb = [ φ ],因此Ld= [La U Lb U Fd] = [Ra,Fd];同理:
[0053]Lc= [Re] ,Lci = [ Φ ] ,Lf= [LdUFf] = [Ra,Fd,Ff];
[0054]Le= [Lc U Le] = [Re,Re];
[0055]LdI = [ φ ] ,Lg= [Le UFg] = [Re,Re,Fg];
[0056]Lh = [Lf U Lg U Fh] = [Ra, Fd, Ff, Re, Re, Fg, Fh];
[0057]各故障点的可测区间=IV(故障激活时间+敏化通路长度)。
【主权项】
1.一种小时延缺陷演绎模拟器实现方法,包括:波形表不方法、故障模拟策略、演绎模拟方法;其特征在于: 所述的波形表示方法基于整型数据拼接的二进制位序列; 所述的故障模拟策略针对不同位置的故障,采用不同的模拟策略; 所述的演绎模拟方法建立在敏感路径标记基础上,通过敏感路径的标记,排除了故障效应重汇聚。2.如权利要求1所述的一种小时延缺陷演绎模拟器实现方法,其特征在于所述的波形表不方法具体是: 模拟器建立在基于单位时延模型的基础上,将每个门延时的大小量化为单位时延的倍数,采用整型数据即机器字长来存储量化后的二进制位序列波形,对于每个门s的时延模拟,用2个数据表示波形:整数数据EAT(S)记录最早达到状态,二进制位串Bitmap(s)记录t=-①时的初始状态和EAT( s)到最终稳定态之间的波形;将多个整形数拼接在一起,第一个整形数采用有符号整数,符号位存放初始状态,其余字采用无符号整数。3.如权利要求1所述的一种小时延缺陷演绎模拟器实现方法,其特征在于所述的故障模拟策略中对故障影响扇出重汇聚的故障,采用传统二进制位序列波形串行模拟,其他的故障则采用演绎故障模拟方法;具体是: 对电路节点进行扇出重汇聚标记;对电路的输入敏感线进行标记,一个门的输入线为敏感输入线当且仅当改变该输入的取值后,将改变该门的输出,即该输入线上存在故障时,其故障效应可以传播到该门的输出;处理重汇聚源时,当重汇聚点扇出的多条敏感路径重汇聚时进行串行模拟,否则进行演绎模拟。4.如权利要求1所述的一种小时延缺陷演绎模拟器实现方法,其特征在于所述的演绎模拟方法针对不同逻辑门的处理方法如下: 输入a为O时,NOT门输出端c的故障列表为La U c; 输入a为I时,NOT门输出端c的故障列表为La U c; 输入a为O,输入b为O时,AND门输出端c的故障列表为c; 输入a为0,输入b为I时,AND门输出端c的故障列表为LaU c; 输入a为I,输入b为O时,AND门输出端c的故障列表为Lb U c ; 输入a为I,输入b为I时,AND门输出端c的故障列表为[LaU Lb] Uc; 输入a为0,输入b为O时,0R门输出端c的故障列表为[LaU Lb] Uc; 输入a为0,输入b为I时,0R门输出端c的故障列表为LbU c; 输入a为I,输入b为O时,0R门输出端c的故障列表为LaU c; 输入a为I,输入b为I时,0R门输出端c的故障列表为c; 其中Li表不信号线i上的故障列表,c表不信号线上被激活的时延缺陷,多输入门和其它类型门,传播规则通过该规则扩展得到。
【文档编号】G01R31/28GK106093746SQ201610377229
【公开日】2016年11月9日
【申请日】2016年5月31日
【发明人】刘铁桥, 王晓耘, 柳毅
【申请人】杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1