一种基于算法模型的功能覆盖率验证方法及系统与流程

文档序号:32955299发布日期:2023-01-14 16:58阅读:43来源:国知局
一种基于算法模型的功能覆盖率验证方法及系统与流程

1.本发明属于ic验证技术领域,具体涉及一种基于算法模型的功能覆盖率验证方法及系统。


背景技术:

2.ic验证中,特别是在asic芯片,经常会遇到图像处理模块、信号处理模块等的硬件设计实现,此类模块往往有对应的算法模型可以参考。在对这些模块进行验证的过程中,首先需要提取功能点,输出功能列表,以进行功能点覆盖,供后续用例攥写提供目标。而功能点的提取,常规方法如下。
3.验证人员从设计方案文档中提取功能点。由于设计方案文档是人为编写的,其常见功能点大概率会提及,但有一些功能点比较隐晦,比如异常处理的细节和各种条件组合的场景等,就可能在文档描述中不够明确,在验证人员提取功能点的过程中,考虑到验证人员自身的能力水平或对所验证模块的理解程度,可能会出现遗漏的情况。
4.因此,由于功能点隐晦验证人员很难提取到和人员操作存在遗漏功能点,功能点提取不充分,导致功能覆盖率低的问题,存在相应风险。


技术实现要素:

5.本发明的目的在于提供一种基于算法模型的功能覆盖率验证方法及系统,用以解决现有技术中由于ic验证功能点提取不充分,导致功能覆盖率低的问题。
6.为解决上述技术问题,本发明所提供的技术方案以及技术方案对应的有益效果如下:
7.本发明的一种基于算法模型的功能覆盖率验证方法,包括以下步骤:
8.1)从算法方案设计文档中提取各功能点,得到第一功能点数据;利用设置在算法模型参考代码中的脚本收集各条件路径对应的功能点,得到第二功能点数据;
9.2)分别对第一功能点数据和第二功能点数据进行功能点描述,对应的得到第一功能点描述数据和第二功能点描述数据;
10.3)依据第一功能点描述数据编写用例,得到仿真用例;
11.4)利用所述仿真用例进行仿真验证,得到仿真结果;所述仿真结果包括功能覆盖率和未覆盖功能点提示信息;
12.5)判断功能覆盖率是否达到设定阈值,若未达到设定阈值,则将未覆盖功能点提示信息与第二功能点描述数据中数据进行匹配,得到未覆盖的功能点;
13.6)依据功能需求,将缺失的功能点补充至第一功能点描述数据,重复执行步骤4)至步骤5),直到功能覆盖率达到设定阈值。
14.上述技术方案的有益效果为:本发明通过在算法模型参考代码中,设置了用于收集各条件路径对应的功能点的脚本,得到第二功能点数据。由于算法模型中的代码本身就可以体现其功能特性,所以可以在算法模型代码中各条件路径进行标记,并收集各算法功
能,由此收集得到比较隐晦的功能点。然后再结合依据从算法方案设计文档中提取的各功能点对应的仿真用例进行仿真验证,得到仿真结果;通过仿真结果分析,将从中得到未覆盖的功能点信息与第二功能点数据对应的描述进行匹配,得到该遗漏的功能点,即得到覆盖全面的、充分的功能点。然后将该遗漏的功能点转化成仿真用例,以进一步仿真验证,有助于提高功能覆盖率。由此解决了现有技术中ic验证功能点提取不充分,导致的功能覆盖率低的问题。
15.进一步地,步骤1)中采用数组收集各条件路径对应的功能点。
16.进一步地,步骤2)中采用systemverilog的covergroup特性对第一功能点数据和第二功能点数据进行功能点描述。
17.进一步地,所述设定阈值为100%。
18.本发明提供的一种基于算法模型的功能覆盖率验证系统,该系统包括功能点收集模块、功能点描述模块、仿真验证模块和结果分析模块;
19.所述功能点收集模块用于在算法模型参考代码中收集各条件路径对应的功能点,得到第二功能点数据,还用于收集从算法方案设计文档中提取的各功能点,记为第一功能点数据;
20.所述功能点描述模块用于分别对第一功能点数据和第二功能点数据进行功能点描述,对应的得到第一功能点描述数据和第二功能点描述数据;
21.所述仿真验证模块用于接收依据第一功能点描述数据编写的仿真用例,并且利用所述仿真用例进行仿真验证,得到仿真结果;所述仿真结果包括功能覆盖率和未覆盖功能点提示信息;
22.所述结果分析模块用于依据仿真结果判断功能覆盖率是否达到设定阈值,若未达到设定阈值,则将未覆盖功能点提示信息与第二功能点描述数据中数据进行匹配,得到未覆盖的功能点;依据功能需求,将缺失的功能点补充至第一功能点描述数据。
23.进一步地,所述功能点收集模块采用数组收集各条件路径对应的功能点。
24.进一步地,所述功能点描述模块为systemverilog的covergroup。
25.进一步地,结果分析模块所述设定阈值为100%。
附图说明
26.图1是本发明的一种基于算法模型的功能覆盖率验证方法流程图。
具体实施方式
27.本发明提出一种基于算法模型的功能覆盖率验证方法,此方法通过在现有算法参考模型的代码中收集各条件路径对应的功能点,得到第二功能点数据,作为从设计文档提取得到的第一功能点数据的核查与补充。由于算法模型中的代码本身就可以体现其功能特性,所以在算法参考模型代码中对进行标记收集,可以得到更全面的功能点。分别对第一功能点数据和第二功能点数据进行描述,对应得到第一功能点描述数据和第二功能点描述数据,最后对依据第一功能点描述数据编写的仿真用例进行仿真验证,依据得到的仿真结果对功能覆盖率进行分析,检查功能覆盖率是否达到设定阈值,若否,则将仿真结果与第二功能点描述数据进行匹配,得到未覆盖的功能点,并补充相应的仿真用例,从而达到功能覆盖
的验证目的。
28.为了使本发明的目的、技术方案及优点更加清楚明了,以下结合附图及实施例,对本发明进行进一步详细说明。
29.方法实施例:
30.本发明的一种基于算法模型的功能覆盖率验证方法的实施例,本实施例中,该方法运用于验证平台上。
31.下面结合图1对本发明的具体步骤作进一步的说明:
32.步骤1,验证前期从算法方案设计文档中提取功能点,输出功能列表1,功能列表1也称作第一功能点数据。
33.该步骤可以验证人员手动完成,最后输出的功能列表,需要相关人员进行评审,以查缺补漏,相互补充。也可以采用计算机完成,采用计算机完成时,需设定提取规则,根据提取规则,通过语义识别提取,比如,采用关键词进行对比匹配的方式进行提取。
34.步骤2,在算法模型参考代码中,将所有条件路径对应的功能点进行功能点收集,形成功能列表2,功能列表2也称作第二功能点数据,输出给验证平台。
35.该步骤属于验证平台自动完成,验证人员只需在算法模型参考代码中创建一个数组,并在所有条件路径里设置脚本进行功能点收集,最后将该功能点数组输出给验证平台。
36.步骤3,通过systemverilog的covergroup对功能列表1以及功能列表2分别进行功能点描述,以得到对应的功能列表描述1(第一功能点描述数据)和功能列表描述2(第二功能点描述数据)。
37.该步骤中,功能列表1跟功能列表2可能有交集部分,而功能列表2主要是为了提供功能列表1所没有的部分,从而帮助功能列表1查漏补缺,对功能覆盖率的可靠性进一步提升。该步骤是功能覆盖率的统计基础,所以必须提供功能列表1与功能列表2的功能点合集。
38.步骤4,利用功能列表1进行用例编写或补充用例。
39.该步骤中对功能列表1中的每一个功能点,通过代码进行相应的仿真用例编写,并依据仿真用例进行仿真验证,得到仿真结果。仿真结果包括功能覆盖率和未覆盖功能点提示信息。其中,功能列表1依据后续的仿真结果分析内容随时补充更新,相应的用例也要补充更新。
40.步骤5,功能覆盖率收集,并分析功能覆盖率是否到达100%,若否,则要分析其未覆盖的功能点,并提取出来,添加到功能列表1中,重复步骤4与5,直至功能覆盖率达到100%。本实施例中,功能覆盖率对应的设定阈值为100%。
41.具体分析时,依据仿真结果中未覆盖功能点提示信息与功能列表描述2中功能点进行匹配,得到与之匹配的功能点描述。该匹配操作可以通过语义对比相匹配,也可以通过人工对比匹配。
42.该步骤主要是为了检查功能列表2中是否存在功能列表1所没有的功能点,这些功能点比较隐晦,比如异常处理或各种条件组合场景等,需要不断从仿真结果分析中提取该隐晦功能点并完善至仿真用例中,由此实现对功能覆盖率的验证。
43.本发明通过在算法模型参考代码中,设置了用于收集各条件路径对应的功能点的脚本,得到第二功能点数据。由于算法模型中的代码本身就可以体现其功能特性,所以可以在算法模型代码中各条件路径进行标记,并收集各算法功能,由此收集得到比较隐晦的功
能点。然后再结合依据从算法方案设计文档中提取的各功能点对应的仿真用例进行仿真验证,得到仿真结果;通过仿真结果分析,将从中得到未覆盖的功能点信息与第二功能点数据对应的描述进行匹配,得到该遗漏的功能点,即得到覆盖全面的、充分的功能点。然后将该遗漏的功能点转化成仿真用例,以进一步仿真验证,有助于提高功能覆盖率。
44.该方法弥补人为提取功能点的不足,从算法代码出发,验证平台自动遗漏的功能点进行补充,以便跟已有的功能列表相互相成,从而不断的完善功能覆盖点。该方法比常规方法更加充分的收集功能点,完善功能覆盖率,促使验证更加充分。由此解决了现有技术中ic验证功能点提取不充分,导致的功能覆盖率低的问题。
45.系统实施例:
46.本发明的一种基于算法模型的功能覆盖率验证系统实施例,该系统包括功能点收集模块、功能点描述模块、仿真验证模块和结果分析模块;
47.功能点收集模块用于在算法模型参考代码中收集各条件路径对应的功能点,得到第二功能点数据,还用于收集从算法方案设计文档中提取的各功能点,记为第一功能点数据;
48.功能点描述模块用于分别对功能点收集模块收集的第一功能点数据和第二功能点数据进行功能点描述,对应的得到第一功能点描述数据和第二功能点描述数据;
49.仿真验证模块用于接收依据第一功能点描述数据编写的仿真用例,并且利用仿真用例进行仿真验证,得到仿真结果;仿真结果包括功能覆盖率和未覆盖功能点提示信息;结果分析模块用于依据仿真结果判断功能覆盖率是否达到设定阈值,若未达到设定阈值,则将未覆盖功能点提示信息与第二功能点描述数据中数据进行匹配,得到未覆盖的功能点;依据功能需求,将缺失的功能点补充至第一功能点描述数据。该系统具体的验证功能覆盖率的方法如方法实施例中一种基于算法模型的功能覆盖率验证方法一致,具体已在方法实施例中详细介绍,故此处不再赘述。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1