高速互连通路串扰故障测试方法

文档序号:6188082阅读:537来源:国知局
高速互连通路串扰故障测试方法
【专利摘要】本发明公开一种高速互连通路串扰故障测试方法;首先基于串扰故障的形成原因,用改进传统的测试稳态故障的FAN算法对电路中的故障进行测;后运用静态时序分析,分析得出电路的时序信息,建立时间等式约束和时间不等式约束;再根据串扰故障的特征,分析其故障传播的条件和传播路径;进而根据串扰故障的特征,在故障的测试中,敏化策略采用两种方式及静态优先和跳变优先。对于最终得到的测试故障的矢量,是含有时间参数的测试矢量。最后根据测试矢量实现高速电路的自动故障检测。
【专利说明】高速互连通路串扰故障测试方法
【技术领域】
[0001]本发明涉及电路故障检测领域,具体涉及一种高速互连通路串扰故障测试方法。【背景技术】
[0002]随着电路系统向着规模极大化、工艺尺寸微小化、工作速度高速化和时钟频率的高频化方向的快速发展,电路系统已经进入了高速电路系统时代。而随着高速电路中互连线由简单传导特性向传输线效应转变,互连线的耦合噪声对电路传输性能的影响也日益突出,串扰问题已成为了高速互连电路设计、分析中不容忽视的严峻问题。因为串扰型故障及其测试生成是保障高速电路产品质量和可靠性的重要因素,所以建立串扰型故障的有效测试方法来生成高效的测试矢量,以保证较好的故障覆盖率、减少测试时间及测试成本是当前急需迫切解决的关键问题。
[0003]传统的电路系统由于时钟频率与工作速度较低,电路系统的故障以“稳态”故障为主,所以只需采用固定“1/0”故障、桥接、短路等故障模型即可实现电路的故障检测。但在高速互连系统中,由于时钟频率等的大幅度提高,“传输线"效应的普遍存在,因串扰所引起的尖峰脉冲和时延改变,通路串扰故障往往呈现出瞬态性(往往在信号上升/下降沿产生)、多样性(正向/负向跳变、正向/负向延时、延时加速/减速等)、复杂性(容性故障和感性故障等)等新特征。因此,需要对高速互连电路系统通路串扰故障的测试生成开展研究。

【发明内容】

[0004]本发明所要解决的技术问题是提供一种高速互连通路串扰故障测试方法,其能够实现闻速电路的自动故障检测。
[0005]为解决上述问题,本发明是通过以下技术方案实现的:
[0006]高速互连通路串扰故障测试方法,包括如下步骤:
[0007]( I)测试电路的设定
[0008](1.1)对测试电路进行分析,并从测试电路中任意选择一条线作为指定的故障线;并从测试电路中找出一条与该故障线最为接近的至少一条线作为指定的攻击线;并从测试电路中找出所有以故障线为输入线的逻辑门作为故障边界,并形成故障边界集合;
[0009](1.2)从正向尖峰脉冲故障G1、负向尖峰脉冲故障GO、上升时延加速故障R1、上升时延减速故障RD、下降时延加速故障FI和下降时延减速故障FD这6种故障类型中任选一种故障类型作为故障线的指定故障;
[0010](2)确定测试电路的时延信息
[0011](2.1)生成测试电路的门级网表,并对门级网表进行静态时序分析,分析得出测试电路的线时延和门时延信息;
[0012](2.2)假定故障线和攻击线的信号时间均为T ;当故障线和攻击线的信号通过线向前传播时,加上线时延;当故障线和攻击线的信号通过逻辑门向前传播时,加上门时延;当故障线和攻击线的信号通过线向后传播时,减去线时延;当故障线和攻击线的信号通过逻辑门向后传播时,减去门时延;由此获得测试电路中所有线的关于时间T的时序传播表达式;
[0013](3)测试矢量的生成
[0014](3.1)根据故障线的故障类型,首先确定攻击线的跳变信息,由此确定攻击线的赋值;然后确定离原始输出线最近的故障边界上的、除故障线外的所有其他输入线的赋值;最后判断上述已赋值的线的赋值是否唯一;如果线赋值是唯一的,则把已赋值的线直接放入初始目标集合中;否则,在这条已赋值的线上设置回溯标志后再将其放入初始目标集合中;
[0015]上述每条线的赋值形式均为(S,ncr⑶,ncf (S),n0 (S),Ii1(S));其中S是目标线;Hcr(S)是S上要求目标上升跳变的次数;nef(S)是S上要求目标下降跳变的次数;nQ(S)是S上要求目标逻辑值O的次数;ni(S)是S上要求目标逻辑值I的次数;
[0016](3.2)回推过程
[0017](3.2.1)先从步骤(3.1)所得的初始目标集合中任取一条已赋值的线,并从初始目标中删除取出的线;
[0018](3.2.2)判断取出的这条线是否为扇出线,如果为扇出线,则把这条线放入扇出线目标集合中,如果不是扇出线,则再判断这条线是不是原始输入线;若果是原始输入线,则把该线放入端线目标集合中,如果不是原始输入线,则将取出的这条线向后蕴含一个逻辑门,并在当前时间值T的情况下减去该逻辑门的门时延;如果向后蕴含时,该逻辑门的所有输入线可能出现2种或2种以上的赋值情况时,则在该逻辑门的输出线上设置回溯标志;
[0019]再对当前向后蕴含逻辑门的输入线进行判断,即判断输入线是否为扇出线,如果为扇出线,则把这条线放入扇出线目标集合中,如果不是扇出线,则再判断这条线是不是原始输入线;若果是原始输入线,则把该线放入端线目标集合中,如果不是原始输入线,则把当前向后蕴含逻辑门的输入作为下一个向后蕴含逻辑门的输出,并在当前时间值的情况下减去向后蕴含所经过的线时延和门时延的时间;
[0020]一直往后一步一步向后蕴含,每次向后蕴含一步均减去向后蕴含所经过的线时延和门时延的时间,直到向后蕴含到扇出点处则把扇出点放入扇出线目标集合中,或者直接回推到原始输入线则把原始输入线放入端线目标集合中;
[0021](3.2.3)从步骤(3.1)所得的初始目标集合中再取出一条线,重复步骤(3.2.2),直到初始目标集合中所有的线都被取完;
[0022](3.2.4)当初始目标集合中的线都已经取完后,对步骤(3.2.3)所得的扇出点目标集合内的所有扇出点按照离原始输出线的距离从近到远的顺序进行排序,并按照排好的顺序逐个取出扇出点目标集合内的扇出点;
[0023]取出一个扇出点后,先从扇出点目标集合中删除该扇出点,首先判断取出的扇出点的赋值是否是唯一的,如果扇出点的赋值是唯一的,则说明该扇出点的赋值没有矛盾,则重复步骤(3.2.2)的过程;如果扇出点的赋值不是唯一的,则要将赋值内的4个赋值要求,按其次数进行从大到小排列;并按照排好的顺序逐个取出赋值,并把该赋值赋给该扇出点,并以此扇出线作为输入线,并通过逻辑门进行向前蕴含判定;即对每个扇出点的所有分支进行验证;对于一条分支而言,首先找出该分支中距离扇出点最近的、设置有回溯标志的输出线,并变换该输出线所对应的输入线的赋值情况,并以此作为扇出点赋值是否正确的判定基准;将取出的扇出点的赋值通过逻辑门向前蕴含至回溯标志的输出线处,并对向前蕴含所经过的线进行赋值;若向前蕴含所得的赋值情况与上述确定的赋值情况的判定基准相同时,则表明该分支验证成功,再验证其他分支;当该扇出点的所有分支均验证成功时,则可判定该扇出点的赋值为正确的;否则再找出该分支中距离扇出点第二近的、设置有回溯标志的输出线,并重复上述向前蕴含赋值和判定向前蕴含所得的赋值情况与上述确定的赋值情况的判定基准是否相同的过程,直至将该分支的所有回溯标志均验证完,依旧无法获得向前蕴含所得的赋值情况与确定的赋值情况的判定基准相同时,则该分支验证失败,即可判定该扇出点的赋值为错误的;当扇出点的赋值是正确的,则返回步骤(3.2)重复回推过程;如果扇出点的所有赋值均错误,则返回步骤(3)重新选取其他的故障边界后,再进行回推过程;如果所有的故障边界,都会出现有扇出点的所有赋值错误的结果,则此故障不可测,并进行记录;
[0024]当扇出点目标集合内的所有扇出点均已验证完,则此次回推过程结束;
[0025](3.3)判断故障线是否为原始输出线;如果是原始输出线,则以上述回推过程所确定的各条线的赋值,向前向后蕴含得出测试电路中其余未验证的线,最终得到带时间的测试矢量;如果不是原始输出线,则把故障通过这个逻辑门向前传播到下一个逻辑门,此时故障边界会发生变化,此时无需确定攻击线的跳变信息,并重复步骤(3)的测试矢量的生成过程,一步一步将故障向前传播到原始输出线,然后再确定测试电路中其余未验证的线,最终得到带时间的测试矢量;
[0026](4)将步骤(3)所得的测试矢量从测试电路的原始输入口输入,并在测试电路的原始输出口进行信号的采集,获得传播时延或电压幅值信息;将传播时延或电压幅值信息与预设的传播时延或电压幅值进行比较,若获得的传播时延或电压幅值处在预设定的传播时延或电压幅值允许范围内,则说明该指定故障线所指定的故障类型对测试电路无影响,无需对指定的故障线进行调整;若获得的传播时延或电压幅值处在预设定的传播时延或电压幅值允许范围外,则说明该指定故障线所指定的故障类型对测试电路有影响,需要对指定的故障线进行调整;
[0027](5)重复步骤(I)- (4),直至将测试电路中所有线的所有故障类型均指定一遍,SP可完成对测试电路的测试过程。
[0028]上述步骤(1.1)中,指定的攻击线的条数为2条。
[0029]上述步骤(3.2.4)中,当(S, ncr (S),ncf (S) ,Iitl(S) ,Ii1 (S))的 4 个赋值要求即 ncr (S),ncf (S),n0 (S),H1 (S)中,仅有I个赋值要求的数值为非零常数,而其余3个赋值要求的数值为零时,则表示S这条线的赋值唯一的;否则S这条线的赋值不是唯一的。
[0030]上述步骤(3.2.4)中,当故障属于不可测故障时,需要将该不可测故障记录在存储器中,以供后续研究之用。
[0031]上述步骤(4)中,若指定的故障类型为正向尖峰脉冲故障Gl或负向尖峰脉冲故障GO时,则采集和比较的是测试电路的电压幅值信息,若指定的故障类型为上升时延加速故障R1、上升时延减速故障RD、下降时延加速故障FI或下降时延减速故障FD时,则采集和比较的是测试电路的传播时延信息。
[0032]上述步骤(3.2)中,通过查询正向蕴含真值表和反向蕴含真值表来实现对测试电路的线进行赋值。[0033]与现有技术相比,本发明考虑了门延时及线延时等时序信息,研究了静态优先和动态优先两种测试矢量生成策略下的串扰故障传播及反向回推过程来减少收索空间,提高串扰故障测试方法的效率。
【专利附图】

【附图说明】
[0034]图1为一种高速互连通路串扰故障测试方法的总流程图。
[0035]图2为回推过程的流程图。
【具体实施方式】
[0036]一种高速互连通路串扰故障测试方法,如图1所示,具体包含下述步骤:
[0037](I)、测试电路的设定
[0038](1.1)、对已知测试电路进行分析,得出相关的扇出点、边界线、自由线、端线。
[0039]扇出点:一个兀件的输出连接多个兀件的输入被称为扇出,该输出线被称为扇出点。
[0040]边界线:从某个扇出点出可达到一条信号线L,即存在从一条从扇出点到L的通路,则L称为边界线。
[0041]自由线:不是边界线的信号线称为自由线。
[0042]端线:当自由线L与某边界线相邻(通过扇出点或者通过一个门连接),称L为端线。
[0043](1.2)、在测试电路中选取一条故障线,进行故障分析,SP:
[0044](1.2.1)、确定攻击线
[0045]指定故障线后,找到故障线空间上相邻的线,至少一条,作为攻击线。因为串扰故障的产生的原因是:相邻的线发生跳变,才使得故障线上产生串扰故障。
[0046](1.2.2)、确定故障类型
[0047]指定故障线后,指定故障类型:G1:正向尖峰脉冲故障(某时间,故障线上信号为恒定低电平,而攻击线从低电平变化为高电平或者从高电平变化为低电平即攻击线上的信号发生了跳变,使得故障线上产生了正向尖峰脉冲故障)。GO:负向尖峰脉冲故障(某时间,故障线上信号为恒定高电平,而攻击线上的信号发生了跳变,使得故障线上产生了负向尖峰脉冲故障)。R 1:上升时延加速故障(某时间,故障线上信号为上升跳变,而攻击线上的信号同时发生了上升跳变,使得故障线上产生了上升时延加速故障)。RD:上升时延减速故障(某时间,故障线上信号为上升跳变,而攻击线上的信号同时发生了下降跳变,使得故障线上产生了上升时延减速故障)。F 1:下降时延加速故障(某时间,故障线上信号为下降跳变,而攻击线上的信号同时发生了下降跳变,使得故障线上产生了下降时延加速故障)。FD:下降时延减速故障(某时间,故障线上信号为下降跳变,而攻击线上的信号同时发生了上升跳变,使得故障线上产生了下降时延减速故障)。
[0048]( 1.2.3)、确定故障边界
[0049]故障边界是指所有输入中含有故障信号,而输出值的未知的逻辑门集合。比如确定了故障线,并指定了故障类型为RD,则故障边界就称为RD边界。RD边界是指输入信号为RD,但是输出的值未知的所有逻辑门的集合,简单的说就是由故障信号RD直接相连的所有逻辑门。其它的故障类型类似于RD情况。
[0050]( 2 )、经行故障分析后,确定被测电路相关的时序信息
[0051](2.1)、确定电路线时延和门时延
[0052]运用Synopsys公司的Design Compiler软件采用TSMC公司的0.18um工艺库对电路进行综合,生成一个门级网表,并用Synopsys公司的静态时序分析工具PrimeTime根据电路网表的拓扑结构进行静态时序分析,分析得出被测电路的时序信息,包括电路的线时延和门时延信息。
[0053]线时延即从一个逻辑门的任意输出到另一个逻辑门的输入所产生的信号传播时延。对于线时延,可以根据不同的时延分配来划分,分别有单位时延模型、扇出时延模型和可定制时延模型等。由于线的时延会随着负载电路的增加而加大,扇出时延模型将线的时延定义为线的扇出分支数,比单纯假定每个线的时延为I个单位的单位时延模型更接近于实际。为了方便描述,做如下假设:
[0054]①每条线传播上升、下降跳变的时延相同;
[0055]②非扇出信号线的时延为一个时间单位;
[0056]③扇出线的时延等于其扇出分支的个数,比如扇出线有2个分支,则扇出线的时延为2个时间单位。
[0057]信号传播通过一条线时,由于线时延原因,假如这条线为非扇出信号线,信号由线向前传播,则信号通过这条线后,相应的信号时间加一个单位时间。假如这条线为扇出线,信号由线向前传播,则信号通过这条线后,相应的信号时间加分支数单位时间。信号由线向后传播,则信号通过这条线后,相应的信号时间减一个单位时间。假如这条线为扇出线,信号由线向后传播,则信号通过这条线后,相应的信号时间减去分支数单位时间。
[0058]门时延即从一个逻辑门的任意输入到其输出的信号传输时延。门时延的类型划分和线时延的相似,对于门时延,由于单个逻辑门根据其输入信号的不同模式会有不同的传播时延。因此,如果知道输入端的信息越多,其延时范围就越小,如果知道所有输入端的信号值,则其延时为一个确定的数值,否则,其时延为一个由最早跳变的时间和最晚跳变的时间组成的时间窗。为了方便描述,做如下假设:
[0059]①门时延在正常延迟范围内,即不产生门时延故障;
[0060]②门时延与线时延做归一化处理;
[0061]③不考虑信号跳变边沿率的影响。
[0062]比如在0.18um工艺库下,或门的时延为单位2,与门的时延为单位2,非门的时延为单位I。
[0063]信号传播通过一逻辑门时,由于门时延原因,假如信号通过逻辑门向前传播时,当信号通过逻辑门以后,信号的到达时间加上相应的门延时。假如信号通过逻辑门向后传播时,当信号通过逻辑门以后,信号的到达时间减去相应的门延时。
[0064](2.2)、电路时序传播
[0065]为了在输出端验证信号的时延信息,就必须在输出端进行米样输出信号,时钟米用时间必须不大于信号的到达时间才能采集到信号。在给定电路的时钟采用时间,如何来确定电路上其他线的时间信息。通过故障线上的信号向前传播和攻击线上的信号向前和向后传播,最后和时钟采样时间联系起来,来确定其它线的时间,最终得到带时间的测试矢量。如何和时钟采样时间联系起来,来确定其它线的时间,最终得到带时间的测试矢量:首先假定故障线和攻击线的信号时间为T,经过后面的回推过程,和向前、向后蕴含过程。当故障线和攻击线的信号通过线向前传播时,加上线时延,得到T的表达式。通过门向前传播时,加上门时延,得到T的表达式;当故障线和攻击线的信号通过线向后传播时,减上线时延,得到T的表达式。通过门向后传播时,减去上门时延,得到T的表达式。得到时延时延的信号线,再通过线和门向前传播或向后传播,得到相应的关于T的表达式,直到信号通过线和门传播原始输出和原始输入,这时在原始输出口上的时钟采样时间就是关于一个T的表达式,在给定时钟采样时间,就可以得到T的值,相应的电路的原始输入也会得到T的表达式,当知道T的值,也可以得到原始输入的时间信息。
[0066](3)、测试矢量的生成
[0067](3.1)根据故障线的故障类型,首先确定攻击线的跳变信息,由此确定攻击线的赋值;然后确定离原始输出线最近的故障边界上的、除故障线外的所有其他输入线的赋值;最后判断上述已赋值的线的赋值是否唯一;如果线赋值是唯一的,则把已赋值的线直接放入初始目标集合中;否则,在这条已赋值的线上设置回溯标志后再将其放入初始目标集合中;
[0068]上述每条线的赋值形式均如:(S,ncr(S),ncf(S),n0(S),Ii1(S))。其中:
[0069]S是目标线。
[0070]ncr(S)是S上要求目标上升跳变的次数。
[0071]ncf(S)是S上要求目标下降跳变的次数。
[0072]n0(S)是S上要求目标逻辑值O的次数。
[0073]H1 (S)是S上要求目标逻辑值I的次数。
[0074]如果这条线的值为上升跳变,我们给这条线赋值形式为(S,1,0,0,0),假如为下降跳变,我们给这条线赋值形式为(S,0,1,0,0),类似的可以给低电平赋值,形式为(S,0,0,1,0),高电平赋值,形式为(5,0,0,0,1)。
[0075]对于故障类型为RI即上升加速故障,再对相关的攻击线赋值上升跳变,把赋值的线放入初始目标集合中。为了能使故障向前传播,假如故障不是在原始输出口,我把与故障线作为输入,共同连接在一个门上的其它输入的线进行赋值,假如连接的是与门或者与非门,采用动态优先策略,赋值上升跳变,采用静态优先策略,赋值为高电平,假如连接的是或门或者或非门,采用动态优先策略,赋值上升跳变,采用静态优先策略,赋值为低电平,假如连接的是异或门,赋值为低电平,假如连接的是同或门,赋值为高电平。假如故障连接的是非门或者恒值门,故障可以直接传播。把赋值的线放入初始目标集合中。为了得到故障,假如故障不是在原始输入口,把故障线作为输出线的相关逻辑门的输入线进行赋值,故障类型为RI即上升加速故障,是上升跳变产生的故障,即输出为上升跳变,逻辑门的输入情况,下面有详细说明。把赋值的线放入初始目标集合中。
[0076]同理对于故障类型为RD即上升减速故障,除了相关的攻击线赋值为下降跳变以夕卜,其余的赋值与故障类型RI —样;为了得到故障,假如故障不是在原始输入口,把故障线作为输出线的相关逻辑门的输入线进行赋值,故障类型为RD即上升减速故障,是上升跳变产生的故障,即输出为上升跳变,逻辑门的输入情况,下面有详细说明。把赋值的线放入初始目标集合中。[0077]对于故障FI即下降加速故障,再对相关的攻击线赋值下降跳变。把赋值的线放入初始目标集合中。为了能使故障向前传播,我把与故障线作为输入,共同连接在一个门上的其它输入的线进行赋值,假如连接的是与门或者与非门,采用动态优先策略,赋值下降跳变,采用静态优先策略,赋值为高电平,假如连接的是或门或者或非门,采用动态优先策略,赋值下降跳变,采用静态优先策略,赋值为低电平,假如连接的是异或门,赋值为低电平,假如连接的是同或门,赋值为高电平。假如故障连接的是非门或者恒值门,故障可以直接传播。把赋值的线放入初始目标集合中。为了得到故障,假如故障不是在原始输入口,把故障线作为输出线的相关逻辑门的输入线进行赋值,故障类型为FI即下降加速故障,是下降跳变产生的故障,输出为下降跳变,逻辑门的输入情况,下面有详细说明。把赋值的线放入初始目标集合中。
[0078]同理对于故障类型为FD即下降减速故障,除了相关的攻击线赋值为上升跳变以夕卜,其余的赋值与故障类型FI —样;为了得到故障,假如故障不是在原始输入口,把故障线作为输出线的相关逻辑门的输入线进行赋值,故障类型为FD即下降减速故障,是下降跳变产生的故障,输出为下降跳变,逻辑门的输入情况,下面有详细说明。把赋值的线放入初始目标集合中。
[0079]对于故障类型为GO即负向尖峰脉冲故障,再对相关的攻击线赋值下降跳变。把赋值的线放入初始目标集合中。为了能使故障向前传播,我把与故障线作为输入,共同连接在一个门上的其它输入的线进行赋值,假如连接的是与门或者与非门,赋值为高电平,假如连接的是或门或者或非门,赋值为低电平,假如连接的是异或门,赋值为低电平,假如连接的是同或门,赋值为高电平。假如故障连接的是非门或者恒值门,故障可以直接传播。把赋值的线放入初始目标集合中。为了得到故障,假如故障不是在原始输入口,把故障线作为输出线的相关逻辑门的输入线进行赋值,故障类型为GO即负向尖峰脉冲故障,是高电平产生的故障,输出为高电平,逻辑门的输入情况,下面有详细说明。把赋值的线放入初始目标集合中。
[0080]同理对于故障类型为Gl即正向尖峰脉冲故障故障,再对相关的攻击线赋值上升跳变。把赋值的线放入初始目标集合中。为了能使故障向前传播,我把与故障线作为输入,共同连接在一个门上的其它输入的线进行赋值,假如连接的是与门或者与非门,赋值为高电平。假如连接的是或门或者或非门,赋值为低电平。假如连接的是异或门,赋值为低电平,假如连接的是同或门,赋值为高电平。假如故障连接的是非门或者恒值门,故障可以直接传播。把赋值的线放入初始目标集合中。为了得到故障,假如故障不是在原始输入口,把故障线作为输出线的相关逻辑门的输入线进行赋值,故障类型为Gl即正向尖峰脉冲故障,是低电平产生的故障,输出为低电平,逻辑门的输入情况,下面有详细说明。把赋值的线放入初始目标集合中。
[0081](3.2)、回推过程(如图2所示,其中C0T:初始目标集,F0T:扇出点目标集)
[0082](3.2.1)、从初始目标集合中,取出一条已经赋值的线,并从初始目标中删除取出的线。
[0083](3.2.2)、判断取出的这条线是否为扇出线,如果为扇出线,把这条线放入扇出线目标集合中,如果不是扇出线再判断这条线是不是原始输入线,如果是,把该线放入端线目标集合中,如果不是,将取出的这条线向后蕴含一个门,我们采用五元式回推目标,[0084]现假定取出的线赋值为上升跳变,向后蕴含一个门,如果这个门的类型为与门,如果采用动态优先策略,回推,把与门的输入都赋值为上升跳变,如果采用静态优先策略,回推,把与门的一部分输入赋值为上升跳变,一部分输入赋值为高电平,回推后,赋值为跳变信号的信号线,相应的信号线的时间要减去门时延的时间。因为此时与门的输入有不同的赋值情况,所以要置回溯标志,假如赋值的一种情况被验证错误,再到此回溯标志处,赋其他情况的值。
[0085]向后蕴含过程中,拿两输入和一个输出的门来说,包括,与门、与非门、或门、或非门、异或门、同或门,和一个输出和一个输入的门来说,包括,非门、恒等门的关系如下:
[0086]I)与门的输出和输入关系如下:
[0087]假如输出为上升跳变,可以推出输入有三种情况组合(一种为动态优先,所有的输入为上升跳变;剩余为静态优先,第二种情况为输入I为上升跳变,输入2为高电平;第三种情况为输入I为高电平,输入2为上升跳变)
[0088]假如输出为下降跳变,可以推出输入有三种情况组合(一种为动态优先,所有的输入为下降跳变;剩余为静态优先,第二种情况为输入I为下降跳变,输入2为高电平;第三种情况为输入I为高电平,输入2为下降跳变)
[0089]假如输出为低电平,可以推出输入有多种情况组合(动态优先,输入I为下降跳变,输入2为上升跳变,或者输入I为上升跳变,输入2为下降跳变;静态优先,只要有一个输入为低电平,另一输入可以赋任意值,任意值可以是上升跳变、下降跳变、低电平、高电平其中的任意一种)
[0090]假如输出为高电平,可以推出输入有一种情况组合(所有的输入为高电平)
[0091]2)与非门的输出和输入关系如下:
[0092]假如输出为上升跳变,可以推出输入有三种情况组合(一种为动态优先,所有的输入为下降跳变;剩余为静态优先,第二种情况为输入I为下降跳变,输入2为高电平;第三种情况为输入I为高电平,输入2为下降跳变)
[0093]假如输出为下降跳变,可以推出输入有三种情况组合(一种为动态优先,所有的输入为上升跳变;剩余为静态优先,第二种情况为输入I为上升跳变,输入2为高电平;第三种情况为输入I为高电平,输入2为上升跳变)
[0094]假如输出为低电平,可以推出输入有一种情况组合(所有的输入为高电平)
[0095]假如输出为高电平,可以推出输入有多种情况组合(动态优先,输入I为下降跳变,输入2为上升跳变,或者输入I为上升跳变,输入2为下降跳变;静态优先,只要有一个输入为低电平,另一输入可以赋任意值,任意值可以是上升跳变、下降跳变、低电平、高电平其中的任意一种)
[0096]3)或门的输出和输入关系如下:
[0097]假如输出为上升跳变,可以推出输入有三种情况组合(一种为动态优先,所有的输入为上升跳变;剩余为静态优先,第二种情况为输入I为上升跳变,输入2为低电平;第三种情况为输入I为低电平,输入2为上升跳变)
[0098]假如输出为下降跳变,可以推出输入有三种情况组合(一种为动态优先,所有的输入为下降跳变;剩余为静态优先,第二种情况为输入I为下降跳变,输入2为低电平;第三种情况为输入I为低电平,输入2为下降跳变)[0099]假如输出为低电平,可以推出输入有一种情况组合(所有的输入为低电平)
[0100]假如输出为高电平,可以推出输入有多种情况组合(动态优先,输入I为下降跳变,输入2为上升跳变,或者输入I为上升跳变,输入2为下降跳变;静态优先,只要有一个输入为高电平,另一输入可以赋任意值,任意值可以是上升跳变、下降跳变、低电平、高电平其中的任意一种)
[0101]4)或非门的输出和输入关系如下:
[0102]假如输出为上升跳变,可以推出输入有三种情况组合(一种为动态优先,所有的输入为下降跳变;剩余为静态优先,第二种情况为输入I为下降跳变,输入2为低电平;第三种情况为输入I为低电平,输入2为下降跳变)
[0103]假如输出为下降跳变,可以推出输入有三种情况组合(一种为动态优先,所有的输入为上升跳变;剩余为静态优先,第二种情况为输入I为上升跳变,输入2为低电平;第三种情况为输入I为低电平,输入2为上升跳变)
[0104]假如输出为低电平,可以推出输入有多种情况组合(动态优先,输入I为下降跳变,输入2为上升跳变,或者输入I为上升跳变,输入2为下降跳变;静态优先,只要有一个输入为高电平,另一输入可以赋任意值,任意值可以是上升跳变、下降跳变、低电平、高电平其中的任意一种)
[0105]假如输出为高电平,可以推出输入有一种情况组合(所有的输入为低电平)
[0106]5)异或门的输出和输入关系如下:
[0107]假如输出为上升跳变,可以推出输入有四种情况组合(一种为,输入I为上升跳变,输入2为低电平,第二种情况为输入I为低电平,输入2为上升跳变,第三种情况,输入I为下降跳变,输入2为高电平;第四种情况为输入I为高电平,输入2为下降跳变)
[0108]假如输出为下降跳变,可以推出输入有四种情况组合(一种为,输入I为下降跳变,输入2为低电平,第二种情况为输入I为低电平,输入2为上升下降跳变,第三种情况,输入I为上升跳变,输入2为高电平;第四种情况为输入I为高电平,输入2为上升跳变)
[0109]假如输出为低电平,可以推出输入有四种情况组合(动态优先,第一种情况为所有的输入为下降跳变;第二种情况为所有的输入为上升跳变;静态优先,第三种情况为所有的输入为低电平;第四种情况为所有的输入为高电平)
[0110]假如输出为高电平,可以推出输入有四种情况组合(动态优先,第一种情况为输入I为上升跳变,输入2为下降跳变;第二种情况为输入I为下降跳变,输入2为上升跳变;静态优先,第三种情况为输入I为低电平,输入2为高电平;第四种情况为输入I为高电平,输入2为低电平)
[0111]6)同或门的输出和输入关系如下:
[0112]假如输出为上升跳变,可以推出输入有四种情况组合(一种为,输入I为上升跳变,输入2为高电平,第二种情况为输入I为高电平,输入2为上升跳变,第三种情况,输入I为下降跳变,输入2为低电平;第四种情况为输入I为低电平,输入2为下降跳变)
[0113]假如输出为下降跳变,可以推出输入有四种情况组合(一种为,输入I为下降跳变,输入2为高电平,第二种情况为输入I为高电平,输入2为上升下降跳变,第三种情况,输入I为上升跳变,输入2为低电平;第四种情况为输入I为低电平,输入2为上升跳变)
[0114]假如输出为低电平,可以推出输入有四种情况组合(动态优先,第一种情况为输入I为上升跳变,输入2为下降跳变;第二种情况为输入I为下降跳变,输入2为上升跳变;静态优先,第三种情况为输入I为低电平,输入2为高电平;第四种情况为输入I为高电平,输入2为低电平)
[0115]假如输出为高电平,可以推出输入有四种情况组合(动态优先,第一种情况为所有的输入为下降跳变;第二种情况为所有的输入为上升跳变;静态优先,第三种情况为所有的输入为低电平;第四种情况为所有的输入为高电平)
[0116]7)非门的输出和输入关系如下:
[0117]假如输出为上升跳变,可以推出输入为下降跳变
[0118]假如输出为下降跳变,可以推出输入为上升跳变
[0119]假如输出为低电平,可以推出输入为高电平
[0120]假如输出为高电平,可以推出输入为低电平
[0121]8)恒值门的输出和输入关系如下:
[0122]假如输出为上升跳变,可以推出输入为上升跳变
[0123]假如输出为下降跳变,可以推出输入为下降跳变
[0124]假如输出为低电平,可以推出输入为低电平
[0125]假如输出为高电平,可以推出输入为高电平
[0126]根据以上对应关系形成向后蕴含真值表。
[0127]向后蕴含一个门后,当前回推门的输入已经赋值,首先作如下判断,此线是否为扇出线,如果为扇出线,把这条线放入扇出线目标集合中,如果不是扇出线再判断这条线是不是原始输入线,如果是,把该线放入端线目标集合中,如果不是,把当前回推门的输入作为下一个门的输出,在当前时间值的情况下减去线时延的时间,继续向后再回推一个门,然后再减去回推的门时延时间,类似的一直往下回推,每次回推一步减去相应的线时延和门时延,直到回推到扇出点处,把相应的线放入扇出线目标集合中,或者直接回推到原始输入端,放入端线目标集合中,此时,从初始目标集合中取出的一条线回推结束,然后从初始目标集合中再取出一条线,类似的继续往下回推,直到初始目标集合中所有的线都取完。
[0128](3.2.3)、当初始目标集合中的线都已经取完,再从扇出点目标集合中取,首先对扇出点目标集合进行排序,按照离原始输出口距离从近到远排序,先取出离原始输出口最近的扇出点,进行回推。取出一个扇出点后,先从扇出点集合中删除该扇出点,然后进行回推时,首先判断取出的扇出点是否有两种以上不同的赋值,如果有两种以上的赋值要求,我们就要进行值的判定,按值要求的次数从大到小排序,比如一个扇出点的赋值要求是Cs, 2,3,I, 0),说明这个点的赋值要求是上升跳变的次数为2次,下降跳变的次数为3次,要求低电平的次数为I次,要求高电平的次数为O次,赋值要求次数按从大到小排好后,先判定这个扇出点的值为要求次数最多的那个值,上个例子要求次数最多的就是下降跳变,判定值后把该值通过逻辑门向前蕴含,因为扇出点有多条分支,每条分支都要进行蕴含,都蕴含成功说明判定值可行,如果有一条分支蕴含失败,则说明这个判定值不行。再重新判定一个新值,再向前蕴含,如果还有分支不能进行蕴含,还要再判定其他值。如果扇出点的所有值都已经判断完,都没有蕴含成功,那么这次回推是行不通的,即故障不能通过该门传播到输出,必须重新选择和故障相连的其他的门,从故障边界中选择其他的门,再赋值向后回推,重复上诉过程,如果和故障相连的所有门都不能将故障向前传播,则说明此故障不可以测。如果有值可以判定成功,这把此扇出点赋予该判定值,然后把赋值后的扇出点通过逻辑门向后进行回推,和(3.2.2)回推过程相同。如果取出的扇出点没有多种赋值要求,只有一种赋值要求,那么通过逻辑门,将该扇出向后进行回推,和(3.2.2)回推过程相同,直到把扇出点目标集合中所有的扇出点都取完,本次回推过程结束。
[0129](3.2.3.1)、蕴含过程
[0130]正向蕴含即向前蕴含就是指知道逻辑门的所有输入,可以得出逻辑门的输出;反向蕴含即向后蕴含是指知道一个逻辑门的输出和某些输入,确定其它的输入。比如对于一个有两个输入和一个输出的逻辑门来说,正向蕴含的规则如下:
[0131]I)与门的输入和输出关系如下:
[0132]假如输入中有一个输入为低电平,可以推出输出为低电平;假如一个输入为高电平,另一个输入为高电平,可以推出输出为高电平。一个输入为高电平,另一个输入为上升跳变,可以推出输出为上升跳变。一个输入为高电平,另一个输入为下降跳变,可以推出输出为下降跳变;假如一个输入为上升跳变,另一个输入上升跳变,可以推出输出为上升跳变。假如一个输入为上升跳变,另一个输入下降跳变,可以推出输出为低电平;假如一个输入为下降跳变,另一个输入下降跳变,可以推出输出为下降跳变。
[0133]2)与非门的输入和输出关系如下:
[0134]假如输入中有一个输入为低电平,可以推出输出为高电平;假如一个输入为高电平,另一个输入为高电平,可以推出输出为低电平。一个输入为高电平,另一个输入为上升跳变,可以推出输出为下降跳变。一个输入为高电平,另一个输入为下降跳变,可以推出输出为上升跳变。假如一个输入为上升跳变,另一个输入上升跳变,可以推出输出为下降跳变。假如一个输入为上升跳变,另一个输入下降跳变,可以推出输出为高电平;假如一个输入为下降跳变,另一个输入下降跳变,可以推出输出为上升跳变。
[0135]3)或门的输入和输出关系如下:
[0136]假如输入中有一个输入为高电平,可以推出输出为高电平;假如一个输入为低电平,另一个输入为低电平,可以推出输出为低电平。一个输入为低电平,另一个输入为上升跳变,可以推出输出为上升跳变。一个输入为低电平,另一个输入为下降跳变,可以推出输出为下降跳变。假如一个输入为上升跳变,另一个输入上升跳变,可以推出输出为上升跳变。假如一个输入为上升跳变,另一个输入下降跳变,可以推出输出为高电平;假如一个输入为下降跳变,另一个输入下降跳变,可以推出输出为下降跳变。
[0137]4)或非门的输入和输出关系如下:
[0138]假如输入中有一个输入为高电平,可以推出输出为低电平;假如一个输入为低电平,一个输入为低电平,可以推出输出为高电平。一个输入为低电平,一个输入为上升跳变,可以推出输出为下降跳变。一个输入为低电平,一个输入为下降跳变,可以推出输出为上升跳变。假如一个输入为上升跳变,另一个输入上升跳变,可以推出输出为下降跳变。假如一个输入为上升跳变,另一个输入下降跳变,可以推出输出为低电平;假如一个输入为下降跳变,另一个输入下降跳变,可以推出输出为上升跳变。
[0139]5)异或门的输入和输出关系如下:
[0140]假如输入中一个输入为低电平,另一输入为低电平,可以推出输出为低电平;假如一个输入为低电平,一个输入为高电平,可以推出输出为高电平。一个输入为低电平,另一个输入为上升跳变,可以推出输出为上升跳变。一个输入为低电平,另一个输入为下降跳变,可以推出输出为下降跳变;假如输入中一个输入为高电平,另一输入为高电平,可以推出输出为低电平。一个输入为高电平,另一个输入为上升跳变,可以推出输出为下降跳变。一个输入为高电平,另一个输入为下降跳变,可以推出输出为上升跳变;假如一个输入为上升跳变,另一个输入上升跳变,可以推出输出为低电平。假如一个输入为上升跳变,另一个输入下降跳变,可以推出输出为高电平;假如一个输入为下降跳变,另一个输入下降跳变,可以推出输出为低电平。
[0141]6)同或门的输入和输出关系如下:
[0142]假如输入中一个输入为低电平,另一输入为低电平,可以推出输出为高电平;假如一个输入为低电平,一个输入为高电平,可以推出输出为高电平。一个输入为低电平,另一个输入为上升跳变,可以推出输出为下降跳变。一个输入为低电平,另一个输入为下降跳变,可以推出输出为上升跳变;假如输入中一个输入为高电平,另一输入为高电平,可以推出输出为高电平。一个输入为高电平,另一个输入为上升跳变,可以推出输出为上升跳变。一个输入为高电平,另一个输入为下降跳变,可以推出输出为下降跳变;假如一个输入为上升跳变,另一个输入上升跳变,可以推出输出为高电平。假如一个输入为上升跳变,另一个输入下降跳变,可以推出输出为低电平;假如一个输入为下降跳变,另一个输入下降跳变,可以推出输出为高电平。
[0143]7)非门的输入和输出关系如下:
[0144]假如输入为上升跳变,可以推出输出为下降跳变
[0145]假如输入为下降跳变,可以推出输出为上升跳变
[0146]假如输入为低电平,可以推出输出为高电平
[0147]假如输入为高电平,可以推出输出为低电平
[0148]8)恒值门的输入和输出关系如下:
[0149]假如输入为上升跳变,可以推出输出为上升跳变
[0150]假如输入为下降跳变,可以推出输出为下降跳变
[0151]假如输入为低电平,可以推出输出为低电平
[0152]假如输入为高电平,可以推出输出为高电平
[0153]反向蕴含的规则如下:
[0154]假如只知道输出,确定输入的赋值情况和反向回推过程一样。
[0155]下面的过程为知道输出和一个输入,确定另一个输入:
[0156]I)与门的关系如下:
[0157]假如输出为低电平,当其中一个输入为低电平,可以推出另一个输入为任意值(低电平、高电平、上升跳变、下降跳变其中之一)。当其中一个输入为上升跳变,可以推出另一个输入为下降跳变或者低电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。当其中一个输入为下降跳变,可以推出另一个输入为上升跳变或者低电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。当其中一个输入为高电平,可以推出另一个输入为低电平;
[0158]假如输出为高电平,其中一个输入为高电平,可以推出另一个输入为高电平;
[0159]假如输出为上升跳变,当其中一个输入为高电平,可以推出另一个输入为上升跳变。或者当其中一个输入为上升跳变,可以推出另一个输入为上升跳变或者为高电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。
[0160]假如输出为下降跳变,其中一个输入为高电平,可以推出另一个输入为下降跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为下降跳变或者为高电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。
[0161]2)与非门的关系如下:
[0162]假如输出为低电平,其中一个输入为高电平,可以推出另一个输入为高电平;
[0163]假如输出为高电平,当其中一个输入为低电平,可以推出另一个输入为任意值(低电平、高电平、上升跳变、下降跳变其中之一)。当其中一个输入为上升跳变,可以推出另一个输入为下降跳变或者低电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。当其中一个输入为下降跳变,可以推出另一个输入为上升跳变或者低电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。当其中一个输入为高电平,可以推出另一个输入为低电平;
[0164]假如输出为上升跳变,其中一个输入为高电平,可以推出另一个输入为下降跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为下降跳变或者为高电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。
[0165]假如输出为下降跳变,当其中一个输入为高电平,可以推出另一个输入为上升跳变。或者当其中一个输入为上升跳变,可以推出另一个输入为上升跳变或者为高电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。
[0166]3)或门的关系如下:
[0167]假如输出为低电平,其中一个输入为低电平,可以推出另一个输入为低电平;
[0168]假如输出为高电平,当其中一个输入为高电平,可以推出另一个输入为任意值(低电平、高电平、上升跳变、下降跳变其中之一)。当其中一个输入为上升跳变,可以推出另一个输入为下降跳变或者高电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。当其中一个输入为下降跳变,可以推出另一个输入为上升跳变或者高电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。当其中一个输入为低电平,可以推出另一个输入为高电平;
[0169]假如输出为上升跳变,其中一个输入为低电平,可以推出另一个输入为上升跳变。或者当其中一个输入为上升跳变,可以推出另一个输入为上升跳变或者为低电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。
[0170]假如输出为下降跳变,当其中一个输入为低电平,可以推出另一个输入为下降跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为下降跳变或者为低电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。
[0171]4)或非门的关系如下:
[0172]假如输出为低电平,当其中一个输入为高电平,可以推出另一个输入为任意值(低电平、高电平、上升跳变、下降跳变其中之一)。当其中一个输入为上升跳变,可以推出另一个输入为下降跳变或者高电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。当其中一个输入为下降跳变,可以推出另一个输入为上升跳变或者高电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。当其中一个输入为低电平,可以推出另一个输入为高电平;
[0173]假如输出为高电平,其中一个输入为低电平,可以推出另一个输入为低电平;
[0174]假如输出为上升跳变,当其中一个输入为低电平,可以推出另一个输入为下降跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为下降跳变或者为低电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。
[0175]假如输出为下降跳变,其中一个输入为低电平,可以推出另一个输入为上升跳变。或者当其中一个输入为上升跳变,可以推出另一个输入为上升跳变或者为低电平(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。
[0176]5)异或门的关系如下:
[0177]假如输出为低电平,其中一个输入为低电平,可以推出另一个输入为低电平。或者当其中一个输入为高电平,可以推出另一个输入为高电平。或者当其中一个输入为上升跳变,可以推出另一个输入为上升跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为下降跳变;
[0178]假如输出为高电平,当其中一个输入为高电平,可以推出另一个输入低电平。当其中一个输入为上升跳变,可以推出另一个输入为下降跳变。当其中一个输入为下降跳变,可以推出另一个输入为上升跳变。当其中一个输入为低电平,可以推出另一个输入为高电平;
[0179]假如输出为上升跳变,其中一个输入为低电平,可以推出另一个输入为上升跳变。或者当其中一个输入为上升跳变,可以推出另一个输入为低电平。其中一个输入为高电平,可以推出另一个输入为下降跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为闻电平。
[0180]假如输出为下降跳变,当其中一个输入为低电平,可以推出另一个输入为下降跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为低电平。其中一个输入为高电平,可以推出另一个输入为上升跳变。或者当其中一个输入为上升跳变,可以推出另一个输入为高电平。
[0181]6)同或门的关系如下:
[0182]假如输出为低电平,其中一个输入为低电平,可以推出另一个输入为高电平。或者当其中一个输入为高电平,可以推出另一个输入为低电平。或者当其中一个输入为上升跳变,可以推出另一个输入为下降跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为上升跳变;
[0183]假如输出为高电平,当其中一个输入为高电平,可以推出另一个输入高电平。当其中一个输入为上升跳变,可以推出另一个输入为上升跳变。当其中一个输入为下降跳变,可以推出另一个输入为下降跳变。当其中一个输入为低电平,可以推出另一个输入为低电平;
[0184]假如输出为上升跳变,其中一个输入为高电平,可以推出另一个输入为上升跳变。或者当其中一个输入为上升跳变,可以推出另一个输入为高电平。其中一个输入为低电平,可以推出另一个输入为下降跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为低电平。
[0185]假如输出为下降跳变,当其中一个输入为高电平,可以推出另一个输入为下降跳变。或者当其中一个输入为下降跳变,可以推出另一个输入为高电平。其中一个输入为低电平,可以推出另一个输入为上升跳变。或者当其中一个输入为上升跳变,可以推出另一个输入为低电平。
[0186]7)非门的关系如下:
[0187]假如输出为上升跳变,可以推出输入为下降跳变
[0188]假如输出为下降跳变,可以推出输入为上升跳变
[0189]假如输出为低电平,可以推出输入为高电平
[0190]假如输出为高电平,可以推出输入为低电平
[0191]8)恒值门的关系如下:
[0192]假如输出为上升跳变,可以推出输入为上升跳变
[0193]假如输出为下降跳变,可以推出输入为下降跳变
[0194]假如输出为低电平,可以推出输入为低电平
[0195]假如输出为高电平,可以推出输入为高电平
[0196]根据以上对应关系形成正向蕴含真值表。
[0197](3.2.3.2)、判定蕴含结果
[0198]取出扇出点,如果赋值要求只有一种情况,则说明该扇出点赋值没有矛盾,可以继续向后回推,和(3.2.2)回推过程相同。如果赋值要求有多种情况,则说明该扇出点赋值有矛盾,需要进行蕴含判定,按照赋值要求的次数从大到小排序,先取要求次数最大的值进行判定,验证选取那些回推的值不是此判定值的分支,判断此判定值是否可以蕴含那些分支。
[0199]从初始目标集合取值向后回推过程中,经过每个逻辑门的回推时,对于逻辑门有不同的赋值情况的,都已经标注有回溯标志,从有矛盾的扇出点进行蕴含过程,就是回推的一个可逆过程。把判定值作为输入通过逻辑门向前蕴含,首先确认逻辑门有无回溯标志,若没有回溯标志,能否通过对逻辑门的其他输入赋值得到输出,假如能得到,则说明蕴含成功,如果通过对其它输入的赋值也不能得到输出的值,则通过判定值和其他输入的值确定新的输出的值,接下来,就是判定新确定的输出值可行与否。若有回溯标志,看此逻辑门的输出值对应的输入组合中有没有判定值,如果有,就选择这个输入组合,给其他输入重新赋值,则蕴含成功,如果输入值组合中没有判定值,和没有回溯标志一样,则通过判定值和其他输入的值确定新的输出的值,接下来,就是判定新确定的输出值可行与否。判定新确定的输出值可行与否,把新确定输出的值作为新的判定值,把判定值作为下一个逻辑门的输入向前蕴含,按照上面的过程,如果蕴含不成功,继续把新的判定值作为在下一个逻辑门的输入向前蕴含,如果一直蕴含不成功,直到最后一个置回溯标志的逻辑门,仍然不能蕴含成功,则说明刚开始所选的扇出点判定值,不可行,再选择新的判定值再进行下一轮的判定。
[0200](3.3)、判断故障是否已经传播到原始输出口,如果已经传播到原始输出口,则下一步需要确定没有验证的线,以上述回推过程所确定的各条线的赋值,向前向后蕴含得出测试电路中其余未验证的线,得到最终的带时间的测试矢量。如果故障还没有传播到原始输出口,则把故障通过这个逻辑门向前传播到下一个逻辑门,故障边界发生变化,因为故障向前传播,所以连接故障的逻辑门变成了下一个逻辑门,故障边界发生了变化,就要重新对初始目标赋值并进行回溯即向后回推。新的初始目标就是能再使故障正常向前传播的新逻辑门其他的输入,如果输入有不同的赋值要求,就要求置一个回溯标志,以防止首次确定的值不能得到真确的验证,来赋其他符合要求的值,当然如果所有赋值要求都不能验证,则说明这个逻辑门不能传播故障,故障不能通过该逻辑门传播到输出,则要寻找下一个与故障相连的逻辑门,即寻找故障边界中的其他逻辑门,和上面提到的一样。假如所有与故障相连的逻辑门都不能使故障向前传播的话,这个故障就不可以测试。
[0201]回到给逻辑门赋值,当给逻辑门的输入赋值以后,把所有赋好值的输入放入初始目标集合中进行回推,过程和(3)相同。
[0202](3.3.1)、故障的传播过程
[0203]故障在传播过程中,只是进行向前的传播,不进行向后的回推。向前传播时,故障作为一个逻辑门的输入,不同的故障类型对于不同的逻辑门,逻辑门的其他输入赋值情况和输出的故障类型如下:
[0204]I)对于上升时延加速故障。
[0205]通过与门向前传播时,与门的其他输入为高电平或者为上升跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为上升时延加速故障。
[0206]通过与非门向前传播时,与非门的其他输入为高电平或者为上升跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为下降时延加速故障。
[0207]通过或门向前传播时,或门的其他输入为低电平或者为上升跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为上升时延加速故障。
[0208]通过或非门向前传播时,或非门的其他输入为低电平或者为上升跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为下降时延加速故障。
[0209]通过异或门向前传播时,异或门的其他输入为低电平。传播到输出的故障类型为上升时延加速故障;异或门的其他输入为高电平。传播到输出的故障类型为下降时延加速故障。
[0210]通过同或门向前传播时,同或门的其他输入为低电平。传播到输出的故障类型为下降时延加速故障;同或门的其他输入为高电平。传播到输出的故障类型为上升时延加速故障。
[0211]通过非门向前传播时,传播到输出的故障类型为下降时延加速故障。
[0212]通过恒值门向前传播时,传播到输出的故障类型为上升时延加速故障。
[0213]2)对于上升时延减速故障。
[0214]通过与门向前传播时,与门的其他输入为高电平或者为上升跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为上升时延减速故障。
[0215]通过与非门向前传播时,与非门的其他输入为高电平或者为上升跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为下降时延减速故障。
[0216]通过或门向前传播时,或门的其他输入为低电平或者为上升跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为上升时延减速故障。
[0217]通过或非门向前传播时,或非门的其他输入为低电平或者为上升跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为下降时延减速故障。
[0218]通过异或门向前传播时,异或门的其他输入为低电平。传播到输出的故障类型为上升时延减速故障;异或门的其他输入为高电平。传播到输出的故障类型为下降时延减速故障。
[0219]通过同或门向前传播时,同或门的其他输入为低电平。传播到输出的故障类型为下降时延减速故障;同或门的其他输入为高电平。传播到输出的故障类型为上升时延减速故障。
[0220]通过非门向前传播时,传播到输出的故障类型为下降时延减速故障。
[0221]通过恒值门向前传播时,传播到输出的故障类型为上升时延减速故障。
[0222]3)对于下降时延加速故障。
[0223]通过与门向前传播时,与门的其他输入为高电平或者为下降跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为下降时延加速故障。
[0224]通过与非门向前传播时,与非门的其他输入为高电平或者为下降跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为上升时延加速故障。
[0225]通过或门向前传播时,或门的其他输入为低电平或者为下降跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为下降时延加速故障。
[0226]通过或非门向前传播时,或非门的其他输入为低电平或者为下降跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为上升时延加速故障。
[0227]通过异或门向前传播时,异或门的其他输入为低电平。传播到输出的故障类型为下降时延加速故障;异或门的其他输入为高电平。传播到输出的故障类型为上升时延加速故障。
[0228]通过同或门向前传播时,同或门的其他输入为低电平。传播到输出的故障类型为上升时延加速故障;同或门的其他输入为高电平。传播到输出的故障类型为下降时延加速故障。
[0229]通过非门向前传播时,传播到输出的故障类型为上升时延加速故障。
[0230]通过恒值门向前传播时,传播到输出的故障类型为下降时延加速故障。
[0231]4)对于下降时延减速故障。
[0232]通过与门向前传播时,与门的其他输入为高电平或者为下降跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为下降时延减速故障。
[0233]通过与非门向前传播时,与非门的其他输入为高电平或者为下降跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为上升时延减速故障。
[0234]通过或门向前传播时,或门的其他输入为低电平或者为下降跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为下降时延减速故障。
[0235]通过或非门向前传播时,或非门的其他输入为低电平或者为下降跳变,(动态优先,首先考虑赋值跳变值;静态优先,首先考虑赋恒定值)。传播到输出的故障类型为上升时延减速故障。
[0236]通过异或门向前传播时,异或门的其他输入为低电平。传播到输出的故障类型为下降时延减速故障;异或门的其他输入为高电平。传播到输出的故障类型为上升时延减速故障。
[0237]通过同或门向前传播时,同或门的其他输入为低电平。传播到输出的故障类型为上升时延减速故障;同或门的其他输入为高电平。传播到输出的故障类型为下降时延减速故障。
[0238]通过非门向前传播时,传播到输出的故障类型为上升时延减速故障。
[0239]通过恒值门向前传播时,传播到输出的故障类型为下降时延减速故障。
[0240]5)对于正向尖峰脉冲故障。
[0241]通过与门向前传播时,与门的其他输入为高电平。传播到输出的故障类型为正向尖峰脉冲故障。
[0242]通过与非门向前传播时,与非门的其他输入为高电平。传播到输出的故障类型为反向尖峰脉冲故障。
[0243]通过或门向前传播时,或门的其他输入为低电平。传播到输出的故障类型为正向尖峰脉冲故障。
[0244]通过或非门向前传播时,或非门的其他输入为低电平或。传播到输出的故障类型为反向尖峰脉冲故障。
[0245]通过异或门向前传播时,异或门的其他输入为低电平。传播到输出的故障类型为正向尖峰脉冲故障;异或门的其他输入为高电平。传播到输出的故障类型为反向尖峰脉冲故障。
[0246]通过同或门向前传播时,同或门的其他输入为低电平。传播到输出的故障类型为反向尖峰脉冲故障;同或门的其他输入为高电平。传播到输出的故障类型为正向尖峰脉冲故障。
[0247]通过非门向前传播时,传播到输出的故障类型为正向尖峰脉冲故障。
[0248]通过恒值门向前传播时,传播到输出的故障类型为反向尖峰脉冲故障。
[0249]6)对于反向尖峰脉冲故障。
[0250]通过与门向前传播时,与门的其他输入为高电平。传播到输出的故障类型为反向尖峰脉冲故障。
[0251]通过与非门向前传播时,与非门的其他输入为高电平。传播到输出的故障类型为正向尖峰脉冲故障。
[0252]通过或门向前传播时,或门的其他输入为低电平。传播到输出的故障类型为反向尖峰脉冲故障。
[0253]通过或非门向前传播时,或非门的其他输入为低电平或。传播到输出的故障类型为正向尖峰脉冲故障。
[0254]通过异或门向前传播时,异或门的其他输入为低电平。传播到输出的故障类型为反向尖峰脉冲故障;异或门的其他输入为高电平。传播到输出的故障类型为正向尖峰脉冲故障。
[0255]通过同或门向前传播时,同或门的其他输入为低电平。传播到输出的故障类型为正向尖峰脉冲故障;同或门的其他输入为高电平。传播到输出的故障类型为反向尖峰脉冲
故障 。
[0256]通过非门向前传播时,传播到输出的故障类型为反向尖峰脉冲故障。
[0257]通过恒值门向前传播时,传播到输出的故障类型为正向尖峰脉冲故障。
[0258](3.3.2)、验证没有验证的线,确定最终的测试矢量
[0259]对于最终测试矢量(TP)的生成,测试矢量是指施加于电路原始输入的测试变量的集合,即:TP= (TV1,TV2,…,TVn),其中n为原始输入的个数。测试变量(TV)指施加或产生于被测电路,的原始输入,原始输出,及电路内部线上的信号,有如下形式:
[0260]TV= (TB, TA, AT)
[0261]其中:
[0262]TB:跳变前电平,取值0或者I ;
[0263]TA:跳变后电平,取值0或者I ;
[0264]AT:信号到达时间,当信号电压幅值0.5XVdd时所对应的时间,Vdd为高电平时的
电压幅值。
[0265]对于上升跳变R,其测试变量的表达式为R = (0,1,A r)。
[0266]对于静态高电平S I,其测试变量的表达式为S I =(l,l,0)o
[0267]当故障传播到输出以后,对没有验证线进行验证,分别把没有验证的线进行赋值,然后把赋值的线向前和向后进行蕴含,如果蕴含不成功,则重新给线赋值,赋值情况为上升跳变,下降跳变,低电平和高电平,如果所有赋值情况都不能让该线赋值成功,则不能得到最终的测试矢量。如果所有线都得到了验证,就可以得到最终的带时间的测试矢量。
[0268](4)、将所得的测试矢量从测试电路的原始输入口输入,并在测试电路的原始输出口进行信号的采集,获得传播时延或电压幅值信息;将传播时延或电压幅值信息与预设的传播时延或电压幅值进行比较,若获得的传播时延或电压幅值处在预设定的传播时延或电压幅值允许范围内,则说明该指定故障线所指定的故障类型对测试电路无影响,无需对指定的故障线进行调整;若获得的传播时延或电压幅值处在预设定的传播时延或电压幅值允许范围外,则说明该指定故障线所指定的故障类型对测试电路有影响,需要对指定的故障线进行调整。若指定的故障类型为正向尖峰脉冲故障Gl或负向尖峰脉冲故障GO时,则采集和比较的是测试电路的电压幅值信息,若指定的故障类型为上升时延加速故障R1、上升时延减速故障RD、下降时延加速故障FI或下降时延减速故障FD时,则采集和比较的是测试电路的传播时延信息。
[0269](5)、重复以上所有步骤,直至将测试电路中所有线的所有故障类型均指定一遍,即可完成对测试电路的测试过程。
【权利要求】
1.高速互连通路串扰故障测试方法,其特征是包括如下步骤: (1)测试电路的设定 (1.1)对测试电路进行分析,并从测试电路中任意选择一条线作为指定的故障线;并从测试电路中找出一条与该故障线最为接近的至少一条线作为指定的攻击线;并从测试电路中找出所有以故障线为输入线的逻辑门作为故障边界,并形成故障边界集合; (1.2)从正向尖峰脉冲故障G1、负向尖峰脉冲故障GO、上升时延加速故障R1、上升时延减速故障RD、下降时延加速故障FI和下降时延减速故障FD这6种故障类型中任选一种故障类型作为故障线的指定故障; (2)确定测试电路的时延信息 (2.1)生成测试电路的门级网表,并对门级网表进行静态时序分析,分析得出测试电路的线时延和门时延信息; (2.2)假定故障线和攻击线的信号时间均为T ;当故障线和攻击线的信号通过线向前传播时,加上线时延;当故障线和攻击线的信号通过逻辑门向前传播时,加上门时延;当故障线和攻击线的信号通过线向后传播时,减去线时延;当故障线和攻击线的信号通过逻辑门向后传播时,减去门时延;由此获得测试电路中所有线的关于时间T的时序传播表达式; (3)测试矢量的生成 (3.1)根据故障线的故障类型,首先确定攻击线的跳变信息,由此确定攻击线的赋值;然后确定离原始输出线最近的故障边界上的、除故障线外的所有其他输入线的赋值;最后判断上述已赋值的线的赋值是否唯一;如果线赋值是唯一的,则把已赋值的线直接放入初始目标集合中;否则,在这条已赋值的线上设置回溯标志后再将其放入初始目标集合中; 上述每条线的赋值形式均为;其中S是目标线;ncr(S)是S上要求目标上升跳变的次数;nef(S)是S上要求目标下降跳变的次数;nQ(S)是S上要求目标逻辑值O的次数;ni (S)是S上要求目标逻辑值I的次数; (3.2)回推过程 (3.2.1)先从步骤(3.1)所得的初始目标集合中任取一条已赋值的线,并从初始目标中删除取出的线; (3.2.2)判断取出的这条线是否为扇出线,如果为扇出线,则把这条线放入扇出线目标集合中,如果不是扇出线,则再判断这条线是不是原始输入线;若果是原始输入线,则把该线放入端线目标集合中,如果不是原始输入线,则将取出的这条线向后蕴含一个逻辑门,并在当前时间值T的情况下减去该逻辑门的门时延;如果向后蕴含时,该逻辑门的所有输入线可能出现2种或2种以上的赋值情况时,则在该逻辑门的输出线上设置回溯标志; 再对当前向后蕴含逻辑门的输入线进行判断,即判断输入线是否为扇出线,如果为扇出线,则把这条线放入扇出线目标集合中,如果不是扇出线,则再判断这条线是不是原始输入线;若果是原始输入线,则把该线放入端线目标集合中,如果不是原始输入线,则把当前向后蕴含逻辑门的输入作为下一个向后蕴含逻辑门的输出,并在当前时间值的情况下减去向后蕴含所经过的线时延和门时延的时间; 一直往后一步一步向后媪含,每次向后媪含一步均减去向后媪含所经过的线时延和I?时延的时间,直到向后蕴含到扇出点处则把扇出点放入扇出线目标集合中,或者直接回推到原始输入线则把原始输入线放入端线目标集合中;(3.2.3)从步骤(3.1)所得的初始目标集合中再取出一条线,重复步骤(3.2.2),直到初始目标集合中所有的线都被取完; (3.2.4)当初始目标集合中的线都已经取完后,对步骤(3.2.3)所得的扇出点目标集合内的所有扇出点按照离原始输出线的距离从近到远的顺序进行排序,并按照排好的顺序逐个取出扇出点目标集合内的扇出点; 取出一个扇出点后,先从扇出点目标集合中删除该扇出点,首先判断取出的扇出点的赋值是否是唯一的,如果扇出点的赋值是唯一的,则说明该扇出点的赋值没有矛盾,则重复步骤(3.2.2)的过程;如果扇出点的赋值不是唯一的,则要将赋值内的4个赋值要求,按其次数进行从大到小排列;并按照排好的顺序逐个取出赋值,并把该赋值赋给该扇出点,并以此扇出线作为输入线,并通过逻辑门进行向前蕴含判定;即对每个扇出点的所有分支进行验证;对于一条分支而言,首先找出该分支中距离扇出点最近的、设置有回溯标志的输出线,并变换该输出线所对应的输入线的赋值情况,并以此作为扇出点赋值是否正确的判定基准;将取出的扇出点的赋值通过逻辑门向前蕴含至回溯标志的输出线处,并对向前蕴含所经过的线进行赋值;若向前蕴含所得的赋值情况与上述确定的赋值情况的判定基准相同时,则表明该分支验证成功,再验证其他分支;当该扇出点的所有分支均验证成功时,则可判定该扇出点的赋值为正确的;否则再找出该分支中距离扇出点第二近的、设置有回溯标志的输出线,并重复上述向前蕴含赋值和判定向前蕴含所得的赋值情况与上述确定的赋值情况的判定基准是否相同的过程,直至将该分支的所有回溯标志均验证完,依旧无法获得向前蕴含所得的赋值情况与确定的赋值情况的判定基准相同时,则该分支验证失败,即可判定该扇出点的赋值为错误的;当扇出点的赋值是正确的,则返回步骤(3.2)重复回推过程;如果扇出点的所有赋值均错误,则返回步骤(3)重新选取其他的故障边界后,再进行回推过程;如果所有的故障边界,都会出现有扇出点的所有赋值错误的结果,则此故障不可测,并进行记录; 当扇出点目标集合内的所有扇出点均已验证完,则此次回推过程结束; (3.3)判断故障线是否为原始输出线;如果是原始输出线,则以上述回推过程所确定的各条线的赋值,向前向后蕴含得出测试电路中其余未验证的线,并得到最终的带时间的测试矢量;如果不是原始输出线,则把故障通过这个逻辑门向前传播到下一个逻辑门,此时故障边界会发生变化,此时无需确定攻击线的跳变信息,并重复步骤(3)的测试矢量的生成过程,一步一步将故障向前传播到原始输出线,然后再确定测试电路中其余未验证的线,并得到最终的带时间的测试矢量; (4)将步骤(3)所得的测试矢量从测试电路的原始输入口输入,并在测试电路的原始输出口进行信号的采集,获得传播时延或电压幅值信息;将传播时延或电压幅值信息与预设的传播时延或电压幅值进行比较,若获得的传播时延或电压幅值处在预设定的传播时延或电压幅值允许范围内,则说明该指定故障线所指定的故障类型对测试电路无影响,无需对指定的故障线进行调整;若获得的传播时延或电压幅值处在预设定的传播时延或电压幅值允许范围外,则说明该指定故障线所指定的故障类型对测试电路有影响,需要对指定的故障线进行调整; (5)重复步骤(1)-(4),直至将测试电路中所有线的所有故障类型均指定一遍,即可完成对测试电路的测试过程。
2.根据权利要求1所述的高速互连通路串扰故障测试方法,其特征是,在步骤(1.0中,指定的攻击线的条数为2条。
3.根据权利要求1所述的高速互连通路串扰故障测试方法,其特征是,在步骤(3.2.4)中,当(S, ncr⑶,ncf⑶,η。⑶,Ii1⑶)的4个赋值要求即ncr⑶,ncf⑶,η。⑶,Ii1 (S)中,仅有I个赋值要求的数值为非零常数,而其余3个赋值要求的数值为零时,则表示S这条线的赋值唯一的;否则S这条线的赋值不是唯一的。
4.根据权利要求1所述的高速互连通路串扰故障测试方法,其特征是,在步骤(3.2.4)中,当故障属于不可测故障时,需要将该不可测故障记录在存储器中,以供后续研究之用。
5.根据权利要求1所述的高速互连通路串扰故障测试方法,其特征是,在步骤(4)中,若指定的故障类型为正向尖峰脉冲故障Gl或负向尖峰脉冲故障GO时,则采集和比较的是测试电路的电压幅值信息,若指定的故障类型为上升时延加速故障R1、上升时延减速故障RD、下降时延加速故障FI或下降时延减 速故障FD时,则采集和比较的是测试电路的传播时延信息。
6.根据权利要求1所述的高速互连通路串扰故障测试方法,其特征是,在步骤(3.2)中,通过查询向后蕴含真值表和向前蕴含真值表来实现对测试电路的线进行赋值。
【文档编号】G01R31/08GK103645421SQ201310680986
【公开日】2014年3月19日 申请日期:2013年12月13日 优先权日:2013年12月13日
【发明者】尚玉玲, 颜学龙, 张培, 李春泉, 陈鹏 申请人:桂林电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1