使用检验指示的电路设计校验的制作方法

文档序号:6569062阅读:154来源:国知局
专利名称:使用检验指示的电路设计校验的制作方法
技术领域
本发明通常涉及电路设计校验,更具体地说,涉及使用检验指示的电路 设计校验。
背景技术
在实际生产制造之前通常要校验(即测试)所产生的电路设计。 一般,通 过在计算机(未示出)上运行模拟程序来校验电路设计,在此期间,将不同的输 入(称为激励)依次施加到电路设计上,并收集在电路输出上和在电路设计的不 同结点上的信号,并将这些信号与期望值相比较。如果出现失配,就认为电 路设计是有缺陷的并且必须重新设计。不同激励的数量可以非常大,于是, 用所有可能的激励来测试电路设计的时间将会很长。因而,需要一种比先前 的工艺技术花费更短时间的校验电路设计的方法。发明内容本发明提出了电路设计的校验方法,该方法包括提出电路设计;为电路 设计建立激励树图,其中,激励树图包括L个激励,在此,L是大于4的整 数,激励树图还包括M个检查点分叉,在此,M是大于l的整数,其中激励 树图还包括N个非检验指示分叉,N是非负数的整数;执行激励树图,在此, 所迷执行激励树图的操作包括,在i二l,...,M的情况下,执行M个检验指示 分叉中的第i个检验指示分叉,其中,执行第i个检验指示分叉包括保存第i 个激励环境中的第i个上下文,并在此环境中执行激励树图;在进行了所述 保存第i个上下文的操作之后,从第i个上下文开始,沿着从第i个检验指示 分叉上分支出来的激励树图的Pi个路径来执行,其中,第i个检验指示分叉 是Pi路(Pi-way)分叉,Pi是大于l的整数。本发明也提供了 一个方法,此法包括用计算机系统处理器来执行算法, 该算法由存储在机读介质上的计算机代码组成,所述计算机可读介质与处理 器相连,所述执行所述算法包括执行电路设计的激励树图的步骤,其中,激励树图包括L个激励,L是大于4的整数,其中,激励树图还包括M个冲企-验 指示分叉,其中M是大于1的整数,其中,激励树图还包括N个非检验指示 分叉,N是非负数的整数,其中,所述执行激励树图的操作包括,在1=1,..., M的情况下,执行M个检验指示分叉的第i个检验指示分叉,其中,执行第 i个冲企验指示分叉包括保存第i个模拟环境中的第i个上下文,在此环境中进 行所述执行激励树图的操作;在进行了所述保存第i个上下文之后,从第i个 上下文开始,沿着从第i个4企验指示分叉上分支出来的激励树图的Pi个路径 来执行,其中,第i个才企验指示分叉是Pi路分叉,Pi是大于l的整数。本发明也提供了 一个计算机程序产品,该产品包含具有其中嵌埋了机读 程序代码的计算机可用介质,所述机读程序代码包括适用于执行电路设计的 校验方法的算法,所述方法包括执行电路设计激励树图的步骤,其中,激励 树图包括L个激励,L是大于4的整数,其中,激励树图还包括M个检验指 示分叉,其中M是大于1的整数,其中,激励树图还包括N个非检验指示分 叉,N是非负数的整数,其中,所述执行激励树图的操作包括,在i-l,...,M 的情况下,执行M个检验指示分叉的第i个检验指示分叉,其中,执行第i 个才全验指示分叉包括保存第i个模拟环境的第i个上下文,在此^^莫拟环境中进 行所述执行激励树图的操作;在进行了所述保存第i个上下文之后,从第i个 上下文开始,沿着从第i个检验指示分叉上分支出来的激励树图的Pi个路径 来执行,其中,第i个检验指示分叉是Pi路分叉,Pi是大于l的整数。本发明也提供了电路设计的校验方法,该方法包括将机读代码集成到计 算机系统中,其中,与计算机系统相组合的代码能够进行执行电路设计的激 励树图的步骤,其中,激励树图包括L个激励,L是大于4的整数,其中, 激励树图还包括M个检验指示分叉,M是大于l的整数,其中,激励树图还 包括N个非检验指示分叉,N是非负数的整数,其中,所述执行激励树图的 操作包括,在i = 1, ..., M的情况下,执行M个检验指示分叉中的第i个检验 指示分叉,其中,执行第i个检验指示分叉包括保存第i个模拟环境的第i个 上下文,在此模拟环境中进行所述执行激励树图;在进行了所述保存第i个 上下文之后,从第i个上下文开始,沿着从第i个4企验指示分叉上分支出来的 激励树图的Pi个路径来执行,其中,第i个检验指示分叉是Pi路分叉,Pi 是大于1的整数。本发明提供了用并行模拟进程来测试集成电路的方法,此方法包括限定集成电路的测试范围;根据集成电路的随机种子(random seed)配置来产生第 一模拟进程;此第一模拟进程控制并行模拟进程;运行第一模拟进程到测试 覆盖范围的第一检验指示分叉;和第一模拟进程一起并行运行第二模拟进 程,第二模拟进程在第一检验指示分叉上开始;继续运行第一模拟进程到第 一组检验指示分叉,直到运用了测试覆盖范围的覆盖路径上的所有的激励为 止;继续运行第二模拟进程到第二组检验指示分叉,直到运用了测试覆盖范 围的覆盖路径上的所有的激励为止;将第一组检验指示分叉和第二组检验指 示分叉中的每个分叉的激励和位置传送给第一模拟进程。本发明提供了用比先前的工艺技术更短的时间来校验电路设计的方法。


图l根据本发明的实施例示出了测试系统(测试模拟环境)。 图2根据本发明的实施例示出了图1的测试模拟环境的激励产生器的激 励树图。图3根据本发明的实施例示出了用于执行图2的激励树图的激励程序。 图4根据本发明的实施例示出了利用图1的测试模拟环境的校验环境。 图5根据本发明的实施例示出了用于执行图2的激励树图的另一个激励 程序。图6根据本发明的实施例示出了使用图4的校验环境的检验指示的优点。 图7根据本发明的实施例示出了用于模拟图1的测试模拟环境的计算机 系统。
具体实施方式
图1根据本发明的实施例示出了用于校验(即测试)电路100的测试系统。 更具体地说,在一个实施例中,按如下方式进行电路100的校验。激励产生 器110向电路130和监控器120产生激励。电路130从激励产生器110上接 收作为输入的激励并对检验器140产生输出信号。监控器120记录给予电路 130的激励。在一个实施例中,在将激励传送到^r验器140之前,监控器120 先把激励转换成有用的形式。检验器140根据由监控器120提供的信息来计 算所期望的结果,并比较来自电路130的输出信号和计算出的期望结果。来 自电路130的输出信号和计算出的期望结果之间的差别表明在电路130中的潜在差错。在一个实施例中,检验器140跟踪检测电路130是否已用预先规定的一 組激励(称为激励覆盖路径)来测试过,并相应地通知覆盖范围监控器150。覆 盖范围监控器150保持在电路130上进行的激励覆盖路径的轨迹,并比较所 进行的激励覆盖路径和预先规定的一组激励覆盖路径(称为激励覆盖目标)。在 一个实施例中,在进行了所有的激励覆盖目标的激励覆盖路径之后,覆盖范 围监控器150就通知校验工程师,以便校验工程师能够停止校验进程。在一个实施例中,通过执行计算机(未示出)中的模拟程序来模拟电路130 的校验。更具体地说,通过执行在计算机中的模拟程序来模拟所有的激励发 生器110、监控器120、电路130、检验器140和覆盖监控器150。结果,在 计算机模拟的上下文中,就能够将电路130当作为电路设计130,就能将测 试系统100当作为测试模拟环境100。此外,在计算机模拟上下文中,可将 激励发生器110、监控器120、检验器140和覆盖范围监控器150分别当作为 激励产生器进程110、监控器进程120、检验器进程140和覆盖监控器进程 150。应当说明的是,通过执行在计算机中的模拟程序能够顺序地或同时地模 拟与测试才莫拟环境100相似的多个测试^^拟环境。图2根据本发明的实施例示出了图1的激励产生器进程110的激励树图 200。能够产生激励树图200来校验电路设计130。如图所示,激励树图200 包括代表15个激励(即激励S, A, B, C,…,N)的15个环。例如,假设电路设计130是顺序数字电路,该电路有两个二进制的输入 X和Y(未示出)和一个二进制输出Z(未示出)。于是,例如,根激励S可以 是能够分别加到输入X和Y上的(l, 1),(即X=1,Y=1)。激励A可以是能够分 别加到输入X和Y上的(l, 0),(即X=1,Y=0)。激励B可以是能够分别加到输 入X和Y上的(O, 0),(即X=0,Y=0)。激励C可以是能够分别加到输入X和Y 上的(1,0),(即与激励A相同),如此等等。从激励A到激励B的箭头表明在激励B之前将激励A施加到电路设计 130上。同样地,从激励A到激励F的箭头表明在激励F之前将激励A施加 到电路设计130上,在激励树图200中的其它箭头也是如此。如果将所有的六个激励S, A, B, C, D和E都依照其顺序加到了电路设计130上,这就表明,已执行了激励覆盖路径S-A-B-C-D-E并已进行了测试运 行。同样地,如果将所有的五个激励S, A, F, H和J依照此顺序加到了电路设 计130上,这就表明,已执行了激励覆盖路径S-A-F-H-J并已进行了测试运 行,等等。激励树图200包括五个不同的激励覆盖路径S-A-B-C-D-E, S-A-F-G-I-L, S-A-F-G-I-M, S-A-F-H-J, S-A-F-H-K-N。如果进行了所有的五个激励覆盖路 径,就完成了电路设计130的校验的激励覆盖目标。因此,必须进行至少5 个测试运作才能完成激励覆盖目标。由此可见,五个激励覆盖路径的每一个 都从序列S-A开始。因此,将序列S-A称为初始化序列。应当说明的是,激励树图200可以正好是大得多的激励覆盖空间的一部 分。例如,激励序列S-A-A和S-A-B-A(未示出)是激励覆盖空间的两个可能 的激励覆盖路径,但是并不属于激励树图200。这可能是因为校验工程师选 捧不沿着这两个激励覆盖路径来测试电路设计130。校验工程师这样做的原因可能是因为电路设计130不是设计来沿着这两个激励覆盖路径执行的。换 句话说,在上述的实施例中,激励树图200只包含激励覆盖空间的一部分。 在另一个可供选择的实施例中,激励树图200包含了全部的激励覆盖空间。图3根据本发明的实施例示出了用于执行图2的激励树图200的激励程 序。在一个实施例中,激励程序300可以包含在用以建立图1的测试模拟环 境100的模拟程序300中。在激励程序300中,";"前面的字符"A"代表计 算机指令A,在执行时,此指令模拟对电路设计130的激励A的产生(图1)。 随后是测试模拟环境IOO (图1)的操作,以响应所产生的、并被施加到电路 设计130(图1)上的激励A(图1)。更具体地说,这个操:作包括在响应激励 A时电路设计130模拟输出信号的产生;在将激励A转发给检验器130时, 模拟监控器120的操作;模拟检验器140的操作,以便比较在响应激励A时 所产生的电路设计130的输出值和期望值,等等。如图所示,激励程序300有四个分支一随机一布尔指令,在计算机执行这 些指令时,每个指令都引起一个检验指示事件(以下将详细说明)。在激励树图 200之中,恰好分别在激励A、 F、 I和H之后,有四个分支210、 220、 230 和240,并且还有分别与四个分支210、 220、 230和240相应的分支—随机— 布尔指令310、 320、 330和340(图2)。下面将详细说明激励程序300的执行。图4根据本发明的实施例示出了利用图1的测试模拟环境100的校验环 境400。更具体地说,校验环境400包括测试管理器410、 ^r^r点管理器420、 检验点队列430和N个测试模拟环境440.1,...,440.N,其中,N是正整数。N 个测试才莫拟环境440.1,...,440.N中的每一个都与图1中的测试才莫拟环境相似。在一个实施例中,通过由计算机执行模拟程序来产生校验环境400。这 就表示,测试管理器410和4t睑点管理器420也是计算机进程。参照图1 - 4,在一个实施例中,在校验环境400中使用激励程序300进 行电路设计130的校验(称为执行激励程序300)如下。首先,测试管理器410 执行模拟程序直到紧接在激励程序300前面的点上。然后,测试管理器410 将控制传送到4企验点管理器420。在响应时,4企验点管理器420分支(即产生) 第一测试模拟环境440.1(图4),该测试模拟环境正好在激励程序300(图3)的 起始位置上开始执行。更具体地说,测试模拟环境440.1执行指令S,然后执 行指令A和分支—随机_布尔指令310。在一个实施例中,在执行指令分支—随机—布尔指令310时(称为执行图2 的检验指示分叉210),测试模拟环境440.1进行如下的操作。首先,测试模 拟环境440.1通知4全-睑点管理器420,测试模拟环境440.1正在分支—随机—布 尔指令310上进行检验指示。然后,测试模拟环境440.1给4企验点管理器420 提供分支—随机—布尔指令310的两个可能的结果,即TRUE (正确的)和 FALSE (错误的)(这两个结果被列入在分支—随机_布尔指令310中)。然后, 测试纟莫拟环境440.1保存它的上下文并结束。在一个实施例中,在响应从测试模拟环境440.1中接收分支—随机—布尔 指令310的TRUE (正确的)和FALSE (错误的)这两个可能的结果时,检验 点管理器420分别保存TRUE (正确的)和FALSE (错误的)这两个可能的结 果,以作为在4企验点队列430中的第一项和第二项。如图例所示,第一顶可 能是"TRUE-指令A",第二顶可能是"FALSE-指令A"。在一个实施例中,检验点管理器420持续检验可以利用的项目的检验点 队列430,并发现检验点队列430包含第一和第二项。然后,检验点管理器 420分叉第二测试冲莫拟环境440.2,并将检验点队列430的第一项(即"TRUE-指令A")发送给测试模拟环境440.2。在此,假设根据FIFO(先进先出)的原则 来操作检验点队列430。这就是说,将第一项放在检验点队列430中的第二 项之前,因此,在第二项之前先对第一项起作用。然后,在响应时,测试模拟环境440.2从由测试模拟环境440.1保存的上 下文开始,并执行指令B、 C、 D和E,然后结束(即沿着TRUE路径)。在此 点上,已执行了激励覆盖路径S-A-B-C-D-E并结束测试运作。下面,在一个实施例中,检验点管理器420检验片企验点队列430并发现 检验点队列430仍然包含第二项(即"FALSE-指令A")。然后,检验点管理器 420分叉第三测试模拟环境440.3,并将检验点队列430中的第二项发送给测 试才莫拟环境440.3。然后,在响应时,测试模拟环境440.3从由测试模拟环境440.1保存的上 下文开始,并执行指令F和分支—随机—布尔指令320 (即沿着FALSE路径), 然后结束。在一个实施例中,测试模拟环境440.3按照与测试模拟环境440.1执行"分 支—随机_布尔"指令310的方式相同的方式来执行"分支—随机—布尔"指令 320。结果,检验点队列430又分别有了第三和第四项"TRUE-指令P,和 "FALSE-指令F"。然后,在响应发现在检验点队列430中的第三和第四项时,检验点管理 器"0分叉(i)第四测试模拟环境440.4以执行指令G (即沿着TRUE路径) 和(ii)第五测试模拟环境440.5以执行指令H(即沿着FALSE路径),等等,直 到测试了所有的五个激励覆盖路径S-A-B-C-D-E, S-A-F-G-I-L, S-A-F-G-I-M, S-A-F-H-J, S-A-F-H-K-N为止。在一个实施例中,在背景中运作的测试管理器 410识别这个情况(即测试了激励覆盖目标的所有的五个激励覆盖路径),然 后表明完成了校验进程。在上述的实施例中,检验点管理器420只在前面产生的全部测试模拟环 境结束了之后才分叉新的测试模拟环境(即顺序地)。例如,检验点管理器420 在第二测试才莫拟环境440.2结束之后才分叉第三测试才莫拟环境440.3。在另一 个可供选择的实施例中,即使以前产生的其它测试模拟环境还在执行之中, 检验点管理器420也能够分叉新的测试模拟环境。例如,尽管第二测试模拟 环境4W2正在沿着TRUE路径(即激励覆盖路径S-A-B-C-D-E)执行,检验 点管理器420也能分叉第三模拟测试环境440.3,以便沿着FALSE路径(即 指令F)执行。在另一个例子中,尽管第二测试模拟环境440.2正在沿着TRUE 路径(即激励覆盖路径S-A-B-C-D-E)执行,但是在第三测试模拟环境440.3 结束后,检验点管理器420也能分叉第四和第五模拟测试环境440.4和440.5,以便分别沿着TRUE路径(即指令G)和FALSE路径(即指令H)执行。在上述的实施例中,将一个分支一随机—布尔指令用于激励树图200中的 每个分叉上。更具体地说,四个"分支—随机—布尔,,指令310、 320、 330和340 (图4)分别用于四个分支210、 220、 230和240上(图2)。换句话说,在激励 树图200中的所有分叉都是检验指示分叉。另外,并非在激励树图200中的 所有的分叉都是^:验指示分叉(即在激励树图200中能够只有一个、两个或 三个检验点)。例如,在分叉220(称为非检验指示的分叉220)上只能有一个 检验点。这相当于用激励程序300中的三个"是否—随机—布尔()-TRUE,,指 令来代替三个"分支_随机_布尔"指令310、 330和340,并产生了激励程序 500 (图5)。参见图1 -5,在一个实施例中,除了以下几方面以外,使用激励图500(称 为执行激励程序500)的电路设计130的校验与执行激励程序300相似。在这 些方面之一中,在执行激励程序500 (图5)的"是否—随机_布尔()=TRUE" 指令510、 530和540中的任何一个的时候,测试模拟环境进行如下操作。首 先,测试模拟环境产生TRUE或FALSE 二者之一的随机布尔值。然后,根据 随机产生的值,测试模拟环境将沿着相应的路径执行。例如,假设测试模拟环境正在执行"是否—随机_布尔()=TRUE"指令510 (图5)。如果由测试模拟环境产生的随机生成值是TRUE,那么,测试模拟环 境将沿TRUE路径(即激励覆盖路径B-C-D-E)来执行。如果由测试模拟环境 产生的随机生成值是FALSE,那么,测试模拟环境将执行FALSE路径(即 执行指令F,然后执行"分支—随机—布尔"指令320)。测试模拟环境将按照与 测试模拟环境440.1执行上述的"分支—随机—布尔"指令310 (图3)的方式相 似的方式来执行激励程序500(图5)的"分支—随机—布尔"指令320。在一个实施例中,多个测试模拟环境可以沿着激励树图200 (图2)的相 同的或不同的激励覆盖路径来顺序地或非顺序地执行激励程序500 (图5)。作 为非顺序执行的一个例子,々H殳在某个时刻,由测试管理器410产生的、并 从指令S上开始的一个测试模拟环境执行指令C(这个测试模拟环境在执行紧 接在指令A后面的"是否—随机一布尔()=TRUE"指令510的时候产生TRUE 值,因此,遵循TRUE ^各径拍^亍)。在相同的时刻,由测试管理器410产生的、并从指令S上开始的另一个 测试模拟环境执行指令E (这个测试模拟环境在执行紧跟在指令A后面的"是否—随机—布尔(一TRUE"指令510的时候也产生TRUE值,因此,遵循相同的 TRUE路径执行)。在相同的时刻,由检验点管理器420产生的、并从指令G上开始的另一 个测试模拟环境执行指令I (由检验点管理器420从检验点队列430 (图4)中 将TRUE项发送给这个测试模拟环境,因此,沿着TRUE路径到指令I)。。在相同的时刻,由检验点管理器420产生的、并从指令H上开始的另一 个测试模拟环境执行指令K (由检验点管理器420从4企验点队列430中将 FALSE项发送给这个测试模拟环境,因此,遵循FALSE路径执行,然后, 在执行紧接在指令H后面的"是否—随机_布尔("TRUE"指令540的时候产 生FALSE值,因此,遵循FALSE路径到指令K)。在一个实施例中,如果没有达到激励覆盖目标,测试管理器410就继续 产生从激励程序500 (图5)的指令S开始执行的新的测试模拟环境。图6根据本发明的实施例示出了曲线图600,该图说明了使用图4的校 验环境400的斥企验指示的优点。更具体地说,线条610表示这样的情况,在 此情况下,在激励树图200(图2)中不使用检验点。换句话说,在此情况下, 除了用四个"是否—随机一布尔()二TRUE,,指令来替换所有的四个"分支—随 机—布尔"指令310、 320、 330和340而外,所-使用的激励程序类似于激励程 序300 (图3)。线条6M表示这样的情况,在此情况下,在激励树图200 (图 2)中的分叉220上只存在一个检验点。换句话说,使用了激励程序500 (图 5)。线条630表示这样的情况,在此情况下,在激励树图200 (图2)中的所 有的四个分叉210、 220、 230和240上都存在才企验点。换句话说,使用了激 励程序300 (图3)。从图6的曲线图600可知,在激励树图200 (图2)中的所有的四个分叉 210、 220、 BO和240上的4企验指示有助于在最短的时间(约4000毫秒)内 完成激励覆盖目标,与此同时,检验指示完全不需要用最长的时间(约35000 毫秒)来完成相同的激励覆盖目标。在此,假设用同样的计算机(未示出)来 运行三个不同的激励程序(其中两个是激励程序300和500)。在一个实施例中,图2的激励S, A,...,和J中的每一个都能够包括一个 输入序列(而不只是在上面的实施例中所述一个输入)。在上述的实施例中,参见图2,分叉210、220、 230和240是两^各分叉(即 分裂成两个路径)。通常,激励树图200的每个分叉都可以是M路分叉,在此,M是大于l的整数。在上述的实施例中,对于所有的分叉而言,M=2。 通常,激励树图200的分叉不一定都具有相同的M值。例如,如上所述,分 叉210能够是两路分叉,但是分叉240可以是三路分叉。假设检验点位于三路分叉240上(即分叉240是检验指示分叉),然后, 就要用一个指令(在执行时它将三个项放到检验点队列430 (图4)之中)来 替换指令340 (图3)。在响应时,检验点管理器420将产生三个测试模拟环境, 以便沿着从上述的三路分叉240分支出来三个路径来执行。另外的办法是,假设在三路分叉240上没有放置一企验点(即分叉240是 非检验指示分叉),然后,就应当用一个指令(在执行时此指令会随机产生三 个可能的值(即1, 2, 3)之一)来代替指令340,然后遵循与随机产生的值 相应的三个^各径之一来^M亍。图7根据本发明的实施例示出了用于校验电路设计130 (图1)的计算机 系统90。计算机系统90包括处理器91、与处理器91相连的输入器件92、 与处理器91相连的输出器件93、每一个都与处理器91相连的存储器件94 和95。输入器件92尤其可以是键盘、鼠标等。输出器件93尤其可以是打印 机、绘图仪、计算机屏、磁带、可拆卸的硬盘、软盘等。存储器件94和95 尤其可以是硬盘、软盘、磁带、如像小型高密度光盘(CD)或数字视频光盘 (DVD)之类的光存储器、动态随机存取存储器(DRAM)、只读存储器(ROM) 等。存储器件95包括计算机代码97。计算机代码97包括用于校验电路设计 130的算法(图1)。计算机处理器91执行计算机代码97。存储器件94包括 输入数据96。输入数据96包括计算机代码97所需要的输入。输出器件93 显示来自计算机代码97的输出。可将存储器件94和95两者或二者之一 (或 图7中未示出的一个或多个附加的存储器件)用作为计算机可用的介质(或计 算机可读的介质或程序存储介质),这类介质具有嵌埋于其中的计算机可读的 程序代码和/或具有存储于其中的其它数据,其中,计算机可读的程序代码 包括计算机代码97。通常,计算机系统90的计算机程序产品(或者是生产制 品)包括所述计算机可用的介质(或者是所述程序存储器件)。本发明揭示了用于部署计算基本结构的进程,其中包括将计算机可读的 代码集成到计算机系统90中,其中,与计算机系统90相组合的代码能够执 行用于校验电路设计130 (图1)的方法。尽管图7示出了具有特定的软件和硬件配置的计算机系统90,但是如像普通熟悉工艺技术的人所知道的那样,任何硬件和软件配置都可以被用于与前面结合图7的特定的计算机系统90所描述的目的。例如,存储器件94和 95可以是单个的存储器件的某些部分而不是分离的存储器件。在上达述的实施例中,可将第一测试模拟环境440.1 (它执行S-A)和第 二测试模拟环境440.2 (它执行B-C-D-E)当作是执行模拟覆盖路径 S-A-B-C-D-E的第一模拟进程。同样地,可将第三测试模拟环境440.3 (它执 行F)和第四测试才莫拟环境440.4 (它执行G-I)以及另一个测试模拟环境(它 执行M)当作是执行模拟覆盖路径F-G-I-M(即从A开始的路径)的第二模拟 进程。应当说明的是,第二模拟进程遇到了两个紧接在F和I后面的检验指示 分叉。第二模拟进程交会在每个检验指示分叉上,第二模拟进程与上述的检 验点管理器420 (图4)相互通信,以便能够产生用以探查检验指示分叉的其 它路径的新的进程。例如,紧接在F之后,第二模拟进程继续进行到G。根 据第二模拟进程提供的信息,检验点管理器420产生另 一个进行到H的进程 (即上述的第五个测试模拟环境440.5)。例如,紧接在F之后,第二模拟进程提供给检验点管理器420的信息包 括检验指示分叉所在之处(即检验指示分叉的位置,这就是F)的指令以及其 余路径的值(即检验指示分叉的状态,这就是FALSE)。第一模拟进程的表现与第二模拟进程相似。它恰好发生在A之后,第一 模拟进程不遇到任何检验指示分叉。在一个实施例中,检验点管理器420是 第一模拟进程的一个部分。在此情况下,第二模拟进程给第一模拟进程提供 关于每个检验指示分叉的信息,在此,所述检验指示分叉是第二模拟进程在 它的路径上遇到的。换句话说,第一模拟进程控制所有的可以顺序地或同时 地运行的模拟进程。应当说明的是,在此将激励S看做是电路设计130(图1)的随机种子配置。为了说明起见,尽管在此用图描述了本发明的特定的实施例,显然,那 些熟悉工艺技术的人可以进行各种变更和修改。因此,在不脱离本发明的精 神和范围的情况下,附后的权利要求是要涵盖所有这样的变更和修改的。
权利要求
1. 一种设计的校验方法,包括提供电路设计;产生电路设计的激励树图,其中,激励树图包含L个激励,L是大于4的整数,其中,激励树图还包含M个检验指示分叉,M是大于1的整数,执行激励树图,其中,所述执行激励树图包括,对i=1,...,M,执行M个检验指示分叉中的第i个检验指示分叉,其中,所述执行第i个检验指示分叉又包括保存第i个模拟环境中的第i个上下文,在此模拟环境中进行所述执行激励树图的操作;在进行了所述保存第i个上下文的操作之后,从第i个上下文开始,沿着从第i个检验指示分叉上分支出来的激励树图的Pi个路径来执行,其中,第i个检验指示分叉是Pi路分叉,Pi是大于1的整数。
2. 如权利要求1的方法,其中,激励树图还包含N个非检验指示分 叉,N是非负数的整数;并且其中,所述执行激励树图还包括,对h:l,...,N,执行N个非检验指示 分叉中的第h个非检验指示分叉,其中,所述执行第h个非检验指示分叉的 操作包括随^L产生Qh个可能值中的一个值,其中,第h个非才企验指示分 叉是Qh路分叉,Qh是大于l的整数。沿着从第h个非检验指示分叉上分支出来的激励树图的Qh个路 径中的一个路径继续执行,其中,所述一个路径与随机产生的值相关联。
3. 如权利要求1的方法,其中,所述执行激励树图的操作还包括,对j二 l,...,L,执行第j项工作,所述执行第j项工作的操作包括产生L个激励中的第j个激励; 将所述第j个激励施加到电路设计上;响应被施加到电路设计上的所述第j个激励,产生电路设计的第j个输出;产生所述第j个激励的第j个期望值;比较所述第j个输出和所述第j个激励的第j个期望值;如果所述第j个输出和所述第j个激励的第j个期望值彼此不同,就将 电路设计是有缺陷的指示作为所述比较的结果。
4. 如权利要求3的方法,其中,顺序地进行所述执行第1至第L项的工 作。
5. 如权利要求3的方法,其中,非顺序地进行所述执行第l至第L项的 工作。
6. 如权利要求l的方法,其中,N = 0。
7. 如权利要求1的方法,其中,N>0。
8. 如权利要求1的方法,其中,所述执行第i个4全验指示分叉还包括在;^—验点队列中放置Pi个项,并且其中,所述从第i个上下文开始沿着Pi个路径的执行包括,对k=l,..., Pi, 根据在检验点队列中Pi个项中的第k项,从第i个上下文开始沿着Pi个路径 中的第k个路径来执行。
9. 如权利要求8的方法,其中,顺序地进行所述从第i个上下文开始沿 着第1到第Pi个路径的执行。
10. 如权利要求8的方法,其中,非顺序地进行所述从第i个上下文开始 沿着第1到第Pi个路径的执行。
11. 如权利要求8的方法,其中,在4企验点队列中Pi个项的每一项都一 对一地与Pi个路径中的路径相关联。
12. 如权利要求8的方法,其中,在检验点队列中Pi个项的每一项都与 第i个模拟环境的第i个上下文相关联。
13. 如权利要求1的方法,其中,通过计算机模拟来进行所述执行激励 树图的操作。
14. 如权利要求1的方法,还包括响应于已经进行的激励树图的所有 激励覆盖路径,指示电路设计校验的完成。
15. —种系统,包括适于按照任何前述方法权利要求实施所述方法的所 有步骤的装置。
16. —种计算机程序,包括所述计算机程序在计算机系统上执行时, 按照任何前述方法权利要求实施所述方法的所有步骤的指令。
全文摘要
本设计校验方法包括提供电路设计;为电路设计产生激励树图,其中,激励树图包括L个激励、M个检验指示分叉和N个非检验指示分叉;执行激励树图,其中,所述执行激励树图包括,在i=1,...,M的情况下,执行M个检验指示分叉中的第i个检验指示分叉,其中,执行第i个检验指示分叉又包括(a)保存第i个模拟环境中的第i个上下文,在此模拟环境中进行所述执行激励树图的操作;(b)在进行了所述保存第i个上下文的操作之后,从第i个上下文开始,沿着从第i个检验指示分叉分支出来的、共有15个激励的激励树图的Pi个路径来执行,其中,第i个检验指示分叉是Pi路分叉,在此,Pi是大于1的整数。
文档编号G06F17/50GK101273359SQ200680035587
公开日2008年9月24日 申请日期2006年9月6日 优先权日2005年9月26日
发明者杰西·E·克雷格, 贾森·M·诺曼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1