一种扫描链诊断向量生成方法和装置及扫描链诊断方法

文档序号:5838599阅读:180来源:国知局

专利名称::一种扫描链诊断向量生成方法和装置及扫描链诊断方法
技术领域
:本发明涉及逻辑集成电路的故障定位方法,尤其涉及一种逻辑集成电路中扫描链故障的诊断向量生成方法和装置及扫描链诊断方法。
背景技术
:扫描技术是一种广泛采用的结构化可测试性设计(DesignForTestability,DFT)技术。基于扫描的逻辑诊断已经成为量产加速阶段(yieldramp-up)不可缺少的手段。通过逻辑诊断可以帮助失效分析设备快速寻找到引起失效的缺陷位置,从而加速失效分析过程。扫描技术是在逻辑集成电路中插入一种称为扫描链的移位寄存器结构,通过扫描链可以非常方便地实现测试数据的有效传递以及芯片内部状态的有效导出。插入了扫描链的逻辑集成电路有两种工作模式由测试使能(ScanEnable)控制的测试模式和工作模式。在测试模式下,扫描链接通,可以检测逻辑集成电路的输出和扫描链上的扫描单元的输出(即伪输出);而在工作模式下,扫描链被旁路,逻辑集成电路按照原来的结构工作。在逻辑集成电路器件内部实现的扫描又分为"全扫描"和"部分扫描"两种。全扫描是将电路中所有的时序单元都置换为扫描单元,并且接入一个或者多个扫描链中,这样可以非常容易地实现故障的控制和传导。部分扫描则是选择性地组成扫描链,比如可以将关键路径上的时序单元以及难于满足扫描结构要求的单元排除在扫描链之外,以确保芯片满足面积和性能方面的要求。扫描测试的实施过程是(1)测试综合;读入芯片的电路网表并且实施设计规则检查(DesignRuleCheck,DRC),确保符合扫描测试的设计规则;将电路中原有的触发器或者锁存器置换为特定类型的扫描触发器或者锁存器(如多路选择D触发器,时钟控制的扫描触发器,以及电平敏感的扫描设计),并且将这些扫描单元链接成一个或者多个扫描链,这一过程称之为测试综合。(2)测试向量生成;测试向量自动生成(AutomaticTestPatternGenaration,ATPG)工具根据插入的扫描电路以及形成的扫描链自动产生测试向量;故障仿真器(FaultSimulator,FS)对这些测试向量实施评估并且确定故障覆盖率情况,将满足故障覆盖率的测试向量作为最终的测试向量。(3)施加测试向量并观测响应;将测试向量施加到芯片上,对失效响应进行分析,发现故障。扫描单元及其控制电路可能会占到芯片总面积的30%。即使是在存储部件占多数的面积的微处理器芯片中,扫描电路及其控制逻辑所占的硅片面积相对于组合逻辑电路来说仍然很大。这使得在扫描单元及其控制电路上发生的故障可能占到故障总数的50%。因此扫描链故障诊断对于芯片故障诊断具有重大意义。通过在扫描链中直接移入移出0011模式的向量,技术人员可以很容易地检测到故障扫描链,但是要定位扫描链中的故障扫描单元却十分具有挑战性。首先,扫描链中的故障效果只有通过扫描移位输出才能直接观察到;其次,扫描链中的故障效果会因为扫描移位而具有全局性。以固定为l故障为例,如果扫描链中的某个扫描单元发生固定为l故障,无论移入何种向量,直接移出观察到的向量总为全l。从测试角度而言,发现扫描链中的扫描单元是否存在故障并不困难。只要将0011格式的向量移入并直接移出扫描链,即可判断扫描链是否存在故障。但从诊断角度而言,定位故障扫描单元却具有很大的挑战性,这是因为在向量移入过程中,故障扫描单元的上游将会被污染,而在移出过程中,故障扫描单元的下游会被污染,所以经过扫描移入移出过程后整条扫描链已被污染。此处移入和移出是同一方向进行的,上游是指当前扫描单元的前一扫描单元,下游是指当前扫描单元的下一扫描单元,即靠近输出方向的扫描单元。为了定位扫描链中的故障扫描单元,目前有三类可行的方案,第一类方案就是专门为待测扫描链生成一组诊断向量;第二类方案将己有的失效向量注入故障模拟器,通过比较失效向量和故障模拟器的响应进行诊断;最后一类方案通过修改电路中的触发器单元提高电路的可诊断性。在第一类方案中,测试向量生成方法又可分成三种,一种是将待测扫描单元的故障效果通过组合逻辑传播给输出或者传播给可以正常观测的伪输出;第二种方法是把可以反映故障效果的逻辑值通过组合逻辑传播给待测扫描单元。对于以上两种方法,在待测扫描单元上发现与期望响应不相同的结果,就可以认为该待测扫描单元是存在故障的。第三种方法不是确定性测试生成方法,而是从功能向量中选取可以使得待测扫描链中所有扫描单元置1和置0概率相当的功能向量,通过比较失效芯片各输出的0、1出现概率和期望输出的0、1出现概率推断出故障扫描单元的位置。第二类方案不需要为待测扫描链生成专门的诊断向量,而是利用已有的测试向量和这些向量的失效响应进行故障模拟。在诊断过程中,故障被注入到模拟器中,并施加向量得到相应的失效响应。通过比较从模拟器得到的失效响应和从测试设备上得到的实际失效响应估计故障注入位置与实际故障发生位置是否相同,如果相同则诊断过程结束,如果不同则反复迭代上述过程,直到得出满意的诊断结果。在以上两种方案中,在扫描链诊断过程中是假设组合逻辑是无故障的,但是在实际情况中发现,在扫描链发生故障的情况下,组合逻辑往往也存在故障。这样导致在组合逻辑和扫描链都发生故障的情况下如果使用己有的扫描链诊断方案,有可能将组合逻辑中的故障导致故障效果归因于扫描链故障,从而导致误诊断。第三类方案是通过修改电路设计提高电路的可诊断性。大致分成两种方法,第一种方法为扫描单元提供旁路扫描链,使得扫描单元的扫描输出结果可以传播到多条扫描链上。第二种方法是为扫描单元提供某种置位的机制,在故障发生时,故障扫描链里的扫描单元被置成某种特殊的向量。虽然利用这类方案诊断扫描链不会受到组合逻辑中的故障影响,但是这类方案会给电路设计带来额外的面积和布线开销,更重要的是,特殊的DFT设计会改变传统的工业流程。
发明内容本发明针对现有技术在进行扫描链诊断时由于组合逻辑中存在故障可能导致误诊断的不足,从而提出了一种能够容忍组合逻辑故障的扫描链诊断向量生成方法和装置及扫描链诊断方法。为了上述目的,本发明提供如下技术方案一种容忍组合逻辑故障的扫描链诊断向量生成方法,包括如下步骤步骤S1,确定扫描链的故障类型;步骤S2,根据扫描链的故障类型设定约束条件;步骤S3,在约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到的输出或伪输出数目最大,生成扫描链诊断向量。优选地,在步骤S1中,所述故障类型包括固定为1故障、固定为O故障、过缓上升故障、过缓下降故障、过速上升故障和过速下降故障。优选地,在步骤S1中,通过将由0011模式组成的向量在扫描链中移入后直接移出的结果确定扫描链的故障类型。优选地,在步骤S2中,所述设定约束条件包括为了敏化当前候选扫描单元上的时序故障,设定当前候选扫描单元的相邻扫描单元的逻辑状态为与时序故障相应的特定值。优选地,在步骤S2中,所述设定约束条件还包括为了使扫描单元的逻辑状态通过组合逻辑形成的路径传播到芯片的输出或扫描单元的伪输出,设置所述路径上的组合逻辑的旁路输入取非控制值。优选地,在步骤S2中,所述设定约束条件还包括为了使所述非控制值在诊断向量移入过程中不被故障扫描单元污染,设置所述非控制值的相邻扫描单元为相应保护值。优选地,在步骤S2中,所述设定约束条件还包括为了使扫描单元的逻辑状态传输到的伪输出扫描单元在移出过程中不被污染,设置该伪输出扫描单元的相邻扫描单元为相应保护值。优选地,所述步骤S3,具体包括如下步骤步骤S301,通过分析逻辑集成电路,建立当前扫描单元能够扇出(fan-out)到的输出组成输出集合;步骤S302,在约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到所述输出集合中的原始输出或伪输出数目最大,生成扫描链诊断向步骤S303,保存所述诊断向量。优选地,在步骤S302中还包括将设定的约束条件构建成一个约束电路,在约束电路的输出端连接固定型故障诊断向量生成部件,将扫描单元的时序故障诊断向量生成转化为固定型故障的诊断向量生成。一种容忍组合逻辑故障的扫描链诊断向量生成装置,包括如下部件故障类型判别单元,用于判别扫描链的故障类型;约束条件设定单元,用于根据故障类型设定约束条件;诊断向量生成单元,用于在所述约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到的原始输出或伪输出数目最大,生成扫描链诊断向优选地,所述故障类型包括固定为1故障、固定为0故障、过缓上升故障、过缓下降故障、过速上升故障、过速下降故障。优选地,所述设定约束条件包括为了敏化当前候选扫描单元上的时序故障,设定当前候选扫描单元的相邻扫描单元的逻辑状态为与时序故障相应的特定值。优选地,所述设定约束条件还包括;为了使扫描单元的逻辑状态通过组合逻辑形成的路径传播到芯片的原始输出或扫描单元的伪输出,设置所述路径上的组合逻辑的旁路输入取非控制值。优选地,所述设定约束条件还包括为了使所述非控制值在诊断向量移入过程中不被故障扫描单元污染,设置所述非控制值的相邻扫描单元为相应保护值。优选地,所述设定约束条件包括为了使扫描单元的逻辑状态传输到的伪输出扫描单元在移出过程中不被污染,设置该伪输出扫描单元的相邻扫面单元为相应保护值。优选地,所述约束条件设定单元包括按照设定的约束条件构建的一个约束电路。优选地,所述诊断向量生成单元包括在所述约束电路的输出端连接的固定型故障诊断向量生成部件,使扫描单元的时序故障诊断向量生成转化为固定型故障的诊断向量生成。一种容忍组合逻辑故障的扫描链诊断方法,包括如下步骤步骤S21,根据扫描链故障类型生成扫描链诊断向量;步骤S22,将扫描链诊断向量施加到待测芯片上,输出失效响应;步骤S23,对所述失效响应进行分析,找出故障扫描单元。优选地,所述步骤S23具体包括如下步骤步骤S23a,计算扫描单元的每个诊断向量的权重w;歩骤S23b,计算扫描单元在每个诊断向量在移入移出过程中的故障概率LEP;步骤S23c,计算扫描单元的总故障概率WLEP等于该扫描单元的所有诊断向量的权重w和在对应诊断向量移入移出过程中的故障概率LEP之积的累加。优选地,还包括步骤S23d,根据扫描单元的总故障概率WLEP计算扫描单元的可疑得分,得分最高的为故障可疑扫描单元。优选地,在步骤S23a中,所述诊断向量的权重其中i为扫描单元的索引号,nunuobs(Ci,j)表示为诊断扫描单元d所生成的第j个测试向量所能建立的敏化输出的个数。优选地,在步骤S23b中,扫描单元d在第j个向量下的故障概率LEP(d,j)二q/p;其中,p为该向量可以敏化的传播通路的输出数目,q为观测到候选扫描单元的故障逻辑状态的传播通路的输出数目。优选地,所述步骤S23d中,计算每个扫描单元的可疑得分Suspect的方法如下式其中r为设定的窗半径。本发明所产生的有益技术效果是1、利用本发明提出的扫描链诊断向量生成方法可以有效的诊断扫描链中存在的故障。2、在扫描链诊断过程中,有效的容忍组合逻辑中的故障,扫描链诊断结果尽量避免了组合逻辑故障的影响。<formula>formulaseeoriginaldocumentpage12</formula>3、利用本发明提出的扫描链诊断向量生成方法不会给电路带来任何的硬件开销也不会改变现有的设计测试流程。4、本发明提出的扫描链诊断向量生成方法,根据故障类型生成诊断向量,可以将针对时序故障的生成诊断向量过程转化为利用通用的固定型故障测试生成工具生成扫描链诊断向量。图1是本发明中的一个实施例的扫描链诊断流程图2是本发明中的一个实施例中的利用约束电路设定约束条件的示意图;图3是本发明中的另一个实施例中的利用约束电路设定约束条件的示意图4是本发明中的一个实施例中的输出集合和扫描单元的逻辑状态传输所覆盖输出或伪输出的示意图。图5是本发明的扫描链诊断向量生成流程图;图6是图5中所示的步骤3的具体步骤;图7是本发明的扫描链测试方法流程图8是图7中步骤S23的具体步骤。具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的扫描链诊断向量生成方法和装置及扫描链诊断方法进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。为了方便描述具体实施方式,首先对后面用到的术语进行如下说明本发明设定扫描链的长度是该扫描链中扫描单元的个数。从扫描输入到扫描输出,对每一个扫描单元从大到小编号,称为扫描单元的索引。对于一个给定的扫描单元,它的上游扫描单元由所有索引值大于该扫描单元的扫描单元组成,类似的,它的下游扫描单元由所有索引值小于该扫描单元的扫描单元组成。作为一种可实施方式,扫描单元采用可测性设计中广泛采用的多路选择触发器(MUX-DFF),其包括DI输入端和SI输入端,其中,SI输入端输入来自直接上游扫描单元的扫描移出,DI输入端为数据输入端,当逻辑集成电路被设置处于非扫描模式下时,数据经由DI输入端进入扫描单元。当逻辑集成电路被设置处于扫描模式时,数据经由SI输入端进入扫描单元。如图5所示,一种容忍组合逻辑故障的扫描链诊断向量生成方法,包括如下步骤步骤S1,确定扫描链的故障类型;步骤S2,根据扫描链的故障类型设定约束条件;步骤S3,在约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到的输出或伪输出数目最大,生成扫描链诊断向量。较佳地,在步骤S1中,本发明采用了6种故障类型。这6种故障类型分别是固定为l故障(SA1)、固定为0故障(SA0)、过缓上升故障(STR)、过缓下降故障(STF)、过速上升故障(FTR)、过速下降故障(FTF)。作为举例,它们的故障效果如表1所示。本发明是试图找到扫描链中发生表1所示故障效果的扫描单元。表1本发明使用的扫描链故障模型<table>tableseeoriginaldocumentpage14</column></row><table><table>tableseeoriginaldocumentpage15</column></row><table>表l中的下划线用于突出显示。从表l可以看出,故障总体分为两类,第一类故障是固定型故障,对于固定型故障来说,在扫描移出过程中,它会将所有下游扫描单元的逻辑状态污染固定型故障的故障值。第二类故障是时序故障,对于时序故障来说只有满足一定的敏化条件,故障才会被激活。例如,对于STR故障来说,存在0到1跳变才能引起故障。也就是说,对于某个候选扫描单元i来说,其直接下游扫描单元i-l逻辑状态为0且扫描单元i的逻辑状态为1才会在扫描移入或者移出时引起扫描单元i的故障,故障使得扫描单元i上期望为l的逻辑值变为了O。较佳地,在步骤S1中,通过将由0011模式组成的向量在扫描链中移入后直接移出的结果来确定扫描链的故障类型。例如一个由8个扫描单元组成的扫描链,移入并直接移出flush向量11001100,那么根据表1,对于固定为1故障,观察到的移出向量为11111111;对于固定为0故障,观察到的移出向量是00000000。对于STR故障,观察到的移出向量为10001000,对于STF故障,观察到的移出向量为IIOIIIOO,对于FTR故障,观察到的向量为11101110,对于FTF故障,观察到的向量为11000100。较佳地,在步骤S2中,所述设定约束条件包括为了敏化当前候选扫描单元上的时序故障,设定当前候选扫描单元的相邻扫描单元的逻辑状态为与时序故障相应的特定值。为了敏化候选扫描单元上的时序故障,候选扫描单元的相邻扫描单元同样也应该约束成某些特定的逻辑状态以使得候选扫描单元上存在的故障得以敏化。例如图2所示,为了敏化索引号为16的候选扫描单元201上的STR故障,索引号为15的扫描单元202应当被约束为0。较佳地,在步骤S2中,所述设定约束条件还包括为了使扫描单元的逻辑状态通过组合逻辑形成的路径传播到芯片的原始输出或扫描单元的伪输出,设置所述路径上的组合逻辑的旁路输入取非控制值。如果要把一个候选扫描单元(当前扫描单元)的逻辑状态通过组合逻辑传播到一个输出(po)或者伪输出(PP0),必须存在一条敏化的传播通路。例如,在图2中,如果要把索引号为16的扫描单元201的逻辑状态传播给索引号4的扫描单元216必须要通过组合逻辑电路中的或非门207和与非门210组成的通路。为了敏化该通路Pl,门207和210的旁路输入必须取非控制值,也就是说,索引号14的扫描单元203的输出c208必须为0,索引号5的扫描单元204的输出d209的输出必须为1,称这些为了敏化一条路径而必须使得一些伪输入(PseudoPrimaryInput,PPI)为特定值的PPI为关键PPI,例如索引号为14的扫描单元203和索引号为5的扫描单元204是两个关键PPI。较佳地,在步骤S2中,所述设定约束条件还包括为了使所述输入关键扫描单元的在诊断向量移入过程中不被故障扫描单元污染,设置输入关键扫面单元的相邻扫描单元为相应保护值。在扫描链存在时序故障的情况下,关键PPI的逻辑状态有可能在向量移入过程中,被故障扫描单元污染。为了防止这种情况的发生,关键扫描单元的相邻扫描单元根据关键扫描单元的逻辑状体赋予保护值,被赋予保护值的扫描单元称为保护PPI。保护PPI的赋值与扫描单元的故障类型存在着关系。以STR故障为例,如果关键扫描单元的期望逻辑状态为1且它的直接下游扫描单元的逻辑状态期望为O,那么该扫描单元的逻辑状态对STR敏感。在STR故障的影响下,该扫描单元在移入过程中可能会被故障污染为0。为了防止敏感跳变出现在关键PPI上,需要约束保护PPI的逻辑状态。例如,为了把索引号为16的扫描单元201的逻辑状态b207传播到索引号为4的扫描单元216,关键PPI204应该设置为l,为了防止敏感跳变在关键PPI204上发生,保护PPI205的逻辑状态约束为1。注意,此处关键PPI203的保护PPI没有赋值,因为关键PPI203的期望逻辑状态为O,该逻辑状态对STR故障不敏感,因此不需要设置它的保护PPI对其逻辑状态进行保护。与此类似,如果一个敏化通路的输出是一个伪输出(PseudoPrimaryOutput,PPO),称这个PPO为关键PPO。比如索引号为4的扫描单元216就是一个关键PPO。更佳地,在步骤S2中,所述设定约束条件还包括为了使扫描单元的逻辑状态传输到的伪输出扫描单元在移出过程中不被污染,设置该伪输出扫描单元的相邻扫面单元为相应保护值。在扫描移出过程中关键PPO有可能被扫描链中存在的故障污染。因此为了防止敏感跳变出现在关键PPO上,关键PPO的直接下游扫描单元应该被约束成某些特定值,防止敏感跳变的发生,称这样的PPO为保护PPO。在图2中,为了防止敏感跳变出现在关键PPO216上,保护PPO217应当捕获逻辑值1。较佳地,如图6所示,所述步骤S3,具体包括如下步骤步骤S301,通过分析逻辑集成电路,建立当前扫描单元能够扇出(fan-out)到的输出组成输出集合;步骤S302,在约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到所述输出集合中的原始输出或伪输出数目最大,生成扫描链诊断向步骤S303,保存所述诊断向量。较佳地,在步骤S302中将设定的约束条件构建成一个约束电路,在约束电路的输出端连接固定型故障诊断向量生成部件,使扫描单元的时序故障诊断向量生成转化为固定型故障的诊断向量生成。固定型故障诊断向量生成部件为本领域技术人员熟知的诊断向量生成工具,不再赘述。上述传播通路敏化方法通过构建一个约束电路中的与门218实现,如果通路上某个门的旁路输入的非控制值为1那么就直接与这个与门相连,比如门210的旁路输入d209直接与与门218连接,如果通路上的一个门的旁路输入的非控制值为0,那么先把这个值反向再与对应的与门连接,例如或非门207的非控制值为0,因此它的旁路输入c208反向后连接到与门218上。在图2中,关键PP0216的输入被连接到了约束电路中与门218的一个输入上。在图2中可以看到,索引号为15的扫描单元的一个输出取反后连接到约束电路中与门218上的一个输入上。总的来说,如果索引号为16的扫描单元201的逻辑状态可以通过组合逻辑传播到索引号为4的扫描单元216上,且满足输入输出约束;那么与门218的输出为1,否则与门218的输出为0。类似地,可以为每一个传播通路建立一个相应的与门,当一条路径可以被约束条件敏化时,所对应的与门输出为l,否则与门输出为0。为了生成的诊断向量可以使得当前候选扫描单元的逻辑状态尽可能多地传播到原始输出或伪输出上,就应当使得选定的路径尽可能多的被约束条件敏化。由上述可知,每一个可能的传输路径可以由一个与门代替。例如在图2中,两个与门218和219分别代表了路径pl:b207-f209-i(212)和路径p2:b207-f209-h211。当一条路径可以约束条件敏化时,其对应的与门的输出为l。因此,可以利用计算电路计算对应与门输出为1的个数,当与门输出为1的个数大于等于设定的整数n时,计算电路的输出为l,否则为0。例如在图2中,设置n为2,也就是说,索引号为16的扫描单元201的逻辑状态至少应传播到两个或者两个以上的P0或者PPO上,因此利用与门220计算是否会有两个或者两个以上的路径被敏化,也就是计算与门218和219中输出为1的个数是否大于或等于2,与门218和219的两个输出被连接到了与门220上,可以利用固定型故障诊断向量生成工具对与门220的输出端j221进行固定为0故障的测试生成。如果生成成功,那么说明该诊断向量存在。作为另一个具体实施方式,当从候选扫描单元到P0或者PPO的数目大于3时,可以采用如图3所示的约束电路,与图2类似,当路径301、路径302和路径303可以被约束条件敏化时,相应的约束电路中的与门304、305、306的输出为1。这三个输出与一个敏化路径计数器连接,该计数器当输入1的个数大于或等于2时,或门310的输出端j为1。因此,同样只要对或门310的输出上进行固定为0故障的向量生成,则该扫描单元的故障可诊断,路径301、302、303可被约束条件敏化。当然,如果这三个路径不能同时被约束条件敏化,也不可能生成该诊断向量。类似的,本领域技术人员可以推广到多个路径被约束条件敏化的情况。对于扫描链中的每个扫描单元,通过反复执行步骤S1至步骤S3,可以生成一个或多个诊断向量,将当前扫描单元的逻辑状态尽可能多地通过组合逻辑传播到原始输出或伪输出。本发明的一种容忍组合逻辑故障的扫描链诊断向量生成装置,包括故障类型判别单元,用于判别扫描链的故障类型;约束条件设定单元,用于根据故障类型设定约束条件;诊断向量生成单元,用于在所述约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到的原始输出或伪输出数目最大,生成扫描链诊断向较佳地,所述故障类型包括固定为1故障(SA1)、固定为0故障(SAO)、过缓上升故障(STR)、过缓下降故障(STF)、过速上升故障(FTR)、过速下降故障(FTF)。较佳地,所述设定约束条件包括为了敏化当前候选扫描单元上的时序故障,设定当前候选扫描单元的相邻扫描单元的逻辑状态为与时序故障相应的特定值。较佳地,所述设定约束条件还包括;为了使扫描单元的逻辑状态通过组合逻辑形成的路径传播到芯片的原始输出或扫描单元的伪输出,设置所述路径上的组合逻辑的旁路输入取非控制值。较佳地,所述设定约束条件还包括为了使所述输入关键扫描单元的在诊断向量移入过程中不被故障扫描单元污染,设置输入关键扫面单元的相邻扫描单元为相应保护值。更佳地,所述设定约束条件还包括为了使扫描单元的逻辑状态传输到的伪输出扫描单元在移出过程中不被污染,设置该伪输出扫描单元的相邻扫面单元为相应保护值。较佳地,所述约束条件设定单元包括按照设定的约束条件构建的一个约束电路。更佳地,所述诊断向量生成单元包括在所述约束电路的输出端连接的固定型故障诊断向量生成部件,使扫描单元的时序故障诊断向量生成转化为固定型故障的诊断向量生成。如图7所示,本发明的一种容忍组合逻辑故障的扫描链诊断方法,包括如下步骤步骤S21,根据扫描链故障类型生成扫描链诊断向量;较佳地,如图1所示,所述步骤S21具体包括如下步骤步骤S2101:通过在芯片的扫描链中移入后直接移出由0011组成的flush向量确定扫描链的故障类型。步骤S2102:设定循环控制变量i,从最靠近扫描输入的索引号为L-1的扫描单元至最靠近扫描输出的索引号为0的扫描单元依次为每个扫描单元生成诊断向量。为了建立循环控制变量,迭代从最上游扫描单元开始因此令i=L-l,其中L为扫描链长度。步骤S2103:为候选扫描单元i建立输出集合;输出集合可以通过静态的分析待测芯片的电路网表得到,在输出集合中包含了候选扫描单元可以扇出到的所有输出P0和伪输出PP0。该歩骤2103是为了构建一个求解的搜索空间,因为本发明期望将候选扫描单元的逻辑状态尽可能多的传播到可靠的输出上。而这些输出只可能是候选扫描单元可以扇出到的输出,因此只有从这些可以扇出到的输出中来确定候选扫描单元的逻辑状态传播的输出或伪输出。为了减少搜索空间,可以预先通过静态的分析芯片电路将所有候选扫描单元可以扇出到的输出和/或伪输出组成一个集合。步骤S2104:在满足所设定的约束条件的情况下,将扫描单元i的逻辑状态传播到输出集合中的n个可靠观察点,即输出P0和/或伪输出PP0,开始生成诊断向量。n的值是设定的。该步骤S2104是为了根据给定的n值构建一个求解模型,n指明了一次诊断向量生成时,候选扫描单元的逻辑状态最少传播到的输出的数目。步骤S2105:如果诊断向量生成成功,则转向步骤S2106,否则转向步骤S2107步骤S2106:如果候选扫描单元i的逻辑状态可以传播到n个可靠的输出和/或伪输出,那么一条诊断向量生成成功,把这个向量保存下来。步骤S2107:如果n大于l,则转至步骤S2108,否则转至步骤S2111。在步骤S2104中,如果诊断向量生成失败,有可能是因为n设置的过大,因此,可以设法减小n的大小重新进行生成。在此步骤S2107中是为了放宽诊断向量生成的约束条件。在步骤S2105中,向量生成可能失败,其原因可能有两个第一,设定的n值过大,向量生成工具无法同时敏化n条路径,那么转入步骤S2108将n的值降低,然后重新进行向量生成;第二,候选扫描单元的故障逻辑状态无法传播到输出,因此该扫描单元不可诊断,则直接跳转到步骤S2111。步骤S2108:将故障扫描单元i期望传播到的可靠输出数目n减1,然后转到步骤S2104重新进行诊断向量生成。步骤S2109:如果在一个向量的作用下,候选扫描单元i的逻辑状态可以传播到几个输出,那么就把这几个输出从输出集合中删除。在该步骤S2109中是为了尽可能多的覆盖输出集合中的元素,因此当一个向量可以把候选扫描单元的逻辑状态传播到几个输出时,就把这几个输出从输出集合中删除。从而可以重新生成向量,覆盖以前没有覆盖到的输出。步骤S2110:如果输出集合在经过步骤S2109后为空,说明候选扫描单元可以通过一个或者多个诊断向量将自己的逻辑状态传播到所有最初状态的输出集合所包含的输出或伪输出中,在这种情况下转向步骤S2111,否则转向步骤S2104,继续进行诊断向量生成,尽量覆盖输出集合中所有元素。在该步骤S2110中,如果输出集合为空,说明候选扫描单元的逻辑状态可以传播到输出集合中所有的元素,则转入步骤S2111。否则,说明输出集合中还有元素没有捕获过选扫描单元的逻辑状态,因此转入步骤S2104,重新生成向量。步骤S2111:判断是否己经完成了故障扫描链上所有候选扫描单元的诊断向量生成,如果完成转向步骤S2113。否则转向步骤S2112。在该步骤S2111中是为了判断是否所有的扫描单元都已经进行过诊断向量生成。如果已经完成所有扫描单元的诊断向量生成,则转入步骤S2113,如果没有完成,则转入步骤S2112,也就是为当前扫描单元的直接下游扫描单元生成向量。步骤S2112:把当前所在候选扫描单元的直接下游扫描单元作为当前扫描单元,并转向歩骤S2103进行下一轮的诊断向量生成。步骤S22,将扫描链诊断向量施加到待测芯片上,输出失效响应;该步骤相当于如图l所示的步骤S2113:将生成的诊断向量通过ATE施加到待测芯片上,并记录失效日志,收集失效响应信息。步骤S23,对所述失效响应进行分析,找出故障扫描单元。(图l中的步骤S2114:根据故障响应分析出故障位置。)较佳地,所述步骤S23中,为了对故障的失效响应进行分析,找出可疑扫描单元,进行故障定位,本发明采用基于概率的失效响应分析方法,如图8所示,具体包括如下步骤步骤S23a,计算扫描单元的每个诊断向量的权重w;歩骤S23b,计算扫描单元在每个诊断向量在移入移出过程中的故障概率LEP;步骤S23c,计算扫描单元的总故障概率W等于该扫描单元的所有诊断向量的权重w和在对应诊断向量移入移出过程中的故障概率LEP之积的累加。进一步地,还包括步骤S23d,计算扫描单元的可疑得分,得分最高的为故障扫描单元。进一步地,在步骤S23a中,所述诊断向量的权重『(/,力=""附—。fc(c,,y)/t"歸—oMC。其中i为扫描单元的索引号,num—obs(d,j)表示诊断扫描单元Ci所生成的第j个测试向量所能建立的敏化输出和伪输出的个数。由此看出W(i,j)实际上是计算了为第i个扫描单元生成的第j个向量所拥有的可靠观察点(可观测的输出或伪输出)的数目占所有为第i个扫描单元生成向量拥有的可靠观察点的比值。每一个候选扫描单元对应着一个或者多个诊断向量。对应每个扫描单元的一组诊断向量的权重之和为1。每个诊断向量的权重由其可以观察到故障逻辑状态的输出数目而定。一个向量可以敏化的通路数目越多,其对应的权重也就越大。例如一个扫描单元可以通过两个诊断向量将自身的逻辑状态传播到输出上,其中第一个向量可以通过3个输出观察该扫描单元的逻辑状态,第二个向量可以通过2个输出观察该扫描单元的逻辑状态,那么第一个向量的权重为3/5,第二个向量的权重2/5。进一步地,在步骤S23b中,扫描单元在每个诊断向量在移入移出过程中的故障概率LEP,即扫描单元d在第j个向量下的故障概率LEP(d,j)二q/p,其中,P为该向量可以敏化的传播通路的输出数目,q为观察到候选扫描单元的故障逻辑状态的传播通路的输出数目。如果p条通路的输出都观察到了候选扫描单元的逻辑状态是故障的,那么故障概率为1,即LEP(d,jX,如果这p个通路中的q条通路的输出观察到了候选扫描单元的故障逻辑状态,那么<formula>formulaseeoriginaldocumentpage24</formula>。进一歩地,在步骤S23c中,利用公式1,计算所述扫描单元的总故障概率:<formula>formulaseeoriginaldocumentpage24</formula>其中,^(;7《,,)为每条诊断向量所对应的权重。进一步地,所述步骤S23d中,利用公式2计算每个扫描单元的可疑得分,得分最高的为可疑扫描单元。<formula>formulaseeoriginaldocumentpage24</formula>公式2是采用中值滤波的原理。在扫描链中,如果一个扫描单元发生故障,在扫描移入过程中,故障的逻辑状态会传染到其下游所有扫描单元,因此,在该扫描单元的上游扫描单元,发现故障逻辑状态的概率小于在该扫描单元下游的扫描单元。因此,会出现一个类似阶跃响应曲线。利用公式2可以发现这个"阶跃"信号跳变点所对应的扫描单元。在公式2中,r为窗半径,对于扫描单元i来说,该函数首先计算从i-r至i+r所有扫描单元的故障状态概率的平均值,然后用0.5减去该平均值后求绝对值,得到的结果,再用1去减。下面通过另一实施例进一步详细说明本发明的扫描链故障诊断过程。设定为扫描单元c进行诊断向量生成,如图4所示,首先,为扫描单元c建立输出集合,即c可以扇出到五个扫描单元CO,C4,C8,C16,C21和一个原始输出03。随后,对扫描单元c进行第一个诊断向量生成,发现c在向量Pl的作用下可以把其逻辑状态传播到C4,C8和C21,且在无故障情况下,期望响应为100,因此在故障情况下期望响应为011。第一个诊断向量生成完成后将C4,C8和C21从输出集合中删除,输出集合中还剩下C0和C16。第二次向量生成时,产生了向量P2,它可以将c的逻辑状态传播到CO,C8,C2和03,在无故障情况下,其期望响应为IOIO,因此在故障情况下期望响应为0101。因为CO还在输出集合中,因此把CO从输出集合中删除。此时输出集合中只有C16。开始进行第三次向量生成,经过向量生成,得到向量P3,P3可以把c的逻辑状态传播给C8、C16和03,在无故障情况下,其期望响应为OOl,因此在故障情况下期望响应为110。向量生成完毕,将向量打入ATE得到失效响应。下面介绍失效响应分析。在失效响应分析中,首先分别计算向量P1、P2和P3的权重。这三个向量总计可以把c的逻辑状态传播到6个输出,总计覆盖输出10次。对Pl来说其覆盖三个输出,其权重为3/10=0.3,类似的P2覆盖了四个输出,其权重为4/10=0.4。P3的权重为3/10=0.3。通过施加Pl、P2和P3到芯片上,实际观察到的响应分别是{011}{0111}{110}。扫描单元c在故障状态情况下对向量Pl的期望响应为011,而实际响应也为Oll,所以扫描单元在该向量下故障概率为1;在扫描单元c故障状态下对向量P2的期望响应为0101而实际响应为0111(有三位与期望响应一致),故障概率为3/4=0.75;在扫描单元c故障状态下对向量P3的期望响应为110而实际响应也为110,故障概率为1。最后扫描单元c的总故障概率为0.3*1+0.4*0.75+0.3*1=0.9。于是,判定此扫描单元的移入状态可能是故障的。实际响应与期望响应不符合的主要原因在于组合逻辑中存在故障,因此本发明可以有效的容忍组合逻辑中的故障。对整条扫描链上的扫描单元都进行如上的测试过程,得出每个扫描单元的总故障概率,然后按照公式2计算可疑得分,可疑得分最高的判定为故障单元。从上述技术方案的详细描述可以看出,本发明的技术方案是这样实现的首先,确定扫描链故障类型,随后,根据故障扫描链的故障类型生成扫描链诊断向量,最后将诊断向量加载到测试设备上得出失效响应,并通过失效响应进行故障定位。本发明具有以下有益效果1、利用本发明提出的扫描链诊断向量生成方法可以有效的诊断扫描链中存在的故障。2、在扫描链诊断过程中,有效的容忍组合逻辑中的故障,扫描链诊断结果尽量避免了组合逻辑故障的影响。2、利用本发明提出的扫描链诊断向量生成方法不会给电路带来任何的硬件开销也不会改变现有的设计测试流程。3、利用本发明提出的扫描链诊断向量生成方法任何通用的固定型故障测试生成工具都可以用作扫描链诊断向量的生成。通过结合附图对本发明具体实施例的描述,本发明的其它方面及特征对本领域的技术人员而言是显而易见的。以上对本发明的具体实施例进行了描述和说明,这些实施例应被认为其只是示例性的,并不用于对本发明进行限制,本发明应根据所附的权利要求进行解释。以上所述内容,仅为本发明具体的实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。2权利要求1、一种容忍组合逻辑故障的扫描链诊断向量生成方法,包括如下步骤步骤S1,确定扫描链的故障类型;步骤S2,根据扫描链的故障类型设定约束条件;步骤S3,在约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到的输出或伪输出数目最大,生成扫描链诊断向量。2、根据权利要求1所述的扫描链诊断向量生成方法,其特征是,在步骤Sl中,所述故障类型包括固定为1故障、固定为0故障、过缓上升故障、过缓下降故障、过速上升故障和过速下降故障。3、根据权利要求1所述的扫描链诊断向量生成方法,其特征是,在步骤Sl中,通过将由0011模式组成的向量在扫描链中移入后直接移出的结果来确定扫描链的故障类型。4、根据权利要求1所述的扫描链诊断向量生成方法,其特征是,在步骤S2中,所述设定约束条件包括为了敏化当前候选扫描单元上的时序故障,设定当前候选扫描单元的相邻扫描单元的逻辑状态为与时序故障相应的特定值。5、根据权利要求4所述的扫描链诊断向量生成方法,其特征是,在步骤S2中,所述设定约束条件还包括为了使扫描单元的逻辑状态通过组合逻辑形成的路径传播到芯片的输出或扫描单元的伪输出,设置所述路径上的组合逻辑的旁路输入取非控制值。6、根据权利要求5所述的扫描链诊断向量生成方法,其特征是,在步骤S2中,所述设定约束条件还包括为了使所述非控制值在诊断向量移入过程中不被故障扫描单元污染,设置所述非控制值的相邻扫描单元为相应保护值。7、根据权利要求1所述的扫描链诊断向量生成方法,其特征是,在步骤S2中,所述设定约束条件还包括为了使扫描单元的逻辑状态传输到的伪输出扫描单元在移出过程中不被污染,设置该伪输出扫描单元的相邻扫描单元为相应保护值。8、根据权利要求1所述的扫描链诊断向量生成方法,其特征是,所述步骤S3,具体包括如下步骤步骤S301,通过分析逻辑集成电路,建立当前扫描单元能够扇出到的输出组成输出集合;步骤S302,在约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到所述输出集合中的原始输出或伪输出数目最大,生成扫描链诊断向步骤S303,保存所述诊断向量。9、根据权利要求8所述的扫描链诊断向量生成方法,其特征是,在步骤S302中还包括将设定的约束条件构建成一个约束电路,在约束电路的输出端连接固定型故障诊断向量生成部件,将扫描单元的时序故障诊断向量生成转化为固定型故障的诊断向量生成。10、一种容忍组合逻辑故障的扫描链诊断向量生成装置,其特征是,包括如下部件故障类型判别单元,用于判别扫描链的故障类型;约束条件设定单元,用于根据故障类型设定约束条件;诊断向量生成单元,用于在所述约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到的原始输出或伪输出数目最大,生成扫描链诊断向11、根据权利要求IO所述的扫描链诊断向量生成装置,其特征是,所述故障类型包括固定为1故障、固定为0故障、过缓上升故障、过缓下降故障、过速上升故障、过速下降故障。12、根据权利要求10所述的扫描链诊断向量生成装置,其特征是,所述设定约束条件包括为了敏化当前候选扫描单元上的时序故障,设定当前候选扫描单元的相邻扫描单元的逻辑状态为与时序故障相应的特定值。13、根据权利要求10所述的扫描链诊断向量生成装置,其特征是,所述设定约束条件还包括;为了使扫描单元的逻辑状态通过组合逻辑形成的路径传播到芯片的原始输出或扫描单元的伪输出,设置所述路径上的组合逻辑的旁路输入取非控制值。14、根据权利要求13所述的扫描链诊断向量生成装置,其特征是,所述设定约束条件还包括为了使所述非控制值在诊断向量移入过程中不被故障扫描单元污染,设置所述非控制值的相邻扫描单元为相应保护值。15、根据权利要求IO所述的扫描链诊断向量生成装置,其特征是,所述设定约束条件包括为了使扫描单元的逻辑状态传输到的伪输出扫描单元在移出过程中不被污染,设置该伪输出扫描单元的相邻扫面单元为相应保护值。16、根据权利要求10所述的扫描链诊断向量生成装置,其特征是,所述约束条件设定单元包括按照设定的约束条件构建的一个约束电路。17、根据权利要求16所述的扫描链诊断向量生成装置,其特征是,所述诊断向量生成单元包括在所述约束电路的输出端连接的固定型故障诊断向量生成部件,使扫描单元的时序故障诊断向量生成转化为固定型故障的诊断向量生成。18、一种容忍组合逻辑故障的扫描链诊断方法,包括如下步骤步骤S21,根据扫描链故障类型生成扫描链诊断向量;步骤S22,将扫描链诊断向量施加到待测芯片上,输出失效响应;步骤S23,对所述失效响应进行分析,找出故障扫描单元。19、根据权利要求18所述的容忍组合逻辑故障的扫描链诊断方法,其特征是,所述步骤S23具体包括如下步骤步骤S23a,计算扫描单元的每个诊断向量的权重w;步骤S23b,计算扫描单元在每个诊断向量在移入移出过程中的故障概率LEP;步骤S23c,计算扫描单元的总故障概率WLEP等于该扫描单元的所有诊断向量的权重w和在对应诊断向量移入移出过程中的故障概率LEP之积的累加。20、根据权利要求18所述的容忍组合逻辑故障的扫描链诊断方法,其特征是,还包括步骤S23d,根据扫描单元的总故障概率WLEP计算扫描单元的可疑得分,得分最高的为故障可疑扫描单元。21、根据权利要求19所述的容忍组合逻辑故障的扫描链诊断方法,其特征是,在步骤S23a中,所述诊断向量的权重<formula>formulaseeoriginaldocumentpage5</formula>其中i为扫描单元的索引号,nunuobs(Ci,j)表示为诊断扫描单元Ci所生成的第j个测试向量所能建立的敏化输出的个数。22、根据权利要求19所述的容忍组合逻辑故障的扫描链诊断方法,其特征是,在步骤S23b中,扫描单元d在第j个向量下的故障概率LEP(Ci,j)=q/p;其中,P为该向量可以敏化的传播通路的输出数目,q为观测到候选扫描单元的故障逻辑状态的传播通路的输出数目。23、根据权利要求20所述的容忍组合逻辑故障的扫描链诊断方法,其特征是,所述步骤S23d中,计算每个扫描单元的可疑得分Suspect的方法如下式<formula>formulaseeoriginaldocumentpage5</formula>(2)叫^22r+1其中r为设定的窗半径。全文摘要本发明提供一种扫描链诊断向量生成方法和装置及扫描链诊断方法。所述诊断向量生成方法,包括如下步骤确定扫描链的故障类型;根据扫描链的故障类型设定约束条件;在约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到的输出或伪输出数目最大,生成扫描链诊断向量。所述诊断向量生成装置,包括如下部件故障类型判别单元,用于判别扫描链的故障类型;约束条件单元,用于根据故障类型设定约束条件;诊断向量生成单元,用于在所述约束条件下,使扫描单元的逻辑状态通过组合逻辑形成的路径传播到的原始输出或伪输出数目最大,生成扫描链诊断向量。本发明能够有效地容忍组合逻辑中的故障,且不会给电路带来硬件开销。文档编号G01R31/3185GK101285871SQ20081010626公开日2008年10月15日申请日期2008年5月9日优先权日2008年5月9日发明者李晓维,飞王,瑜胡申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1