当前位置: 首页 > 专利查询>李姮乐专利>正文

一种由流程图自动产生覆盖率代码的方法及装置制造方法及图纸

技术编号:7837916 阅读:242 留言:0更新日期:2012-10-12 02:51
本发明专利技术公开了一种由流程图自动产生覆盖率代码的方法及装置,包括:收集处理框覆盖点、判断框覆盖点、组合覆盖点、序列覆盖点、带约束条件的序列覆盖点等内容,并产生其对应的覆盖率代码。其装置由读入单元、层次展开单元、单元库、连接关系库、处理框覆盖率代码产生单元、判断框覆盖率代码产生单元、组合覆盖率代码产生单元、序列覆盖率代码产生单元、其他覆盖率代码产生单元、代码合并单元组成。本发明专利技术根据流程图直接提取覆盖点,自动转化为覆盖率代码,节省时间,减少人为遗漏,从功能角度出发,弥补了单纯代码覆盖率的不足。以客观的形式产生覆盖率代码,增加了覆盖率统计的有效性、信心度和客观性。

【技术实现步骤摘要】

本专利技术涉及一种由流程图自动产生覆盖率代码的方法及装置,属于集成电路功能 验证的

技术介绍
随着客户需求的提高,芯片的集成度和规模也逐渐提升。在大规模复杂集成电路 的开发流程中,功能验证消耗的资源已经占据了绝大部分,一般在70%以上。如何全面而高 效的完成功能验证流程,已经成为集成电路产业界急需解决的问题之一。为解决这一个问题,学术界和产业界提出了包括基于断言、基于约束随机激励、 基于覆盖率驱动等方法。其中基于覆盖率驱动的验证在加速验证收敛方面的效果最好,也 同时是验证完整性的衡量标准之一。覆盖率包括代码覆盖率和功能覆盖率等内容,其中代码覆盖率可以由EDA工具直 接统计,而功能覆盖率的收集需要验证工程师编写相关程序,再由EDA工具辅助完成统计。 覆盖率驱动的验证方法难点在于功能覆盖点提取的全面性。现有对功能覆盖点的提取还处 于工程师协同审查的人为提取过程,缺点是提取和确认过程耗时时间长,如有遗漏较难发 现。本专利将通过流程图自动提取覆盖点,完成覆盖率代码的生成。覆盖率相关专利CN200710032674. X《确定代码覆盖率的方法、测试装置》描述了一种通过在各代码 行内设置中断,获取被测试程序的代码覆盖率的方法。CN00809255. 9《形式验证中的属性覆盖率》描述了一种通过模型检测验证的属性 覆盖的状态空间得到属性覆盖率的方法。CN200610153890. 5《一种功能覆盖率测试度量系统和方法》描述了一种能够在EDA 工具中实现的根据度量要素参数的功能覆盖得分得到功能覆盖率的方法。CN200510036782. 5《一种基于功能覆盖率的随机激励的自动产生方法》描述了一 种基于功能覆盖率自动产生随机激励的方法。CN200510035490. X《一种逻辑测试的功能覆盖率分析方法》描述了一种使用探针获取功能覆盖率信息的方法。CN200810066597. 4《一种实现覆盖率测试的系统和方法》描述了一种应用于多种 操作系统通过插入代码打点程序实现覆盖率统计的方法。CN200310104038. 5《一种验证代码覆盖率分析的简单方法》描述了一种使用分支 加标记的方法完成代码覆盖率的分析。CN200410079030. 2《一种自动调度逻辑仿真与代码覆盖率分析的方法与系统》描 述了一种对被测逻辑进行预编译后根据仿真用例索引目录顺序执行仿真用例并保存代码覆盖率结果的方法。CN200810133180. 5《功能覆盖率的收集方法及装置》描述了一种在参考模型中设置可验证性标识来统计參考模型的功能覆盖率的方法。CN200910078326. 5《覆盖率驱动随机验证集成电路的方法及系统》描述了一种使 用种群选择交叉产生新个体完成自动优化验证程序的方法。CN201010270989.X《一种基于硬件的仿真覆盖率统计方法和装置》描述了一种在 原电路中添加存储单元作为覆盖率标记来统计触发次数和状态信息的仿真覆盖率统计方 法。CN201010170650. 2《获得代码覆盖率的方法及装置》描述了一种至少两个测试对 象进行代码覆盖测试通过标识满足一定条件未标识的代码获得测试对象代码覆盖率的方 法。流程图相关专利CN200410046116. 5《流程图的编辑、重组验证、创建和转换的方法和装置》描述了 一种将流程图转换为等价树状图的方法、将等价树状图转换为流程图的方法、验证重组流 程图的合法性的方法、编辑流程图的方法、创建流程图的方法以及流程图编辑器。CN200410021269. 4《工作流流程图并发单元的合法性校验方法》描述了一种通过 图的先深搜索算法来检查并发单元的非法出口、非法入口及各并发分支间的跳转的方法。CN200810059628. 3《一种基于汇编程序构造语义流程图的方法》描述了一种由汇 编程序构造语义流程图的方法。CN200610066636. 1《一种将业务流程图转换为执行语言的方法》描述了一种基于 令牌分析技术将流程图分块最终转化为执行语言中的对应元素的方法。经检索,根据以上提供的相关专利内容,未发现与本专利具有相同技术特点的专 利。相关论文《一种基于遗传算法的无线传感器网络覆盖模型》——《微型机与应用》,2010年 15期,吕广辉,崔逊学,侯战胜。文章描述了使用改进的遗传算法,选用多重覆盖度代替节点 利用率作为适应度函数切实可行。不包含本专利的任何核心内容。《一种嵌入式汇编软件测试平台的设计与实现》——谢瑞东,2006_电子科技大学 计算机应用。文章中提到了对于8051系列CPU的汇编程序进行覆盖率数据分析,着眼于代 码角度。与本专利没有实际的重叠部分。《关于程序控制流程图的路径测试方法研究》——《电子科技》,2008年7期,余俊, 张菊平,赵莉。文章描述了面向软件测试,将程序控制流程图抽象出程序结构的图论模型, 再转化为邻接矩阵,利用一定的查找算法查找测试路径。本专利面向集成电路功能验证领 域,对流程图处理框的模块动作进行提取作为覆盖点,对判断框的具体分支条件进行分类 处理提取作为覆盖点,组合覆盖点由判断框内容决定,序列覆盖点由模块动作表征的序列 组成,不涉及算法和邻接矩阵问题,即文章与本专利内容没有重叠部分。《基于51系列的嵌入式软件测试系统研究与实现》——刘利枚,2005,电子科技大 学,计算机软件与理论。文章中对于软件测试中的覆盖率问题,提及了使用插桩的方法得到 代码覆盖率。与本专利没有实际的重叠部分。《基于程序控制的路径测试技术研究》——《电子科技》,2008年12期,丁振国,郭 強。文章与《关于程序控制流程图的路径测试方法研究》雷同。《基于软件仿真的汇编语言嵌入式软件测试平台研究与实现》——王学东,2006, 电子科技大学,计算机软件与理论。文章提及从程序中提取流程图,并使用插桩技术实现语 句和分支覆盖率及在多个测试用例驱动下的综合覆盖率的计算和运行时间及内存使用情 况的统计。《基于软件内建自测试的测试用例研究》——《计算机应用与软件》,2006年10期, 唐培,徐拾义。文章描述了在软件测试中将流程图转换为二叉树,然后通过二叉树的遍历, 完成测试。与本专利没有实际的重叠部分。经检索,根据以上提供的相关文章内容,未发现与本专利具有相同技术特点的专 利。
技术实现思路
本专利技术要解决的主要技术问题是,提供一种由流程图自动产生覆盖率代码的方法 及装置。为解决上述技术问题,本专利技术采用的技术方案如下流程图元素包含起止框、输入输出框、判断框、处理框、流程线、连接点、注释框。 其中判断框和处理框是流程图中最常用的两个元素。流程图包括顺序结构、选择结构、循环 结构,选择结构又可以分为二元选择结构和多元选择结构,循环结构又可以分为先执行的 结构和先判断的结构。流程图的层次性表现在一个处理框可以更详细的描述为另一张流程 图。处理框表示的是在整个流程图描述的事件程序中,系统中某一模块做了某种动 作,即module_XXX. do_aCtion_XXX,该动作也表示该模块在执行其负责的某一功能,对各某 块功能的收集是完成功能覆盖率检查的前提。对于被验证的设计在受到激励进入该处理 框表示的处理程序进行相应的处理时,必然会有相应的信号表征这一事件的发生。所以将 模块的每个动作定义对应的事件,即 mod本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种由流程图自动产生覆盖率代码的方法,其特征在于包括 收集处理框中的覆盖点并产生覆盖率代码的方法,以处理框中所描述的系统中各模块在该处理框中执行的动作为功能覆盖点,以对应该动作定义的事件的表征信号作为覆盖条 件,产生覆盖率代码;收集判断框中的覆盖点并产生覆盖率代码的方法,以判断框中所描述的判定条件中的 变量为依据划分的场景作为功能覆盖点,以判定条件中的变量所代表的系统中的參数或模 块动作处理后的结果值作为覆盖条件,产生覆盖率代码;收集组合覆盖点并产生覆盖率代码的方法,以每一条从起始点到终止点路径上出现的 所有判断框中描述的判定条件交叉组合后对应的场景作为功能覆盖点,以判定条件中的变 量取值的交叉组合作为覆盖条件,产生覆盖率代码;收集序列覆盖点并产生覆盖率代码的方法,以每一条从起始点到终止点路径上出现的 所有处理框代表的有序动作序列作为功能覆盖点,以有序动作序列对应的有序事件的表征 信号作为覆盖条件,产生覆盖率代码;收集带约束条件的序列覆盖点并产生覆盖率代码的方法,以每一条从起始点到终止点 路径上出现的所有处理框代表的有序动作序列和其中穿插的判断框代表的判定条件作为 功能覆盖点,以有序动作序列对应的有序事件的表征信号以及判定条件中规定的变量取值 作为覆盖条件,产生覆盖率代码。2.如权利要求1所述的产生覆盖率代码的方法,其特征在于,所述收集处理框中的覆 盖点并产生覆盖率代码的方法包括读取流程图中的所有元素。读取过程从起始点出发,到终止点结束,遍历整张流程图的 所有元素;收集每一个处理框中系统各模块产生的动作; 合并相同模块中相同的动作; 对每一个动作定义一个对应的事件; 收集每一个事件的信号表征描述;以系统各模块的动作所表示的功能作为功能覆盖点,以其被定义的对应事件的表征信 号作为覆盖条件,产生覆盖率代码。3.如权利要求1所述的产生覆盖率代码的方法,其特征在于,所述收集判断框中的覆 盖点并产生覆盖率代码的方法包括读取流程图中的所有元素,读取过程从起始点出发,到终止点结束,遍历整张流程图的 所有元素;收集每一个判断框中的判断条件,判断条件包含系统中的參数或模块动作处理后的结 果值,即判断条件中的变量,以及其可能的取值范围和类型信息;根据判定条件完成场景划分,场景是系统在工作于不同处理步骤时对应的系统參数或 处理结果的值或类型的安排;合并相同变量值或相同变量组合值对应的场景;以每一个被划分的场景所表示的功能作为功能覆盖点,以对应场景判断条件中定义的 变量值或变量的组合值作为覆盖条件,产生覆盖率代码。4.如权利要求1所述的产生覆盖率代码的方法,其特征在于,所述收集组合覆盖点并产生覆盖率代码的方法包括读取流程图中的所有元素,读取过程从起始点出发,到终止点结束,遍历整张流程图的 所有元素;收集每一个判断框中的判断条件,判断条件包含系统中的参数或模块动作处理后的结 果值,即判断条件中的变量,以及其可能的取值范围和类型信息;根据判定条件完成场景划分,场景是系统在工作于不同处理步骤时对应的系统参数或 处理结果的值或类型的安排;按照流程图中每一条从起始点到终止点路径上的判断框出现的顺序,依次将各判断框 中根据判定条件划分的场景交叉组合,形成组合场景表示的功能覆盖点,路径中如果出现 循环,预定循环上限;以每一个组合场景所表示的功能作为功能覆盖点,以对应组合场景判断条件中定义的 变量取值的组合形式作为覆盖条件,产生覆盖率代码。5.如权利要求1所述的产生覆盖率代码的方法,其特征在于,所述收集序列覆盖点并 产生覆盖率代码的方法包括读取流程图中的所有元素,读取过程从起始点出发,到终止点结束,遍历整张流程图的 所有元素;收集流程图中每一条从起始点到终止点路径上的处理框中的动作,路径中如果出现循 环,预定循环上限;对每一个动作定义一个对应的事件;收集每一个事件的信号表征描述;为每一条路径发生的有序动作序列所表示的功能作为功能覆盖点,以其对应的有序事 件序列的表征信号作为覆盖条件,产生覆盖率代码。6.如权利要求1所述的产生覆盖率代码的方法,其特征在于,所述收集带约束条件的 序列覆盖点并产生覆盖率代码的方法包括读取流程图中的所有元素,读取过程从起始点出发,到终止点结束,遍历整张流程图的 所有元素;收集流程图中每一条从起始点到终止点路径上的处理框中的动作,路径中如果出现循 环,预定循环上限;对每一个动作定义一个对应的事件;收集每一个事件的信号表征描述;收集每一条路径上穿插在处理框序列中的判断框,并收集每一个判断框中的判断条件;为每一条路径发生的有序动作序列,以及动作序列中穿插在对应位置的判断条件所表 示的功能作为功能覆盖点,以其对应的有序事件序列的表征信号,以及穿插其中的判定条 件对应的变量值或变量的组合值为覆盖条件,产生覆盖率代码。7.如权利要求1所述的产生覆盖率代码的方法,其特征在于,还包括如果流程图为层 次化流程图,即其中有处理框可以展开成另一张流程图的,在收集覆盖点并产生覆盖率的 代码过程中,可以选择先做展开处理。流程图中如果出现连接点,连接点将流程图连接完 整,再读取。注释框在其注释的处理框和判断框产生覆盖点代码时,以代码中注释行的形式记录到代码中。流程图中如果出现输入输出框,在所述收集覆盖...

【专利技术属性】
技术研发人员:谢峥罗永贵李姮乐宋建龙伍国斌
申请(专利权)人:李姮乐
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1