CN112613257A - 验证方法、装置、电子设备和计算机可读存储介质 - Google Patents
验证方法、装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN112613257A CN112613257A CN202011605756.0A CN202011605756A CN112613257A CN 112613257 A CN112613257 A CN 112613257A CN 202011605756 A CN202011605756 A CN 202011605756A CN 112613257 A CN112613257 A CN 112613257A
- Authority
- CN
- China
- Prior art keywords
- coverage
- information
- verification
- report
- file
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一种用于集成电路设计的验证方法、装置、电子设备和计算机可读存储介质。该验证方法包括:获取第一覆盖率报告,第一覆盖率报告包括对集成电路设计的多个功能模块进行验证而得到的覆盖率信息;基于第一覆盖率报告,确定多个功能模块中每个功能模块的覆盖率子信息;以及根据每个功能模块的覆盖率子信息,生成每个功能模块各自的第二覆盖率报告。该验证方法可以对第一覆盖率报告中的覆盖率信息进行整理得到每个功能模块各自的第二覆盖率报告,从而各个功能模块的验证人员可以分别对功能模块的第二覆盖率报告进行进一步的分析,进而提高覆盖率分析的效率。
Description
技术领域
本公开的实施例涉及一种用于集成电路设计的验证方法、装置、电子设备和计算机可读存储介质。
背景技术
大规模集成电路设计的验证一直由于其仿真时间长,验证质量难以保证而成为芯片开发流程中比较耗时且难以很好把控的部分。目前,常用代码覆盖率、断言覆盖率、功能覆盖率等覆盖率信息来评价验证质量。例如,在对集成电路设计验证的过程中,收集验证过程中产生的覆盖率信息并生成覆盖率报告,以便通过分析覆盖率报告来评价验证质量。
发明内容
本公开至少一个实施例提供一种用于集成电路设计的验证方法,集成电路设计包括多个功能模块,验证方法包括:获取第一覆盖率报告,第一覆盖率报告包括对集成电路设计的多个功能模块进行验证而得到的覆盖率信息;基于第一覆盖率报告,确定多个功能模块中每个功能模块的覆盖率子信息;以及根据每个功能模块的覆盖率子信息,生成每个功能模块各自的第二覆盖率报告。
例如,在本公开一实施例提供的验证方法中,基于第一覆盖率报告,确定多个功能模块中每个功能模块的覆盖率子信息,包括:基于第一覆盖率报告,确定多个功能模块中每个功能模块所包括的验证对象的覆盖率子信息。
例如,在本公开一实施例提供的验证方法中,验证对象包括功能模块的接口和与功能模块相关的信号中的至少一个。
例如,在本公开一实施例提供的验证方法中,验证方法还包括从第一覆盖率报告中提取在对多个功能模块进行验证的过程中未被覆盖到的验证对象而生成第一文件,以向第一文件添加附加信息,附加信息用于指示未被覆盖到的验证对象是否为可忽略对象;以及根据附加信息,从第一文件中提取出可忽略对象的对象信息而生成第二文件,对象信息包括附加信息。
例如,在本公开一实施例提供的验证方法中,基于第一覆盖率报告,确定多个功能模块中每个功能模块所包括的验证对象的覆盖率子信息,包括:读取第二文件,并根据第二文件中的可忽略对象的对象信息和覆盖率信息生成第三覆盖率报告;以及从第三覆盖率报告中提取多个功能模块中每个功能模块所包括的验证对象的覆盖率子信息,根据从第三覆盖率报告提取的每个功能模块所包括的验证对象的覆盖率子信息,生成每个功能模块各自的第二覆盖率报告,第二覆盖率报告包括附加信息。
例如,在本公开一实施例提供的验证方法中,覆盖率子信息包括附加信息。
例如,在本公开一实施例提供的验证方法中,附加信息包括指示信息和可忽略对象被忽略的原因,指示信息用于指示未被覆盖到的验证对象是否为可忽略对象,可忽略对象的对象信息包括可忽略对象的标识和附加信息。
例如,在本公开一实施例提供的验证方法中,根据每个功能模块的覆盖率子信息,生成每个功能模块各自的第二覆盖率报告,包括:将每个功能模块的覆盖率子信息分别以电子表格中工作表的形式输出,以生成每个功能模块各自的第二覆盖率报告。
例如,在本公开一实施例提供的验证方法中,覆盖率信息包括翻转覆盖率信息。
例如,在本公开一实施例提供一种用于集成电路设计的验证方法,包括:获取第一覆盖率报告,第一覆盖率报告包括对集成电路设计进行验证而得到的覆盖率信息,集成电路设计包括至少一个验证对象;根据覆盖率信息,从第一覆盖率报告中提取在验证的过程中未被覆盖到的验证对象而生成第一文件,以向第一文件添加附加信息,附加信息用于指示未被覆盖到的验证对象是否为可忽略对象;从第一文件中提取出可忽略对象的对象信息而生成第二文件;以及读取第二文件,并根据第二文件中的可忽略对象的对象信息和覆盖率信息生成第三覆盖率报告。
例如,在本公开一实施例提供的验证方法中,附加信息包括指示信息和可忽略对象被忽略的原因,指示信息用于指示未被覆盖到的验证对象是否为可忽略对象,可忽略对象的对象信息包括可忽略对象的标识和附加信息。
例如,在本公开一实施例提供的验证方法中,集成电路设计包括多个功能模块,每个功能模块包括多个验证对象中的至少一个验证对象,方法还包括:从第三覆盖率报告中提取每个功能模块的验证对象的覆盖率子信息;以及根据每个功能模块的验证对象的覆盖率子信息,生成每个功能模块的第二覆盖率报告。
例如,在本公开一实施例提供的验证方法中,验证对象包括功能模块的接口和与功能模块相关的信号中的至少一个。
本公开至少一个实施例提供一种用于集成电路设计的验证装置,集成电路设计包括多个功能模块,验证装置包括:第一获取单元,配置为获取第一覆盖率报告,第一覆盖率报告包括对集成电路设计的多个功能模块进行验证而得到的覆盖率信息;第一确定单元,配置为基于第一覆盖率报告,确定多个功能模块中每个功能模块的覆盖率子信息;以及第一生成单元,配置为根据每个功能模块的覆盖率子信息,生成每个功能模块各自的第二覆盖率报告。
本公开至少一个实施例提供一种用于集成电路设计的验证装置,包括:第二获取单元,配置为获取第一覆盖率报告,第一覆盖率报告包括对集成电路设计进行验证而得到的覆盖率信息,集成电路设计包括至少一个验证对象;提取单元,配置为根据覆盖率信息,从第一覆盖率报告中提取在验证的过程中未被覆盖到的验证对象而生成第一文件,以向第一文件添加附加信息,附加信息用于指示未被覆盖到的验证对象是否为可忽略对象;第二生成单元,配置为从第一文件中提取出可忽略对象的对象信息而生成第二文件;以及读取单元,配置为读取第二文件,并根据第二文件中的可忽略对象的对象信息和覆盖率信息生成第三覆盖率报告。
本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序模块;一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现本公开上述任一实施例提供的验证方法的指令。
本公开至少一个实施例提供一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现本公开上述任一实施例提供的验证方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种集成电路设计的验证流程图;
图2A示出了本公开至少一个实施例提供的一种用于集成电路设计的验证方法的流程图;
图2B示出了本公开至少一实施例提供的一种第二覆盖率报告的示意图;
图2C示出了本公开至少一实施例提供的总览表的示意性示例;
图2D示出了本公开至少一实施例提供的例化表的示意性示例;
图2E示出了本公开至少一实施例提供的一种报告分析处理脚本的示意性流程图;
图3A示出了本公开至少一个实施例提供的另一种验证方法的流程图;
图3B示出了本公开至少一实施例提供的一种提取未覆盖点脚本的示意性流程图;
图3C示出了本公开至少一实施例提供的一种分析结果提取脚本的示意性流程图;
图4A示出了本公开至少一个实施例提供的另一种用于集成电路设计的验证方法的流程图;
图4B示出了本公开至少一实施例提供的另一种验证方法的流程图;
图5示出了本公开至少一实施例提供的另一种验证方法的流程图;
图6A示出了本公开至少一个实施例提供的一种用于集成电路设计的验证装置600的示意框图;
图6B示出了本公开至少一个实施例提供的另一种用于集成电路设计的验证装置700的示意框图;
图7为本公开一些实施例提供的一种电子设备的示意框图;
图8示出了本公开至少一个实施例提供的另一种电子设备的示意框图;以及
图9示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
通常集成电路设计的各个步骤都是由工程师们在计算机上使用各种EDA工具来完成的。集成电路设计的流程分为前端设计和后端设计两大阶段。前端设计依次包含了系统级设计、寄存器传输级(Register Transfer Level,RTL)设计、RTL仿真、硬件原型验证、电路综合等步骤,而后端设计则包括版图设计、物理验证以及后仿真等步骤。系统级设计,例如可以包括集成电路设计的系统描述以及行为级描述。例如,可以采用高级计算机语言(例如C语言和专门用于集成电路系统设计的System C语言)对整个系统进行建模,此时考虑对各个模块的功能进行描述,以反映该模块的行为功能。RTL设计可以利用硬件描述语言(能够描述逻辑器件的语言,如Verilog HDL语言)对组合逻辑器件和时序逻辑器件进行以寄存器之间的传输为基础的描述。
在系统级设计或者RTL设计之后,往往需要对集成电路设计(例如,系统级设计或者RTL设计)进行验证,以验证该集成电路设计是否能够实现预期的功能特性。
通常,大规模集成电路设计的验证可以分为模块级验证和系统级验证。在模块级验证中,其模块规模较小,模块特性的组合空间可控,常常用代码覆盖率,断言覆盖率,功能覆盖率来评价验证质量。对于大规模集成电路设计的系统级验证,也就是SoC(System onChip,片上系统)验证,一直由于其仿真时间长,验证质量难以保证而成为芯片开发流程中比较耗时且难以很好把控的部分。另外,由于仿真时间,硬件资源,项目进度等等的限制,SoC设计的验证不可能覆盖所有模块的所有支持特性。为了让验证的质量与进度体现的更直接,例如可以利用HVP(Hierarchical Verification Plan,层次化验证计划)方便且有效地跟踪验证过程,并且在每次回归后可以利用统一报告生成器(United ReportGenerator,URG)生成覆盖率报告。
图1示出了一种集成电路设计的验证流程图。
如图1所示,集成电路设计的验证可以包括步骤S101~步骤S105。
步骤S101:例如可以是验证人员根据集成电路设计的设计文档(例如,RTL设计文档)以及产品定义中提取需要验证的功能特性,并制定对应的验证计划。验证计划例如可以包括需要验证的功能特性列表、验证方法、验证平台的搭建、验证用例的开发、检查机制和验证质量验收等。例如,RTL设计文档基于硬件描述语言(能够描述逻辑器件的语言,如Verilog HDL语言或者system Verilog语言)对集成电路设计的功能模块(例如包括组合逻辑器件、时序逻辑器件等)进行以寄存器之间的传输为基础的功能描述。例如,基于上述功能描述,在寄存器传输级文件中定义出相应的功能特性。例如,产品定义对RTL设计文档中的功能特性的相关信息进行补充,例如功能特征的接口定义为非标准接口的情况下,由于这种接口没有被规范化,产品定义中应尽可能周全地描述需要给出的信息(例如时序信息、命令、数据传输等)。在验证计划通过评审后,执行步骤S102。
步骤S102:根据验证计划搭建或者开发验证平台。在通过验证平台的评审后,执行步骤S103。
步骤S103:根据验证计划开发和调试测试用例,并运行测试用例以对集成电路设计进行验证。例如通过运行测试用例可以得到测试用例的通过率、回归状态报告等。
步骤S104:例如可以利用仿真器VCS(Verilog Compiled Simulator)的覆盖率收集功能收集上述验证得到的覆盖率信息,并利用URG根据覆盖率信息生成覆盖率报告。例如,生成的覆盖率报告可以是XML格式或DOC格式。
步骤S105:例如可以是对验证过程进行检查,若检查结果是验证质量通过评审,则生成本次对集成电路进行验证的验证报告。
如图1所示的验证过程所示,在集成电路设计的验证过程中,可以利用URG生成覆盖率报告。然而,利用URG生成的覆盖率报告不方便验证人员阅读,不方便验证人员对其进行进一步地分析,导致覆盖率分析的效率较低。
本公开至少一个实施例提供一种用于集成电路设计的验证方法、装置、电子设备和计算机可读存储介质。该验证方法包括:获取第一覆盖率报告,第一覆盖率报告包括对集成电路设计的多个功能模块进行验证而得到的覆盖率信息;基于第一覆盖率报告,确定多个功能模块中每个功能模块的覆盖率子信息;以及根据每个功能模块的覆盖率子信息,生成每个功能模块各自的第二覆盖率报告。
上述本公开实施例提供的验证方法可以对第一覆盖率报告中的覆盖率信息进行整理得到每个功能模块各自的第二覆盖率报告,从而各个功能模块的验证人员可以分别对功能模块的第二覆盖率报告进行进一步的分析,降低了验证人员覆盖率分析的难度,提高了覆盖率分析的效率,进而有利于缩短集成电路的开发周期。
本公开至少一个实施例还提供一种用于集成电路设计的验证方法,该验证方法包括:获取第一覆盖率报告,所述第一覆盖率报告包括对所述集成电路设计进行验证而得到的覆盖率信息,所述集成电路设计包括至少一个验证对象;根据所述覆盖率信息,从所述第一覆盖率报告中提取在所述验证的过程中未被覆盖到的验证对象而生成第一文件,以向所述第一文件添加附加信息,所述附加信息用于指示所述未被覆盖到的验证对象是否为可忽略对象;从所述第一文件中提取出所述可忽略对象的对象信息而生成第二文件;以及读取所述第二文件,并根据所述第二文件中的所述可忽略对象的对象信息和所述覆盖率信息生成第三覆盖率报告。
上述本公开实施例提供的验证方法可以该验证方法能够实现生成带有可忽略对象的对象信息的覆盖率报告(即,第三覆盖率报告),为集成电路设计的验证质量把控提供了直观,明确及有效的覆盖率报告。
图2A示出了本公开至少一个实施例提供的一种用于集成电路设计的验证方法的流程图。如图2A所示,该验证方法包括步骤S210~步骤S230。
步骤S210:获取第一覆盖率报告,第一覆盖率报告包括对集成电路设计的多个功能模块进行验证而得到的覆盖率信息。
步骤S220:基于第一覆盖率报告,确定多个功能模块中每个功能模块的覆盖率子信息。
步骤S230:根据每个功能模块的覆盖率子信息,生成每个功能模块各自的第二覆盖率报告。
该验证方法可以将第一覆盖率报告有效的拆分为各个功能模块的第二覆盖率报告,也就是各个功能模块的覆盖率信息是相互分离的,这样不仅方便验证人员阅读,也方便各个功能模块分别对应的验证人员对该功能模块进行进一步的分析,从而提高覆盖率分析的效率。
在本公开的一些实施例中,集成电路设计中可以包括多个子系统,例如存储器控制子系统,片上管理子系统等。而每个子系统中可以包括多个功能模块。不同的功能模块用于实现不同的功能特性。
对于步骤S210,对集成电路设计的多个功能模块进行验证,可以是对多个子系统所包括的全部功能模块进行验证,也可以是对多个子系统所包括的部分功能模块进行验证。
对于步骤S210,第一覆盖率报告例如可以是利用URG生成的。覆盖率信息例如可以指示对集成电路设计的多个功能模块进行验证的验证质量。
例如可以利用仿真器VCS对集成电路设计进行仿真验证,在利用仿真器VCS对集成电路设计的多个功能模块进行仿真验证的过程中,可以打开VCS的覆盖率收集功能而将生成包括覆盖率信息的虚拟数据库(Virtual Data Base,VDB),从而可以利用URG根据VDB中的覆盖率信息生成第一覆盖率报告。
在本公开的一些实施例中,覆盖率信息例如可以包括代码覆盖率、功能覆盖率等。例如,代码覆盖率可以包括条件覆盖率(condition coverage)、翻转覆盖率(togglecoverage)等。翻转覆盖率表明集成电路设计的代码中信号从0到1和从1到0的翻转情况。
在本公开的另一些实施例中,针对集成电路的系统级验证,即SOC验证,例如可以主要关注顶层连接的验证而较少地关注功能模块内部的细节功能。顶层连接例如可以包括数据通路、配置通路以及系统问题等方面的验证,而集成电路设计的代码中信号从0到1和从1到0的翻转可以表征数据通路、配置通路等的连接情况。因此,在利用VCS进行验证仿真时,对覆盖率的收集可以关注在顶层模块信号的翻转率收集上,从而生成包含翻转覆盖率的第一覆盖率报告。
例如,第一覆盖率报告可以包括翻转覆盖率信息,通过翻转覆盖率对顶层连接验证的验证质量进行评价。
对于步骤S220,在本公开的一些实施例中,多个功能模块中每个功能模块可以包括多个验证对象。验证对象例如可以包括功能模块的接口和与功能模块相关的信号中的至少一个。功能模块的接口例如可以是功能模块的寄存器传输层(Register TransferLevel,RTL)的接口。RTL接口例如可以包括该功能模块的与其它同一传输级的功能模块的通信接口,还可以包括与顶层模块的通信接口、功能模块自身内部的接口等。与功能模块相关的信号例如可以包括功能模块的输入信号、功能模块的输出信号以及经过功能模块处理后得到的内部信号等。与功能模块相关的信号例如可以包括时钟信号、复位信号等。
对于步骤S220,例如可以是基于第一覆盖率报告,确定多个功能模块中每个所述功能模块所包括的验证对象的覆盖率子信息,从而得到每个功能模块的覆盖率子信息。通过该步骤S220可以将功能模块与接口列表和与功能模块相关的信号列表对应起来,提供给设计和验证人员更加友好的覆盖率分析界面。
在本公开的一些实施例中,例如,可以根据验证对象的标识从第一覆盖率报告中确定功能模块中每个功能模块的覆盖率子信息。验证对象的标识例如可以是验证对象的名称。
例如,多个功能模块包括功能模块A、功能模块B、……,以功能模块A为例来说明根据第一覆盖率报告,确定功能模块A的覆盖率子信息的实施例。例如,功能模块A的验证对象包括验证对象A1和验证对象A2,那么可以遍历第一覆盖率报告,以从第一覆盖率报告中查找出标识“A1”和标识“A2”的覆盖率子信息,从而得到功能模块A的覆盖率子信息。通过上述类似的方法可以确定功能模块B、功能模块C、……的覆盖率子信息。
对于步骤S230,例如可以将每个功能模块的覆盖率子信息分别以电子表格中工作表的形式输出,以生成每个功能模块各自的第二覆盖率报告。
在本公开的一些实施例中,该多个功能模块各自的第二覆盖率报告分别输出为电子表格中的一个工作表,并且该多个第二覆盖率报告以一个电子表格(即,excel)的格式存储。
图2B示出了本公开至少一实施例提供的一种第二覆盖率报告的示意图。
如图2B所示,该第二覆盖率报告为电子表格中的工作表。
在该电子表格中可以包括多个功能模块各自的第二覆盖率报告。如图2B所示,该电子表格中例如可以包括功能模块A21、功能模块B 22和功能模块C 23的第二覆盖率报告。在图2B中展示出了功能模块A的第二覆盖率报告。
如图2B所示,在功能模块A的第二覆盖率报告中包括第一部分211、第二部分212、第三部分213和第四部分214。第一部分211可以是功能模块A的覆盖率子信息的总览,也即,对功能模块A的接口和与功能模块A相关的信号进行验证得到的覆盖率子信息的统计结果。例如,“比特总数”行“数量”列对应的值表示功能模块A中所包含的比特的总数量,“比特总数0->1”行“数量”列对应的值表示功能模块A中从0翻转到1的比特数量,“比特总数1->0”行“数量”列对应的值表示功能模块A中从1翻转到0的比特数量。又例如,“覆盖数量”列表示被覆盖的接口数量。“百分比”这一列表示被覆盖的比特的百分比。第二部分212可以是功能模块A中接口的覆盖率子信息的统计结果。例如,“接口比特数”行“数量”列对应的值表示功能模块A中接口包含的比特的总数量,“接口比特数0->1”行“数量”列对应的值表示功能模块A中的接口从0翻转到1的比特数量,“接口比特数1->0”行“数量”列对应的值表示功能模块A中的接口从1翻转到0的比特数量。第三部分213可以是与功能模块A相关的信号的覆盖率子信息的统计结果,第四部分214可以是每个接口的详细覆盖率子信息。如图2B所示,第四部分214例如可以包括接口A、接口B、接口C和接口D各自的覆盖率子信息。例如,在第四部分214中可以包括“翻转”列、“翻转1->0”、“翻转0->1”以及“方向”列等,“翻转”列表示该接口是否发生翻转,“翻转1->0”列表示该接口是否发生1到0的翻转,“翻转0->1”列表示该接口是否发生0到1的翻转,“方向”列表示该接口是输入接口还是输出接口。
需要理解的是,上述第二覆盖率报告仅为一种示意,本领域技术人员可以根据实际需要设计第二覆盖率报告展示的内容而不是局限于图2B所示的第二覆盖率报告。
如图2B所示,在该电子表格中还可以包括总览表和例化表。总览表中例如可以展示了该集成电路设计所包括的所有功能模块的覆盖率子信息的总览。例化表例如可以包括功能模块被例化(即,instance)的数目。
图2C示出了本公开至少一实施例提供的总览表的示意性示例。
如图2C所示,在总览表中可以包括被验证的所有功能模块、各功能模块的翻转覆盖率的得分和翻转百分比。
例如,功能模块A的翻转覆盖率的得分为100,其翻转次数率为100%。
图2D示出了本公开至少一实施例提供的例化表的示意性示例。
如图2D所示,例化表中可以包括被验证的所有功能模块以及各功能模块被例化的数目。
例如,功能模块A被例化的数目为1。
在本公开的另一些实施例中,第二覆盖率报告也可以以其他的格式被输出,例如可以txt、doc等格式被输出。需要理解的是,本公开对第二覆盖率报告的形式或者格式不做限定,凡是将第一覆盖率报告按照功能模块拆分为多个第二覆盖率报告的情形均在本公开的保护范围之内。
在本公开的一些实施例中,本领域技术人员例如可以按照上述参考图2A描述的步骤S210~S230所描述的方法编写报告分析处理脚本,从而利用该报告分析处理脚本根据第一覆盖率报告(例如自动)生成第二覆盖率报告。报告分析处理脚本例如可以是perl脚本或者python、ruby等脚本,本公开对报告分析处理脚本的语言不做限定。
图2E示出了本公开至少一实施例提供的一种报告分析处理脚本的示意性流程图。
如图2E所示,该报告分析处理脚本可以依次执行步骤S201~S205。
步骤S201:读取URG报告。该URG报告即为第一覆盖率报告。
步骤S202:匹配功能模块关键字,生成各个功能模块数组。例如,可以是按照功能关键字,从URG报告中提取出具有某个功能的所有功能模块,这些具有该功能的所有功能模块构成一个数组,然后,根据这些功能模块各自包含的验证对象(即,信号或者接口)的标识,提取每个功能模块的验证对象。
步骤S203:按照功能模块生成独立的覆盖率报告信息,并将覆盖率报告信息写入excel表格中从而得到第二覆盖率报告。其中,每个功能模块各自生成一个工作表。如图2B所示的电子表格例如可以是具有系统管理功能的所有功能模块(即,功能模块A~C)各自的第二覆盖率报告。
步骤S204:统计各功能模块的总体覆盖率结果,并且将总体覆盖率结果生成在总览表中。如上表2C所示,总体覆盖率结果,例如可以是各功能模块的翻转覆盖率的得分和翻转次数。
步骤S205:将各功能模块的例化数目生成在例化表中。
图3A示出了本公开至少一个实施例提供的另一种验证方法的流程图。
如图3A所示,该验证方法在前述实施例的基础上还可以包括步骤S310和步骤S320。
步骤S310:从第一覆盖率报告中提取在对多个功能模块进行验证的过程中未被覆盖到的验证对象而生成第一文件,以向第一文件添加附加信息,附加信息用于指示未被覆盖到的验证对象是否为可忽略对象。
在本公开的一些实施例中,第一覆盖率报告可以包括在验证过程中未被覆盖到的验证对象,并且第一覆盖率报告还可以指示验证对象是否被覆盖。例如,在第一覆盖率报告中,对于未被覆盖到的验证对象可以被标记为“no”。
在本公开的一些实施例中,例如可以根据第一覆盖率报告中的标记“no”来提取未被覆盖到的验证对象而生成第一文件。第一文件例如可以是Exclude List(简称“EL”)文件。EL格式的文件是URG可以读取和识别的,方便利用URG或者VCS对EL文件进行后续处理。当然,第一文件也可以是其他格式的文件,只要能被URG可以读取和识别。
在本公开的一些实施例中,本领域技术人员例如可以按照上述步骤S310所描述的方法编写提取未覆盖点脚本,从而利用该提取未覆盖点脚本自动地从第一覆盖率报告中提取未被覆盖到的验证对象。提取未覆盖点脚本例如可以是perl脚本或者python、ruby等脚本,本公开对提取未覆盖点脚本的语言不做限定。
图3B示出了本公开至少一实施例提供的一种提取未覆盖点脚本的示意性流程图。
如图3B所示,该提取未覆盖点脚本可以执行步骤S301~S304。
步骤S301:读取URG报告。该URG报告例如可以是第一覆盖率报告。
步骤S302:从该URG报告中提取出各个功能模块各自的中间文件,该中间文件的文件格式与URG报告的文件格式相同。例如,URG报告为.txt格式,那么可以分别生成modA.txt(即,功能模块A的中间文件)、modB.txt(即,功能模块B的中间文件)、modC.txt(即,功能模块C的中间文件)。
步骤S303,从每个中间文件中提取未覆盖到的验证对象,从而得到每个功能模块各自的未覆盖到的验证对象。例如可以根据将中间文件中的标记“no”来提取未被覆盖到的验证对象。
步骤S304:将未覆盖点信息写入各功能模块的el文件中,以生成第一文件。例如,生成功能模块A的第一文件为modA.el、功能模块B的第一文件modB.el和功能模块C的第一文件modC.el。
例如,验证人员可以对第一文件中的未被覆盖到的验证对象进行分析,以确定这些未被覆盖到的验证对象是否为可忽略对象,并且可以在第一文件中添加指示未被覆盖到的验证对象是否为可忽略对象的附加信息。可忽略对象可以是在集成电路设计的验证过程中可以被忽略的验证对象。该方法可以从第一覆盖率报告中提取出未被覆盖到的验证对象,从而大大提高了未被覆盖到的验证对象的分析效率。
在本公开的一些实施例中,附加信息可以包括指示信息和可忽略对象被忽略的原因,指示信息用于指示未被覆盖到的验证对象是否为可忽略对象。指示信息例如可以是“可忽略”。当然,附件信息也可以包括其他的一些信息而不局限于指示信息和可忽略对象被忽略的原因。
步骤S320:根据附加信息,从第一文件中提取出可忽略对象的对象信息而生成第二文件,对象信息包括附加信息。
例如,可以从第一文件中提取出被标记为“可忽略”的验证对象的对象信息而生成第二文件,其中,被标记为“可忽略”的验证对象即为可忽略对象。第二文件,例如可以是EL文件,以方便利用URG对EL文件进行后续处理。
可忽略对象的对象信息包括可忽略对象的标识和附加信息。可忽略对象的标识,例如可以是可忽略对象的名称。
该验证方法可以提取可忽略对象及可忽略原因并单独生成一个第二文件,从而使得验证人员可以根据第二文件制定后续验证计划。例如,可以将该第二文件作为可以忽略的验证对象列表将其添加至最终的覆盖率报告中,例如添加到第二覆盖率报告中。又例如,对于不可以忽略的未覆盖到的验证对象可以根据分析结果做相应的后续处理。例如,对于不可以忽略的未覆盖到的验证对象,验证人员可以添加对应的测试用例,提升现有用例的随机化机制等等。
在本公开的一些实施例中,本领域技术人员例如可以按照上述步骤S320所描述的方法编写分析结果提取脚本,从而利用该分析结果提取脚本自动地从第一文件中提取可忽略对象的对象信息。分析结果提取脚本例如可以是perl脚本或者python、ruby等脚本,本公开对分析结果提取脚本的语言不做限定。
图3C示出了本公开至少一实施例提供的一种分析结果提取脚本的示意性流程图。
如图3C所示,该分析结果提取脚本可以执行步骤S305~S307。
步骤S305:读取经过分析后的el文件。该分析后的el文件例如可以是对第一文件分析后得到的仅包含可忽略对象的对象信息的el文件对象信息包含验证人员添加的附加信息。
在本公开的一些实施例中,例如可以是验证人员从第一文件中提取出仅包含可忽略对象的对象信息的el文件,该对象信息包含验证人员添加的附加信息。
在本公开的另一些实施例中,例如也可以是由店主设备根据例如“可忽略”标记从第一文件中提取出被标记为“可忽略”的验证对象的对象信息,该对象信息包含验证人员添加的附加信息。
步骤S306:处理附加信息,例如可以将附加信息处理成URG可以识别的格式。例如可以将附加信息处理为带有ANNOTATION、ANNOTATION_BEGIN或者ANNOTATION_END等注释的格式
步骤S307:根据带有ANNOTATION、ANNOTATION_BEGIN或者ANNOTATION_END等注释,生成可以被URG识别的第二文件。
需要说明的是,上述验证方法也可以仅包括步骤S310,也即,只生成第一文件。该验证方法可以从第一覆盖率报告中提取未被覆盖到的验证对象,从而便于验证人员对未被覆盖到的验证对象进行分析,从而大大提高了未被覆盖到的验证对象的分析效率。
在图3A所示的验证方法中,步骤S220基于第一覆盖率报告,确定多个功能模块中每个功能模块所包括的验证对象的覆盖率子信息可以包括:读取第二文件,并根据第二文件中的可忽略对象的对象信息和覆盖率信息生成第三覆盖率报告,以及从第三覆盖率报告中提取多个功能模块中每个功能模块所包括的验证对象的覆盖率子信息,根据从第三覆盖率报告提取的每个功能模块所包括的验证对象的覆盖率子信息,生成每个所述功能模块各自的第二覆盖率报告,第二覆盖率报告包括所述附加信息。该方法可以实现将第二文件中的附加信息反标到最终的覆盖率报告中,也即可以实现最终生成的第二覆盖率报告是包括附加信息的覆盖率报告,这样使得最终生成的第二覆盖率报告可以给后续处理提供支持,可以让验证人员通过第二覆盖率报告获得更多的信息,提高覆盖率分析的效率。
在本公开的一些实施例中,例如可以是利用URG读取第二文件,并且URG可以根据第二文件中的内容和覆盖率信息重新生成第三覆盖率报告。然后,可以根据每个功能模块的验证对象的标识,从第三覆盖率报告中提取每个功能模块各自的覆盖率子信息。由于第三覆盖率报告包括第二文件中的内容,因此,从第三覆盖率报告中提取的每个功能模块各自的覆盖率子信息包括附加信息,从而可以使得第二覆盖率报告包括附加信息。
如图2B所示,在第二覆盖率报告的第四部分214中包括名称为“附加信息”的一列2141,该列2141中的信息可以是附加信息。
图4A示出了本公开至少一个实施例提供的另一种用于集成电路设计的验证方法的流程图。
如图4A所示,该验证方法可以包括步骤S410~S440。
步骤S410:获取第一覆盖率报告,第一覆盖率报告包括对集成电路设计进行验证而得到的覆盖率信息,集成电路设计包括至少一个验证对象。
步骤S420:根据覆盖率信息,从第一覆盖率报告中提取在验证的过程中未被覆盖到的验证对象而生成第一文件,以向第一文件添加附加信息,附加信息用于指示未被覆盖到的验证对象是否为可忽略对象。
步骤S430:从第一文件中提取出可忽略对象的对象信息而生成第二文件。
步骤S440:读取第二文件,并根据第二文件中的可忽略对象的对象信息和覆盖率信息生成第三覆盖率报告。
该验证方法能够实现生成带有可忽略对象的对象信息的覆盖率报告(即,第三覆盖率报告),为集成电路设计的验证质量把控提供了直观,明确及有效的覆盖率报告。
对于步骤S410,在本公开的一些实施例中,集成电路设计中可以包括多个子系统,例如存储器控制子系统,片上管理子系统等。而每个子系统中可以包括多个功能模块。不同的功能模块用于实现不同的功能特性。每个功能模块可以包括多个验证对象。验证对象例如可以包括功能模块的接口和与功能模块相关的信号中的至少一个。功能模块的接口例如可以是功能模块的寄存器传输层(Register Transfer Level,RTL)的接口。与功能模块相关的信号例如可以包括功能模块的输入信号、功能模块的输出信号以及经过功能模块处理后得到的内部信号等。该步骤S410与上述图2A描述的步骤S210类似,在此不再赘述。
对于步骤S420,第一覆盖率报告中的覆盖率信息可以包括在验证过程中未被覆盖到的验证对象,并且第一覆盖率报告还可以指示验证对象是否被覆盖。例如,在覆盖率信息中,对于未被覆盖到的验证对象可以被标记为“no”。例如可以根据覆盖率信息中的标记“no”来提取未被覆盖到的验证对象而生成第一文件。验证人员可以对第一文件中的未被覆盖到的验证对象进行分析,以确定这些未被覆盖到的验证对象是否为可忽略对象,并且可以在第一文件中添加指示未被覆盖到的验证对象是否为可忽略对象的附加信息。该方法可以从第一覆盖率报告中提取出未被覆盖到的验证对象,从而大大提高了未被覆盖到的验证对象的分析效率。
在本公开的一些实施例中,附加信息可以包括指示信息和可忽略对象被忽略的原因,指示信息用于指示未被覆盖到的验证对象是否为可忽略对象。指示信息例如可以是“可忽略”。可忽略对象的对象信息包括可忽略对象的标识和附加信息。
该步骤S420与上述图3A描述的步骤S310类似,在此不再赘述。
对于步骤S430与上述图3A描述的步骤S320类似,在此不再赘述。
对于步骤S440,例如可以是利用URG读取第二文件,并且URG可以根据第二文件中的内容和覆盖率信息重新生成第三覆盖率报告,使得第三覆盖率报告包括附件信息。
图4B示出了本公开至少一实施例提供的另一种验证方法的流程图。
如图4B所示,该验证方法在前述4A所示的方法的基础上还可以包括步骤S450和步骤S460。
步骤S450:从第三覆盖率报告中提取每个功能模块的验证对象的覆盖率子信息。
在本公开的一些实施例中,例如,可以根据验证对象的标识从第三覆盖率报告中确定功能模块中每个功能模块的覆盖率子信息。验证对象的标识,例如可以是验证对象的名称。
例如,多个功能模块包括功能模块A、功能模块B、……,以功能模块A为例来说明根据第三覆盖率报告,确定功能模块A的覆盖率子信息的实施例。例如,功能模块A的验证对象包括验证对象A1和验证对象A2,那么可以遍历第三覆盖率报告,以从第三覆盖率报告中查找出标识“A1”和标识“A2”的覆盖率子信息,从而得到功能模块A的覆盖率子信息。通过上述类似的方法可以确定功能模块B、功能模块C、……的覆盖率子信息。当然,若功能模块中的验证对象被标记为可忽略对象,那么功能模块的覆盖率子信息可以包括附加信息。若功能模块中的验证对象均没有被添加附加信息,那么该功能模块的覆盖率子信息可以不包括附件信息。
步骤S460:根据每个所述功能模块的验证对象的覆盖率子信息,生成每个所述功能模块的第二覆盖率报告。
例如可以将每个功能模块的覆盖率子信息分别以电子表格中工作表的形式输出,以生成每个功能模块各自的第二覆盖率报告。
在本公开的一些实施例中,该多个功能模块各自的第二覆盖率报告分别输出为电子表格中的一个工作表,并且该多个第二覆盖率报告以一个电子表格(即,excel)的格式存储。
步骤S460与上述图2A描述的步骤S230类似,在此不再赘述。
该验证方法可以将覆盖率报告按照功能模块生成各功能模块的独立覆盖率报告即第二覆盖率报告,从而可以简单有效的拆分大规模SOC覆盖率分析任务,从而提高覆盖率分析的效率。
图5示出了本公开至少一实施例提供的另一种验证方法的流程图。
如图5所示,该验证方法可以包括步骤S510~S550。
步骤S510:例如可以是VCS从VDB中获取收集到的覆盖率信息,并且利用URG生成URG报告,该URG报告即为第一覆盖率报告。
步骤S520:例如可以利用提取未覆盖点脚本从第一覆盖率报告中提取未被覆盖的验证对象而得到第一文件51,以便验证人员向第一文件添加附加信息,附加信息用于指示未被覆盖到的验证对象是否为可忽略对象。例如可以执行上文参考图3A描述的步骤S310,或者执行上文参考图4A描述的步骤S420。
步骤S530:例如可以利用分析结果提取脚本从第一文件中提取可忽略对象的对象信息而生成第二文件52。例如可以执行上文参考图3A描述的步骤S320,或者执行上文参考图4A描述的步骤S430。
步骤S540:例如可以是利用URG读取第二文件52,使得URG根据第二文件52中的内容和覆盖率信息重新生成URG报告,该URG报告为第三覆盖率报告。例如可以执行上文参考图4A描述的步骤S440。
步骤S550:例如可以利用报告分析处理脚本从第三覆盖率报告中提取每个功能模块的验证对象的覆盖率子信息,以及根据每个功能模块的验证对象的覆盖率子信息,生成最终的独立报告,即生成每个功能模块各自的第二覆盖率报告。例如可以执行上文参考图4B描述的步骤S450和步骤S460。
图6A示出了本公开至少一个实施例提供的一种用于集成电路设计的验证装置600的示意框图。
例如,如图6A所示,该验证装置600包括第一获取单元610、第一确定单元620和第一生成单元630。
第一获取单元610配置为获取第一覆盖率报告,其中,第一覆盖率报告包括对集成电路设计的多个功能模块进行验证而得到的覆盖率信息。第一获取单元610例如可以执行图2A描述的步骤S210。
第一确定单元620配置为基于第一覆盖率报告,确定多个功能模块中每个功能模块的覆盖率子信息。第一确定单元620例如可以执行图2A描述的步骤S220。
第一生成单元630配置为根据每个功能模块的覆盖率子信息,生成每个功能模块各自的第二覆盖率报告。第一生成单元630例如可以执行图2A描述的步骤S230。
图6B示出了本公开至少一个实施例提供的另一种用于集成电路设计的验证装置700的示意框图。
如图6B所示,验证装置700可以包括第二获取单元710、提取单元720、第二生成单元730和读取单元740。
第二获取单元710配置为获取第一覆盖率报告,第一覆盖率报告包括对集成电路设计进行验证而得到的覆盖率信息,集成电路设计包括至少一个验证对象。第二获取单元710例如可以执行图4A描述的步骤S410。
提取单元720配置为根据覆盖率信息,从第一覆盖率报告中提取在验证的过程中未被覆盖到的验证对象而生成第一文件,以向第一文件添加附加信息,附加信息用于指示未被覆盖到的验证对象是否为可忽略对象。提取单元720例如可以执行图4A描述的步骤S420。
第二生成单元730配置为从第一文件中提取出可忽略对象的对象信息而生成第二文件。第二生成单元730例如可以执行图4A描述的步骤S430。
读取单元740配置为读取第二文件,并根据第二文件中的可忽略对象的对象信息和覆盖率信息生成第三覆盖率报告。读取单元740例如可以执行图4A描述的步骤S440。
例如,第一获取单元610、第一确定单元620和第一生成单元630或者第二获取单元710、提取单元720、第二生成单元730和读取单元740可以为硬件、软件、固件以及它们的任意可行的组合。例如,第一获取单元610、第一确定单元620和第一生成单元630或者第二获取单元710、提取单元720、第二生成单元730和读取单元740可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,验证装置600以及验证装置700的各个单元与前述的信息处理方法的各个步骤对应,关于验证装置600以及验证装置700的具体功能可以参考关于信息处理方法的相关描述,此处不再赘述。图6A和图6B所示的验证装置600以及验证装置700的组件和结构只是示例性的,而非限制性的,根据需要,该验证装置600以及验证装置700还可以包括其他组件和结构。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的信息处理方法的指令。该电子设备可以提高覆盖率分析的效率。
图7为本公开一些实施例提供的一种电子设备的示意框图。如图7所示,该电子设备701包括处理器711和存储器721。存储器721用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器711用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器711运行时可以执行上文所述的数据处理方法中的一个或多个步骤。存储器721和处理器711可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器711可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器711可以为通用处理器或专用处理器,可以控制电子设备701中的其它组件以执行期望的功能。
例如,存储器721可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器711可以运行一个或多个计算机程序模块,以实现电子设备701的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备701的具体功能和技术效果可以参考上文中关于验证方法的描述,此处不再赘述。
图8为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备800例如适于用来实施本公开实施例提供的验证方法。电子设备800可以是终端设备等。需要注意的是,图8示出的电子设备800仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800可以包括处理装置(例如中央处理器、图形处理器等)810,其可以根据存储在只读存储器(ROM)820中的程序或者从存储装置880加载到随机访问存储器(RAM)830中的程序而执行各种适当的动作和处理。在RAM 830中,还存储有电子设备800操作所需的各种程序和数据。处理装置810、ROM 820以及RAM 830通过总线840彼此相连。输入/输出(I/O)接口850也连接至总线840。
通常,以下装置可以连接至I/O接口850:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置860;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置870;包括例如磁带、硬盘等的存储装置880;以及通信装置890。通信装置890可以允许电子设备800与其他电子设备进行无线或有线通信以交换数据。虽然图8示出了具有各种装置的电子设备800,但应理解的是,并不要求实施或具备所有示出的装置,电子设备800可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述验证方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述数据处理方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置890从网络上被下载和安装,或者从存储装置880安装,或者从ROM 820安装。在该计算机程序被处理装置810执行时,可以实现本公开实施例提供的验证方法中限定的功能。
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时可以实现上述的信息处理方法。利用该计算机可读存储介质,可以提高覆盖率分析的效率。
图9为本公开一些实施例提供的一种存储介质的示意图。如图9所示,存储介质900用于存储非暂时性计算机可读指令910。例如,当非暂时性计算机可读指令910由计算机执行时可以执行根据上文所述的验证方法中的一个或多个步骤。
例如,该存储介质900可以应用于上述电子设备700中。例如,存储介质900可以为图7所示的电子设备700中的存储器720。例如,关于存储介质900的相关说明可以参考图7所示的电子设备700中的存储器720的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种用于集成电路设计的验证方法,所述集成电路设计包括多个功能模块,所述验证方法包括:
获取第一覆盖率报告,其中,所述第一覆盖率报告包括对所述集成电路设计的多个功能模块进行验证而得到的覆盖率信息;
基于所述第一覆盖率报告,确定所述多个功能模块中每个功能模块的覆盖率子信息;以及
根据每个所述功能模块的覆盖率子信息,生成每个所述功能模块各自的第二覆盖率报告。
2.根据权利要求1所述的方法,其中,基于所述第一覆盖率报告,确定所述多个功能模块中每个功能模块的覆盖率子信息,包括:
基于所述第一覆盖率报告,确定所述多个功能模块中每个所述功能模块所包括的验证对象的覆盖率子信息。
3.根据权利要求2所述的方法,其中,所述验证对象包括所述功能模块的接口和与所述功能模块相关的信号中的至少一个。
4.根据权利要求2所述的方法,还包括:
从所述第一覆盖率报告中提取在对所述多个功能模块进行验证的过程中未被覆盖到的验证对象而生成第一文件,以向所述第一文件添加附加信息,所述附加信息用于指示所述未被覆盖到的验证对象是否为可忽略对象;以及
根据所述附加信息,从所述第一文件中提取出所述可忽略对象的对象信息而生成第二文件,所述对象信息包括所述附加信息。
5.根据权利要求4所述的方法,基于所述第一覆盖率报告,确定所述多个功能模块中每个功能模块所包括的验证对象的覆盖率子信息,包括:
读取所述第二文件,并根据所述第二文件中的所述可忽略对象的对象信息和所述覆盖率信息生成第三覆盖率报告;以及
从所述第三覆盖率报告中提取所述多个功能模块中每个功能模块所包括的验证对象的覆盖率子信息,
其中,根据从所述第三覆盖率报告提取的每个所述功能模块所包括的验证对象的覆盖率子信息,生成每个所述功能模块各自的第二覆盖率报告,所述第二覆盖率报告包括所述附加信息。
6.根据权利要求5所述的方法,其中,所述覆盖率子信息包括所述附加信息。
7.根据权利要求4-6任一项所述的方法,其中,所述附加信息包括指示信息和所述可忽略对象被忽略的原因,所述指示信息用于指示所述未被覆盖到的验证对象是否为可忽略对象,
所述可忽略对象的对象信息包括所述可忽略对象的标识和所述附加信息。
8.根据权利要求5所述的方法,根据每个所述功能模块的覆盖率子信息,生成每个所述功能模块各自的第二覆盖率报告,包括:
将每个所述功能模块的覆盖率子信息分别以电子表格中工作表的形式输出,以生成每个所述功能模块各自的第二覆盖率报告。
9.根据权利要求1-6任一项所述的方法,所述覆盖率信息包括翻转覆盖率信息。
10.一种用于集成电路设计的验证方法,包括:
获取第一覆盖率报告,所述第一覆盖率报告包括对所述集成电路设计进行验证而得到的覆盖率信息,所述集成电路设计包括至少一个验证对象;
根据所述覆盖率信息,从所述第一覆盖率报告中提取在所述验证的过程中未被覆盖到的验证对象而生成第一文件,以向所述第一文件添加附加信息,所述附加信息用于指示所述未被覆盖到的验证对象是否为可忽略对象;
从所述第一文件中提取出所述可忽略对象的对象信息而生成第二文件;以及
读取所述第二文件,并根据所述第二文件中的所述可忽略对象的对象信息和所述覆盖率信息生成第三覆盖率报告。
11.根据权利要求10所述的方法,其中,所述附加信息包括指示信息和所述可忽略对象被忽略的原因,所述指示信息用于指示所述未被覆盖到的验证对象是否为可忽略对象,
所述可忽略对象的对象信息包括所述可忽略对象的标识和所述附加信息。
12.根据权利要求10所述的方法,其中,所述集成电路设计包括多个功能模块,每个功能模块包括所述多个验证对象中的至少一个所述验证对象,方法还包括:
从所述第三覆盖率报告中提取每个所述功能模块的验证对象的覆盖率子信息;以及
根据每个所述功能模块的验证对象的覆盖率子信息,生成每个所述功能模块的第二覆盖率报告。
13.根据权利要求10所述的方法,所述验证对象包括所述功能模块的接口和与所述功能模块相关的信号中的至少一个。
14.一种用于集成电路设计的验证装置,所述集成电路设计包括多个功能模块,所述验证装置包括:
第一获取单元,配置为获取第一覆盖率报告,其中,所述第一覆盖率报告包括对所述集成电路设计的多个功能模块进行验证而得到的覆盖率信息;
第一确定单元,配置为基于所述第一覆盖率报告,确定所述多个功能模块中每个功能模块的覆盖率子信息;以及
第一生成单元,配置为根据每个所述功能模块的覆盖率子信息,生成每个所述功能模块各自的第二覆盖率报告。
15.一种用于集成电路设计的验证装置,包括:
第二获取单元,配置为获取第一覆盖率报告,所述第一覆盖率报告包括对所述集成电路设计进行验证而得到的覆盖率信息,所述集成电路设计包括至少一个验证对象;
提取单元,配置为根据所述覆盖率信息,从所述第一覆盖率报告中提取在所述验证的过程中未被覆盖到的验证对象而生成第一文件,以向所述第一文件添加附加信息,所述附加信息用于指示所述未被覆盖到的验证对象是否为可忽略对象;
第二生成单元,配置为从所述第一文件中提取出所述可忽略对象的对象信息而生成第二文件;以及
读取单元,配置为读取所述第二文件,并根据所述第二文件中的所述可忽略对象的对象信息和所述覆盖率信息生成第三覆盖率报告。
16.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现权利要求1-13任一项所述的验证方法的指令。
17.一种计算机可读存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现权利要求1-13任一项所述的验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011605756.0A CN112613257A (zh) | 2020-12-30 | 2020-12-30 | 验证方法、装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011605756.0A CN112613257A (zh) | 2020-12-30 | 2020-12-30 | 验证方法、装置、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112613257A true CN112613257A (zh) | 2021-04-06 |
Family
ID=75249601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011605756.0A Pending CN112613257A (zh) | 2020-12-30 | 2020-12-30 | 验证方法、装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112613257A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419959A (zh) * | 2021-07-01 | 2021-09-21 | 合肥忆芯电子科技有限公司 | 一种生成覆盖率验证报告的方法和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109359054A (zh) * | 2018-12-18 | 2019-02-19 | 浙江诺诺网络科技有限公司 | 生成覆盖率统计报告的方法、装置、设备及存储介质 |
CN109800176A (zh) * | 2019-02-26 | 2019-05-24 | 盛科网络(苏州)有限公司 | 芯片代码覆盖率交付方法和系统 |
US20190340327A1 (en) * | 2018-03-10 | 2019-11-07 | Synopsys, Inc. | Automatic definition and extraction of functional coverage metric form emulation-based verification |
CN112035376A (zh) * | 2020-11-05 | 2020-12-04 | 四川科道芯国智能技术股份有限公司 | 一种生成覆盖率报告的方法、装置、设备及存储介质 |
-
2020
- 2020-12-30 CN CN202011605756.0A patent/CN112613257A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190340327A1 (en) * | 2018-03-10 | 2019-11-07 | Synopsys, Inc. | Automatic definition and extraction of functional coverage metric form emulation-based verification |
CN109359054A (zh) * | 2018-12-18 | 2019-02-19 | 浙江诺诺网络科技有限公司 | 生成覆盖率统计报告的方法、装置、设备及存储介质 |
CN109800176A (zh) * | 2019-02-26 | 2019-05-24 | 盛科网络(苏州)有限公司 | 芯片代码覆盖率交付方法和系统 |
CN112035376A (zh) * | 2020-11-05 | 2020-12-04 | 四川科道芯国智能技术股份有限公司 | 一种生成覆盖率报告的方法、装置、设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113419959A (zh) * | 2021-07-01 | 2021-09-21 | 合肥忆芯电子科技有限公司 | 一种生成覆盖率验证报告的方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112100952B (zh) | 一种集成电路后仿真方法、装置、电子设备及存储介质 | |
US7603636B2 (en) | Assertion generating system, program thereof, circuit verifying system, and assertion generating method | |
US20070276644A1 (en) | Conversion of circuit description to a transaction model | |
US8732632B1 (en) | Method and apparatus for automated extraction of a design for test boundary model from embedded IP cores for hierarchical and three-dimensional interconnect test | |
CN113486625B (zh) | 芯片的验证方法与验证系统 | |
US8522182B2 (en) | Generation of an end point report for a timing simulation of an integrated circuit | |
CN110321260B (zh) | 一种基于uvm的axi总线接口读写数据比较方法和uvm验证平台 | |
CN116341428B (zh) | 构建参考模型的方法、芯片验证方法及系统 | |
CN115470748A (zh) | 一种芯片仿真加速方法、装置、电子设备及存储介质 | |
CN114021440B (zh) | 一种基于matlab的fpga时序仿真验证方法及装置 | |
CN116256621A (zh) | 芯粒的测试方法、装置、电子设备及存储介质 | |
CN112597718B (zh) | 集成电路设计的验证方法、验证装置以及存储介质 | |
CN107784185B (zh) | 一种门级网表中伪路径的提取方法、装置及终端设备 | |
CN112613257A (zh) | 验证方法、装置、电子设备和计算机可读存储介质 | |
CN111624475B (zh) | 大规模集成电路的测试方法及系统 | |
CN112257382A (zh) | 用于芯片设计的物理验证方法、系统、设备以及存储介质 | |
CN112861455B (zh) | Fpga建模验证系统及方法 | |
CN113760751B (zh) | 生成测试用例的方法、电子设备及存储介质 | |
CN116048952A (zh) | 一种基于可裁剪ip的实例化模块仿真验证方法及装置 | |
US11295052B1 (en) | Time correlation in hybrid emulation system | |
CN113051171A (zh) | 接口测试方法、装置、设备及存储介质 | |
CN111859985A (zh) | Ai客服模型测试方法、装置、电子设备及存储介质 | |
CN116451625B (zh) | 用于rtl和带sdf网表的联合仿真的装置和方法 | |
Choi et al. | Early HW/SW Co-Verification Using Virtual Platforms | |
US11816407B1 (en) | Automatic channel identification of high-bandwidth memory channels for auto-routing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |