CN1508558A - 非扫描存储器元件上的反馈循环检测方法和系统 - Google Patents
非扫描存储器元件上的反馈循环检测方法和系统 Download PDFInfo
- Publication number
- CN1508558A CN1508558A CNA2003101195672A CN200310119567A CN1508558A CN 1508558 A CN1508558 A CN 1508558A CN A2003101195672 A CNA2003101195672 A CN A2003101195672A CN 200310119567 A CN200310119567 A CN 200310119567A CN 1508558 A CN1508558 A CN 1508558A
- Authority
- CN
- China
- Prior art keywords
- node
- section point
- attribute
- memory component
- child
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318583—Design for test
- G01R31/318586—Design for test with partial scan or non-scannable parts
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
电路网络中所有只经过非可扫描存储器元件的反馈回路在线性运行时间内被检测出来。该方法将电路网络模拟为有向图,接着对网络元件赋予属性,使得在恒定时间内可以发现单个反馈循环。在宽度优先方案中,通过向最后可扫描存储器元件至多遍历一常数距离,检测反馈。在深度优先方案中,图上的节点不处于FINISHED状态,直到所有的前辈都处于FINISHED状态。如果一个节点遇行到另一个NOT_FINISHED状态的节点时,立刻发现反馈。如果这两个节点都处于相同可扫描存储器元件所限定的区域内,该反馈是非法的。所导致的对只经过非可扫描存储器元件的反馈回路的识别和清除显著降低了测试模式生成的后续复杂度。这保证在电路制备后可进行更加快速,更加可靠和更加精确的测试过程。
Description
技术领域
本发明涉及对数字电路的测试,更特别地是,涉及对非扫描存储器元件上的反馈回路的识别方法。
背景技术
随着现代电路网络的物理尺度和元件数量(晶体管、门电路、引线)随时间呈指数性的缩小和增加,在芯片制备后对其缺陷进行的测试已经变得日益重要和复杂。现有技术使用自动测试仪,其将计算机或手动生成的测试用例(称为测试向量)扫描到电路网络内的扫描锁存器中。一般地,可扫描存储器元件,例如扫描锁存器是那些其值能够直接在测试过程中被观察到的元件。这些可扫描存储器元件可用于揭示所测试的电路模块的逻辑值。
通过使用馈送到一个特定逻辑功能的已知输入值,通过自动测试仪所测量的输出能够与期望结果相比较。测量结果与期望结果的对应关系验证了器件的正确操作。
电路网络的物理拓扑结构,特别是可扫描存储器元件的排列和操作,有助于确定用于验证的测试模式的复杂度,测试每个芯片所需要的时间和那些测试在覆盖潜在缺陷方面的质量。
然而,经过特定类的网络元件的反馈是一个使这个验证过程变得极其困难的物理拓扑结构。经过网络元件的反馈可以一般地定义为含有网络元件的反馈回路。非扫描锁存器(NSL)-其存储值在测试过程中不能够直接观测或改变的存储器元件-上的反馈造成测试模式生成、测试时间和测试质量的问题。
当由一个NSL驱动的逻辑元件的网络被反馈到同一NSL的输入端时,则产生了使电路网络所涉及的测试非常困难的回路。一般地,在tn时刻NSL的输出值被称为F(tn),因为反馈,它取决于输入F(tn -1)。F(tn-1)依次取决于F(tn-2),以递归的方式最终回溯到初始状态F(0)。如果这个初始状态是未知的,测试是不可能的。然而,即使这个初始状态是已知的,为了确定电路网络的下一个期望输出F(tn+1),测试模式生成程序应当知道所有的值F(0)到F(tn)(或有至少某个已知模式开始重复之前的所有值)。在计算时间和存储器方面,获得和保持输出值的代价都是非常昂贵的。然而,不保持这种信息甚至代价更为昂贵。不保持输出值意味着回路中涉及的逻辑的节点不能被测试,因此,也许出现直至用户使用时仍未引起注意的错误。
然而,经过可扫描锁存器(SL)的反馈有效地短路了这种无限回路。由于有了SL,已知的值能够在任何时间被注入到电路网络中,输出与这些已知输入的对应能够被测试。因为它不会对测试模式生成造成任何特别的困难,一般在电路网络中允许经过可扫描元件的反馈。
电路网络能够被模拟为有向图的形式,其中图的节点或顶点是电路元件(晶体管、门等等),而图的边是电路网络中的导线、总线或网。一般地,通过从进入电路网络的输入管脚来遍历有向图。从输入开始进行宽度优先遍历。一般地,宽度优先遍历可以被定义为访问和标记所有与输入相距距离1的未访问元件,接着是所有与输入相距距离2的未访问元件,等等。未访问元件可以一般地定义为一个状态,其中在遍历期间还没有被有向图访问。
然而,在这样的宽度优先算法的运行时间内,通常需要二次项O(N2)时间,以在有向图中找到反馈循环。这里,N等于网络元件的数目加上连接那些元件的导线或网线的数目。对于N在数亿个到数千亿个元件的范围内的电路网络,这种运行时间是不能接受的慢。O(N2)宽度优先算法的情形中的巨大运行时间意味着,只能检测到很少的(如果有)经过非扫描锁存器的有害反馈回路。于是,这使得电路网络难以测试,减少了测试范围,并增加了测试时间。
因为非扫描元件上的反馈回路,希望在制备前找到和消除这样的回路。因此,所需要的是克服常规反馈检测器的限制的反馈检测器。
发明内容
本发明涉及寻找没有清除元件的反馈回路。具有距离计数的第一节点可用于记录与第一节点的至少一个祖先节点相关的距离计数。存在一个连接第一节点到第二节点的回路。计数分析器可用于确定具有它自己的距离计数的第二节点是否与第一节点的记录的祖先节点相同。一方面,如果第二节点与第一节点的祖先节点相同,回路被标记为非允许的。
附图说明
为了更全面地理解本发明及其优点,现在参照结合附图所进行的详细描述,其中:
图1A示意性地描述了由可扫描元件和非可扫描元件组成的有向图;
图1B示意性地描述了包括隐式反馈回路的有向图;
图2A示意性地描述了带有可扫描和非可扫描锁存器上的反馈回路的电路网络;
图2B示意性地描述了被表示为有向图的电路网络;
图3A和图3B图解说明了用于检查非法反馈回路的方法;
图4示意性地描述了二个相连的网络;
图5A图解说明了BFS遍历的伪码;
图5B图解说明DFS遍历的伪码。
具体实施方式
在下面的讨论中,提出了大量的具体细节以对本发明彻底理解。然而,本领域的技术人员会理解,在没有这些具体细节的情况下也可以实施本发明。在其它的例子中,为了避免本发明被不必要的细节所掩盖,以示意图或方框图的形式举例说明了众所周知的元件。此外,对大部分来说,涉及网络通信、电磁信号技术等等的细节被省略,因为这些细节对于完全理解本发明不是必需的,并且被认为处于本领域普通技术人员的理解范围之内。
进一步要注意的是,除非刻意声明,这里所描述的所有功能均可以通过硬件、软件或其组合来执行。然而,在一优选实施例中,这些功能可由例如计算机或电子数据处理器的处理器根据例如计算机程序代码、软件和/或被编码以执行这些功能的集成电路的代码来执行,除非另外声明。
回到图1A,其中公开了包括可扫描或"清除(clearing)"元件110和非可扫描或"非清除"元件120的电路网络的有向图。一般地,针对不同逻辑模块之间的非允许反馈回路测试网络100。
在一个实施例中,可扫描和非可扫描的元件110、120是触发器对。在网络100中,清除元件,例如扫描锁存器110,被插入在通过电路网络100的电路径中。图1进一步包含逻辑模块115、125和135。一般地,节点包含电路网络元件,例如存储器元件、逻辑门和逻辑模块。
网络100进一步包含距离递增器117,属性赋值器119和在反馈检测器引擎116之内的计数分析器122。一般地,当从节点遍历到节点时,或从节点遍历到非可扫描触发器时,距离递增器117递增与节点有关的计数。例如,当从节点125遍历到非可扫描元件120时,计数被增加一。在一个实施例中,当遇到可扫描元件时,由距离递增器117设置的计数被重新设置为0。例如,当从节点115遍历到可扫描元件110时,计数被重新设置为0。
在网络100中,反馈线路可以经过清除元件或非清除元件。参照图2A,其中公开了具有清除元件和非清除元件上的反馈的网络200。回到图1,通常情况下,如果反馈线路经过清除元件,它们在电路网络200中是允许的。然而,如果反馈回路经过非清除元件,则存在设计限制。一般地,在电路网络100中表示出清除和非清除元件允许对不允许的反馈回路进行检测。一般地,经过扫描锁存器110的反馈回路是允许的。仅经过非可扫描锁存器120的反馈回路是不允许的。
在电路100中,这些清除元件被放置的位置与最后的清除元件相距最大距离D,并且与电路网络输入管脚相距最大距离D。参数D一般地由设计标准来定义。例如,在扫描锁存器之间允许插入最大值D=30个逻辑模块。如果反馈回路含有清除元件并满足设计标准,则反馈回路是允许的。如果反馈回路在指定参数D之内不含有清除元件,则反馈回路是不能接受的。
在图1A中,对于网络100中的每个节点115,图信息由属性赋值器119存储。通过使用网络100的遍历来测试网络100中不能接受的反馈回路。当从输入到输出地遍历网络100时,逻辑模块115具有属性赋值器119为其赋予的属性中的一个属性。在一个实施例中,这些属性是经过颜色编码的。
特征 | 说明 |
属性(颜色) | 第一,第二或第三(红,绿或黑) |
距离 | 如果这个节点115的颜色是绿或红,则为相距最后清除元件的距离,如果这个节点115的颜色是黑色,则为相距输入的距离。("DIST") |
前辈(predecessor) | 唯一元件,其中有向图从该唯一元件首先到达这个逻辑模块。也被称为父元件。根据定义,父元件离其孩子的距离是1。 |
表1:宽度优先遍历的信息
除了下列的初始和特殊条件外,节点继承其前辈节点的颜色。在一个实施例中,属性赋值器119执行继承的属性赋值。当作为网络100的输入而首先遍历节点时,该节点被属性赋值器119赋予第一属性。在一个实施例中,第一属性是黑色。在路径通过清除元件110,例如在父节点和孩子逻辑模块之间的扫描锁存器之后,节点被属性赋值器119赋予第二属性。在一个实施例中,第二属性是绿色。在遍历通过非清除元件后,节点被赋予第三属性。在一个实施例中,第三属性是红色。
从输入的0起始点开始,对于网络100中的每个节点115或非可扫描元件120,与每个元件相关的距离特征DIST被距离递增器117增加。除了在通过清除元件110之后的情形(其中距离被距离递增器117重新设置为0)以外,对于节点的每次遍历均发生递增。因此,如果节点115的颜色是红或绿,与每个节点115相关的距离特征DIST测量到最后清除元件110的距离。如果节点115的颜色是黑色,距离特征DIST也测量到输入端的距离。如果这个距离特征DIST曾超过预定的、根据结构设计标准设置的常数值D,就出现违背设计的情况。
在图1A中,经过逻辑模块115的反馈回路具有设计约束。此外,如果它们满足其它的设计标准,经过具有扫描锁存器110的逻辑元件路径的反馈回路是允许的。仅经过非扫描锁存器的反馈回路是不允许的。
在图1A中,如果逻辑模块115具有第一,第二或第三属性,则此前访问了逻辑模块115。在遍历网络100的有向图时,从第二节点遇到第一节点可以指示反馈线路,或者它可以表示两个路径的会合。接着这个测试由计数分析器122进行。
例如,如果与起始或第一逻辑元件相关的属性颜色是绿色,针对潜在的前辈,即第二节点,潜在的反馈回路是自动准许的。计数分析器122对此回路不进行任何进一步的测试,并标记它为允许的连接。这是因为起源于绿节点的反馈必须跨越可扫描元件110。因此,确定第二节点是否是第一节点的父辈节点不是必需的,而且操作在恒定的时间内完成。这种类型的可扫描元件110被称之为"清除元件",因为在通过它后,DIST特征被距离递增器117重新设置为0。对其清除的或绿色的区域内的反馈的检查不是必需的。
然而,如果第二或交叉节点具有第三或红颜色属性,就会出现非法反馈回路。如果与第一节点相交的第二节点是当前逻辑模块的父辈,非法反馈回路被计数分析器122检测出来,如果在第一节点和第二节点之间没有非可扫描元件,就会使反馈合法。
为了确定是否发现非法反馈回路,计数分析器122遍历第一或生成节点的前辈的列表以回到对应于相交的第二节点的距离。如果第二节点是第一节点的祖先,则已经出现非法反馈回路。如果具有相同DIST值的祖先不是第二节点,则没有出现非法反馈回路,计数分析器122标记允许反馈回路。换句话说,通过计数分析器122至多查询到最后可扫描元件110,但不超过它,可以发现在第一节点和第二节点之间没有可扫描元件110存在,使得允许反馈。如果反馈不被允许,则设计可以被改变,以消除反馈回路,或者通过插入可扫描元件使得反馈回路成为允许的。
下面是保证前辈逻辑元件115含有或不含有可扫描元件的伪码。
CurrNode=Y
WHILE Distance[CurrNode]>Distance[X] Do
#反迭代通过前辈列表
CurrNode=Predecessor[CurrNode]
OD
#Distance[CurrNode]==Distance[X]
IF CurrNode==X THEN
RETURN FeedbackCycleFound
FI
RETURN FeedbackCycleNotFound
如本领域技术人员所理解的,OD表示结束起始为DO的语句,以类似的方式,FI结束以IF开始的语句。
因为距离特征DIST测量离最后清除元件110或初始输入端的距离,这个距离至多可以是常数距离D,上面的操作占用O(D)的恒定时间。即,至多有D个祖先会被询问以确定该祖先是否与相交节点X的所请求DIST值匹配。运行时间取决于设置D为常数值的设计标准。例如,在扫描锁存器之间可以有不大于D=30个的逻辑门。
当完成搜寻特定输入时,属性赋值器119和距离递增器117被应用于电路网络的下一个输入管脚,等等,直到网络的所有输入被遍历。距离、颜色和前辈特征在这个过程中在节点115上保留。即,在对一个输入管脚的遍历期间被访问和赋予属性的节点115在下一个输入管脚的遍历中会保持前一遍历的着色。
现在参照图1B,其中公开了隐藏的反馈回路。在两个不同颜色(例如属性是绿和红,或者是黑和红)的会合路径的情形下,BFS遍历会以隐藏NSL上的反馈的方式进行。通常,只有当红色路径和非红色路径会合到一个元件时,这种情形才会出现。
在图1B中,DIST=根据BFS所测量的距离。顶部路径到达DIST=2的节点P,将其着色为绿颜色。因为节点P是绿色的,算法不将导向距离1上的黑节点的输出检查为潜在反馈。因此,BFS针对顶部路径确定没有来自P的不被允许的反馈回路。然而,对于导向节点P的另一个路径,如果该路径是红色的,就会存在不被允许的反馈回路。当底部路径到达节点P时,红颜色支配着会合路径并传播通过。这允许检测来自节点P并在远处回到底部路径的非法反馈。
因为红色路径优于绿色和黑色,网络中的每个路径至多被遍历两次;一次是当着色为绿颜色或黑颜色时,第二次可能是红颜色支配会合路径。于是,总的运行时间2*n=O(n)保持为线性。
再回到图2A,它举例说明了具有经过可扫描和非可扫描锁存器的反馈回路的电路网络200。网络200包括输入IN0,IN1和IN2。IN0是与门210的输入。与门210的输出端被输入到可扫描锁存器(SL1)220和非可扫描锁存器(NSL1)230。接着NSL的输出被馈送给2路与门231。2路与门的输出被馈送给与门210的输入,因此产生反馈回路。可扫描锁存器220的输出被非门225反转。非门225的输出被输入到扫描锁存器235和非可扫描锁存器237。扫描锁存器235和非可扫描锁存器237的输出分别是OUT0和OUT1。非门225的输出也被馈送给3路与门210的输入,因此产生另一反馈回路。
IN1和IN2被分别输入到二个信号缓冲器240和241中。然后缓冲器被馈送给3路与门242。与门242的输出被馈送给可扫描锁存器244。可扫描锁存器244的输出被馈送给2路与门246。与门246的输出被馈送给2路与门231的输入端,并且还馈送给NSL3 248。NSL 248的输出被输入到3路与门242,因此产生反馈回路。而且,NSL 248的输出被输入到与门246,因此产生另一个反馈回路。最后,NSL 248的输出也被馈送给OUT2。
现在参照图2B,它举例说明了图2A的表示为有向图270的网络200。为进行图解,有向图270中的各个节点被表示为第一,第二和第三属性,例如红、绿和黑色属性,但本领域的技术人员应当理解,其它的颜色方案也在本发明的范围之内。
当对违背设计参数的反馈回路进行测试时,提取有向图270的特征。从IN0开始,对应于节点115的节点"a"被着为黑颜色,因为它没有与SL或非SL锁存器相交。节点"a"处的DIST计数是1。接着,每个路径211和212在BFS的下一轮中(其中寻找与IN0相距距离2的元件)被遍历,并且遇到存储器元件,例如锁存器。SL(220)是可扫描的,因此它被着上绿颜色。而且,距离变量被置回到0。然而,路径212遇到非可扫描锁存器NSL(230),因此颜色的转换是从黑到红,并且距离变量被递增和存储于非可扫描锁存器中。接着SL220被遍历到绿颜色的节点"b"(由于它的直接前辈的绿色属性),并且这个节点的距离变量被递增到"1"。NSL 230接着被遍历到节点"c"。节点"c"是红色的,由于它的直接前辈的红色属性,并且它的相关距离被递增到"2"。
接着,节点"b"的输出通过反馈回路回到节点"a"。因为NSL3的颜色是红色,进行检查以确定在NSL 3和被发现已经得到访问的节点"e"和"f"之间是否存在可扫描元件。确定具有DIST计数1的"f"是具有DIST计数1的NL3的祖先。因此,到"f"的反馈回路是不允许的。确定具有DIST计数2的"e"不是具有DIST计数2的NSL 3的祖先。为此,在NSL 3和节点"e"之间存在可扫描元件。的确,SL 3在NSL 3和节点"e"之间,因此反馈是允许的。而且,在图2B中,距离在允许的设计约束D之内,因此满足第二个设计特征。于是,反馈回路213是允许的。
在图2B中,因为节点"a"已经具有相关的属性,节点"c"进行检查以确定在最后的可扫描元件之前,具有同样距离计数的祖先节点是否与相交节点相同。在图2B举例说明的实施例中,节点"a"是与具有同样距离计数的祖先节点相同的节点,因此反馈是非法的。
从输入IN1和IN2开始,输入节点"d"和"g"都是黑色的。它们依次被遍历以进入节点"e",它也继承了它的直接祖先的颜色属性,在这种情形下是黑色。然后黑色的输出被馈送给SL3(244),这将计数重新设置为0并改变可继承属性为第二属性,即绿颜色。这个第二或绿色属性被节点"f"所继承。节点"f"的输出被输入到节点"c"和NSL3。
因为节点"f",即起始节点具有第二属性,在节点"f"和节点"c"之间出现的任何反馈均是允许的反馈。然而,节点"f"也输入到NSL3,因此对于这个元件及其之后的元件,将颜色从绿色改变为红色。接着,红色的输出被馈送给节点"e"。
因为输入到节点"e"的颜色是红色,进行检查以确定在NSL3和节点"e"之间是否存在可扫描元件。然后确定具有相关距离计数的节点"e"是否与NSL 244的祖先节点相同。这两个节点不相同,因此这是合法的回路。
在另一个实施例中,确定在可扫描元件之间的逻辑元件的总数是否超过D。这通常可以作为与确定非法反馈回路同样的遍历过程的一部分来进行。在一个实施例中,这可通过确定测试节点的DIST值是否大于D的可允许值来执行。
在进一步的实施例中,发现了组合逻辑反馈回路。对芯片测试来说,由于类似的理由,组合逻辑回路和非可扫描锁存器反馈回路一样有害。组合逻辑回路一般地可以定义为这样的逻辑回路,其中回路不涉及任何存储器元件。通常,组合逻辑回路产生无限循环,其值不能被测试仪器直接观察或改变。
在一个实施例中,为了寻找组合逻辑回路,检查前辈列表,直到相交节点的DIST值,而不管源节点的颜色如何。如果源节点识别出这个相交节点为前辈,则这个回路或者是组合逻辑回路,或者是非法NSL反馈回路。总之,反馈回路被识别和报告以便进行校正。对单个组合逻辑回路的测试是O(D)恒定时间。这种找到所有这样的回路的新方法的运行时间是O(D*N)=O(N),其中D是独立于N的常数值,N等于电路网络的有向图表示中的顶点(节点)数加上边(弧线)数。等价地,它等于电路元件数加上那些元件之间的互连的数目。
现在转到图3A和3B,其中举例说明了在电路网络中使用BFS算法检查非法反馈回路的方法300。在步骤301,方法开始。在步骤302,进入电路网络的输入。在步骤305,距离计数(DIST)被设置为0。一般地,节点的距离计数是从该节点回到最后可扫描元件的路径的长度。在步骤307,默认属性被设置为第三属性。在一个实施例中,第三属性包括黑颜色。
在步骤310,从输入或者父节点到孩子节点存在增量。换句话说,检查BFS遍历的下一个孩子节点。在步骤314,方法300确定此孩子节点是否以前被访问过。在一个实施例中,这可通过确定孩子节点是否具有赋予它的第一,第二或第三属性来进行。换句话说,孩子节点是否具有赋予它的红色,绿色或黑色属性中的一个属性。
在步骤320,如果孩子节点以前已经被访问过,方法300确定相交节点是否为红色。如果相交节点为红色,则这个相交节点的DIST值在步骤322中被确定。接着在步骤325,父/起始节点前辈被遍历到与步骤330中的相交节点相同的DIST。在步骤340,方法300确定相交节点是否与前辈列表中DIST值相同的节点相同。如果它们相同,则反馈是不能接受的,该方法在步骤345处停止。然而如果两个节点不相同,在步骤347确定反馈是可允许的。
然而,如果相交节点在步骤320被确定不是红的,该方法300在步骤330确定父节点是否是红色的。如果父节点不是红色的,则步骤347执行,并且反馈是可允许的。然而如果父节点是红色的,则执行步骤362,并且相交节点的颜色被设置为第三属性(红色)。
如果步骤314确定孩子节点不具有与之相关的红色、绿色或黑色的属性,则该孩子节点以前还没有被访问过,并且执行步骤350。步骤350确定孩子节点是否是存储器元件,如果是,则确定它是否是可扫描存储器元件。如果该孩子节点是可扫描存储器元件,则在步骤361为该孩子节点设置第二属性(绿色)。接着在步骤364,DIST计数被重新设置为0。如果该孩子节点是非可扫描存储器元件,则在步骤362为该孩子节点设置第三属性(红色)。如果步骤350的孩子节点不是存储器元件,该孩子节点在步骤363从父节点继承其颜色。在步骤362或步骤363中的任一种情形下,在步骤365将孩子DIST设置成等于父DIST+1。在步骤364或步骤365中的任一种情形下,在步骤370中,父节点标记(即,第一,第二或第三属性)被存储于孩子节点的前辈属性中,例如孩子节点的前辈属性中指向父节点的指针。通常,每个节点存储一个这样的值。
在执行步骤347或步骤370之后,该方法300在步骤375确定父节点是否有任何其它的孩子节点要查看。如果有更多的孩子节点要查看,步骤310重新执行,查看下一个孩子节点。如果没有,在步骤380中,该方法300确定是否剩下有任何更多的节点需要测试。如果有更多是节点需要测试非法反馈,则在步骤382中,BFS移到下一个节点。下一个节点的确定是特定于实现的。一般地,每个节点存有指向它的孩子的一列指针。一旦通过这个孩子列表迭代执行,能够通过从队列弹出顶部成员来获得下一个节点,并且步骤310再次执行。如果没有待测试的节点,则在步骤385确定是否还有任何更多的输入进入这个电路网络。如果有更多的输入,则在步骤302再一次进入新的输入,并且整个流程再次执行。如果没有,则在步骤390,该方法表明已经完成,并且退出程序。
在进一步的实施例中,深度优先遍历从电路网络的输入开始执行。深度优先搜索(DFS)在到达下一个路径的结束之前到达给定路径的结束。DFS的属性如下所述。
特征 | 说明 |
属性(颜色) | 第一,第二或第三(红色,绿色或黑色) |
距离 | 如果这个节点115的颜色是绿色或红色,为相距最后清除元件的距离,或如果这个节点115的颜色是黑色,为相距输入的距离。 |
前辈 | 唯一元件,其中有向图从该唯一元件首先到达这个逻辑模块。也被称为父元件。根据定义,父元件离其孩子的距离是1。在到达这个节点的路径上遇到的最后可扫描锁存器被赋予的唯一ID。 |
状态 | NULL/NOT_VISITED,NOT_FINISHED,FINISHED。 |
ZONE_ID | 唯一元件,其中有向图从该唯一元件首先到达这个逻辑模块。也被称为父元件。根据定义,父元件离其孩子的距离是1。 |
表2:深度优先实施例
表1的BFS的距离、前辈和颜色属性基本上对应于表2的DFS。然而,DFS具有两种附加的特征。它们是"状态"属性和"ZONE_ID"属性。
当在属性赋值遍历中被遇到之前,每个节点具有NULL/NOTVISITED状态。当首次被访问时,节点被标明为NOT_FINISHED。直到它的所有孩子节点已经完成深度优先遍历,节点才被标记为FINISHED。
ZONE_ID是赋给导向逻辑模块的路径上见到的最后可扫描锁存器的唯一ID。在通过可扫描锁存器(SL)之后,后续路径上的逻辑模块在给定的区域之内,直到路径通过不同的SL。
如果在遍历期间,第一个节点到达已经具有与之相关的属性的第二个节点,通过读取第二个节点的状态可以确定第二个节点是否前辈节点。如果第二个节点的状态等于NOT_FINISHED,则第二个节点是前辈节点,并已经找到了反馈。为了确定这是否一个非法或允许的反馈回路,比较第一个节点与第二个节点的ZONE_ID。如果第二个节点的ZONE_ID等于第一个节点的ZONE_ID,则已经找到没有经过任何可扫描元件的反馈回路。因此,这个反馈回路不是允许的(即,它是非法的)。
如果第二个节点的ZONE_ID不等于第一个节点的ZONE_ID,在第一个和第二个节点之间存在可扫描元件,反馈是允许的。这可从ZONE_ID的定义中得出。这个定义就是,从起始节点发出的所有路径上的节点继承该可扫描元件的ZONE_ID。这个一直继续,直到那些路径通过不同的可扫描元件,其中节点将获得不同的ZONE_ID。
DFS和BFS是两个基本的和广泛用于遍历图的方法。通过提供使用两种遍历检测只经过NSL的反馈的方法,本发明能够容易地被集成到现有的微电子设计工具和方法中。
使用DFS还是BFS是特定于实现的,可以取决于电路网络的某些知识。例如,相对其深度而言具有宽扇出的电路网络会需要大的BFS队列和相对小的DFS栈。相反地,低扇出和长相对深度的电路网络会需要比BFS队列更大的DFS栈。如果系统存储器是一个限制瓶颈,这一点是很重要的。
现在参照图4,它举例说明了两个网络410和420。包含片上系统设计的大规模集成电路设计可包括许多互连的模块或网络。在图4中,网络410和420(每个都没有非法的NSL反馈回路)在连接到一起时形成非法的NSL反馈回路。
为了避免这样的问题,在一个进一步的实施例中,当网络410和420被验证没有有害的经过NSL的反馈回路时,所得到的聚合电路网络也被验证是没有边界违例问题。这能够通过下列边界规则得以实施。
1)在到达非可扫描元件之前在任何输入路径上到达可扫描元件。这就是"输入"规则。2)可扫描元件是输出路径上见到的最后锁存器。这就是"输出"规则。换句话说,最后不能见到非可扫描元件(即,在可扫描元件之后)。3)最后,在输出之前,在路径上的某一点会见到锁存器。这就是"锁存器"规则。
如果输入和输出规则都在多个网络410和420的设计中使用,当网络410和420连接时,反馈回路不会只经过NSL。一般地,如果使用了输入或者输出规则,以及锁存器规则,在第一个模块的输出及其到第二个模块的输入的连接之间不可能存在任何的NSL,因此不可能有任何非法的反馈回路。
在这个进一步的实施例中,至少某些边界锁存器,例如235、237和248这样的锁存器在每个大的功能单元之间是可扫描的,例如网络200是可扫描的。这意味着,任何输入路径上遍历的至少第一个锁存器,例如锁存器220、230和244是可扫描的。在进一步实施例中,在任何输出上见到的最后锁存器,例如锁存器235、237和248是可扫描的。在另一个进一步的实施例中,扫描锁存器可以被设置第一输入和最后的输出。这种结构允许对网络200的输入进行控制,并且对所有输出进行观察以和期望结果相匹配。这三个边界扫描实施例中的任何一个,如果在多个聚合在一起的网络200中使用,将保证在网络200之间不存在仅经过NSL的反馈回路。图3表明这是怎样发生的。如果只应用输出规则,则当网络410和420连接时,只要使用了锁存器规则,这仍然充分保证没有仅经过NSL的反馈回路发生。
为了执行边界规则,必须针对输入规则保证没有从第一属性到第三属性的颜色切换,例如从黑色到红色的切换。这样的切换表明,在输入路径上的清除元件之前遇见了非清除元件,这在输入规则下是不允许的。为了执行输出规则,最后节点(与输出管脚连接的节点)的颜色属性不是红色,即不是第三属性。如果属性颜色是红色,则在输出路径上遇见的最后锁存器不是可扫描的。为了执行锁存器规则,最后节点的颜色必须是绿色或红色。这保证输入到输出的路径上具有锁存器。
然而,本领域的技术人员应当理解,发现非法反馈回路能够应用到通信网络,电力网络,计算机网络,控制网络等等。换句话说,本发明能够应用到其中存在反馈的网络。
现在参照图5A和图5B,所公开的分别是本发明所描述的方法的BFS和DFS实现的源代码和伪码。进行输入和输出边界检查。也进行了设计标准验证。这保证非扫描锁存器之间的距离决不超过预定值D=MAX_DIST。
在图5A中,过程Find_All_Feedback()在电路网络的有向图表示中被调用。由此,宽度优先搜索遍历有向图以寻找反馈回路。所有仅经过非扫描锁存器的反馈回路在线性O(N)时间内被找到。N=|V|+|E|,节点的数目加上边的数目,或等价地,电路元件的数目加上它们之间互连/连线的数目。在图5B的进一步实施例中,搜索深度(DFS)遍历图以寻找反馈回路。
应当理解的是,本发明能够采取许多形式和实施例。因此,可以在前述实施例中进行几种变化而不背离本发明的精神或范围。例如,可以实施不同的通信标准,等等。
前面参照其某些优选实施例描述了本发明,应当注意,所公开的实施例是说明性的,而不是限制性的,并且在前述实施例中可以考虑广泛的变化、修正和替代,而在某些例子中,可以使用本发明的某些特征,而不对应使用其它的特征。根据前面对优选实施例的描述,许多这样的变化和修正对于本领域技术人员而言应当是显而易见和期望的。因此可以理解,应当宽泛和与本发明的范围一致地解释所附权利要求。
Claims (29)
1.一种寻找只经过非清除元件的反馈回路的系统,包括:
第一节点,该第二节点可用于记录至少一个祖先节点的距离计数;
第二节点,该第二节点具有距离计数;
连接第一节点到第二节点的连接;
计数分析器,可用于确定具有它自己的距离计数的第二节点是否与第一节点的具有相同距离计数的所记录祖先节点是相同的节点。
2.如权利要求1的系统,进一步包括与第一节点连接的可扫描元件。
3.如权利要求1的系统,进一步包括在第一节点和第二节点之间的多个节点,每个节点具有单独的距离计数。
4.如权利要求3的系统,其中与第二节点和第一节点之间的节点相关的相关计数随节点到节点而递增。
5.如权利要求1的系统,其中计数分析器可用于在第一节点与祖先节点相同的情况下将回路标记为不允许的。
6.如权利要求1的反馈回路,进一步包括在第一逻辑节点和第二逻辑节点之间插入的可扫描元件。
7.如权利要求6的系统,其中可扫描元件是锁存器。
8.如权利要求5的系统,其中可扫描元件可用于将距离计数重新设置为0。
9.如权利要求1的系统,其中反馈回路是在电力网络,电信网络或总线互连中。
10.一种在网络中生成反馈条件标记的方法,包括:
确定在父逻辑节点和孩子逻辑节点间是否存在存储器元件;
如果存在存储器元件,在存储器元件是可扫描存储器元件的情况下,将第二属性赋予孩子逻辑节点;
如果存在存储器元件,在存储器元件是非可扫描存储器元件的情况下,将第三属性赋予孩子逻辑节点;
在孩子节点中存储1加上父距离的距离;
在孩子节点中存储父节点的标记。
11.如权利要求10的方法,进一步包括将第一属性赋予从输入开始的第一个逻辑元件,第一属性表明在遍历中没有遇到存储器元件。
12.如权利要求10的方法,进一步包括当在父逻辑节点和孩子节点之间插入可扫描存储器元件时,将相关元件计数重新设置为0。
13.如权利要求10的方法,进一步包括如果在孩子节点和父节点之间没有插入存储器元件,孩子节点从父节点继承属性。
14.一种确定非法反馈回路的方法,包括:
选择第一节点;
选择第二节点,该第二节点具有第一,第二或第三属性;
建立从第一节点到第二节点的连接;
如果第二节点具有第二属性,标记这个连接为允许的连接。
15.如权利要求14的方法,其中选择具有第二属性的节点的步骤指示在从第一节点到第二节点的遍历中遇到至少一个存储器元件。
16.如权利要求14的方法,其中选择具有第三属性的节点的步骤指示非可扫描元件是在从第一节点到第二节点的遍历中遇到的最后存储器元件。
17.如权利要求14的方法,其中允许的连接包括允许的反馈回路。
18.如权利要求14的方法,进一步包括:
如果第二节点具有第三属性:
检索第二节点上的距离计数值;
检索第一节点的与第二节点具有相同计数值的祖先节点的标记;
如果第二节点和具有相同计数的祖先节点不是相同的节点,标记此回路是允许的回路;
如果第二节点和具有相同计数的祖先节点是同一节点,标记反馈回路是不允许的反馈回路。
19.如权利要求14的方法,进一步包括如果在两个清除元件之间存在多于预定数目的逻辑节点和非可扫描元件,标记一个设计违例。
20.一种确定多个聚合的电路网络具有允许的反馈回路的方法,包括:
确定第一网络在第一网络内是否具有不允许的反馈回路;
确定第二网络在第二网络内是否具有不允许的反馈回路;
要求至少一个可扫描存储器元件被置于每个网络的每个输入和输出之间的第一和第二网络内。
21.如权利要求20的方法,进一步包括当在第一和第二网络内放置非可扫描元件之前,在输入路径上放置可扫描元件。
22.如权利要求20的方法,进一步包括在第一和第二网络内的输出之前放置可扫描元件以作为最后存储器元件。
23.如权利要求20的方法,其中扫描存储器规则包括可扫描元件被插入在非可扫描元件之前的输入路径上的要求,和可扫描锁存器是在第一和第二网络的输出之前的最后存储器元件的要求。
24.一种使用深度优先搜索寻找非法反馈回路的方法,包括:
确定在祖先逻辑节点和孩子逻辑节点之间是否存在存储器元件;
如果存在存储器元件,在存储器元件是可扫描存储器元件的情况下,将第一属性赋予孩子逻辑节点;
如果存在存储器元件,在存储器元件是非可扫描存储器元件的情况下,将第二属性赋予孩子逻辑节点;
递增孩子节点的相关计数;
为孩子逻辑节点生成NOT_FINISHED或FINISHED状态;
为从父节点开始的路径上遇到的最后可扫描元件生成增量扫描计数标记;
由后代逻辑节点继承增量扫描计数。
25.一种确定非法反馈回路的方法,包括:
选择第一节点;
选择第二节点;
产生从第一节点到第二节点的连接;
如果第二节点不具有第一,第二或第三属性,标记这个连接为允许的连接;
如果第二节点具有第一,第二或第三属性:
如果第二节点具有完成状态,标记这个连接是允许的连接;
如果第二节点具有未完成状态,确定第一节点和第二节点是否具有相同的增量ZONE_ID;
如果第一和第二节点都具有相同的增量扫描计数,标记这个连接为不允许的连接;
如果第一和第二节点具有不同的增量扫描计数,标记这个连接为允许的连接。
26.一种用于在网络中生成反馈条件的标记的计算机程序产品,所述计算机程序产品具有在其上体现计算机程序的媒介,所述计算机程序包括:
用于确定在父逻辑节点和孩子逻辑节点之间是否存在存储器元件的计算机代码;
如果存在存储器元件,用于在存储器元件是可扫描存储器元件的情况下将第一属性赋予孩子逻辑节点的计算机代码;
如果存在存储器元件,用于在存储器元件是非可扫描存储器元件的情况下将第二属性赋予孩子逻辑节点的计算机代码;
用于递增孩子节点的相关计数的计算机代码;
用于在孩子节点中存储父节点的相关计数和父亲节点的标记的计算机代码。
27.一种用于在网络中生成反馈条件的标记的处理器,这个处理器包含计算机程序,所述计算机程序包括:
用于确定在父逻辑节点和孩子逻辑节点之间是否存在存储器元件的计算机代码;
如果存在存储器元件,用于在存储器元件是可扫描存储器元件的情况下将第一属性赋予孩子逻辑节点的计算机代码;
如果存在存储器元件,用于在存储器元件是非可扫描存储器元件的情况下将第二属性赋予孩子逻辑节点的计算机代码;
用于递增孩子节点的相关计数的计算机代码;
用于在孩子节点中存储父节点的相关计数和父亲节点的标记的计算机代码。
28.一种用于确定非法反馈回路的计算机程序产品,所述计算机程序产品具有在其上体现计算机程序的媒介,所述计算机程序包括:
用于选择第一节点的计算机代码;
用于选择第二节点的计算机代码,这个第二节点具有第一,第二或第三属性;
用于产生从第一节点到第二节点的连接的计算机代码;
如果第二节点具有第二属性,用于标记这个连接为允许的连接的计算机代码。
29.一种用于确定非法反馈回路的处理器,该处理器包含计算机程序,所述计算机程序包括:
用于选择第一节点的计算机代码;
用于选择第二节点的计算机代码,这个第二节点具有第一,第二或第三属性;
用于产生从第一节点到第二节点的连接的计算机代码;
如果第二节点具有第二属性,用于标记这个连接为允许的连接的计算机代码。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/322,088 | 2002-12-17 | ||
US10/322,088 US6986114B2 (en) | 2002-12-17 | 2002-12-17 | Feedback cycle detection across non-scan memory elements |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1508558A true CN1508558A (zh) | 2004-06-30 |
CN100478696C CN100478696C (zh) | 2009-04-15 |
Family
ID=32507212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101195672A Expired - Fee Related CN100478696C (zh) | 2002-12-17 | 2003-12-04 | 非扫描存储器元件上的反馈循环检测方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6986114B2 (zh) |
JP (1) | JP4012499B2 (zh) |
CN (1) | CN100478696C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462084A (zh) * | 2013-09-13 | 2015-03-25 | Sap欧洲公司 | 基于多个查询提供搜索细化建议 |
CN106874177A (zh) * | 2015-12-14 | 2017-06-20 | 中国航空工业第六八研究所 | 一种基于场景的锁存器测试方法 |
CN111695320A (zh) * | 2020-06-15 | 2020-09-22 | 汪子岩 | 一种基于遍历导线的获取电路有向图的方法 |
CN117250480A (zh) * | 2023-11-08 | 2023-12-19 | 英诺达(成都)电子科技有限公司 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
CN117907812A (zh) * | 2024-03-20 | 2024-04-19 | 英诺达(成都)电子科技有限公司 | 电路检测方法及装置、电子设备、存储介质、程序产品 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7434183B2 (en) * | 2005-08-17 | 2008-10-07 | Cadence Design Systems, Inc. | Method and system for validating a hierarchical simulation database |
US7406640B2 (en) * | 2006-03-31 | 2008-07-29 | International Business Machines Corporation | Method and apparatus for testing a ring of non-scan latches with logic built-in self-test |
US9002899B2 (en) * | 2008-07-07 | 2015-04-07 | International Business Machines Corporation | Method of merging and incremental construction of minimal finite state machines |
US10885249B1 (en) * | 2019-09-06 | 2021-01-05 | International Business Machines Corporation | Multi-level hierarchical large block synthesis (hLBS) latch optimization |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5239639A (en) * | 1990-11-09 | 1993-08-24 | Intel Corporation | Efficient memory controller with an independent clock |
EP0629933A1 (en) * | 1993-06-15 | 1994-12-21 | International Business Machines Corporation | An auto-sequenced state machine |
US6154101A (en) * | 1998-11-23 | 2000-11-28 | Qualcomm Incorporated | Fast slewing pseudorandom noise sequence generator |
US6556541B1 (en) * | 1999-01-11 | 2003-04-29 | Hewlett-Packard Development Company, L.P. | MAC address learning and propagation in load balancing switch protocols |
US6910193B1 (en) * | 1999-03-22 | 2005-06-21 | Hewlett-Packard Development Company, L.P. | System and method for executing tests on an integrated circuit design |
JP3473692B2 (ja) * | 2000-06-14 | 2003-12-08 | Necマイクロシステム株式会社 | アナログpll回路の論理検証回路 |
-
2002
- 2002-12-17 US US10/322,088 patent/US6986114B2/en not_active Expired - Fee Related
-
2003
- 2003-11-26 JP JP2003396253A patent/JP4012499B2/ja not_active Expired - Fee Related
- 2003-12-04 CN CNB2003101195672A patent/CN100478696C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462084A (zh) * | 2013-09-13 | 2015-03-25 | Sap欧洲公司 | 基于多个查询提供搜索细化建议 |
CN104462084B (zh) * | 2013-09-13 | 2019-08-16 | Sap欧洲公司 | 基于多个查询提供搜索细化建议 |
CN106874177A (zh) * | 2015-12-14 | 2017-06-20 | 中国航空工业第六八研究所 | 一种基于场景的锁存器测试方法 |
CN111695320A (zh) * | 2020-06-15 | 2020-09-22 | 汪子岩 | 一种基于遍历导线的获取电路有向图的方法 |
CN111695320B (zh) * | 2020-06-15 | 2023-10-03 | 汪子岩 | 一种基于遍历导线的获取电路有向图的方法 |
CN117250480A (zh) * | 2023-11-08 | 2023-12-19 | 英诺达(成都)电子科技有限公司 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
CN117250480B (zh) * | 2023-11-08 | 2024-02-23 | 英诺达(成都)电子科技有限公司 | 组合逻辑电路的环路检测方法、装置、设备及存储介质 |
CN117907812A (zh) * | 2024-03-20 | 2024-04-19 | 英诺达(成都)电子科技有限公司 | 电路检测方法及装置、电子设备、存储介质、程序产品 |
Also Published As
Publication number | Publication date |
---|---|
JP2004198407A (ja) | 2004-07-15 |
JP4012499B2 (ja) | 2007-11-21 |
US6986114B2 (en) | 2006-01-10 |
US20040117697A1 (en) | 2004-06-17 |
CN100478696C (zh) | 2009-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6880136B2 (en) | Method to detect systematic defects in VLSI manufacturing | |
US7308660B2 (en) | Calculation system of fault coverage and calculation method of the same | |
Gaubert et al. | Static analysis by policy iteration on relational domains | |
US6453437B1 (en) | Method and system for performing transition fault simulation along long circuit paths for high-quality automatic test pattern generation | |
JP2000132417A (ja) | Xリストに基づく多重エラ―及び故障を診断する方法並びにシステム | |
Czumaj et al. | Property testing in computational geometry | |
US8370273B2 (en) | Method and apparatus for constructing a canonical representation | |
CN1508558A (zh) | 非扫描存储器元件上的反馈循环检测方法和系统 | |
Watson et al. | An efficient incremental DFA minimization algorithm | |
US20120191401A1 (en) | Method and apparatus for generating test patterns for use in at-speed testing | |
CN104486222A (zh) | 基于蚁群优化算法的小时延缺陷测试关键路径选择方法 | |
US6789223B2 (en) | Method for optimizing test development for digital circuits | |
Feng et al. | Lower bounds for possibly divergent probabilistic programs | |
US6662323B1 (en) | Fast error diagnosis for combinational verification | |
Komari et al. | A novel simulation based approach for trace signal selection in silicon debug | |
Riefert et al. | Improving diagnosis resolution of a fault detection test set | |
Bodhe et al. | Diagnostic Fail Data Minimization Using an $ N $-Cover Algorithm | |
Bruschi et al. | A framework for the functional verification of SystemC models | |
Li et al. | Efficient abstraction refinement in interpolation-based unbounded model checking | |
Chandrasekar et al. | Search State Compatibility based Incremental Learning Framework and output deviation based X-filling for diagnostic test generation | |
CN1300838C (zh) | 包含黑盒的电路设计验证与错误诊断方法 | |
Acharya et al. | Branch guided functional test generation at the RTL | |
TWI298394B (en) | Method for detecting defects of a chip | |
Grumberg et al. | 3-valued circuit SAT for STE with automatic refinement | |
Safarpour et al. | Trace compaction using SAT-based reachability analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090415 Termination date: 20151204 |
|
EXPY | Termination of patent right or utility model |