边界扫描环境下电路板互连故障的内建测试实现方法

文档序号:5821643阅读:184来源:国知局

专利名称::边界扫描环境下电路板互连故障的内建测试实现方法边界扫描环境下电路板互连故障的内建测试实现方法(一)
技术领域
-本发明涉及一种边界扫描环境下电路板互连故障的内建测试(BuiltInTest,简称"BIT")实现方法,属于电路板生产与维修过程中的故障检测
技术领域
。(二)
背景技术
:在电路板的生产和维护过程中,互连测试是一个非常重要的问题。例如,在装配过程中,由于定位不准、焊料量控制不好、温度和时间控制不当等原因,极易造成短路、呆滞和开路等故障。据统计,互连线上的故障数已经占到了整个电路板故障的一半以上,而且随着电路板集成度和复杂度的进一步提高,这个比例还会不断上升。另一方面,传统的基于物理探针的测试方法,随着芯片集成度和电路板组装密度的不断提高,已经无法满足测试需求;而边界扫描技术以"虚拟探针"代替物理探针的方式,为电路板的测试提供了一种全新的测试访问手段,简化了互连测试阶段加载测试激励和获取测试响应的过程。在电路板的互连测试过程中,会遇到大量的多驱动器三态互连网络。对于这样的网络,若同时使能多个驱动单元,且它们加载的逻辑电平不一致,则可能会在这些驱动单元之间产生较大电流,对电路造成永久性的损坏。这种现象称为多驱动器冲突。在测试过程中,应该首先避免多驱动器冲突现象的发生,使测试能够安全进行。目前,有两种方法可以避免多驱动器冲突见文献1:[W.ShiandW.K.Fuchs.Optimalinterconnectdiagnosisofwiringnetworks[J].IEEETransactionsonVLSISystems,1995,Vol.3,NO.3.《互连网络的最优诊断》,电气和电子工程协会出版的《超大规模集成电路系统学报》,1995年,第3巻,第3期。]第一种称为单使能方法(SingleEnable),即保证对于任何一个三态网络,任何时候最多只有一个驱动单元处于使能有效状态。第二种称为多使能方法(MultipleEnable),即允许多个驱动单元同时处于使能有效状态,但这些驱动单元输出的逻辑电平必须一致。目前,电路板的互连测试通常是由外部测试机来完成的。这种方式虽然能够对互连故障进行准确的诊断和定位,但存在测试成本高、测试时间长、测试过程复杂等问题。而BIT技术正好可以解决以上问题,它能够以极小的成本对电路板进行快速检测,以确定是否存在故障,从而为进一步的诊断提供依据。BIT实现主要包括测试生成器T和响应分析器3'两个部分,如图1所示。测试生成器l'产生测试激励,并加载到被测电路板2;响应分析器3'通过将无故障响应与被测电路板2产生的实际响应进行比较,得出是否存在故障的结论。文献2[C.ChiangandS.K.Gupta.BISTTPGsforfaultdetectioninboardlevelinterconnectviaboundaryscan[C].IEEEVLSITestSymposium,1997《边界扫描环境下电路板内建互连测试中测试生成器的设计方法》.电气和电子工程协会出版的《超大规模集成电路测试会议论文集》,1997年]和文献3[W.Feng,W丄Huang,F.J.MeyerandF.Lombardi.ABISTTPGapproachforinterconnecttestingwiththeIEEE1149.1STD[C].AsianTestSymposium,1999.《1149.l标准下内建互连测试中测试生成器的一种实现方法》,《亚洲测试会议论文集》,1999年]提出了测试生成器r的设计方法。但存在如下一些问题(1)没有区分驱动单元和接收单元。边界扫描链中的驱动单元和接收单元在互连测试中的作用是不相同的驱动单元负责加载测试激励,接收单元负责观测测试响应。而上述两个文献中,将接收单元归入驱动单元(统称为数据单元),并按相同的方式为它们分配测试激励,这种方式在实现上虽然简单,但由于接收单元上分配的测试激励,在测试过程中不能被加载到互连网络上,没有任何作用,于是会造成测试生成器l'的额外硬件开销。(2)同一互连网络上所加载的测试激励不统一。文献2和文献3中,将所有驱动单元统一排序,并分配给它们不同的测试向量,这种方式使得属于同一互连网络上的不同驱动单元分配到了不同的测试激励,因而当这些驱动单元分别使能有效时,接收单元就会观测到多种不同的测试响应,测试响应的多样性和无序性会给响应分析器3'的设计带来许多不便,同时也会增加响应分析器3'的硬件开销。
发明内容本发明的目的是提出一种边界扫描环境下电路板互连故障的内建测试实现方法,该实现方法在保证100%故障检测率的前提下,能够避免多驱动器冲突问题,从而使测试过程能够安全进行。本发明主要包括以下内容本发明的总体设计采用改良计数序列算法和单使能方法分别作为驱动单元和控制单元的测试生成算法。改良计数序列算法[见文献4:P.GoelandM.T.Mcmahon.Electronicchip-in-placetest[C].IEEEInternationalTestConference,1982.《电子器件的原位测试》,电气和电子工程协会出版的《国际测试会议论文集》,1982年.]是能够检测所有呆滞和短路故障且测试向量数最少的测试算法;而单使能方法不仅能够避免多驱动器冲突,还能够检测所有的开路故障。因此,使用上述两种方法分别作为驱动单元和控制单元的测试生成算法,这样就能保证100%的故障检测率,且使测试过程安全进行。本发明的硬件部分总体设计如图2所示。其包括测试生成器1、查找表4、响应分析器3和被测电路板2。其各部分的连接关系如下测试生成器1、响应分析器3和被测电路板2中的扫描链5都与外部的测试时钟信号13连接;测试生成器1输出扫描链递增计数器值14到査找表4,査找表4返回移入单元信息15到测试生成器1;测试生成器1输出移入位信息18到扫描链5;测试生成器1输出测试向量计数器值23和测试循环计数器值24到响应分析器3。响应分析器3输出扫描链递减计数器值16到査找表4,査找表4返回移出单元信息17到响应分析器3;扫描链5输出移出位信息19到响应分析器3。响应分析器3输出最终的"通过/失败"信号20。1、査找表4的具体设计在边界扫描环境下,包含三类边界扫描单元,即驱动单元、接收单元和控制单元。驱动单元负责加载测试激励;接收单元负责观测测试响应;控制单元负责控制驱动单元的使能状态。这三类扫描单元在扫描链5中交错分布、排列顺序没有固定规律。因此,需要首先设计一个查找表4以区分扫描链5中的各种扫描单元。査找表4包含L项(L是扫描链5的长度),第一项与扫描链5中的第一个单元对应,第二项与第二个单元对应,......,依此类推。查找表4的详细设计如图3所示。査找表4每一项的第一位,即"C/D"位,用以区分该单元是数据单元(0表示)还是控制单元(1表示)。第二位,即"D/R"位,用以区分数据单元是驱动单元(0表示)还是接收单元(l表示);若该单元是控制单元,则此位没有意义。从第三位开始是各个单元对应的测试数据,测试数据分成两个部分第一部分是数据序列。数据序列对于三种单元均有意义若是控制单元,则表示使能控制序列;若是驱动单元,则表示测试激励序列;若是接收单元,则表示无故障响应序列。(属于同一互连网络的驱动单元和接收单元具有相同的数据序列)-第二部分是比较序列。比较序列只对接收单元有意义若比较序列的第i位为1,则表示在第i次测试循环中,响应分析器3需要将该接收单元数据序列的对应位与扫描链5输出的移出位信息19进行比较,根据两者是否相等得出是否存在故障的结论;若为0,则无需比较。各种序列的分配过程如下A.驱动单元和接收单元的数据序列分配首先按与其关联的驱动单元的最小序号,对互连网络进行排序编号。属于同一互连网络的所有驱动单元和接收单元共用此互连网络的编号。然后为这些驱动单元和接收单元分配改良计数序列编号为I的所有单元分配序列ooo……ooi;编号为n的单元分配序列ooo……oio;编号为ni的单元分配序列000……011;......;依此类推。对于N个互连网络,数据序列的长度为「Log,(N+2)l位(「]表示上取整数)。B.控制单元的数据序列分配一个控制单元可能控制多个属于不同互连网络的驱动单元,而一个互连网络上又可能包含多个控制单元。如何使每个驱动单元都至少使能一次(保证能检测所有驱动单元的开路故障),并且避免多驱动器冲突现象的发生,同时还要使控制序列长度最短(控制序列长度等于测试循环数,测试循环数越少,即测试时间越短),是控制序列分配的难点所在。针对这个问题,我们提出了一种控制单元数据序列的分配算法,如下第一步,按照控制单元所控制的驱动单元数(简称控制数)对控制单元进行从大到小排序、编号;编号越小,控制数越大;控制数相同的控制单元之间按任意顺序排列。设置变量j的初值为1。第二步,取出当前编号最小且未分配序列的控制单元(定义为当前单元),为其分配下面的序列,并将该单元控制的驱动单元所对应的互连网络放入临时集合内0……010……0个个第j位第l位第三步,査询满足如下三个条件且编号最小的控制单元(a)编号大于当前单元编号;(b)未分配数据序列;(C)它控制的驱动单元所对应的互连网络不在临时集合内。若存在这样的控制单元,则将第二步中产生的序列也分配给此控制单元,并将其控制的驱动单元对应的互连网络放入临时集合内。第四步,按照同第三步相同的方法处理编号大于当前单元编号的所有控制单元。第五步,若所有控制单元都已分配序列,则算法结束;否则令j加l,清空临时集合,并返回第二步。根据上述序列分配算法,对于网络深度大为K的电路板,控制序列长度必为K位。这样就能保证任何一个驱动单元都能使能一次,无多驱动器冲突,并且使测试循环数最少(控制序列的1位就对应1次测试循环,K位就对应K次测试循环)。c.接收单元的比较序列分配按照前面提出的控制序列分配算法,对于一些互连网络,在K次测试循环中,可能会存在所有驱动单元都使能无效的情况,此时,接收单元接收的响应应为"全1"序列。因此,不能与该接收单元的数据序列进行比较。此外,这类互连网络在哪次测试循环出现上述情况,也是没有规律的。故需要用比较序列来标识这种情况。比较序列的分配过程如下对于某接收单元,若在第i次测试循环中,只要存在属于同一互连网络的驱动单元使能有效,则令比较序列的第i位为1;否则令该位为0。但如下情况除外电路板中可能存在一些双向单元,按照IEEE1149.1标准的约定,它通常是由一个控制单元、一个驱动单元和一个接收单元组成。当其控制单元使能有效时,双向单元表现为驱动单元;若否,则表现为接收单元。但不能同时表现为驱动单元和接收单元。因此,当双向单元在某次测试循环中其控制单元使能有效时,即表现为驱动单元时,其接收单元对应的比较位应分配0(不需比较测试响应)。2、测试生成器1的具体设计测试生成器1的作用是从査找表4中读取当前将要移入扫描链5的扫描单元信息,从其数据序列(驱动单元或控制单元)中提取移入位信息18,并移入扫描链5。测试生成器1的详细设计如图4所示。其主要包括扫描链递增计数器6、测试向量计数器7、测试循环计数器8和移入位选择器11。其各部分连接如下-扫描链递增计数器6与测试时钟信号13相连;扫描链递增计数器6输出扫描链递增计数器值14到查找表4;扫描链递增计数器6输出扫描链递增计数器进位标志位21到测试向量计数器7;测试向量计数器7输出测试向量计数器值23到移入位选择器11;测试向量计数器7输出测试向量计数器进位标志位22到测试循环计数器8;测试循环计数器8输出测试循环计数器值24到移入位选择器11;移入位选择器11还接收来自査找表4的移入单元信息15,并输出移入位信息18到扫描链5。其中,扫描链递增计数器6是一个「Log2L,位(L是扫描链的长度)的循环递增计数器,它对扫描链5的移位操作进行计数。由它的计数值可知当前将要移入扫描链5的扫描单元的序号,查找表4输出与此序号对应的扫描单元信息到移入位选择器ll。测试向量计数器7是一个「Log2「Lc^(N+2)"位(N是互连网络数)的循环递增计数器,它对加载的测试向量进行计数(扫描链递增计数器6每循环一次,产生一次进位,即对应加载了一个测试向量)。其计数值达到「Lc^(N+2)1—1时,表示完成一次测试循环。由它的计数值可知当前要加载数据序列(驱动单元)的位号,例如,计数值为3,则应选择数据序列的第3位。测试循环计数器8是一个「Log,K]位(K是电路板的网络深度)递增计数器,它对测试循环次数进行计数(测试向量计数器7每循环一次,产生一次进位,即对应完成一次测试循环)。其计数值达到K一1时,标志着整个测试过程的结束。由它的计数值可知当前要加载数据序列(控制单元)的位号,例如,计数值为3,则应选择数据序列的第3位。测试生成器1的工作过程如下扫描链递增计数器6对测试时钟信号13进行计数,由扫描链递增计数器6的扫描链递增计数器值14可从査找表4中选出当前要移入扫描链5的扫描单元信息。移入位选择器11处理査找表4输出的移入单元信息15,若此单元是驱动单元,则由测试向量计数器7的测试向量计数器值23从数据序列中选出移入位信息18,并移入扫描链5;若此单元是控制单元,则由测试循环计数器8的测试循环计数值24从数据序列中选出移入位信息18,并移入扫描链5。扫描链递增计数器6每循环一次,测试向量计数器7的计数值加1;测试向量计数器7每循环一次,测试循环计数器8的计数值加1。在测试时钟信号13的作用下,重复上述步骤,直到完成整个测试过程,即测试循环计数器8的计数值达到K。3、响应分析器3的具体设计响应分析器3的作用是从査找表4中读取当前移出扫描链5的扫描单元信息,从其数据序列(接收单元)中提取响应位信息25,并与扫描链5移出的移出位信息19进行比较,根据是否相等得出是否存在故障的结论,即输出"通过/失败"信号20(0表示"通过",l表示"失败")。响应分析器3的详细设计如图5所示。其主要包括扫描链递减计数器9、响应位选择器12和位比较器10。其各部分连接如下扫描链递减计数器9与测试时钟信号13相连;扫描链递减计数器9输出扫描链递减计数器值16到査找表4;响应位选择器12接收来自查找表4的移出单元信息17,同时也接收来自测试向量计数器7的测试向量计数器值23和测试循环计数器8的测试循环计数器值24;位比较器10接收来自扫描链5的移出位信息19和响应位选择器12的响应位信息25,并输出"通过/失败"信号20。响应分析器3的扫描链递减计数器9与测试生成器1的扫描链递增计数器6略微有点区别。由于首先移出扫描链5的是最后一个扫描单元的数据,然后是倒数第二个,......,依此类推,所以扫描链递减计数器9采用循环递减计数器,或者也可以利用扫描链递增计数器6和一个减法器来实现。由扫描链递减计数器9的计数值可知当前将要移出扫描链5的扫描单元序号,查找表4输出与此序号对应的扫描单元信息到响应位选择器12。响应分析器3共享测试生成器1的测试向量计数器7和测试循环计数器8。由测试向量计数器7的计数值可知当前要比较的数据序列(接收单元)的位号,例如,计数值为3,则应选择数据序列的第3位;而由测试循环计数器8的计数值则可知当前要查看的比较序列(接收单元)的位号。响应分析器3的工作过程如下扫描链递减计数器9对测试时钟信号13进行计数,由扫描链递减计数器9的扫描链递减计数器值16可从查找表4中选出当前要移出扫描链5的扫描单元信息。响应位选择器12处理查找表4输出的移出单元信息17,它先判断此单元是否为接收单元,若是,则由测试循环计数器8的测试循环计数器值24从比较序列中选出对应比较位若比较位为"l"(表示需要比较测试响应),则由测试向量计数器7的测试向量计数器值23从数据序列中选出响应位信息25,.并输出给位比较器10。位比较器10将扫描链5输出的移出位信息19和响应位选择器12输出的响应位信息25进行比较,若相同,则无故障,否则,产生"失败"信号,测试结束。在测试时钟信号13的作用下,重复上述步骤,直到完成整个测试过程,若所有比较都相同,则无故障。本发明一种边界扫描环境下电路板互连故障的内建测试实现方法,其具有如下积极效果和优点1.通过使用改良计数序列算法和单使能方法,可对所有互连故障,包括短路、开路和呆滞故障,达到100%的故障检测率;2.由于采用单使能方法,可保证对任何一个互连网络,在任何时刻最多只有一个驱动单元处于有效状态,因此,能够避免多驱动器冲突问题,使测试能够安全进行;3.在设计查找表4时,同时兼顾了测试生成器1和响应分析器3的设计需要,根据在测试过程中的不同作用,分别为控制单元、驱动单元和接收单元分配不同的序列;分配过程简单,易于工程实现;4.测试生成器1和响应分析器3之间共享计数器资源,可减少BIT的硬件开销;5.该BIT实现方法还具有可靠性高、测试速度快等优点。-图l是BIT原理框图。图2是本发明总体设计框图。图3是本发明査找表设计框图。图4是本发明测试生成器设计框图。图5是本发明响应分析器设计框图。图6是某电路板的互连网络示意图。图中具体标号如下l'、1测试生成器2、被测电路板3'、3响应分析器4、查找表7、测试向量计数器10、位比较器13、测试时钟信号15、移入单元信息17、移出单元信息20、"通过/失败"信号21、扫描链递增计数器进位标志位22、测试向量计数器进位标志位23、测试向量计数器值24、测试循环计数器值25、响应位信息具体实施例方式下面结合附图对本发明具体实施例作进一步的详细说明。图6是某被测电路板2互连网络的简化示意图。此电路板的扫描链5包含24个边界扫描单元(按箭头的流向,将这24个扫描单元分别命名为"单元1"、"单元2"、……、"单元24")。图中"C"表示控制单元,"D"表示驱动单元,"R"表示接收单元;若驱动单元和接收单元共用一个引脚,则表示双向单元,例如"单元2"和"单元3"表示一个双向单元;控制单元上的箭头表示它所控制的驱动单元或者双向单元,例如"单元l"控制着"单元2"、"单元3"、"单元4"、"单元5"和"单元6"。本发明硬件部分的总体设计如图2所示。其包括测试生成器1、查找表4、响应分析器3、被测电路板2。其各部分的连接关系如下测试生成器1、响应分析器3和被测电路板2中的扫描链5都与外部的测试时钟信号13连接;测试生成器1输出扫描链递增计数器值14到查找表4,查找表4返回移入单元信息15到测试生成器1;测试生成器1输出移入位信息18到扫描链5;测试生成器1输出测试向量计数器值23和测试循环计数器值24到响应分5、扫描链6、扫描链递增计数器8、测试循环计数器9、扫描链递减计数器11、移入位选择器12、响应位选择器14、扫描链递增计数器值16、扫描链递减计数器值18、移入位信息19、移出位信息析器3。响应分析器3输出扫描链递减计数器值16到查找表4,査找表4返回移出单元信息17到响应分析器3;扫描链5输出移出位信息19到响应分析器3。响应分析器3输出最终的"通过/失败"信号20。1、査找表4的具体设计査找表4包含24项(24是扫描链5的长度,即扫描链5中的扫描单元个数)第一项与"单元1"对应,第二项与"单元2"对应,......,依此类推。査找表4的详细设计如图3所示。查找表4每一项的第一位,即"C/D"位,用以区分该单元是数据单元(0表示)还是控制单元(1表示)。第二位,即"D/R"位,用以区分数据单元是驱动单元(0表示)还是接收单元(l表示);若该单元是控制单元,则此位没有意义,可为0或者1这两者之间的任意值。本发明实施例中(如图6),"单元1"是控制单元,所以它的"C/D"位为1,"D/R"位为0或者1;"单元2"是驱动单元,所以它的"C/D"位为0,"D/R"位为0;"单元3"是接收单元,所以它的"C/D"位为0,"D/R"位为1;……。其它单元的"C/D"位和"D/R"位分配如下面的表l所示。从第三位开始是各个单元对应的测试数据,测试数据分成两个部分第一部分是数据序列。数据序列对于三种单元均有意义若是控制单元,则表示使能控制序列;若是驱动单元,则表示测试激励序列;若是接收单元,则表示无故障响应序列。(属于同一互连网络的驱动单元和接收单元具有相同的数据序列)第二部分是比较序列。比较序列只对接收单元有意义:若比较序列的第i位为l,则表示在第i次测试循环中,响应分析器3需要将该接收单元数据序列的对应位与扫描链5输出的移出位信息19进行比较,根据两者是否相等得出是否存在故障的结论;若为0,则无需比较。各种序列分配过程如下A.驱动单元和接收单元的数据序列分配首先按与其关联的驱动单元的最小序号,对互连网络进行排序编号,且满足属于同一互连网络的所有驱动单元和接收单元共用此互连网络的编号。本发明实施例中(如图6),电路板包括4个互连网络,分别命名为"网络A"、"网络b"、"网络c"和"网络d"。与"网络A"关联的驱动单元有"单元2"、"单元8"、"单元10",驱动单元的最小序号为2;与"网络b"关联的驱动单元有"单元4"、"单元12"和"单元14",驱动单元的最小序号为4;与"网络c"关联的驱动单元有"单元17",驱动单元的最小序号为17;与"网络D"关联的驱动单元有"单元20",驱动单元的最小序号为20。故排列顺序为"网絡a"(编号为i)、"网络B"(编号为n)、"网络c"(编号为III)、"网络D"(编号为IV)。然后为这些驱动单元和接收单元分配改良计数序列"单元2"、"单元3"、"单元8"、"单元10"、"单元16"、"单元23"同属"网络a",且编号为I,故分配数据序列001;"单元4"、"单元5"、"单元12"、"单元14"和"单元19"同属"网络B",且编号为II,故分配数据序列010;"单元i7"和"单元22"同属"网络c",且编号为ni,故分配数据序列011;"单元18"、"单元20"和"单元24"同属"网络D",且编号为IV,故分配数据序列100。数据序列长度为「Log"4+2)^3(4是互连网络数)。b.控制单元的数据序列分配本实例中(如图6),与互连测试有关的控制单元包括"单元1"、"单元7"、"单元9"、"单元ll"和"单元15"。(与互连测试无关的控制单元,直接分配"全0"数据序列。)按照本发明提出的控制单元的数据序列分配算法,其分配过程如下第一步,按照控制单元所控制的驱动单元数(简称控制数)对控制单元进行从大到小排序、编号;编号越小,控制数越大;控制数相同的控制单元之间按任意顺序排列。"单元1"(控制数为2,编号为i)(注虽然"单元1"控制的驱动单元有"单元2"、"单元4"和"单元6",但"单元6"与互连测试无关,所以"单元1"只控制了两个驱动单元,控制数为2),"单元7"(控制数为1,编号为ii),"单元9"(控制数为1,编号为iii),"单元ll"(控制数为1,编号为iv)和"单元15"(控制数为l,编号为v)。设置变量j的初值为1。第二步,取出当前编号最小且未分配序列的控制单元,即"单元l"(作为当前单元),为其分配序列001,并将该单元控制的驱动单元所对应的互连网络,即"网络A"和"网络B"放入临时集合。第三步,查询满足如下三个条件且编号最小的控制单元(a)编号大于当前单元编号;(b)未分配数据序列;(c)它控制的驱动单元所对应的互连网络不在临时集合内。经查询,不存在这样的控制单元,("单元7"控制的驱动单元"单元8"所对应的互连网络为"网络A",不满足条件(c);"单元9"控制的驱动单元"单元10"所对应的互连网络为"网络A",也不满足条件(c);"单元11"控制的驱动单元"单元12"所对应的互连网络为"网络B",也不满足条件(c);"单元15"控制的驱动单元"单元14"所对应的互连网络为"网络B",也不满足条件(c)。)故进入第四步。第四步,令j加l,即等于2,清空临时集合。第五步,取出当前编号最小且未分配序列的控制单元,即"单元7"(作为当前单元),为其分配序列010,并将该单元控制的驱动单元所对应的互连网络,即"网络A"放入临时集合。第六步,查询满足第三步中的三个条件且编号最小的控制单元经查询,"单元11"满足上述三个条件,且编号最小,所以将序列010分配给"单元ll",并将该单元控制的驱动单元所对应的互连网络,即"网络B"放入临时集合。第七步,重复执行第六步,经查询,不存在满足上述条件的控制单元,故进入第八步。第八步,令j加l,即等于3,清空临时集合。第九步,取出当前编号最小且未分配序列的控制单元,即"单元9"(作为当前单元),为其分配序列100,并将该单元控制的驱动单元所对应的互连网络,即"网络A"放入临时集合。第十步,査询满足第三步中的三个条件且编号最小的控制单元经查询,"单元15"满足上述三个条件,且编号最小,所以将序列100分配给"单元15",并将该单元控制的驱动单元所对应的互连网络,即"网络B"放入临时集合。所有控制单元均己分配数据序列,算法结束。C.接收单元的比较序列分配比较序列的分配过程如下对于某接收单元,若在第i次测试循环中,只要存在属于同一互连网络的驱动单元使能有效,则令比较、序列的第i位为1;否则令该位为0。但当双向单元在某次测试循环中其控制单元使能有效时,其接收单元对应的比较位应分配0。本实施例中(如图6),"单元3"与"单元2"共同组成双向单元,在第一次测试循环中,此双向单元的控制单元(即"单元l")处于使能有效状态,所以"单元3"比较序列的第一位应分配0;而在第二次和第三次测试循环中,此双向单元的控制单元处于使能无效状态,且有属于同一互连网络的驱动单元有效,即"单元8"和"单元10",故"单元3"需要比较故障响应,对应位应分配1。因此,"单元3"分配的比较序列为110。"单元5"与"单元4"共用组成双向单元,在第一次测试循环中,此双向单元的控制单元(即"单元l")处于使能有效状态,所以"单元5"比较序列的第一位应分配0;而在第二次和第三次测试循环中,此双向单元的控制单元处于使能无效状态,且有属于同一互连网络的驱动单元有效,即"单元12"和"单元14",故"单元5"对应位应分配1。因此,"单元5"分配的的比较序列也为110;"单元13"与互连测试无关,故其比较序列为任意值;"单元16"在三次测试循环中,均有属于同一互连网络的驱动单元有效,即"单元2"、"单元8"和"单元10",故"单元16"分配的比较序列为111;"单元18"所对应互连网络,即"网络D"只有一个驱动单元,且此驱动单元无控制单元,所以在三次测试循环中,始终处于有效状态,故"单元18"的比较序列为111;同理可得,"单元19"的比较序列为111;"单元22"的比较序列为111;"单元23"的比较序列为111;"单元24"的比较序列为111。整个查找表如表l所示("X"可为0,也可为1。)<table>tableseeoriginaldocumentpage20</column></row><table><table>tableseeoriginaldocumentpage21</column></row><table>2、测试生成器1的具体设计测试生成器l的详细设计如图4所示。其主要包括扫描链递增计数器6、测试向量计数器7、测试循环计数器8和移入位选择器11。其各部分连接如下扫描链递增计数器6与测试时钟信号13相连;扫描链递增计数器6输出扫描链递增计数器值14到査找表4;扫描链递增计数器6输出扫描链递增计数器进位标志位21到测试向量计数器7;测试向量计数器7输出测试向量计数器值23到移入位选择器11;测试向量计数器7输出测试向量计数器进位标志位22到测试循环计数器8;测试循环计数器8输出测试循环计数器值24到移入位选择器11;移入位选择器11还接收来自査找表4的移入单元信息15,并输出移入位信息18到扫描链5。本实施例中,扫描链递增计数器6是一个5位的计数器(「L0g224"]=5,其中24是扫描链的长度),对外部的测试时钟信号13进行计数,初值为O,当计数到24时,返回O,重新开始计数;测试向量计数器7是一个2位的计数器(「Log2「Log2(4+2)||=2,其中4是互连网络数),对扫描链递增计数器6的进位标志位21进行计数,初值为O,当计数到3时,返回O,重新开始计数。测试循环计数器8是一个2位的计数器(「Log23,=2,其中3是测试循环数),对测试向量计数器7的进位标志位22进行计数,初值为O,当计数到3时,表示整个测试过程结束。3、响应分析器3的具体设计响应分析器3的详细设计如图5所示。响应分析器3主要包括扫描链递减计数器9、响应位选择器12和位比较器10。其各部分连接如下扫描链递减计数器9与测试时钟信号13相连;扫描链递减计数器9输出扫描链递减计数器值16到查找表4;响应位选择器12接收来自査找表4的移出单元信息17,同时也接收来自测试向量计数器7的测试向量计数器值23和测试循环计数器8的测试循环计数器值24;位比较器10接收来自扫描链5的移出位信息19和响应位选择器12的响应位信息25,并输出"通过/失败"信号20。扫描链递减计数器9是一个5位的循环递减计数器(「Log224>5,其中24是扫描链的长度),对测试时钟信号13进行计数,初值为24,当计数到0时,返回24,重新开始计数;响应分析器3共享测试生成器1的测试向量计数器7和测试循环计数器8。位比较器10可由一个异或门实现,输出1表示"测试失败";输出0表示"测试通过"。权利要求1、一种边界扫描环境下电路板互连故障的内建测试实现方法,其包括测试生成器(1)、查找表(4)、响应分析器(3)和被测电路板(2),其特征在于其各部分的连接关系如下测试生成器(1)、响应分析器(3)和被测电路板(2)中的扫描链(5)都与外部的测试时钟信号(13)连接;测试生成器(1)输出扫描链递增计数器值(14)到查找表(4),查找表(4)返回移入单元信息(15)到测试生成器(1);测试生成器(1)输出移入位信息(18)到扫描链(5);测试生成器(1)输出测试向量计数器值(23)和测试循环计数器值(24)到响应分析器(3);响应分析器(3)输出扫描链递减计数器值(16)到查找表(4),查找表(4)返回移出单元信息(17)到响应分析器(3);扫描链(5)输出移出位信息(19)到响应分析器(3);响应分析器(3)输出最终的“通过/失败”信号(20)。其中,查找表(4)的详细设计查找表(4)每一项的第一位,即“C/D”位,用以区分该单元是数据单元还是控制单元;第二位,即“D/R”位,用以区分数据单元是驱动单元还是接收单元;若该单元是控制单元,则此位没有意义;从第三位开始是各个单元对应的测试数据,测试数据分成两个部分第一部分是数据序列数据序列对于三种单元均有意义若是控制单元,则表示使能控制序列;若是驱动单元,则表示测试激励序列;若是接收单元,则表示无故障响应序列;第二部分是比较序列比较序列只对接收单元有意义若比较序列的第i位为1,则表示在第i次测试循环中,响应分析器(3)需要将该接收单元数据序列的对应位与扫描链(5)输出的移出位信息(19)进行比较,根据两者是否相等得出是否存在故障的结论;若为0,则无需比较;各种序列的分配过程如下A.驱动单元和接收单元的数据序列分配首先按与其关联的驱动单元的最小序号,对互连网络进行排序编号,属于同一互连网络的所有驱动单元和接收单元共用此互连网络的编号;然后为这些驱动单元和接收单元分配改良计数序列编号为I的所有单元分配序列000……001;编号为II的单元分配序列000……010;编号为III的单元分配序列000……011;......;依此类推;对于N个互连网络,数据序列的长度为id="icf0001"file="S2007103039910C00021.gif"wi="22"he="5"top="5"left="5"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>位;B.控制单元的数据序列分配第一步,按照控制单元所控制的驱动单元数,简称控制数,对控制单元进行从大到小排序、编号;编号越小,控制数越大;控制数相同的控制单元之间按任意顺序排列;设置变量j的初值为1;第二步,取出当前编号最小且未分配序列的控制单元,并定义为当前单元,为其分配下面的序列,并将该单元控制的驱动单元所对应的互连网络放入临时集合内0……010……0↑↑第j位第1位第三步,查询满足如下三个条件且编号最小的控制单元(a)编号大于当前单元编号;(b)未分配数据序列;(c)它控制的驱动单元所对应的互连网络不在临时集合内;若存在这样的控制单元,则将第二步中产生的序列也分配给此控制单元,并将其控制的驱动单元对应的互连网络放入临时集合内;第四步,按照同第三步相同的方法处理编号大于当前单元编号的所有控制单元;第五步,若所有控制单元都已分配序列,则算法结束;否则令j加1,清空临时集合,并返回第二步;C.接收单元的比较序列分配比较序列的分配过程如下对于某接收单元,若在第i次测试循环中,只要存在属于同一互连网络的驱动单元使能有效,则令比较序列的第i位为1;否则令该位为0;其中,测试生成器(1)的具体设计测试生成器(1)主要包括扫描链递增计数器(6)、测试向量计数器(7)、测试循环计数器(8)和移入位选择器(11);其各部分连接如下扫描链递增计数器(6)与测试时钟信号(13)相连;扫描链递增计数器(6)输出扫描链递增计数器值(14)到查找表(4);扫描链递增计数器(6)输出扫描链递增计数器进位标志位(21)到测试向量计数器(7);测试向量计数器(7)输出测试向量计数器值(23)到移入位选择器(11);测试向量计数器(7)输出测试向量计数器进位标志位(22)到测试循环计数器(8);测试循环计数器(8)输出测试循环计数器值(24)到移入位选择器(11);移入位选择器(11)还接收来自查找表(4)的移入单元信息(15),并输出移入位信息(18)到扫描链(5);所述的扫描链递增计数器(6)是一个id="icf0002"file="S2007103039910C00031.gif"wi="14"he="5"top="5"left="5"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>位循环递增计数器,它对扫描链(5)的移位操作进行计数,其中L是扫描链的长度;由它的计数值可知当前将要移入扫描链(5)的扫描单元的序号,查找表(4)输出与此序号对应的扫描单元信息到移入位选择器(11);所述的测试向量计数器(7)是一个id="icf0003"file="S2007103039910C00032.gif"wi="36"he="5"top="5"left="5"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>位循环递增计数器,它对加载的测试向量进行计数,其中N是互连网络数;扫描链递增计数器(6)每循环一次,产生一次进位,即对应加载了一个测试向量;其计数值达到id="icf0004"file="S2007103039910C00033.gif"wi="23"he="5"top="5"left="5"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>-1时,表示完成一次测试循环;由它的计数值可知当前要加载数据序列即驱动单元的位号;所述的测试循环计数器(8)是一个id="icf0005"file="S2007103039910C00034.gif"wi="15"he="5"top="5"left="5"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>位递增计数器,它对测试循环次数进行计数,其中K是电路板的网络深度;测试向量计数器(7)每循环一次,产生一次进位,即对应完成一次测试循环;其计数值达到K-1时,标志着整个测试过程的结束;由它的计数值可知当前要加载数据序列即控制单元的位号;测试生成器(1)的工作过程如下扫描链递增计数器(6)对测试时钟信号(13)进行计数,由扫描链递增计数器(6)的扫描链递增计数器值(14)可从查找表(4)中选出当前要移入扫描链(5)的扫描单元信息;移入位选择器(11)处理查找表(4)输出的移入单元信息(15),若此单元是驱动单元,则由测试向量计数器(7)的测试向量计数器值(23)从数据序列中选出移入位信息(18),并移入扫描链(5);若此单元是控制单元,则由测试循环计数器(8)的测试循环计数值(24)从数据序列中选出移入位信息(18),并移入扫描链(5);扫描链递增计数器(6)每循环一次,测试向量计数器(7)的计数值加1;测试向量计数器(7)每循环一次,测试循环计数器(8)的计数值加1;在测试时钟信号(13)的作用下,重复上述步骤,直到完成整个测试过程,即测试循环计数器(8)的计数值达到K;其中,响应分析器(3)的具体设计响应分析器(3)主要包括扫描链递减计数器(9)、响应位选择器(12)和位比较器(10);其各部分连接如下扫描链递减计数器(9)与测试时钟信号(13)相连;扫描链递减计数器(9)输出扫描链递减计数器值(16)到查找表(4);响应位选择器(12)接收来自查找表(4)的移出单元信息(17),同时也接收来自测试向量计数器(7)的测试向量计数器值(23)和测试循环计数器(8)的测试循环计数器值(24);位比较器(10)接收来自扫描链(5)的移出位信息(19)和响应位选择器(12)的响应位信息(25),并输出“通过/失败”信号(20);响应分析器(3)的工作过程如下扫描链递减计数器(9)对测试时钟信号(13)进行计数,由扫描链递减计数器(9)的扫描链递减计数器值(16)可从查找表(4)中选出当前要移出扫描链(5)的扫描单元信息;响应位选择器(12)处理查找表(4)输出的移出单元信息(17),它先判断此单元是否为接收单元,若是,则由测试循环计数器(8)的测试循环计数器值(24)从比较序列中选出对应比较位若比较位为“1”,即表示需要比较测试响应,则由测试向量计数器(7)的测试向量计数器值(23)从数据序列中选出响应位信息(25),并输出给位比较器(10);位比较器(10)将扫描链(5)输出的移出位信息(19)和响应位选择器(12)输出的响应位信息(25)进行比较,若相同,则无故障,否则,产生“失败”信号,测试结束;在测试时钟信号(13)的作用下,重复上述步骤,直到完成整个测试过程,若所有比较都相同,则无故障。全文摘要本发明涉及一种边界扫描环境下电路板互连故障的内建测试实现方法,采用改良计数序列算法和单使能方法分别作为驱动单元和控制单元的测试生成算法,本发明总体设计主要由查找表、测试生成器和响应分析器三部分组成。该方法可对所有互连故障,包括短路、开路和呆滞故障,达到100%的故障检测率;能够避免多驱动器冲突问题,使测试能够安全进行;且设计过程简单,易于工程实现;此外,它还具有可靠性高、测试速度快、硬件开销小等优点。文档编号G01R31/02GK101183131SQ20071030399公开日2008年5月21日申请日期2007年12月24日优先权日2007年12月24日发明者孟晓风,波钟申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1