集成电路最长可测路径选择测试方法及系统的制作方法

文档序号:6436701阅读:180来源:国知局
专利名称:集成电路最长可测路径选择测试方法及系统的制作方法
技术领域
本发明涉及数字集成电路测试技术领域,特别涉及一种集成电路最长可测路径选择测试方法及系统。
背景技术
在数字电路测试领域,针对延迟测试提出的方法有很多,其中两种主要的故障模型是跳变故障模型和路径延迟故障模型。跳变故障模型所需要的传出路径并不要求是通过目标门的最长路径,但是如果跳变故障非常小,则由于传出路径太短,则该小延迟故障(SDD)有可能逃脱测试,因此很有必要提出一些最长可测路径选择方法。Sharma and Patel提出了一种基于图论和ATPG-driven的方法,通过选择一小部分最长路径来覆盖所有的门,该方法分从门往前到PI和从门往后到PO分别找最长路径,但该方法只适合选择通过每个门的一条最长路径,不能扩展到选择通过每个门的多条最长路径。该算法具有较高的复杂度,路径选择的时间较长。Tayade and Abraham通过建立一个SAT-based constraint-sat isf act ion问题来估算在串扰存在情况下的最大路径延迟,从而提取逻辑和时间的约束。这些方法都在寻找可测路径时采用了未加修改的ATPG(Automatic Test PatternGenaration,自动测试向量生成)策略,由于大量的回溯,从而造成时间开销很大。Walker等人选择通过每个门的k条最长路径,该方法标志每个门的扇入扇出区,从能够达到门的PI开始往后一次扩展一个门,直到扩展到PO。每次扩展一个门,就需要判断这条路径是否可测,对可测性的判断需要花费太多的时间。

发明内容
(一 )要解决的技术问题本发明要解决的技术问题是:如何提闻集成电路最大路径选择的效率,以提闻延迟故障测试的效率。( 二 )技术方案为解决上述技术问题,本发明提供了一种集成电路最长可测路径选择测试方法,包括以下步骤:S1:对集成电路进行预处理,以获得所述集成电路中的所有b-f段,所述b-f段是指一对具有前后继关系、并存在敏化值冲突的段;S2:将所述集成电路中的当前门V的扇入区域和扇出区域所包括的门依次放入集合IN和集合OUT中;S3:从当前门V开始,记录与其对应的集合IN中的每个门到当前门V的期望最大延迟、以及与其对应的集合OUT中的每个门到输出的期望最大延迟,所述期望最大延迟为两个门之间,不考虑经过所述两个门的路径是否可测的最大延迟;S4:判断与当前门V对应的集合IN中的每一个输入,若与当前门V之间未构成b-f段,则将该输入所处的段放入集合Frat中,所述集合Frat为包含了所有能够经过门V的部分路径,并按照所述部分路径的最大期望延迟排序的集合;S5:若所述集合Fwt为空集,则结束后续步骤,否则执行步骤S6 ;S6:从集合Frat中选择具有最大期望延迟的部分路径P,检查其后继的所有段的期望延迟,并选择期望延迟最大的后继段S,若后继段S与部分路径P不构成b-f段,则将后继段S加入部分路径P中,以实现对部分路径P的更新,再重复执行步骤S6,直到所述部分路径P到达输出后,将该部分路径P作为路径,再执行步骤S7,若后继段S与部分路径P构成b-f段,则执行步骤S6继续选择其他的期望延迟最大的后继段,若不存在能够选择的后继段,则执行步骤S8;S7:若该路径已经在所选择地可测路径集合中,则直接保留该路径,否则采用自动测试向量生成工具对该路径进行可测性测试,若不可测,则返回至步骤S6,若可测,则将该路径作为路径选择的结果,并将该结果放入所述可测路径集合中,将当前门V更新为其他的门,返回步骤S2,直至所述集成电路中的所有门均被选择过后,再执行步骤S9 ;S8:将该部分路径P末尾的段去掉,并在集合Frat中重新选择期望延迟最大的部分路径,返回步骤S6 ;S9:对所述可测路径集合中的每一条路径进行敏化,以生成相应的测试向量,并通过生成的测试向量进行延迟故障测试。优选地,步骤SI具体包括以下步骤:Sll:将集成电路划分为若干无扇出的段;S12:从以输入为起点的段开始以段为单位扫描所述集成电路,并记录每一个段的后继段;S13:通过对每一个段和与其对应的后继段进行敏化,检查每一个段和与其对应的后继段之间的敏化值是否存在冲突,若存在冲突,则将该段和其后继段作为一对b-f段,以记录所有的b-f段。优选地,步骤S2具体包括以下步骤:S21:判断当前门V是否为输入,若是,则执行步骤S22,若否,则执行步骤S23 ;S22:从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合0UT,并将当前门V放入集合IN ;S23:从当前门V向后遍历,获得其扇入区域,并将扇入区域所包含的输入放入集合IN,从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合OUT。本发明还公开了一种集成电路最长可测路径选择测试系统,包括:预处理模块,用于对集成电路进行预处理,以获得所述集成电路中的所有b-f段,所述b-f段是指一对具有前后继关系、并存在敏化值冲突的段;放入模块,用于将所述集成电路中的当前门V的扇入区域和扇出区域所包括的门依次放入集合IN和集合OUT中;记录模块,用于从当前门V开始,记录与其对应的集合IN中的每个门到当前门V的期望最大延迟、以及与其对应的集合OUT中的每个门到输出的期望最大延迟,所述期望最大延迟为两个门之间,不考虑经过所述两个门的路径是否可测的最大延迟;路径判断模块,用于判断与当前门V对应的集合IN中的每一个输入,若与当前门V之间未构成b-f段,则将该输入所处的段放入集合Fwt中,所述集合Frat为包含了所有能够经过门V的部分路径,并按照所述部分路径的最大期望延迟排序的集合;集合判断模块,用于若所述集合Frat为空集,则结束后续步骤,否则执行路径更新模块;路径更新模块,用于从集合Frat中选择具有最大期望延迟的部分路径P,检查其后继的所有段的期望延迟,并选择期望延迟最大的后继段S,若后继段S与部分路径P不构成b-f段,则将后继段S加入部分路径P中,以实现对部分路径P的更新,再重复执行路径更新模块,直到所述部分路径P到达输出后,将该部分路径P作为路径,再执行可测性判断模块,若后继段S与部分路径P构成b-f段,则执行路径更新模块继续选择其他的期望延迟最大的后继段,若不存在能够选择的后继段,则执行重新选择模块;可测性判断模块,用于若该路径已经在所选择地可测路径集合中,则直接保留该路径,否则采用自动测试向量生成工具对该路径进行可测性测试,若不可测,则返回至路径更新模块,若可测,则将该路径作为路径选择的结果,并将该结果放入所述可测路径集合中,将当前门V更新为其他的门,返回放入模块,直至所述集成电路中的所有门均被选择过后,再执行测试模块;重新选择模块,用于将该部分路径P末尾的段去掉,并在集合Fwt中重新选择期望延迟最大的部分路径,返回路径更新模块;测试模块,用于对所述可测路径集合中的每一条路径进行敏化,以生成相应的测试向量,并通过生成的测试向量进行延迟故障测试。优选地,预处理模块具体包括:划分模块,用于将集成电路划分为若干无扇出的段;扫描模块,用于从以输入为起点的段开始以段为单位扫描所述集成电路,并记录每一个段的后继段;敏化检查模块,用于通过对每一个段和与其对应的后继段进行敏化,检查每一个段和与其对应的后继段之间的敏化值是否存在冲突,若存在冲突,则将该段和其后继段作为一对b-f段,以记录所有的b-f段。优选地,放入模块具体包括:判断子模块,用于判断当前门V是否为输入,若是,则执行门输入模块,若否,则执行内部门模块;门输入模块,用于从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合0UT,并将当前门V放入集合IN ;内部门模块,用于从当前门V向后遍历,获得其扇入区域,并将扇入区域所包含的输入放入集合IN,从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合OUT。(三)有益效果本发明通过对集成电路进行预处理,获得了所述集成电路中的所有b-f段,避免了回溯,降低了在路径选择时,减少了对部分路径的测试次数,大大提高了集成电路最大路径选择的效率,实现了提高延迟故障测试的效率。


图1是按照本发明一种实施方式的集成电路最长可测路径选择测试方法的流程图;图2是表示门的后继段的示意图;图3是用于计算门到输出的最长距离的示例图;图4是用于计算部分路径最大延迟的示例图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。图1是按照本发明一种实施方式的集成电路最长可测路径选择测试方法的流程图,包括以下步骤:S1:对集成电路进行预处理,以获得所述集成电路中的所有b-f段,所述b-f段是指一对具有前后继关系、并存在敏化值冲突的段;其中,步骤SI具体包括以下步骤:Sll:将集成电路划分为若干无扇出的段;S12:从以输入为起点的段开始以段为单位扫描所述集成电路,并记录每一个段的后继段;某一段的直接后继段就是与该段直接连着的段。某一段的后继段是指从该段出发,经过某些段之后,能到达的段的集合,也包括直接后继段。参照图2,a的直接后继段有c和b,a的后继段有C、b、g和i,d的直接后继段有e和f,d的后继段有e、f、g、h和i。S13:通过对每一个段和与其对应的后继段进行敏化,检查每一个段和与其对应的后继段之间的敏化值是否存在冲突,若存在冲突,则将该段和其后继段作为一对b-f段,以记录所有的b-f段。在找b-f段时,电路中的某一个段不需要和其它所有段进行比较,只要和它的后继段比较即可,因为对于不是后继段的段,它们之间不能构成路径,即便敏化时存在有冲突,也不影响对不可测路径的辨别。对于任何一段,只要遍历电路,都可以找到该段的所有后继段,这些后继段形成一个区域锥,图2表示了区域锥a (即图2中的“cone a”)和区域锥d(即图2中的“cone d”),它们分别是a段和d段的后继段的集合。以段a为例阐述找bf算法的实施过程。首先标注找到了段a的后继区域锥conea,从段a开始往后搜索,有二个分支,b和C。先比较a和b的敏化条件,如果没有冲突,就再继续比较a和b的后继段(g和i段);如果有冲突,则a和b构成bf段,不需要再比较a和b的后继段g和i。这样,能缩减搜索的分支,提高搜索的速度。S2:将所述集成电路中的当前门V的扇入区域和扇出区域所包括的门依次放入集合IN和集合OUT中;S3:从当前门V开始,记录与其对应的集合IN中的每个门到当前门V的期望最大延迟、以及与其对应的集合OUT中的每个门到输出的期望最大延迟,所述期望最大延迟为两个门之间,不考虑经过所述两个门的路径是否可测的最大延迟;其中,计算每个门到输出的期望最大延迟,参照图3,在这里我们采取从后往前层序遍历的方法,每一层所有门到输出PO的最长距离以直接后继门到输出PO的最长距离为基础,用公式表示为1O =max(/, +delay唭中,1(;表示门G到输出P0的最长距离,delay (G, Si)表示门G到后继门Si的延迟,从后往前,先计算S8,S9, S10, S11, S12和S13这6个门到输出PO最长延迟,然后往上一层,计算s3,S4, S5, S6和S7这5个门到输出PO的最长延迟,再计算上一层S1和S2到输出PO的最长延迟,一直往上计算到输入PI,其中,S1到输出PO的最长延迟是S3到输出PO的最长延迟加上S1S3之间延迟与S4到输出PO的最长延迟加上S1S4之间延迟的最大值。S4:判断与当前门V对应的集合IN中的每一个输入,若与当前门V之间未构成b-f段,则将该输入所处的段放入集合Frat中,所述集合Frat为包含了所有能够经过门V的部分路径,并按照所述部分路径的最大期望延迟排序的集合;S5:若所述集合Fwt为空集,则结束后续步骤,否则执行步骤S6 ;S6:从集合Frat中选择具有最大期望延迟的部分路径P,检查其后继的所有段的期望延迟,并选择期望延迟最大的后继段S,若后继段S与部分路径P不构成b-f段,则将后继段S加入部分路径P中,以实现对部分路径P的更新,再重复执行步骤S6,直到所述部分路径P到达输出后,将该部分路径P作为路径,再执行步骤S7,若后继段S与部分路径P构成b-f段,则执行步骤S6继 续选择其他的期望延迟最大的后继段,若不存在能够选择的后继段,则执行步骤S8 ;对于每条部分路径,它的最大期望延迟分以下两种情况计算:(I)当部分路径还没有通过门V时,部分路径的最大期望延迟是部分路径的延迟、部分路径的终点到门V的最大延迟和门V到PO的最大延迟这三个延迟之和;(2)当部分路径已经通过门V时,部分路径的最大期望延迟为部分路径的延迟和部分路径的终点到PO的最长延迟之和。参照图4,选则通过门g的k条最长路径,假如部分路径为g(|gl,由于g(|gl还没有过门g,因此g(|gl的最大延迟期望是gcigi的延迟、gi到门g的最大延迟、g到PO的最大延迟之和,即delay (gog^ +delay (g^) +delay (gg2) +delay (g2g4) = 1+6+2+10 = 19,其中 delay (g^)表示门 gi 到 gj 的延迟。注意到 gQ 到 g9 的延迟为 27 (delay ^g1)+delay (g^)+delay (g7g8)+delay (g8g9)),但再计算部分路径^g1的最大期望延迟时,却没有选择gl到g9这条路径,因为它并不通过门g,虽然gl到g9是最大延迟的路径,但本发明的算法在预处理计算的时候就可以把这个分支排除在搜索范围之外。也正因为如此,本发明在定义部分路径的最大期望延迟时,分是否通过门g两种情况。部分路径的最大期望延迟是在不断变化的。对于图4的部分路径gc^g,最大期望延迟是 delay (gog^ +delay (g^) +delay (gg2) +delay (g2g4) = 19,但是当部分路径沿着最大期望延迟扩展为gogigg;^时,gg2和gogig中的某段构成bf段,即gdgigg;^是不能被敏化的,该部分路径扩展后的完全路径是不可测的。因此,goglg的最大期望延迟也要相应的变为delay (g0gi) +delay (g^) +delay (gg3) +delay (g3g6) = 15,即沿着 g3g6 分支扩展为完全路径。更进一步地来说,最大期望延迟是指导部分路径向哪个分支扩展的。这个指导作用非常关键,但有时可能会引导部分路径扩展为不可测路径,这是因为bf对只能排除90%的不可测路径,不能排除所有不可测路径。在这种情况下,要及时更新最大期望延迟,使得部分路径沿着可测路径的那些分支继续向PO方向扩展。S7:若该路径已经在所选择地可测路径集合中,则直接保留该路径,否则采用自动测试向量生成(ATPG)工具对该路径进行可测性测试,若不可测,则返回至步骤S6,若可测,则将该路径作为路径选择的结果,并将该结果放入所述可测路径集合中,将当前门V更新为其他的门,返回步骤S2,直至所述集成电路中的所有门均被选择过后,再执行步骤S9 ;
S8:将该部分路径P末尾的段去掉,并在集合Frat中重新选择期望延迟最大的部分路径,返回步骤S6 ;以下参照图3,来说明步骤S8,例如,在执行步骤S6时,若原部分路径为StlS1,设此时其期望延迟最大的后继段为S3,则将S3加入到原部分路径中,此时部分路径为S0S1S3,若此时部分路径的后继段S8和S9均与S3构成b-f段,则此时需要将该部分路径的后继段S3去掉,并重新在集合Fout中重新选择期望延迟最大的部分路径,若原部分路径StlS1在排除掉后继段S3后,期望延迟最大的部分路径变为了 StlS2,此时,将StlS2作为部分路径,再进行后续步骤,但原部分路径StlS1在排除掉后继段S3后,仍具有最大的部分路径,则还是从部分路径StlS1开始,选择其后继段S4进行后续判断;S9:对所述可测路径集合中的每一条路径进行敏化,以生成相应的测试向量,并通过生成的测试向量进行延迟故障测试(延迟故障测试包括:路径延迟故障测试和小延迟故障测试等)。优选地,步骤S2具体包括以下步骤:S21:判断当前门V是否为输入,若是,则执行步骤S22,若否,则执行步骤S23 ;S22:从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合0UT,并将当前门V放入集合IN ;S23:从当前门V向后遍历,获得其扇入区域,并将扇入区域所包含的输入放入集合IN,从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合OUT。以下通过Dell Precision 690工作站对本发明的路径选择效率进行试验验证,表I中给出了将本发明应用到ISCAS89和IWLS2005电路的实验结果。选出通过每个门的最长K条路径,K分别取值1,5和10,对于vga_lcd和ethernet这两个电路,K取值I和2,对于K为5,10的情况,不再予以计算。对于某一个门,如果选出通过该门的最长路径都不可测,最多选择1000次,超过1000次还不可测,则放弃选择通过这个门的最长可测路径。第一栏是电路名称,第二栏和第二栏是k = I选的路径条数和时间,第四栏和第五栏是k = 5选的路径条数和时间,第六栏和第七栏是k = 10选的路径条数和时间,可以看出,随着k的增加,路径数也不断地增加,但增加的倍数可能小于k的倍数。表I
权利要求
1.种集成电路最长可测路径选择测试方法,其特征在于,包括以下步骤: S1:对集成电路进行预处理,以获得所述集成电路中的所有b-f段,所述b-f段是指一对具有前后继关系、并存在敏化值冲突的段; 52:将所述集成电路中的当前门V的扇入区域和扇出区域所包括的门依次放入集合IN和集合OUT中; 53:从当前门V开始,记录与其对应的集合IN中的每个门到当前门V的期望最大延迟、以及与其对应的集合OUT中的每个门到输出的期望最大延迟,所述期望最大延迟为两个门之间,不考虑经过所述两个门的路径是否可测的最大延迟; 54:判断与当前门V对应的集 合IN中的每一个输入,若与当前门V之间未构成b-f段,则将该输入所处的段放入集合Frat中,所述集合Fwt为包含了所有能够经过门V的部分路径,并按照所述部分路径的最大期望延迟排序的集合; 55:若所述集合Ftjut为空集,则结束后续步骤,否则执行步骤S6 ; 56:从集合Fwt中选择具有最大期望延迟的部分路径P,检查其后继的所有段的期望延迟,并选择期望延迟最大的后继段S,若后继段S与部分路径P不构成b-f段,则将后继段S加入部分路径P中,以实现对部分路径P的更新,再重复执行步骤S6,直到所述部分路径P到达输出后,将该部分路径P作为路径,再执行步骤S7,若后继段S与部分路径P构成b-f段,则执行步骤S6继续选择其他的期望延迟最大的后继段,若不存在能够选择的后继段,则执行步骤S8 ; 57:若该路径已经在所选择地可测路径集合中,则直接保留该路径,否则采用自动测试向量生成工具对该路径进行可测性测试,若不可测,则返回至步骤S6,若可测,则将该路径作为路径选择的结果,并将该结果放入所述可测路径集合中,将当前门V更新为其他的门,返回步骤S2,直至所述集成电路中的所有门均被选择过后,再执行步骤S9 ; 58:将该部分路径P末尾的段去掉,并在集合Frat中重新选择期望延迟最大的部分路径,返回步骤S6; 59:对所述可测路径集合中的每一条路径进行敏化,以生成相应的测试向量,并通过生成的测试向量进行延迟故障测试。
2.权利要求1所述的方法,其特征在于,步骤SI具体包括以下步骤: 511:将集成电路划分为若干无扇出的段; 512:从以输入为起点的段开始以段为单位扫描所述集成电路,并记录每一个段的后继段; 513:通过对每一个段和与其对应的后继段进行敏化,检查每一个段和与其对应的后继段之间的敏化值是否存在冲突,若存在冲突,则将该段和其后继段作为一对b-f段,以记录所有的b-f段。
3.权利要求1或2所述的方法,其特征在于,步骤S2具体包括以下步骤: 521:判断当前门V是否为输入,若是,则执行步骤S22,若否,则执行步骤S23 ; 522:从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合OUT,并将当前门V放入集合IN ; 523:从当前门V向后遍历,获得其扇入区域,并将扇入区域所包含的输入放入集合IN,从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合OUT。
4.种集成电路最长可测路径选择测试系统,其特征在于,包括: 预处理模块,用于对集成电路进行预处理,以获得所述集成电路中的所有b-f段,所述b-f段是指一对具有前后继关系、并存在敏化值冲突的段; 放入模块,用于将所述集成电路中的当前门V的扇入区域和扇出区域所包括的门依次放入集合IN和集合OUT中; 记录模块,用于从当前门V开始,记录与其对应的集合IN中的每个门到当前门V的期望最大延迟、以及与其对应的集合OUT中的每个门到输出的期望最大延迟,所述期望最大延迟为两个门之间,不考虑经过所述两个门的路径是否可测的最大延迟; 路径判断模块,用于判断与当前门V对应的集合IN中的每一个输入,若与当前门V之间未构成b-f段,则将该输入所处的段放入集合Frat中,所述集合Frat为包含了所有能够经过门V的部分路径,并按照所述部分路径的最大期望延迟排序的集合; 集合判断模块,用于若所述集合Frat为空集,则结束后续步骤,否则执行路径更新模块; 路径更新模块,用于从集合Fwt中选择具有最大期望延迟的部分路径P,检查其后继的所有段的期望延迟,并选择期望延迟最大的后继段S,若后继段S与部分路径P不构成b-f段,则将后继段S加入部分路径P中,以实现对部分路径P的更新,再重复执行路径更新模块,直到所述部分路径P到达输出后 ,将该部分路径P作为路径,再执行可测性判断模块,若后继段S与部分路径P构成b-f段,则执行路径更新模块继续选择其他的期望延迟最大的后继段,若不存在能够选择的后继段,则执行重新选择模块; 可测性判断模块,用于若该路径已经在所选择地可测路径集合中,则直接保留该路径,否则采用自动测试向量生成工具对该路径进行可测性测试,若不可测,则返回至路径更新模块,若可测,则将该路径作为路径选择的结果,并将该结果放入所述可测路径集合中,将当前门V更新为其他的门,返回放入模块,直至所述集成电路中的所有门均被选择过后,再执行测试模块; 重新选择模块,用于将该部分路径P末尾的段去掉,并在集合Fwt中重新选择期望延迟最大的部分路径,返回路径更新模块; 测试模块,用于对所述可测路径集合中的每一条路径进行敏化,以生成相应的测试向量,并通过生成的测试向量进行延迟故障测试。
5.权利要求4所述的系统,其特征在于,预处理模块具体包括: 划分模块,用于将集成电路划分为若干无扇出的段; 扫描模块,用于从以输入为起点的段开始以段为单位扫描所述集成电路,并记录每一个段的后继段; 敏化检查模块,用于通过对每一个段和与其对应的后继段进行敏化,检查每一个段和与其对应的后继段之间的敏化值是否存在冲突,若存在冲突,则将该段和其后继段作为一对b-f段,以记录所有的b-f段。
6.权利要求4或5所述的系统,其特征在于,放入模块具体包括: 判断子模块,用于判断当前门V是否为输入,若是,则执行门输入模块,若否,则执行内部门模块; 门输入模块,用于从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合OUT,并将当前门V放入集合IN ; 内部门模块,用于从当前门V向后遍历,获得其扇入区域,并将扇入区域所包含的输入放入集合IN,从当前门V向前遍历,获得其扇出区域,并将扇出区域所到达的输出放入集合OU T。
全文摘要
本发明公开了一种集成电路最长可测路径选择测试方法及系统,涉及数字集成电路测试技术领域,本发明通过对集成电路进行预处理,获得了所述集成电路中的所有b-f段,避免了回溯,降低了在路径选择时,减少了对部分路径的测试次数,大大提高了集成电路最大路径选择的效率,实现了提高延迟故障测试的效率。
文档编号G06F17/50GK103093006SQ20111033335
公开日2013年5月8日 申请日期2011年10月28日 优先权日2011年10月28日
发明者向东, 李建波, 随文杰 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1