用于计算集成电路模型的验证覆盖率的方法和设备.pdf

上传人:b*** 文档编号:1499006 上传时间:2018-06-18 格式:PDF 页数:13 大小:474.15KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110270261.1

申请日:

2011.08.31

公开号:

CN102968515A

公开日:

2013.03.13

当前法律状态:

授权

有效性:

有权

法律详情:

专利权的转移IPC(主分类):G06F 17/50登记生效日:20171124变更事项:专利权人变更前权利人:格芯美国第二有限责任公司变更后权利人:格芯公司变更事项:地址变更前权利人:美国纽约变更后权利人:开曼群岛大开曼岛|||专利权的转移IPC(主分类):G06F 17/50登记生效日:20171124变更事项:专利权人变更前权利人:国际商业机器公司变更后权利人:格芯美国第二有限责任公司变更事项:地址变更前权利人:美国纽约阿芒克变更后权利人:美国纽约|||授权|||实质审查的生效IPC(主分类):G06F 17/50申请日:20110831|||公开

IPC分类号:

G06F17/50

主分类号:

G06F17/50

申请人:

国际商业机器公司

发明人:

范博; 陈亮; 潘永峰; 周凡

地址:

美国纽约阿芒克

优先权:

专利代理机构:

北京市金杜律师事务所 11256

代理人:

王茂华;赵林琳

PDF下载: PDF下载
内容摘要

本发明实施例提供了一种计算集成电路模型的验证覆盖率的方法,包括:获取待验证集成电路模型的逻辑结构;根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及计算验证对所述信号路径的覆盖率。根据本发明实施例提供的技术方案,可以得到基于信号路径的验证覆盖率,从而更加准确地提供有关验证完备性的数据。

权利要求书

权利要求书一种计算集成电路模型的验证覆盖率的方法,包括:
获取待验证集成电路模型的逻辑结构;
根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及
计算对所述信号路径的验证覆盖率。
如权利要求1所述的方法,其中所述逻辑结构以有向图表示,其中搜索并记录所述待验证集成电路模型中的信号路径包括:
以搜索起始节点作为正向信号追踪的追踪源节点;
从所述追踪源节点开始进行正向信号追踪;
记录有向边另一端的追踪漏节点作为中途节点;
判断是否发现搜索终结节点;
如果未发现搜索终结节点,则以所述中途节点作为新的追踪源节点进行正向信号追踪,并返回所述记录中途节点的步骤;以及
如果发现搜索终结节点,则记录包含所述搜索起始节点,所述中途节点和所述搜索终结节点的信号路径。
如权利要求2所述的方法,其中所述搜索起始节点是以下节点中的一个:
集成电路模型的输入端,或有限状态机。
如权利要求2或3所述的方法,其中所述搜索终结节点是以下节点中的一个:
集成电路模型的输出端,或向有限状态机提供输入的节点。
如权利要求2所述的方法,其中判断是否发现搜索终结节点包括:
判断所述中途节点是否为触发器;
如果所述中途节点不是触发器,则确定未发现搜索终结节点;以及
如果所述中途节点是触发器,则以所述触发器为追踪源节点进行正向信号追踪,判断有向边另一端的追踪漏节点是否为搜索终结节点。
如权利要求2所述的方法,进一步包括:
如果所述中途节点是组合逻辑电路,则从所述组合逻辑电路开始进行反向信号追踪,直到发现影响所述组合逻辑电路的输出的所有搜索起始节点。
如权利要求1或2所述的方法,搜索并记录所述待验证集成电路模型中的信号路径包括:
记录所述待验证集成电路模型中长度短于阈值的信号路径。
如权利要求7所述的方法,其中所述信号路径的长度由信号路径所经过的触发器数目表示。
一种计算集成电路模型的验证覆盖率的设备,包括:
获取装置,配置为获取待验证集成电路模型的逻辑结构;
搜索装置,配置为根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及
计算装置,配置为计算对所述信号路径的验证覆盖率。
如权利要求9所述的设备,其中所述逻辑结构以有向图表示,所述搜索装置包括:
配置为以搜索起始节点作为正向信号追踪的追踪源节点的装置;
配置为从所述追踪源节点开始进行正向信号追踪的装置;
配置为记录有向边另一端的追踪漏节点作为中途节点的装置;
配置为判断是否发现搜索终结节点的装置;
配置为如果未发现搜索终结节点,则以所述中途节点作为新的追踪源节点进行正向信号追踪,并触发所述配置为记录有向边另一端的追踪漏节点作为中途节点的装置的装置;以及
配置为如果发现搜索终结节点,则记录包含所述搜索起始节点,所述中途节点和所述搜索终结节点的信号路径的装置。
如权利要求10所述的设备,其中所述搜索起始节点是以下节点中的一个:
集成电路模型的输入端,或有限状态机。
如权利要求10或11所述的设备,其中所述搜索终结节点是以下节点中的一个:
集成电路模型的输出端,或向有限状态机提供输入的节点。
如权利要求10所述的设备,其中所述配置为判断是否发现搜索终结节点的装置包括:
配置为判断所述中途节点是否为触发器的装置;
配置为如果所述中途节点不是触发器,则确定未发现搜索终结节点的装置;以及
配置为如果所述中途节点是触发器,则以所述触发器为追踪源节点进行正向信号追踪,并且判断有向边另一端的追踪漏节点是否为搜索终结节点的装置。
如权利要求10所述的设备,进一步包括:
配置为如果所述中途节点是组合逻辑电路,则从所述组合逻辑电路开始进行反向信号追踪,直到发现影响所述组合逻辑电路的输出的所有搜索起始节点的装置。
如权利要求9或10所述的设备,其中所述搜索装置包括:
配置为记录所述待验证集成电路模型中长度短于阈值的信号路径的装置。
如权利要求15所述的设备,其中所述信号路径的长度由信号路径所经过的触发器数目表示。

说明书

说明书用于计算集成电路模型的验证覆盖率的方法和设备
■技术领域
本发明涉及集成电路设计技术,更具体地说,涉及用于计算集成电路模型的验证覆盖率的方法和设备。
■背景技术
在集成电路设计过程中,验证(verification)是非常重要的一个步骤。在验证步骤中,向集成电路模型输入各种激励信号,通过比较集成电路模型的实际输出信号和期望的输出信号是否相符,来检查集成电路模型的逻辑正确性。例如,在验证具有两个输入端的与门模型时,依次向该模型输入四种可能的激励信号,检查各激励信号下与门模型的输出是否正确,从而确定该与门模型的逻辑是否正确。集成电路模型需要经过验证以后才能用来作为制造实际集成电路的依据。
验证步骤的目的是确保集成电路模型在所有可能的激励的情况下都能够按照设计正确地工作。理论上讲,通过穷举各种可能的激励信号可以实现完全的验证,从而确保集成电路模型的正确性。但是这种方式效率太低,从而随着集成电路的复杂度越来越高而变得越来越不实际。
在实际的验证步骤中所采用的激励信号是所有可能的激励信号的子集。所述子集可以是人工地选取的,这需要验证人员有非常丰富的经验。所述子集也可以通过根据约束条件进行随机测试例生成而选取。但无论采用哪种方法,都需要考察验证的完备性,即考察采用所述子集进行验证是否覆盖了各种可能性。通常用覆盖率(coverage)来表示所述完备性。
传统的覆盖率计算方法基于寄存器传送级(RTL,Register Transfer Level)单元。例如,将已经验证过的RTL单元占集成电路模型中总RTL单元的比例作为所述覆盖率。然而,孤立的RTL单元能够正确工作并不代表由这些RTL单元组成的集成电路模型能够正确地工作。因此,需要一种改进的覆盖率计算方法。
■发明内容
本发明实施例提供了用于计算集成电路模型的验证覆盖率的方法和设备。
根据本发明实施例的一种计算集成电路模型的验证覆盖率的方法,包括:获取待验证集成电路模型的逻辑结构;根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及计算验证对所述信号路径的覆盖率。
根据本发明实施例的一种计算集成电路模型的验证覆盖率的设备,包括:获取装置,配置为获取待验证集成电路模型的逻辑结构;搜索装置,配置为根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及计算装置,配置为计算验证对所述信号路径的覆盖率。
根据本发明实施例提供的技术方案,可以得到基于信号路径的验证覆盖率。所述基于信号路径的验证覆盖率可以与基于RTL单元的验证覆盖率结合,更加准确地提供有关验证完备性的数据。
■附图说明
图1是适于用来实现本发明实施方式的示例性计算系统100的框图。
图2是根据本发明实施例的计算验证覆盖率的方法的流程图。
图3是如何搜索并记录信号路径的流程图。
图4A和图4B示出正向信号追踪和反向信号追踪。
图5是一个组合逻辑电路。
图6是根据本发明实施例的计算验证覆盖率的装置的方框图。
■具体实施方式
所属技术领域的技术人员知道,本发明的多个方面可以体现为系统、方法或计算机程序产品。因此,本发明的多个方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模块”或“系统”的软件部分与硬件部分的组合。此外,本发明的多个方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序码。
可以使用一个或多个计算机可读的介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是‑‑但不限于‑‑电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或任何以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任何合适的组合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序的有形的介质,该程序被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括‑‑但不限于‑‑电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括‑‑但不限于‑‑无线、电线、光缆、RF等等,或者任何合适的上述组合。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括‑‑但不限于‑‑无线、电线、光缆、RF等等,或者任何合适的上述组合。
用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言‑诸如Java、Smalltalk、C++之类,还包括常规的过程式程序设计语言‑诸如”C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络‑‑包括局域网(LAN)或广域网(WAN)‑连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。
以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
下面参照附图,结合具体实施例对本发明进行描述。这样的描述仅仅出于说明目的,而不意图对本发明的范围进行限制。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。
如前所述,孤立的RTL单元能够正确工作并不代表由这些RTL单元组成的集成电路模型能够正确地工作。比如说,设计人员在设计集成电路模型中时可能漏掉了一个RTL单元。这个RTL单元由于并不存在于集成电路模型中,因此无所谓“被验证”。但是由于漏掉了该RTL单元,可能导致集成电路模型整体不能按照设计正确地工作。又比如说,假定两个有限状态机(Finite State Machine)RTL单元本身均能正确工作。如果其中一个的输出可能是另外一个的输入,那么其连接关系正确与否就影响这两个RTL单元作为一个整体是否能够正确地工作,进而影响到受这两个有限状态驱动的其他RTL单元的工作准确性。
图2是根据本发明实施例的计算验证覆盖率的方法的流程图。
步骤201,获取待验证集成电路模型(DUT,Design Under Test)的逻辑结构。
此处提取的逻辑结构是以RTL单元为基本单位的。从集成电路模型中提取RTL单元是本领域的常用技术,例如许多综合(synthesis)工具都可以做到,在此不再赘述。在提取了RTL单元之后,也很容易得到各RTL单元与其他RTL单元之间的连接关系,从而获取所述逻辑结构。
可以用有向图来表示所述逻辑结构。对以RTL单元为基本单位的集成电路设计模型而言,其对应的有向图中的各个节点表示RTL单元,节点之间的有向边表示RTL单元之间信号输入或输出。根据本发明的一个实施例,连接RTL单元的线路本身也可以看作是有向图中的节点而不是有向边。通过为各个节点设置属性,使得各个节点可以表示不同的RTL单元或线路。本领域技术人员都知道如何通过邻接矩阵、邻接表等数据结构来表示一个有向图,从而表示一个实际的逻辑结构。当然,本领域技术人员还可以采用其他很多手段来表示一个集成电路模型的逻辑结构。因此,获取一个集成电路模型的逻辑结构,就是获取表示该集成电路模型的数据结构的集合。
在后面的描述中,由于RTL单元和有向图节点之间的对应关系,因此其具有相同的指代对象。
步骤202,根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径。
在步骤201中已经得到了集成电路模型中的RTL单元以及RTL单元之间的连接关系。根据这些信息,可以得到集成电路模型中的信号路径。具体步骤在下面结合其他附图进行更为详细的说明。
对集成电路模型中的信号路径进行搜索,其基本思想是分析电路结构并且进行穷举式搜索。由于电路结构本质上是一个有向图,因此穷举式搜索必然是闭合的。也就是说,穷举式搜索必然能够找到电路结构中的所有信号路径。
在这一步骤中得到的信号路径可以用特定的表达方式进行记录。一般来说,根据本发明的一个实施例,可以采用通用覆盖率代码(Generic Coverage Code)来记录所述信号路径。根据本发明的另一个实施例,可以将所述通用覆盖率代码进一步转换成其他用于验证的语言,例如SVA/PSL/OVA/Wrapper等,以记录所述信号路径。
进而,对所述信号路径也可以根据某些约束条件进行筛选。比如,某分支实际上是不可能采取的。在记录时可以排除包含该分支的信号路径。
步骤203,计算验证对所述信号路径的覆盖率。
在开始验证后,向集成电路模型输入激励信号。可以很容易地判断出这些激励信号使得那些信号路径被执行过。可以以被执行过的信号路径占所有信号路径的比例作为所述覆盖率。如果在步骤202中对信号路径进行了筛选,那么也可以以被执行过的信号路径占通过筛选余下的信号路径的比例作为所述覆盖率。
在得到覆盖率以后,就可以作为评价验证效果的参考。如果覆盖率低于某个阈值,可能需要重新生成激励信号,然后用重新生成的激励信号再次进行验证,并且重新计算验证对所述信号路径的覆盖率。
在穷举式搜索中,搜索起始节点的选择影响到搜索的计算量。搜索起始节点的选择还影响到以所搜索到的信号路径为参考进行验证时的效率。因此,对搜索起始节点的选择是非常重要的。
根据本发明的一个实施例,以集成电路模型的输入端作为搜索起始节点。如前所述,集成电路模型本质上是一个有向图。对以RTL单元为基本单位的集成电路设计模型而言,有向图中的各个节点表示RTL单元,节点之间的有向边表示RTL单元之间信号输入或输出。集成电路模型的输入端,或者对应有向图的输入节点,是这样的一个RTL单元:其只有输出的有向边但是没有输入的有向边,或者其输入的有向边来自于集成电路模型外部。
根据本发明的另一个实施例,以有限状态机作为搜索起始节点。有限状态机往往是后续电路的驱动,因此以有限状态机作为搜索起始节点所找到的信号路径也可以进行有效率的验证。
如何根据集成电路模型的逻辑结构识别出集成电路模型的输入端或有限状态机是本领域的常用技术,在此不再赘述。
下面参照图3描述如何搜索并记录所述集成电路模型中的信号路径。
步骤301,以所述搜索起始节点作为正向信号追踪的追踪源节点。
正向信号追踪的意思是,顺着作为追踪源节点的一个RTL单元的输出有向边到达作为追踪漏节点的下一个RTL单元。正向信号追踪只涉及两个RTL单元,即有向边两端的RTL单元。如前所述,搜索起始节点也是一种RTL单元,因此可以作为所述追踪源节点。后面还要提到反向信号追踪,其含义是顺着作为追踪漏节点的一个RTL单元的输入有向边到达作为追踪源节点的RTL单元。反向信号追踪也只涉及两个RTL单元,即有向边两端的RTL单元。
步骤302,从所述追踪源节点开始进行正向信号追踪,记录有向边另一端的追踪漏节点作为中途节点。
步骤303,判断所述中途节点是否触发器,如果是则进入步骤304,否则进入步骤305。
步骤303是可选的。在不存在步骤303的情况下,从步骤302直接进入步骤304。
步骤304,从所述中途节点开始进行正向信号追踪,并且判断有向边另一端的追踪漏节点是否为搜索终结节点,如果是则进入步骤306,否则进入步骤305。
搜索终结节点可以是集成电路模型的输出端,或者集成电路模型内部给有限状态机提供输入的节点。根据数字电路本身的特性,通常要求搜索终结节点有稳定的输出。因此在信号路径上,搜索终结节点之前通常存在触发器。在判断某个RTL单元是否为搜索终结节点即步骤304之前,先判断其是否存在对应的触发器,可以提高辨识搜索终结节点的准确度。同时,由于触发器的辨识相对搜索终结节点的辨识更加容易,也可以避免对每一个中途节点都进行是否为搜索终结节点的判断。
步骤305,以所述中途节点作为新的追踪源节点,返回步骤302。
步骤306,输出包含所述搜索起始节点,所述中途节点和所述搜索终结节点的信号路径。
根据本发明的一个实施例,可以在步骤302中记录中途节点的数目。中途节点数目表示路径的长度。路径越长,则对该路径进行验证所需要的激励信号可能就越多。采用大量激励信号对一条过长的路径进行验证会使得整体的验证效率降低。特别地,也可以在步骤303中记录触发器的数目。触发器的存在在更大程度上意味着验证所需要的激励信号数目的增加。
可以在搜索信号路径的过程中判断一条路径经过的中途节点数目或触发器数目是否超过中途节点数目阈值或触发器数目阈值,一旦超过就停止进一步的正向信号追踪,并且不记录该信号路径。也可以在搜索过程中不进行信号路径长度的判断,而是将搜索得到的信号路径均进行记录,然后再以中途节点数目或触发器数目作为约束条件对所记录的路径进行筛选。
一个追踪源节点可能输出多条有向边,每个有向边的另一端都有一个追踪漏节点。这些多条有向边分别对应于不同的路径。可以在表示节点的数据结构中设置一个标识位来帮助搜索到所有这些不同的路径。在进行搜索之前,将所有节点的标志位复位到默认值,例如0。在开始每一次正向信号追踪之前,判断当前追踪源节点所输出的各有向边另一端的追踪漏节点的标志位是否均为非默认值,例如1。如果是的话,则将该追踪源节点的标志位置位为所述非默认值,并且返回步骤301,即重新从搜索起始节点开始正向信号追踪。否则,即如果当前追踪源所输出的各有向边另一端的追踪漏节点中有一个或多个的标志位为默认值,则正向信号追踪到所述标志位为默认值的追踪漏节点中的一个。本领域技术人员还可以设计出各种其他方法,来确保找到从同一搜索起始节点开始的所有信号路径。
在以上的描述中,假定所述信号路径是“直接连接路径”,即信号路径上不存在组合逻辑RTL单元。组合逻辑RTL单元的输出是由多个输入决定的。基本的组合逻辑RTL单元是,诸如与门、或门的各种逻辑门,复用器(MUX),比较器。复杂的组合逻辑电路,例如加法器、乘法器等都可以分解成基本组合逻辑RTL单元的组合。包含所述组合逻辑RTL单元的信号路径是“组合逻辑路径”。组合逻辑路径的搜索终结节点的信号往往取决于多个搜索起始节点的信号。
根据本发明的一个实施例,采用反向信号追踪来确定组合逻辑路径的各个搜索起始节点。简而言之,在正向信号追踪时如果发现组合逻辑RTL单元,则除了以该组合逻辑RTL单元为新的追踪源节点继续进行正向信号追踪以外,还以该组合逻辑RTL单元为追踪漏节点进行反向信号追踪,以便找到所有能够影响该组合逻辑RTL单元输出的搜索起始节点。如前所述,集成电路模型中的信号要么来自输入端,要么来自有限状态机,因此反向信号追踪最终会抵达这两种RTL单元中的一个。
图4A以与门为例说明正向信号追踪和反向信号追踪。正向信号追踪由虚线所示,反向信号追踪由点划线所示。正向信号追踪沿着有向边Input A所指示抵达作为追踪漏节点的与门。接下来,一方面以所述与门为新的追踪源节点沿着有向边Output C进行下一次正向信号追踪,另一方面沿着输入到与门的另一条有向边Input B进行反向信号追踪。正向信号追踪会抵达搜索终结节点,而反向信号追踪会抵达另一个搜索起始节点。
图4B以复用器为例说明正向信号追踪和反向信号追踪。对于复用器而言,沿有向边Input D的控制信号决定了沿有向边Input A的信号是否能够通过所述复用器,因此优选地可以只沿着有向边Input D进行反向信号追踪。
反向信号追踪所找到的RTL单元有可能也是组合逻辑RTL单元。可以采用深度优先或广度优先的算法来找到所有的搜索起始节点。下面参照图5说明采用深度优先的算法来找到所有搜索起始节点的步骤。
首先,从第一搜索起始节点通过正向信号追踪到达与门A。由于与门A是组合逻辑RTL单元,因此需要进行反向信号追踪。
第二,以与门A为追踪漏节点进行反向信号追踪,到达与门B。与门B也是组合逻辑RTL单元,因此其有多个输入有向边。将与门B记录下来。
第三,以与门B为追踪漏节点进行反向信号追踪,沿着与门B的一个输入有向边到达第二搜索起始节点。
第四,返回与门B,以与门B为追踪漏节点进行第二次反向信号追踪,沿着与门B的另一个输入有向边到达第三搜索起始节点。
第五,由于针对与门B的各输入有向边均进行了反向信号追踪,因此与门B已经处理完毕。进而,由于与门A的各输入有向边也已经处理完毕,因此已经找到了影响与门A的输出的各搜索起始节点。
通过结合正向信号追踪和反向信号追踪,可以得到这样的信号路径,该路径包括:至少一个搜索终结节点,影响该搜索终结节点的信号的搜索起始节点,以及所述搜索起始节点和搜索终结节点之间的中途节点。在验证时,可以容易地确定所述路径是否被执行过,从而得到以信号路径为基准的覆盖率。
图6是基于本发明实施例的计算集成电路模型的验证覆盖率的设备。该设备包括:
获取装置,配置为获取待验证集成电路模型的逻辑结构;
搜索装置,配置为根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及
计算装置,配置为计算验证对所述信号路径的覆盖率。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然以上结合具体实施例,对本发明的各个装置和方法进行了详细描述,但本发明并不限于此。本领域普通技术人员能够在说明书教导之下对本发明进行多种变换、替换和修改而不偏离本发明的精神和范围。应该理解,所有这样的变化、替换、修改仍然落入本发明的保护范围之内。本发明的保护范围由所附权利要求来限定。

用于计算集成电路模型的验证覆盖率的方法和设备.pdf_第1页
第1页 / 共13页
用于计算集成电路模型的验证覆盖率的方法和设备.pdf_第2页
第2页 / 共13页
用于计算集成电路模型的验证覆盖率的方法和设备.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《用于计算集成电路模型的验证覆盖率的方法和设备.pdf》由会员分享,可在线阅读,更多相关《用于计算集成电路模型的验证覆盖率的方法和设备.pdf(13页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102968515 A(43)申请公布日 2013.03.13CN102968515A*CN102968515A*(21)申请号 201110270261.1(22)申请日 2011.08.31G06F 17/50(2006.01)(71)申请人国际商业机器公司地址美国纽约阿芒克(72)发明人范博 陈亮 潘永峰 周凡(74)专利代理机构北京市金杜律师事务所 11256代理人王茂华 赵林琳(54) 发明名称用于计算集成电路模型的验证覆盖率的方法和设备(57) 摘要本发明实施例提供了一种计算集成电路模型的验证覆盖率的方法,包括:获取待验证集成电路模型的逻辑结构;根据所述逻。

2、辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及计算验证对所述信号路径的覆盖率。根据本发明实施例提供的技术方案,可以得到基于信号路径的验证覆盖率,从而更加准确地提供有关验证完备性的数据。(51)Int.Cl.权利要求书2页 说明书7页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 2 页 说明书 7 页 附图 3 页1/2页21.一种计算集成电路模型的验证覆盖率的方法,包括:获取待验证集成电路模型的逻辑结构;根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及计算对所述信号路径的验证覆盖率。2.如权利要求1所述的方法,其中所述逻辑结构以有。

3、向图表示,其中搜索并记录所述待验证集成电路模型中的信号路径包括:以搜索起始节点作为正向信号追踪的追踪源节点;从所述追踪源节点开始进行正向信号追踪;记录有向边另一端的追踪漏节点作为中途节点;判断是否发现搜索终结节点;如果未发现搜索终结节点,则以所述中途节点作为新的追踪源节点进行正向信号追踪,并返回所述记录中途节点的步骤;以及如果发现搜索终结节点,则记录包含所述搜索起始节点,所述中途节点和所述搜索终结节点的信号路径。3.如权利要求2所述的方法,其中所述搜索起始节点是以下节点中的一个:集成电路模型的输入端,或有限状态机。4.如权利要求2或3所述的方法,其中所述搜索终结节点是以下节点中的一个:集成电路。

4、模型的输出端,或向有限状态机提供输入的节点。5.如权利要求2所述的方法,其中判断是否发现搜索终结节点包括:判断所述中途节点是否为触发器;如果所述中途节点不是触发器,则确定未发现搜索终结节点;以及如果所述中途节点是触发器,则以所述触发器为追踪源节点进行正向信号追踪,判断有向边另一端的追踪漏节点是否为搜索终结节点。6.如权利要求2所述的方法,进一步包括:如果所述中途节点是组合逻辑电路,则从所述组合逻辑电路开始进行反向信号追踪,直到发现影响所述组合逻辑电路的输出的所有搜索起始节点。7.如权利要求1或2所述的方法,搜索并记录所述待验证集成电路模型中的信号路径包括:记录所述待验证集成电路模型中长度短于阈。

5、值的信号路径。8.如权利要求7所述的方法,其中所述信号路径的长度由信号路径所经过的触发器数目表示。9.一种计算集成电路模型的验证覆盖率的设备,包括:获取装置,配置为获取待验证集成电路模型的逻辑结构;搜索装置,配置为根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及计算装置,配置为计算对所述信号路径的验证覆盖率。10.如权利要求9所述的设备,其中所述逻辑结构以有向图表示,所述搜索装置包括:配置为以搜索起始节点作为正向信号追踪的追踪源节点的装置;配置为从所述追踪源节点开始进行正向信号追踪的装置;权 利 要 求 书CN 102968515 A2/2页3配置为记录有向边另一端的追踪漏。

6、节点作为中途节点的装置;配置为判断是否发现搜索终结节点的装置;配置为如果未发现搜索终结节点,则以所述中途节点作为新的追踪源节点进行正向信号追踪,并触发所述配置为记录有向边另一端的追踪漏节点作为中途节点的装置的装置;以及配置为如果发现搜索终结节点,则记录包含所述搜索起始节点,所述中途节点和所述搜索终结节点的信号路径的装置。11.如权利要求10所述的设备,其中所述搜索起始节点是以下节点中的一个:集成电路模型的输入端,或有限状态机。12.如权利要求10或11所述的设备,其中所述搜索终结节点是以下节点中的一个:集成电路模型的输出端,或向有限状态机提供输入的节点。13.如权利要求10所述的设备,其中所述。

7、配置为判断是否发现搜索终结节点的装置包括:配置为判断所述中途节点是否为触发器的装置;配置为如果所述中途节点不是触发器,则确定未发现搜索终结节点的装置;以及配置为如果所述中途节点是触发器,则以所述触发器为追踪源节点进行正向信号追踪,并且判断有向边另一端的追踪漏节点是否为搜索终结节点的装置。14.如权利要求10所述的设备,进一步包括:配置为如果所述中途节点是组合逻辑电路,则从所述组合逻辑电路开始进行反向信号追踪,直到发现影响所述组合逻辑电路的输出的所有搜索起始节点的装置。15.如权利要求9或10所述的设备,其中所述搜索装置包括:配置为记录所述待验证集成电路模型中长度短于阈值的信号路径的装置。16.。

8、如权利要求15所述的设备,其中所述信号路径的长度由信号路径所经过的触发器数目表示。权 利 要 求 书CN 102968515 A1/7页4用于计算集成电路模型的验证覆盖率的方法和设备技术领域0001 本发明涉及集成电路设计技术,更具体地说,涉及用于计算集成电路模型的验证覆盖率的方法和设备。背景技术0002 在集成电路设计过程中,验证(verification)是非常重要的一个步骤。在验证步骤中,向集成电路模型输入各种激励信号,通过比较集成电路模型的实际输出信号和期望的输出信号是否相符,来检查集成电路模型的逻辑正确性。例如,在验证具有两个输入端的与门模型时,依次向该模型输入四种可能的激励信号,检。

9、查各激励信号下与门模型的输出是否正确,从而确定该与门模型的逻辑是否正确。集成电路模型需要经过验证以后才能用来作为制造实际集成电路的依据。0003 验证步骤的目的是确保集成电路模型在所有可能的激励的情况下都能够按照设计正确地工作。理论上讲,通过穷举各种可能的激励信号可以实现完全的验证,从而确保集成电路模型的正确性。但是这种方式效率太低,从而随着集成电路的复杂度越来越高而变得越来越不实际。0004 在实际的验证步骤中所采用的激励信号是所有可能的激励信号的子集。所述子集可以是人工地选取的,这需要验证人员有非常丰富的经验。所述子集也可以通过根据约束条件进行随机测试例生成而选取。但无论采用哪种方法,都需。

10、要考察验证的完备性,即考察采用所述子集进行验证是否覆盖了各种可能性。通常用覆盖率(coverage)来表示所述完备性。0005 传统的覆盖率计算方法基于寄存器传送级(RTL,Register Transfer Level)单元。例如,将已经验证过的RTL单元占集成电路模型中总RTL单元的比例作为所述覆盖率。然而,孤立的RTL单元能够正确工作并不代表由这些RTL单元组成的集成电路模型能够正确地工作。因此,需要一种改进的覆盖率计算方法。发明内容0006 本发明实施例提供了用于计算集成电路模型的验证覆盖率的方法和设备。0007 根据本发明实施例的一种计算集成电路模型的验证覆盖率的方法,包括:获取待验。

11、证集成电路模型的逻辑结构;根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及计算验证对所述信号路径的覆盖率。0008 根据本发明实施例的一种计算集成电路模型的验证覆盖率的设备,包括:获取装置,配置为获取待验证集成电路模型的逻辑结构;搜索装置,配置为根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及计算装置,配置为计算验证对所述信号路径的覆盖率。0009 根据本发明实施例提供的技术方案,可以得到基于信号路径的验证覆盖率。所述基于信号路径的验证覆盖率可以与基于RTL单元的验证覆盖率结合,更加准确地提供有关说 明 书CN 102968515 A2/7页5验证完备性。

12、的数据。附图说明0010 图1是适于用来实现本发明实施方式的示例性计算系统100的框图。0011 图2是根据本发明实施例的计算验证覆盖率的方法的流程图。0012 图3是如何搜索并记录信号路径的流程图。0013 图4A和图4B示出正向信号追踪和反向信号追踪。0014 图5是一个组合逻辑电路。0015 图6是根据本发明实施例的计算验证覆盖率的装置的方框图。具体实施方式0016 所属技术领域的技术人员知道,本发明的多个方面可以体现为系统、方法或计算机程序产品。因此,本发明的多个方面可以具体实现为以下形式,即,可以是完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、或者本文一般称为“电路”、“模。

13、块”或“系统”的软件部分与硬件部分的组合。此外,本发明的多个方面还可以采取体现在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序码。0017 可以使用一个或多个计算机可读的介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是-但不限于-电的、磁的、光的、电磁的、红外线的、或半导体的系统、装置、器件或任何以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM。

14、或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任何合适的组合。在本文件的语境中,计算机可读存储介质可以是任何包含或存储程序的有形的介质,该程序被指令执行系统、装置或者器件使用或者与其结合使用。0018 计算机可读的信号介质可包括在基带中或者作为载波一部分传播的、其中体现计算机可读的程序码的传播的数据信号。这种传播的信号可以采用多种形式,包括-但不限于-电磁信号、光信号或任何以上合适的组合。计算机可读的信号介质可以是并非为计算机可读存储介质、但是能发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序的任何计算机可读介质。计算机。

15、可读介质上包含的程序代码可以用任何适当的介质传输,包括-但不限于-无线、电线、光缆、RF等等,或者任何合适的上述组合。0019 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括-但不限于-无线、电线、光缆、RF等等,或者任何合适的上述组合。0020 用于执行本发明的操作的计算机程序码,可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C+之类,还包括常规的过程式程序设计语言-诸如” C”程序设计语言或类似的程序设计语言。程序码可以完全地在用户的计算上执行、部分地在用户的计算机上执行、作为一个独立的软件包执行、。

16、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算说 明 书CN 102968515 A3/7页6机或服务器上执行。在后一种情形中,远程计算机可以通过任何种类的网络-包括局域网(LAN)或广域网(WAN)-连接到用户的计算机,或者,可以(例如利用因特网服务提供商来通过因特网)连接到外部计算机。0021 以下参照按照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的多个方面。要明白的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器。

17、,从而生产出一种机器,使得通过计算机或其它可编程数据处理装置执行的这些指令,产生实现流程图和/或框图中的方框中规定的功能/操作的装置。0022 也可以把这些计算机程序指令存储在能指令计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品。0023 也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而在计算机或其它可编程装置上执行的指令就提供实现。

18、流程图和/或框图中的方框中规定的功能/操作的过程。0024 下面参照附图,结合具体实施例对本发明进行描述。这样的描述仅仅出于说明目的,而不意图对本发明的范围进行限制。0025 图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CP。

19、U 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。0026 如前所述,孤立的RTL单元能够正确工作并不代表由这些RTL单元组成的集成电路模型能够正确地工作。比如说,设计人员在设计集。

20、成电路模型中时可能漏掉了一个RTL单元。这个RTL单元由于并不存在于集成电路模型中,因此无所谓“被验证”。但是由于漏掉了该RTL单元,可能导致集成电路模型整体不能按照设计正确地工作。又比如说,假定两个有限状态机(Finite State Machine)RTL单元本身均能正确工作。如果其中一个的输出可能是另外一个的输入,那么其连接关系正确与否就影响这两个RTL单元作为一个整体是否能够正确地工作,进而影响到受这两个有限状态驱动的其他RTL单元的工作准确性。0027 图2是根据本发明实施例的计算验证覆盖率的方法的流程图。0028 步骤201,获取待验证集成电路模型(DUT,Design Under。

21、 Test)的逻辑结构。0029 此处提取的逻辑结构是以RTL单元为基本单位的。从集成电路模型中提取RTL单说 明 书CN 102968515 A4/7页7元是本领域的常用技术,例如许多综合(synthesis)工具都可以做到,在此不再赘述。在提取了RTL单元之后,也很容易得到各RTL单元与其他RTL单元之间的连接关系,从而获取所述逻辑结构。0030 可以用有向图来表示所述逻辑结构。对以RTL单元为基本单位的集成电路设计模型而言,其对应的有向图中的各个节点表示RTL单元,节点之间的有向边表示RTL单元之间信号输入或输出。根据本发明的一个实施例,连接RTL单元的线路本身也可以看作是有向图中的节点。

22、而不是有向边。通过为各个节点设置属性,使得各个节点可以表示不同的RTL单元或线路。本领域技术人员都知道如何通过邻接矩阵、邻接表等数据结构来表示一个有向图,从而表示一个实际的逻辑结构。当然,本领域技术人员还可以采用其他很多手段来表示一个集成电路模型的逻辑结构。因此,获取一个集成电路模型的逻辑结构,就是获取表示该集成电路模型的数据结构的集合。0031 在后面的描述中,由于RTL单元和有向图节点之间的对应关系,因此其具有相同的指代对象。0032 步骤202,根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径。0033 在步骤201中已经得到了集成电路模型中的RTL单元以及RTL单元之间的。

23、连接关系。根据这些信息,可以得到集成电路模型中的信号路径。具体步骤在下面结合其他附图进行更为详细的说明。0034 对集成电路模型中的信号路径进行搜索,其基本思想是分析电路结构并且进行穷举式搜索。由于电路结构本质上是一个有向图,因此穷举式搜索必然是闭合的。也就是说,穷举式搜索必然能够找到电路结构中的所有信号路径。0035 在这一步骤中得到的信号路径可以用特定的表达方式进行记录。一般来说,根据本发明的一个实施例,可以采用通用覆盖率代码(Generic Coverage Code)来记录所述信号路径。根据本发明的另一个实施例,可以将所述通用覆盖率代码进一步转换成其他用于验证的语言,例如SVA/PSL。

24、/OVA/Wrapper等,以记录所述信号路径。0036 进而,对所述信号路径也可以根据某些约束条件进行筛选。比如,某分支实际上是不可能采取的。在记录时可以排除包含该分支的信号路径。0037 步骤203,计算验证对所述信号路径的覆盖率。0038 在开始验证后,向集成电路模型输入激励信号。可以很容易地判断出这些激励信号使得那些信号路径被执行过。可以以被执行过的信号路径占所有信号路径的比例作为所述覆盖率。如果在步骤202中对信号路径进行了筛选,那么也可以以被执行过的信号路径占通过筛选余下的信号路径的比例作为所述覆盖率。0039 在得到覆盖率以后,就可以作为评价验证效果的参考。如果覆盖率低于某个阈值。

25、,可能需要重新生成激励信号,然后用重新生成的激励信号再次进行验证,并且重新计算验证对所述信号路径的覆盖率。0040 在穷举式搜索中,搜索起始节点的选择影响到搜索的计算量。搜索起始节点的选择还影响到以所搜索到的信号路径为参考进行验证时的效率。因此,对搜索起始节点的选择是非常重要的。0041 根据本发明的一个实施例,以集成电路模型的输入端作为搜索起始节点。如前所说 明 书CN 102968515 A5/7页8述,集成电路模型本质上是一个有向图。对以RTL单元为基本单位的集成电路设计模型而言,有向图中的各个节点表示RTL单元,节点之间的有向边表示RTL单元之间信号输入或输出。集成电路模型的输入端,或。

26、者对应有向图的输入节点,是这样的一个RTL单元:其只有输出的有向边但是没有输入的有向边,或者其输入的有向边来自于集成电路模型外部。0042 根据本发明的另一个实施例,以有限状态机作为搜索起始节点。有限状态机往往是后续电路的驱动,因此以有限状态机作为搜索起始节点所找到的信号路径也可以进行有效率的验证。0043 如何根据集成电路模型的逻辑结构识别出集成电路模型的输入端或有限状态机是本领域的常用技术,在此不再赘述。0044 下面参照图3描述如何搜索并记录所述集成电路模型中的信号路径。0045 步骤301,以所述搜索起始节点作为正向信号追踪的追踪源节点。0046 正向信号追踪的意思是,顺着作为追踪源节。

27、点的一个RTL单元的输出有向边到达作为追踪漏节点的下一个RTL单元。正向信号追踪只涉及两个RTL单元,即有向边两端的RTL单元。如前所述,搜索起始节点也是一种RTL单元,因此可以作为所述追踪源节点。后面还要提到反向信号追踪,其含义是顺着作为追踪漏节点的一个RTL单元的输入有向边到达作为追踪源节点的RTL单元。反向信号追踪也只涉及两个RTL单元,即有向边两端的RTL单元。0047 步骤302,从所述追踪源节点开始进行正向信号追踪,记录有向边另一端的追踪漏节点作为中途节点。0048 步骤303,判断所述中途节点是否触发器,如果是则进入步骤304,否则进入步骤305。0049 步骤303是可选的。在。

28、不存在步骤303的情况下,从步骤302直接进入步骤304。0050 步骤304,从所述中途节点开始进行正向信号追踪,并且判断有向边另一端的追踪漏节点是否为搜索终结节点,如果是则进入步骤306,否则进入步骤305。0051 搜索终结节点可以是集成电路模型的输出端,或者集成电路模型内部给有限状态机提供输入的节点。根据数字电路本身的特性,通常要求搜索终结节点有稳定的输出。因此在信号路径上,搜索终结节点之前通常存在触发器。在判断某个RTL单元是否为搜索终结节点即步骤304之前,先判断其是否存在对应的触发器,可以提高辨识搜索终结节点的准确度。同时,由于触发器的辨识相对搜索终结节点的辨识更加容易,也可以避。

29、免对每一个中途节点都进行是否为搜索终结节点的判断。0052 步骤305,以所述中途节点作为新的追踪源节点,返回步骤302。0053 步骤306,输出包含所述搜索起始节点,所述中途节点和所述搜索终结节点的信号路径。0054 根据本发明的一个实施例,可以在步骤302中记录中途节点的数目。中途节点数目表示路径的长度。路径越长,则对该路径进行验证所需要的激励信号可能就越多。采用大量激励信号对一条过长的路径进行验证会使得整体的验证效率降低。特别地,也可以在步骤303中记录触发器的数目。触发器的存在在更大程度上意味着验证所需要的激励信号数目的增加。0055 可以在搜索信号路径的过程中判断一条路径经过的中途。

30、节点数目或触发器数目说 明 书CN 102968515 A6/7页9是否超过中途节点数目阈值或触发器数目阈值,一旦超过就停止进一步的正向信号追踪,并且不记录该信号路径。也可以在搜索过程中不进行信号路径长度的判断,而是将搜索得到的信号路径均进行记录,然后再以中途节点数目或触发器数目作为约束条件对所记录的路径进行筛选。0056 一个追踪源节点可能输出多条有向边,每个有向边的另一端都有一个追踪漏节点。这些多条有向边分别对应于不同的路径。可以在表示节点的数据结构中设置一个标识位来帮助搜索到所有这些不同的路径。在进行搜索之前,将所有节点的标志位复位到默认值,例如0。在开始每一次正向信号追踪之前,判断当前。

31、追踪源节点所输出的各有向边另一端的追踪漏节点的标志位是否均为非默认值,例如1。如果是的话,则将该追踪源节点的标志位置位为所述非默认值,并且返回步骤301,即重新从搜索起始节点开始正向信号追踪。否则,即如果当前追踪源所输出的各有向边另一端的追踪漏节点中有一个或多个的标志位为默认值,则正向信号追踪到所述标志位为默认值的追踪漏节点中的一个。本领域技术人员还可以设计出各种其他方法,来确保找到从同一搜索起始节点开始的所有信号路径。0057 在以上的描述中,假定所述信号路径是“直接连接路径”,即信号路径上不存在组合逻辑RTL单元。组合逻辑RTL单元的输出是由多个输入决定的。基本的组合逻辑RTL单元是,诸如。

32、与门、或门的各种逻辑门,复用器(MUX),比较器。复杂的组合逻辑电路,例如加法器、乘法器等都可以分解成基本组合逻辑RTL单元的组合。包含所述组合逻辑RTL单元的信号路径是“组合逻辑路径”。组合逻辑路径的搜索终结节点的信号往往取决于多个搜索起始节点的信号。0058 根据本发明的一个实施例,采用反向信号追踪来确定组合逻辑路径的各个搜索起始节点。简而言之,在正向信号追踪时如果发现组合逻辑RTL单元,则除了以该组合逻辑RTL单元为新的追踪源节点继续进行正向信号追踪以外,还以该组合逻辑RTL单元为追踪漏节点进行反向信号追踪,以便找到所有能够影响该组合逻辑RTL单元输出的搜索起始节点。如前所述,集成电路模。

33、型中的信号要么来自输入端,要么来自有限状态机,因此反向信号追踪最终会抵达这两种RTL单元中的一个。0059 图4A以与门为例说明正向信号追踪和反向信号追踪。正向信号追踪由虚线所示,反向信号追踪由点划线所示。正向信号追踪沿着有向边Input A所指示抵达作为追踪漏节点的与门。接下来,一方面以所述与门为新的追踪源节点沿着有向边Output C进行下一次正向信号追踪,另一方面沿着输入到与门的另一条有向边Input B进行反向信号追踪。正向信号追踪会抵达搜索终结节点,而反向信号追踪会抵达另一个搜索起始节点。0060 图4B以复用器为例说明正向信号追踪和反向信号追踪。对于复用器而言,沿有向边Input 。

34、D的控制信号决定了沿有向边Input A的信号是否能够通过所述复用器,因此优选地可以只沿着有向边Input D进行反向信号追踪。0061 反向信号追踪所找到的RTL单元有可能也是组合逻辑RTL单元。可以采用深度优先或广度优先的算法来找到所有的搜索起始节点。下面参照图5说明采用深度优先的算法来找到所有搜索起始节点的步骤。0062 首先,从第一搜索起始节点通过正向信号追踪到达与门A。由于与门A是组合逻辑RTL单元,因此需要进行反向信号追踪。0063 第二,以与门A为追踪漏节点进行反向信号追踪,到达与门B。与门B也是组合逻说 明 书CN 102968515 A7/7页10辑RTL单元,因此其有多个输。

35、入有向边。将与门B记录下来。0064 第三,以与门B为追踪漏节点进行反向信号追踪,沿着与门B的一个输入有向边到达第二搜索起始节点。0065 第四,返回与门B,以与门B为追踪漏节点进行第二次反向信号追踪,沿着与门B的另一个输入有向边到达第三搜索起始节点。0066 第五,由于针对与门B的各输入有向边均进行了反向信号追踪,因此与门B已经处理完毕。进而,由于与门A的各输入有向边也已经处理完毕,因此已经找到了影响与门A的输出的各搜索起始节点。0067 通过结合正向信号追踪和反向信号追踪,可以得到这样的信号路径,该路径包括:至少一个搜索终结节点,影响该搜索终结节点的信号的搜索起始节点,以及所述搜索起始节点。

36、和搜索终结节点之间的中途节点。在验证时,可以容易地确定所述路径是否被执行过,从而得到以信号路径为基准的覆盖率。0068 图6是基于本发明实施例的计算集成电路模型的验证覆盖率的设备。该设备包括:0069 获取装置,配置为获取待验证集成电路模型的逻辑结构;0070 搜索装置,配置为根据所述逻辑结构,搜索并记录所述待验证集成电路模型中的信号路径;以及0071 计算装置,配置为计算验证对所述信号路径的覆盖率。0072 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,。

37、所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。0073 虽然以上结合具体实施例,对本发明的各个装置和方法进行了详细描述,但本发明并不限于此。本领域普通技术人员能够在说明书教导之下对本发明进行多种变换、替换和修改而不偏离本发明的精神和范围。应该理解,所有这样的变化、替换、修改仍然落入本发明的保护范围之内。本发明的保护范围由所附权利要求来限定。说 明 书CN 102968515 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1