多驱动总线系统执行改进的伪随机测试的系统和方法

文档序号:6407903阅读:492来源:国知局
专利名称:多驱动总线系统执行改进的伪随机测试的系统和方法
技术领域
本发明一般以测试数字装置为目的,例如用于数据处理系统中数字装置。本发明尤其涉及测试技术,在该技术中,把伪随机测试模式(pattern)的序列移(“扫描”)入和移出数字装置,产生组合符号差,从该组合符号差可以确定被测试的装置功能是否有故障。特别是本发明提供了一种方法和实现该方法的装置,在功能上对包括可由独立部件互斥访问的总线结构这一类型的数字系统进行扫描测试。
大规模和超大规模集成电路(LSI和VLSI)的出现产生了各种测试技术,用来测试集成电路(IC)和集成电路组合(例如印刷电路或其它类型的电路板和电路系统)内的非常大量的数字电路。一种这样的技术包括把多种已知测试信号施加于IC或IC组合(此后称为“数字系统”)上,监测产生的响应输出信号以确定数字系统是否产生预期的输出信号。对该方法的一种变得越来越普遍的衍生是把系统的基本存储级(即一位存储器诸如触发器、锁存器等和类似器件)设计成具有两种功能模式的能力,第一模式或“运行”模式,在该模式中,存储级以其性能在数字系统进行操作(例如作为系统的一个部件,执行系统信息位的接收、存储和传递操作响应正常逻辑系统的控制信号);第二模式或“扫描”模式,在该模式中,许多存储级相互串联形成一个或多个扩充移位寄存器,或更一般地在该领域中更普通的称为“扫描串”或“扫描链”,使用这些扫描串的一种方法包括形成已知的测试模式(“矢量”),通过对它们移位(扫描)到使用扫描链的系统中来使它们处于数字系统合适的位置上。然后,允许系统运行一段时间(例如,一个或几个时钟周期),然后变换系统状态(即各存储级的内容)再使用扫描链进行监测。
该方法有多种改变,改变之一包括使用扫描链使数字系统进入伪随机状态,以测试系统的操作性能。按照该方法,系统从第一或运行模式转换至扫描模式用以接收被扫描进入扫描串的伪随机位模式,使系统处于伪随机状态。该技术可以包括使系统暂时返回至其运行模式构形的步骤,允许一个时钟周期的操作。然后使系统返回扫描模式,(再次扫描),即得数字状态(即扫描串中的内容),然后分析这些状态,确定级、系统的互连以至系统本身的操作性能,比较好地是,借助取得的经压缩(例如通过一循环冗余)的状态,把系统构成扫描链,扫描伪随机数据,恢复正常的构形一个执行周期,并使系统返回到扫描构形以变换(扫描出)结果(伪随机)状态,重复执行这些步骤,形成一个可以与已知的无故障符号差比较的“符号差”。如果符号差相匹配,则认为测试已经通过。这种测试技术通常被称为“伪随机扫描测试”。
伪随机扫描测试方法所依据的原理之一是在各次测试数字系统时,测试一定是可重复的,或是“确定的”,如果系统没有故障,测试的结果将是相同的。这种伪随机测试的方法和装置的例子可以在美国专利4,718,065 4,534,028和4,827,476中找到。
伪随机扫描测试有许多好处。它是无需事先形成专门的测试矢量就可执行的;代价合理的测试方法,它可以非常快地检查或验证非常大量的数字电路的操作性能;它可以用比其它测试技术花更少和更简单的测试电路。然而,伪随机测试仍存在一些问题。
一个明显的困难是没有能力事先预见在测试周期内的测试信号的状态。必须把包含在数字系统内的对各次测试可能产生不同结果的(例如,随机存取存储单元,从外部信号源输入等)电路排斥在测试之外,或者紧某种方法进行设计,以使它在伪随机测试期间产生确定的结果。
该问题对这种数字系统尤其麻烦,这种系统包括有相互之间进行数据通信的两个或更多个数字子系统互斥共享的总线结构(例如,三状态总线结构)。当对这种系统进行伪随机测试时,存在这种可能,即在某一时刻,同时有两个或两个以上的子系统都试图把数据驱动到数据总线上。主要的是要看到总线的一个测试,对应一个状态,另一个测试,对应另一个状态。由于各次测时总线的状态不是完全确定的,因此,测试不能再被认为是确定的。或许更重要的,总线可能被两个以上子系统同时驱动而损坏。
上述问题的另一方面包含这样的情况,没有一个子系统在驱动共享总线,允许它浮动。在这种情况下,总线可以假设一个不确定的值,一个或多个子系统试图去读该值,以至于在各次测试时可能产生不同的测试结果。
解决这一问题的一个方法是在系统中包括一总线仲裁器,它接收对总线的访问请求。仲裁器使用解码电路向一个并且仅仅一个请求者发出互斥总线允许信号。由于仲裁电路不允许有一个以上的子系统在任一时间驱动总线,因此,该方法可以进行伪随机测试。然而,由于进行仲裁需要额外的时间,因此这种方法限制了正常操作性能。因此,常有这种共享总线构形的数字系统通常用在伪随机测试期间锁住驱动总线的电路和总线本身的方法中。如果要全部测试的话,则这种方法不能对系统进行完全的测试。
因而,伪随机扫描测试技术需要一种方法和装置,以对包括共享总线和用于访问该总线的电路在内的电路进行测试。
本发明涉及一种数字系统,它包括通过共享总线结构互连的多个数字子系统,该总线结构可以互斥地访问,以在数字子系统之间进行数据通信。本发明可以对各子系统的总线访问电路和总线本身用伪随机扫描测试方法进行测试,而不限制总线仅访问一个子系统,并且在测试期间把该访问分配给所有子系统。
按照本发明所选的一个最佳实施例,各数字子系统都设有一计数器,该计数器在扫描测试期间向各子系统的总线访问或者驱动电路提供允许信号。在启动扫描测试操作时,各计数器预先载入了一预定的状态,所以,在初启以及整个测试阶段,一个且仅仅一个数字子系统驱动共享数据总线。每个扫描序列(各序列是伪随机测试串的扫描进、执行周期和扫描出)给计数器一时钟脉冲,所以下一序列将使一新的子系统可以驱动总线。
在本发明的这一最佳实施例中,各计数器是环形计数器,在这种计数器中,用循环一位来提供允许信号。另外,如同大多数同步机器一样,总线驱动电路响应的允许信号来自流水线结构,该流水线结构包括一个锁存器或寄存器,用以存放控制访问或驱动电路的允许信号。该锁存器或寄存器在扫描测试期间形成环形计数器的最后级。
本发明具有许多优点,第一个或许也是最重要的一个优点是,本发明提供了一种技术,它可以在对数字系统进行伪随机扫描测试期间在仍维持测试具有确定的结果的同时使该系统的子系统所用的电路访问共享总线。此外,执行伪随机扫描不必担心会损害总线。
对于那些本技术领域的熟练人员来说,结合附图,阅读以下对本发明的详细描述,本发明的这些和其它一些优点和特征将变得更明显。


图1是数字系统的框图,该数字系统由多个通过共享数据总线相互连接的数字子系统形成,该框图也示出了用于对该系统进行伪随机测试的扫描控制逻辑以及数字系统电路;
图2是基本存储级结构图,它用于图1所示的各子系统中,执行伪随机扫描;
图3中计数器的示意图,在扫描测试期间,该计数器与图1的子系统中的一个子系统的驱动允许电路相连,确保在扫描测试期间一个且只有一个子系统驱动共享数据总线;
图4是流程图,它演示了测试图1的数字系统的扫描测试过程。
现在参见图1,所示的数字系统10包含独立的数字子系统12(12a、12b…,12n)。子系统12通过共享总线14互相连接在总线上传送数据和/或地址信号进行内部子系统通信。子系统12可以是一个或多个处理单元、输入/输出(I/O)通道、存储系统等此类器件,各子系统可以根据预定的规约访问共享数据总线14。该规约对于本发明来说并不重要的,主要的是根据互斥来访问共享数据总线14,也就是说,在任一时刻,子系统12中只有一个子系统通过共享数据总线14传送数据、命令和/或地址信号。在有两个以上的子系统12希望同时访问总线的情况下,最好对访问共享总线14的仲裁是根据各子系统预定的优先级来解决对总线的访问次序。
如图1所示,传统设计的扫描控制逻辑单元20包括17级线性反馈移位寄存器(LFSR-未示出),它能在重复之前开发217-1级。扫描控制逻辑电路20产生必要的测试信号(扫描、保持、旁路信号),用于对子系统12进行扫描测试,当然,测试信号还包括伪随机模式,通过把扫描控制逻辑电路耦连到各子系统12上的扫描数据输入通路(sdi,sdi2…,sdin)施加到子系统12上。
扯开一会儿,本技术领域的熟练人员将理解,子系统是根据传统的扫描测试技术构成的,也就是说,用于子系统12内的基本存储级(即,用于触发器、锁存器以及类似器件的一位存储元件(未示出))被设计成响应于扫描控制逻辑电路20提供的扫描测试信号有选择地处于下列两种构形之一,这两种构形是正常模式或扫描模式,在扫描测试模式时,基本存储级与子系统12内相互连接,以形成一长移位寄存器(或多个小移位寄存器)。尽管这种基本存储级的构形是可变化并且是熟知的,但相信,如果考虑这种基本存储级结构,则本发明将更好理解。
以下,参见图2,图2示出了用于子系统12的基本存储级,一般用参考号30表示。如图2所示,存储级30包含基本存储元件32,它的数据输入端(D)接收多路复用器34的输出。存储元件32的输出端(Q)形成存储级30的输出端。存储元件32的时钟输入端(CL)接收时钟信号(CLK)该时钟信号(CLK)起存储数据的作用,然后以传统的形式施加于其数据输出端(D)上。
多路复用器被构造成在其数据输入端(d)和扫描数据输入端(sdi)接收数据信号。多路复用器34的第三输入端接收存储元件32的输出。根据下面的表I由施加于扫描和保持输入端上的扫描信号确定选择多路复用器34的哪一个输入信号传送给存储元件32的数据输入端(D)表 Ⅰ
如表Ⅰ所示,如果在扫描和保持输入端认定没有信号,则存储元件32接收存储级30的数据输入端d上接收到的信号。相反,如果在扫描输入端被认定有信号,则存储元件32的数据输入端(D)接收施加到存储级30的扫描数据输入端(sdi)上的所有信号。最后,如果在保持输入端被认定有信号,则不管施加到扫描输入端上的是什么状态,在每个时钟(CLK)周期把其输出Q返回到存储元件32的数据输入端(D)来再次循环存储级30的数据。因而,如果认定有保持信号,则存储级30保持存储的值,一直到脱离其保持状态。无论子系统12,存储级30处于正常操作模式还是扫描测试模式,时钟(CLK)信号始终是用于子系统元件同步操作的系统时钟。
从子系统12观点出发,如果扫描控制逻辑电路20建立了扫描信号来启动扫描测试模式,各子系统的基本存储级30从它们正常功能状态重新构成允许扩充移位寄存器或扫描串格式化的状态,以接收测试初始化和伪随机数据。扫描控制逻辑电路产生的伪随机数据通过扫描数据进线sdil…,sdin,移入各子系统12内形成的扫描串,通过扫描数据出线sdol,…sdon扫描出扫描串。
访问共享总线14的特定的规约对于本发明来说并不重要,重要的是在正常操作期间,有一个且只有一个子系统12准许访问,并允许它驱动共享总线14把其上的数据传送给其它一个或多个子系统12。由于在子系统12处于伪随机状态时,为共享这共享数据14总线的需要,必须予以维持。因此,提供了如图3所示的本发明。
现在转到图3,它示出了总线驱动电路,一般用数字40来表示子系统12a的总线驱动电路,同时还有扫描逻辑42,它是在扫描期间控制子系统12a的驱动电路40。剩余的子系统12b…12n(图1)包含的电路基本相同,所以应把子系统12a的允许电路40和相关的扫描逻辑42同样用于到子系统12b…,12n的电路中,除非另外指出。
如图3所示,总线驱动电路40的扫描逻辑电路42包括总线允许寄存器50、多路复用器52、一串寄存器54a,…,54f和多路复用器62。在被控制逻辑电路20置于扫描模式时,寄存器54a,…,54f和总线允许寄存器50形成7级环形计数器。
最好是三态器件(即,其输出可以假设成三种状态之一逻辑高、逻辑低或高阻)的总线允许电路40,在其输入端44接收来自从子系统12a的逻辑电路的数据,在共享总线14上进行通信。在建立了施加到允许输入端48上的信号时,通过其输入端46把接收到的数据传送给共享总线14。
在正常操作期间,总线允许寄存器50(在其数据输入端(d))依次接收多路复用器52的sys-允许信号,并提供使驱动电路40启动信号。在扫描模式期,级54f的输出端提供使总线驱动电路40启动的信号,由总线允许寄存器在其扫描数据输入端(sdi)接收该信号。
级54a,…,54f和总线允许寄存器50在它们各自的保持输入端接收hold′(保持)信号,该hold′信号可根据下列关系得到hold′=保持信号+(扫描信号·旁路信号)保持、扫描和旁路信号是由扫描控制逻辑电路20在扫描模式工作期间建立的测试信号。(旁路测试信号也用于在扫描处理期间隔开非扫描电路)因此,在扫描控制逻辑电路20建立了(1)保持信号或者(2)旁路信号和扫描信号时,计数器54各将处于保持状态。
级54a,…,54f的时钟输入端(CK)和驱动允许寄存器接收时钟(CLK)信号,用于子系统12a的同步操作。时钟信号既用于正常操作,也用于扫描测试操作。应理解,环形计数器54的各级54a,…54f以及总线允许寄存器50如参照图2所作的描述构成。
如图所示,各寄存器级54a,54b,54c,54d和54e的输出端分别与环形计数器54下一顺序的寄存器级54b,…54f的数据输入端(d)和扫描数据输入端(sdi)连接。总线允许寄存器50在其扫描数据输入端(sdi)接收寄存器级54f的输出,并且如上所指出的,在其数据输入端(d)接收多路复用器52的输出。
多路复用器52由旁路信号控制,在正常(非测试)操作期间产生的系统允许(sys-允许)信号和计数器级54f的输出端之间选择。事实上,建立旁路信号使级54a,…,54f和总线允许寄存器50形成计数器。取消旁路信号则使级54a,…54f失去在子系统中的任何操作能力。
图3还显示了扫描模式构形中子系统12a其余的部件,显示了组成扫描串60内的子系统12a的基本存储级(除了总线允许寄存器50)。尽管没有具体指出,但应当理解,基本存储及组成了子系统12a,因此扫描串60的构成如图2所示。多路复用器62提供扫描串60的输入信号,旁路测试信号控制多路复用器62在扫描数据(在建立旁路信号时)和总线允许寄存器50的输出信号(在旁路信号未建立时,例如在正常操作模式或者在扫描初始化数据时)之间进行选择。多路复用器62输入的选择耦连到扫描串60,扫描串60的输出形成子系统12a的扫描数据输出端(sdol)。
用于环形计数器54的级数(包括总线允许寄存器50)至少等于或者多于子系统数12的数量,即共享总线14的元件数。级的数目最好选成能消除计数器顺序和包含在扫描控制逻辑电路20内的线性反馈移位寄存器假设的状态之间的相关性,确保两者(计数器54和线性反馈移位寄存器)不成为同步方式,尽可能使扫描测试过程看上去是随机的。因,假设的状态对互相来说是最初状态。此外,子系统的数目最好小于原始值7。相似地,线性反馈移位寄存器(未示出)被设计成具有17级,因此它有217(即131,072)级。
参见图4以及图1和图3可以更好地理解下面描述在扫描模式期间的扫描逻辑电路42的操作。图4是进行扫描测试时的总流程图。在步骤70测试开始,扫描控制逻辑电路20(图1)建立扫描信号(此时,旁路信号尚未建立),先形成环形计数器54。当然,建立扫描信号也形成了各子系统12内的扫描串60(图3),但对于要环形计数器54的初始化,在这一的测试阶级并不重要。
由于子系统12,尤其是子系统12所包含的环形计数器54如此构成,步骤70继续,使扫描控制逻辑电路20向扫描数据输入端(sdil,…,sdin)提供被扫描入环形计数器54的预定的位模式。预定的位模式预置环形计数器54之一(例如子系统12a中的环形计数器),所以其总线允许寄存器50包含一个1,并且其余的级包含一个0。其它的环形计数器54(例如,子系统12b,…12n的环形计数器)的位模式离开总线允许寄存器50成为0;其余的级54a,…54f中只有一个为1,也就是说,预定的位模式是这样的,在任一时刻只使子系统12中的一个且仅仅一个总线允许寄存器50有效。现在已为下面的伪随机扫描测试对允许逻辑电路进行了初始化。在该初始化过程中,总线允许寄存器50和总线驱动电路40的输入端48之间的电路来示出)工作,保持总线驱动电路40在其三状态模式。在完成初始化时,总线驱动允许寄存器50将控制总线驱动电路40的模式。
离题一下,本领域的熟练人员应理解,预定的位模式也可以包含一个以上的“1”,所以一个或多个环形计数器54会有两个以上的“1”的模式。这可以使运行的子系统的某些总线允许电路多于其它子系统占用在测试期间一般分配给移开的子系统中的总线允许电路。这一特征还使测试适用于不同构形的系统10。例如,把某些子系统12从系统10中移开,则可以允许其它子系统占用在测试期间一般分配给移开的子系统12的总线访问周期。然而,它仍保持了使一个仅仅一个子系统12中的总线允许寄存器50保持环形计数器54为“1”,所以在任一时刻,仅仅只有一个子系统12驱动共用总线14。
退出步骤70进入步骤72,扫描控制逻辑电路产生旁路信号,保持已建立的扫描信号。如上所述,扫描信号与旁路信号的组合将建立另一保持信号(hold′)以冻结环形计数器54。而且从图3可以看出,建立的旁路信号使多路复用器62进行选择,并且把扫描数据输入(sdil)施加于扫描串60上,从它们特定的子系统的扫描链上有效地移去环形计数器54(包括总线允许寄存器50)。
在步骤72,扫描控制逻辑电路20将仍保持建立扫描和旁路信号,并向对于扫描串60进行排序所需要的必不可少的系统时钟(CLK)的扫描数据输入端sdil,…sdin施加伪随机模式,由此使子系统12处于伪随机模式。请注意由于环形计数器54被冻结,在相关联的总线允许寄存器50只有一个包含“1”,仅允许相应的总线驱动电路40驱动共用总线14;所有其它子系统12的总线允许寄存器50均包含“0”,所以,相应的总线驱动电路被禁止。仅仅一个子系统12可以驱动共享总线14。
一旦子系统12被置于伪随机状态,测试过程就进入步骤74,扫描控制逻辑电路20断开(不建立)扫描和保持信号。如同传统的伪随机测试,子系统12返回到它们正常的构形,并允许子系统12在扫描控制逻辑电路20建立扫描和保持测试信号,使子系统返回扫描测试构形之前运行一个系统时钟(CLK)周期。
然而,在步骤74中,保持和扫描测试信号均被禁止,使子系统12可以暂时返回到它们的正常构形运行一个系统时钟CLK周期。这样,施加到环形计数器54上的另一保持信号(hold′)也被断开以使子系统12的环形计数器54脱离它们的冻结状态。然后,使它们运行一个时钟周期,把环形计数器54各级(即级54a,…54f以及总线允许寄存器50)的内容移动到下一级(通过数据输入端,由于此时没有建立扫描信号),总线允许寄存器50的内容移到环形计数器级54a。在步骤70中出现在环形计数器上的预置的位模式被移位,所以在步骤72期间可以驱动共享总线14的总线驱动电路40被下一个总线驱动电路代替。
用建立了扫描和保持信号退出步骤74。环形计数器54返回到冻结状态,子系统12重新构形,形成扫描链。子系统12(即扫描链60)的伪随机状态在步骤76中被移开,并通过扫描数据输出端sdol,…sdon传送给控制逻辑电路20进行分析。
传统的伪随机扫描测试包含重复步骤72-76固定次数(例如在重复任一步骤之前,17级线性反馈移位寄存器能假设的状态数),所以,扫描控制逻辑电路20在步骤78中检查是否已完成所希望的次数。如果步骤78确定没有完成所有期望的序列,则返回到步骤72。然而,如果序列必须执行次数已经完成,则在步骤80退出。
在按照图4进行的测试期间,在步骤74中每次序列将环形计数器54内的预定模式翻转一个位置。在各测试程序的所有其它时间上,计数器54(和总线允许寄存器50)保持固定。因此,显然,由于在任何测试程度期间,仅允许子系统12中的一个驱动共享总线14,并且子系统随每次序列改变,不仅确保了测试结果是确定的,而且把共享总线14和相关的驱动电路均包括在测试中。
最后,本技术领域内的那些熟练人员应当理解,已经用使用线性(或串联)扫描链(包括计数器54结构)的扫描测试结构描述了本发明,在包括共享总线的系统的平行负载扫描结构中也可以发现本发明的优点。
权利要求
1.一种可以对具有至少两个与总线装置相联的数字单元的数字系统进行扫描测试的装置,该两个数字单元在互斥基础上共享总线,两个数字单元中各单元包括有把各数字单元联接到总线装置上的总线允许装置,扫描控制装置与数字系统相联接,使系统处于伪随机状态来进行扫描测试,其特征在于,所述装置包含与两个数字单元中的各单元相关联的电路装置,该电路装置还与扫描控制装置相联接,用以接收预定的测试模式;与扫描控制装置相联接的装置,响应于扫描控制装置的测试信号把计数装置联接到允许装置,以确保在任一时刻只有一个允许装置与总线装置相联接。
2.如权利要求1所述的装置,其特征在于,电路装置包括一可预置成预定测试模式的计数器。
3.如权利要求2所述的装置,其特征在于,计数器为环形计数器。
4.一种随机测试数字系统的装置,该数字系统包括多个数字单元,由共享总线装置互相联接,使它们之间以互斥方式进行数字信号通信,由电路装置把数字信号联接到共享总线上,该装置通过建立允许信号使电路装置启动,其特征在于,该装置包含扫描控制装置,包括一扫描信号,它启动测试周期,以产生多个测试信号;计数装置,与数字单元中的各单元中的电路装置相关联,它响应至少一个测试信号来产生测试允许信号;把计数装置预置成预定测试模式的装置;响应其它测试信号,把各计数装置的测试允许信号传送给各相关联的电路装置来代替启动信号的装置;用于预置各计数器的测试模式是这样的,它只允许一个且仅仅一个电路装置在测试期间的任一时刻使相关的数字单元联接到共享总线装置。
5.一种扫描测试数字系统的方法,该数字系统包括多个通过共享总线相互联接以使它们之间进行数字信号通信的数字子系统,各数字子系统具有驱动允许电路,响应启动信号把数字信号传送至共享总线上,其特征在于该方法包括下列步骤为各子系统设置计数装置,以提供联接到各子系统的驱动允许电路的测试允许信号;向各子系统的计数装置加载一预定状态;在各子系统的计数装置工作时把数字子系统设置成伪随机状态,以使一个且仅仅一个子系统访问共享总线;取消数字子系统的伪随机状态,进行检查;重复上述设置和取消步骤到预定的次数;以及与每次重复步骤相关联,改变计数装置,使另一子系统单独访问共享总线;因此,在扫描测试期间,各子系统至少独立访问共享总线一次。
全文摘要
一种数字系统,包括多个数字子系统,通过可互斥访问的共享总线结构互连,以在子系统之间进行数据通信。系统构造成由伪随机扫描测试方法进行测试。各子系统包括一计数器,在扫描测试期间,相关联的子系统的总线访问或驱动电路提供允许信号。扫描测试操作是从向各计数器预载入预定状态开始,所以在测试周期开始以及整个过程中,一个且仅仅一个数字系统驱动共用数据总线。将向计数器提供本系统可对各子系统的总线访问电路和总线本身进行测试。
文档编号G06F13/36GK1099166SQ9410776
公开日1995年2月22日 申请日期1994年6月28日 优先权日1993年6月28日
发明者杰弗里·A·斯普劳斯, 沃尔特·吉布森 申请人:协力计算机股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1