功能覆盖率的收集方法及装置的制作方法

文档序号:6465729阅读:707来源:国知局

专利名称::功能覆盖率的收集方法及装置的制作方法
技术领域
:本发明涉及软件验证
技术领域
,尤其涉及一种功能覆盖率的收集方法及装置。
背景技术
:功能覆盖率是度量芯片验证质量的量化指标。按照面向Implementation(实现)还是面向Specification(说明)来划分,可以将现有的功能覆盖率收集方法分为以下两种1)面向Implementation的功能覆盖率的收集方法,例如,断言功能覆盖率的收集方法,参考模型(ReferenceModel,RM)功能路径覆盖率的收集方法。2)面向Specification的功能覆盖率的收集方法,例如,传统的验证规格覆盖率的收集方法。上述各种功能覆盖率的收集方法,分别针对不同的收集对象,借用各种有效的收集手段,从各个角度对验证空间的覆盖效果进行了描述。其中,断言功能覆盖率的收集方法是从RTL(registertransferlevel,寄存器传输级)实现的角度描述芯片功能的,RM功能路径覆盖率的收集方法是从参考模型实现的角度描述芯片功能,而传统的验证规格覆盖率的收集方法是从验证规格的角度描述芯片功能。对于实现过程比较简单的功能,直接用验证规格就可以基本完成验证空间的界定,这种情况下较多使用传统的验证规格覆盖率的收集方法;对于实现过程比较复杂的功能,仅仅站在验证规格的层面上,有^f艮多验证细节无法提取出来,这时必须依靠对设计实现过程的分析和分解,来完成验证空间的构建,因此需要将验证规格覆盖率的收集方法,与断言功能覆盖率的收集方法或RM功能路径覆盖率的收集方法结合起来,以充分描述验证空间的范围。面向Implementation的功能覆盖率的收集方法,直接从编码中提取功能信息,其最直接的表现就是覆盖率定义的内容与设计实现过程强相关。这类方法的优点是,可以根据实现细节对验证空间进行充分细化,保证测试点分解的粒度达到最小化要求。受实际操作手段的限制,在利用断言功能覆盖率的收集方法时,验证人员往往不方便直接在RTL代码中添加断言功能覆盖率收集语句,而设计人员又没有足够的时间和精力完成断言覆盖收集。目前面向Implementation的功能覆盖率的收集方法中主要采用RM功能路径覆盖率的收集方法。利用RM功能路径覆盖率的收集方法,验证人员可以在自己重新开发或部分重用的参考模型代码里,根据器件功能要求,添加适当的功能路径覆盖率收集语句(探针和节点),在回归用例的同时完成功能覆盖率收集。如图1所示,变量A、B、C及D中,变量A、B、D均可有两种取值,因此,在验证流程中可能会出现两种分支;而变量C可有三种取值,相应的就形成了三种分支。因此,在利用RM功能路径覆盖率的收集方法时,可在变量A、B、C及D相应的分支处设置探针。那么,在对该流程中各个路径的功能覆盖率进行收集的时候,按照表l中列举的方式进行。表l序号处理路径探针1开始-Pl-P3-结束P32开始-P1-P4-结束P43开始-P2-P5-结束P54开始-P2-P6-P8-结束P8(1)5开始-P2-P6-P9-结束P9(1)<table>tableseeoriginaldocumentpage7</column></row><table>由上可以看出,该方法充分利用了Powerbench提供的自动收集工具,将收集数据与统计过程交给收集工具完成,用户只需要进行覆盖率定义语句的插入就可以实现对功能覆盖率的收集。该方法较好地提高了功能覆盖率收集效率,减轻了验证人员进行功能覆盖率设计的工作量。但是,在实现本发明的过程中,发明人发现RM功能路径覆盖率的收集方法对于参考模型代码语句结构比较复杂,例如交杂了循环、分支、多层子功能调用等结构的情况下,"节点+探针"组合有时无法充分满足功能覆盖率定义的需求。利用RM功能路径覆盖率的收集方法降低了功能覆盖率收集的灵活性。另外,在灰盒设计验证架构下,需要在从模块级到系统级集成时,考虑功能覆盖率收集语句的重用,以减少系统功能覆盖率收集过程中的重复劳动。而RM功能路径覆盖率的收集方法,只能针对单个模块完成覆盖率的收集,比较难以对来自同一报文的多个模块的功能覆盖率进行收集。
发明内容一方面,本发明实施例提供了一种参考模型功能覆盖率的收集方法,以提高对功能覆盖率进行收集时的灵活性,并提高收集效率。本发明实施例参考模型功能覆盖率的收集方法采用以下技术方案一种功能覆盖率的收集方法,包括如下步骤为参考模型中的处理路径设置可验证性标识;获取输入的验证数据;对所述验证数据进行处理,获取处理所述验证数据的处理路径的可验证性标识;根据所述处理验证数据的处理路径的可验证性标识,统计参考模型的功能覆盖率。另一方面,本发明实施例还提供了一种参考模型功能覆盖率的收集装置,以提高对功能覆盖率进行收集时的灵活性,并提高收集效率。本发明实施例参考模型功能覆盖率的收集装置采用以下技术方案一种功能覆盖率的收集装置,包括标识设置单元,用于为参考模型中的处理路径设置可验证性标识;数据获取单元,用于获取输入的验证数据;标识获取单元,用于对所述验证数据进行处理,获取处理所述验证数据的处理路径的可验i正性标识;功能覆盖率统计单元,用于根据所述处理验证数据的处理路径的可验证性标识,统计参考模型的功能覆盖率。利用本发明实施例功能覆盖率的收集方法及装置,首先为参考模型中的处理路径设置可^^证性标识,然后在运行参考模型时,通过收集处理验证数据的处理路径的可验证性标识,来判断参考模型中各处理路径的执行情况,从而统计出参考模型的功能覆盖率。因此,与现有技术相比,本发明实施例在保证了功能覆盖率收集的效率的同时,也提高了功能覆盖率收集的灵活性。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图l是现有技术中利用RM功能路径覆盖率的收集方法进行功能覆盖率收集的示意图2是本发明实施例功能覆盖率收集方法的流程图;图3是本发明实施例功能覆盖率收集装置的结构图;图4是本发明实施例功能覆盖率收集装置的示意图。具体实施例方式为使本发明实施例的技术方案的优点更加清楚,下面结合附图对本发明的实施例作进一步的详细i兌明。如图2所示,本发明实施例功能覆盖率的收集方法包括以下步骤步骤201、为参考模型中的处理路径设置可验证性标识;为参考模型中的处理路径设置可验证性标识的过程,可按照如下方式进行按照参考模型中各功能模块的层级关系,将各功能模块分级成N个等级的功能模块,其中N为大于等于1的整数;以最顶层功能模块为根节点,建立所述最顶层功能模块下的各层级功能模块与所述最顶层功能模块的位置关系利用所述位置关系,标识参考模型中的处理路径。其中,所述的位置关系可以用一个树状结构表示。例如,若按照参考模型中各功能模块的层级关系,将各功能模块划分为2个等级。令最顶层的功能模块的等级用l表示,在这个最顶层的功能模块下有两个子模块,分别用20和21表示其等级。那么这两个子模块的路径信息可表示为1->20,1->21。那么,就可用1-〉20,1->21来代表这两个子模块所对应的处理路径。当然,还可用其他方式表示为参考模型中的处理路径设置的标识。在具体应用中,可根据具体的验证环境,利用不同的方式为参考模型中的处理路径设置可验证性标识。例如,在黑盒验证环境中,可按照验证特性将处理流程划分成至少两个大的分段,每个分段对应一个0++函数,并为其分配一个模块号module—num,在该分段内部的分支函数,可为其分配一个分支模块号sub-module-num。在灰盒验证环境中,可为每个一级才莫块分配给一个才莫块号module—num,并对应一个0++函数,为该一级模块内部的分支函数分配一个分支模块号sub_module—num。对于每组分支函数内的单一处理路径,可用Routlnfo[module_num][sub一module-num]开j式表示其路径信息。属于不同的module—num或sub—module—num下的3各径,Routlnfo的取^直可以重复。例々口,可按照如下的方式,为处理路径设置可验证性标识。intFunction-AA()〃一级才莫块AA顶层函凄tmodule-num=3;〃一级才莫块编号sub—module—num=21;〃二级才莫块编号,对应var_g判断下的一组分支集合if((var_g==1)&&(var_h>399)&&(var—k!=765))rslt—u-0;Routlnfo[module_num][sub—module—num]=10;〃最底层分支编号elserslt_u=1;Routlnfo[module_num][sub—module—num]=11;〃最底层分支编号sub—module—num=24;〃二级才莫块编号,7于应var_x判断下的一组分支集合switch(var—x)case10:rslt-v=2;Routlnfo[module—num][sub一module—num〗=10;//最底层分支编号break;case11:rslt—v=3;Routlnfo[module—num][sub-module—num]=11;〃最底层分支编号break;default:rslt-v=25;Routlnfo[module—num][sub—module—num]=30;〃最底层分支编号break;步骤202、获取输入的验证数据;步骤203、对所述验证数据进行处理,获取处理所述验证数据的处理路径的可-睑i正性一示识;此步骤可按照如下方式实现首先对所述参考模型进行预期分析,然后通果。在对参考^t型进行预期分析的过程中,当输入某个-验证数据的时候,除了能够获得预期的分析结果外,还可以根据所述的预期分析结果,获得处理所述验证数据的处理路径的可-睑证性标识。因此,可将所述处理验证数据的处理路径的可验证性标识和预期分析结果存放在记分牌中。在实际应用中,可利用0++语言定义一个二维数组,例如unsignedintRou11nfo[module—num][sub—module—num],将所述处理路径的可验证性标识存放在记分牌中的上述二维数组中。在将所述处理路径的可验证性标识保存到记分牌的同时,还可将上述可验证性标识以列表的方式打印到调试信息记录文件中,以备用例执行结束后观察用。步骤204、根据所述处理验证数据的处理路径的可验证性标识,统计参考模型的功能覆盖率。在预期分析结束后,可启动对功能覆盖率的收集。为了便于验证人员的观察,可由验证人员事先对功能覆盖率的等级进行定义,然后将定义的功能覆盖率的等级与功能覆盖率收集功能模块的输出进行对照,从而得出参考模型的功能覆盖率。在具体应用中,可利用emit命令启动对功能覆盖率的收集。功能覆盖率收集功能模块可用0++语言实现。该程序可采用如下的形式voidcoverage—gather—AA()if(Routlnfo[3][21]==10)objectA取值1;已lseobjectA取值2;if(Routlnfo[3][24]==10)objectB取值100;elseif(Routlnf。[3][24]==11)objectB取值110;已lseobjectB取值200;通过执行上一段程序,可将收集到的处理路径可验证性标识Routlnfo转化为参数object的取值。而参数object的取值正是和3全证人员所定义的功能覆盖率的等级是对应的。因此,在获得所述object的值后,-睑i正人员即可获得功能覆盖率的统计结果。在系统级验证过程中,如果需要重用模块级的收集结果,可以将属于同一个报文的RoutInfo信息统一收集整理,依据系统级中定义的object选取方法来获得功能覆盖率信息。在本发明的实施例功能覆盖率的收集方法中,为每条处理路径来设置可验证性标识,也就是i兑利用可'睑证性(DesignForVerification,DFV)信息来标识每条路径。通常是使用DFV信息来进行参考模型的调试的。而在本发明实施例中,在进行功能覆盖率收集的过程中,通过对可验证信息的重用,避免了利用现有技术"节点+探针"方式进行功能覆盖率收集时,需要重新定义功能覆盖率收集语句而引起的功能覆盖率收集的不灵活的问题。因此,本发明实施例在保证了功能覆盖率收集的效率的同时,也提高了功能覆盖率收集的灵活性。与本发明实施例功能覆盖率的收集方法相对应,本发明实施例还提供了一种功能覆盖率的收集装置。如图3所示,本发明实施例功能覆盖率的收集装置包括标识设置单元301,数据获取单元302,标识获取单元303,以及功能覆盖率统计单元304。其中,标识设置单元301,用于为参考模型中的处理路径设置可验证性标识;数据获取单元302,用于获取输入的验证数据;标识获取单元303,用于对所述验证数据进行处理,获取处理所述验证数据的处理路径的可验证性标识;功能覆盖率统计单元304,用于根据所述处理验证数据的处理^各径的可验证性标识,统计参考模型的功能覆盖率。如图4所述,所述的标识设置单元301可包括层级划分模块3011,用于按照参考模型中功能模块的层级关系,将各功能模块分级成N个等级的功能模块,其中N为大于等于1的整数;关联模块3012,用于以最顶层功能模块为根节点,建立所迷最顶层功能才莫块下的各层级功能模块与所述最顶层功能模块的位置关系;路径标识模块3013,用于利用所述位置关系,标识参考模型中的处理路径。与本发明功能覆盖率收集方法的实施例中相同,所述的位置关系可以用一个树状结构表示。当然,也可用其他的形式表示,只要能唯一标识处理路径即可。如图4所示,所述标识获取单元303包括分析模块3031,用于对所述参考模型进行预期分析;存储模块3032,用于通过记分牌存储处理验证数据的处理路径的可验证性标识以及预期分析结果。为了进一步的提高功能覆盖率收集的效率,如图4所示,本发明实施例功能覆盖率的收集装置还可包括设置单元305,用于设置处理路径的可验证性标识与预先定义的功能覆盖率标识的对应关系。如图4所示,所述功能覆盖率统计单元304包括查询模块3041,用于查询处理路径的可验证性标识与功能覆盖率标识的对应关系,得到与处理验证数据的处理路径的可验证性标识相对应的功能覆盖率标识;统计模块3042,用于通过查询模块3041查询得到的所述功能覆盖率标识,统计出参考模型的功能覆盖率。综上所述,利用本发明实施例功能覆盖率的收集方法及装置,首先为参考模型中的处理路径设置标识,然后在运行参考模型时,通过收集处理验证数据的处理路径的标识,来判断参考模型中各处理路径的执行情况,从而统计出参考模型的功能覆盖率。因此,与现有技术相比,本发明实施例在保证了功能覆盖率收集的效率的同时,也提高了功能覆盖率收集的灵活性。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存4诸介质可为》兹*乘、光盘、只读存储记忆体(Read-0nlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。当然,本发明的实施例还可有很多种,在不背离本发明的实施例精神及其和变形,但这些相应的改变和变形都应属于本发明的实施例所附的权利要求的保护范围。权利要求1、一种功能覆盖率的收集方法,其特征在于,所述方法包括如下步骤为参考模型中的处理路径设置可验证性标识;获取输入的验证数据;对所述验证数据进行处理,获取处理所述验证数据的处理路径的可验证性标识;根据所述处理验证数据的处理路径的可验证性标识,统计参考模型的功能覆盖率。2、根据权利要求1所述的功能覆盖率的收集方法,其特征在于,所述为参考模型中的处理路径设置可验证性标识的步骤包括按照参考模型中功能模块的层级关系,将功能模块分级成N个等级的功能模块,其中N为大于等于1的整数;以最顶层功能模块为根节点,建立所述最顶层功能模块下的各层级功能模块与所述最顶层功能模块的位置关系;利用所述位置关系,标识参考模型中的处理路径。3、根据权利要求1所述的功能覆盖率的收集方法,其特征在于,所述获取处理所述验证数据的处理路径的可验证性标识的步骤包括对所述参考模型进行预期分析;通过记分牌存储所述处理验证数据的处理路径的可验证性标识以及预期分析结果。4、根据权利要求1所述的功能覆盖率的收集方法,其特征在于,在根据所述处理验证数据的处理路径的可验证性标识,统计参考模型的功能覆盖率的步骤之前,所述方法还包括设置所述处理路径的可验证性标识与预先定义的功能覆盖率标识的对应关系。5、根据权利要求4所述的功能覆盖率的收集方法,其特征在于,所述根据所述处理验证数据的处理路径的可验证性标识,统计参考模型的功能覆盖率的步骤具体为查询处理路径的可验证性标识与功能覆盖率标识的对应关系,得到与处理验证数据的处理路径的可验证性标识相对应的功能覆盖率标识;通过查询得到的功能覆盖率标识,统计出参考模型的功能覆盖率。6、一种功能覆盖率的收集装置,其特征在于,所述装置包括标识设置单元,用于为参考模型中的处理路径设置可验证性标识;数据获取单元,用于获取输入的验证数据;标识获取单元,用于对所述验证数据进行处理,获取处理所述验证数据的处理路径的可-验i正性标识;功能覆盖率统计单元,用于根据所述处理验证数据的处理路径的可验证性标识,统计参考模型的功能覆盖率。7、根据权利要求6所述的功能覆盖率的收集装置,其特征在于,所述标识设置单元包括层级划分模块,用于按照参考模型中功能模块的层级关系,将功能模块分级成N个等级的功能模块,其中N为大于等于1的整数;关联模块,用于以最顶层功能模块为根节点,建立所述最顶层功能模块下的各层级功能模块与所述最顶层功能模块的位置关系;路径标识模块,用于利用所述位置关系,标识参考才莫型中的处理路径。8、根据权利要求6所述的功能覆盖率的收集装置,其特征在于,所述标识获取单元包括分析模块,用于对所述参考模型进行预期分析;存储模块,用于通过记分牌存储处理验证数据的处理路径的可验证性标识以及预期分析结果。9、根据权利要求6所述的功能覆盖率的收集装置,其特征在于,所述装置还包括设置单元,用于设置处理路径的可验证性标识与预先定义的功能覆盖率标识的对应关系。10、根据权利要求9所述的功能覆盖率的收集装置,其特征在于,所述功能覆盖率统计单元包括查询模块,用于查询处理路径的可验证性标识与功能覆盖率标识的对应关系,得到与处理验证数据的处理路径的可验证性标识相对应的功能覆盖率标识;统计模块,用于通过查询得到的功能覆盖率标识,统计出参考模型的功能覆盖率。全文摘要本发明实施例公开了一种功能覆盖率的收集方法及装置,涉及软件验证
技术领域
,为提高对功能覆盖率进行收集时的灵活性,并提高收集效率而发明。其中所述的方法包括为参考模型中的处理路径设置可验证性标识;获取输入的验证数据;对所述验证数据进行处理,获取处理所述验证数据的处理路径的可验证性标识;根据所述处理验证数据的处理路径的可验证性标识,统计参考模型的功能覆盖率。本发明实施例主要应用在验证
技术领域
中。文档编号G06F17/50GK101625709SQ200810133180公开日2010年1月13日申请日期2008年7月9日优先权日2008年7月9日发明者何忠秋,卫刘,左细生,郭晓健申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1