芯片代码覆盖率交付方法和系统与流程

文档序号:17762378发布日期:2019-05-24 21:48阅读:605来源:国知局
芯片代码覆盖率交付方法和系统与流程

本发明涉及芯片技术,特别是涉及一种芯片代码覆盖率交付方法和系统。



背景技术:

半导体工艺的发展,使我们可以在一个芯片中集成更多的功能。它同时也使ic设计工程师面临新的挑战,他们必须在最短的时间内完成比以前更复杂的设计。在这样一个大规模的ic设计中,设计错误和设计缺陷是不可避免的。这些缺陷可能是不正确的设计规范、错误地理解设计规范、工程师之间的误解以及对情况的考虑不完全等等造成的。因此代码测试中的芯片的代码覆盖率,常常被拿作衡量芯片测试质量重要指标,在经过一系列测试用例的遍历之后,需要通过这些测试用例的代码覆盖率来评估测试的完备性。

当前芯片代码覆盖率交付流程中,通常我们会采用第三方eda工具商提供的代码覆盖率软件进行数据收集、评审和交付,比如synopsys的vcs+verdi,vcs用于收集覆盖率数据,verdi用于数据评审。

然而现有技术存在如下问题:

1,代码覆盖率数据及其评审数据只能保存在某一用户的本地,无法实现多用户共享操作;

2,系统未对原始代码覆盖率数据进行有效过滤,数据量大,带来很多不需要的冗余工作,评审效率低;

3,对于未交付条目需要人工记录,繁琐且容易遗漏;

4,系统不会对未覆盖条目进行合理分类,需要测试人员自行填写。



技术实现要素:

本发明实施例所要解决的技术问题是如何提高代码覆盖率交付效率和评审质量。

为了解决上述的技术问题,本发明实施例提供的技术方案如下:

一种芯片代码覆盖率交付方法,包括:获取芯片代码覆盖率;识别芯片代码中未覆盖条目的排除类别,以及判断芯片代码中未覆盖条目中是否存在非排除类别;存在所述非排除类别时,判断是否存在测试用例缺失;存在测试用例缺失时,添加测试用例测试;不存在时,对所述未覆盖条目分类。

上述的芯片代码覆盖率交付方法中,所述排除类别包括可忽略的标准代码,可识别的常量赋值以及可识别的冗余代码。

上述的芯片代码覆盖率交付方法中,于所述对所述未覆盖条目分类后还包括执行判断所述未覆盖条目中不存在非排除类别。

上述的芯片代码覆盖率交付方法中,于所述添加测试用例测试后,还包括执行所述获取芯片代码覆盖率。

上述的芯片代码覆盖率交付方法中,于所述对所述未覆盖条目分类后,还包括:逐一评审所述未覆盖条目的分类是否合理;如果是,则判定交付通过,否则将所述未覆盖条目放入异议队列。

为了解决上述的技术问题,本发明还公开了一种芯片代码覆盖率交付系统,包括:获取单元,用于获取芯片代码覆盖率;处理单元,用于识别芯片代码中未覆盖条目的排除类别,以及判断芯片代码中未覆盖条目中是否存在非排除类别;以及,存在所述非排除类别时,判断是否存在测试用例缺失;以及,存在测试用例缺失时,添加测试用例测试;不存在时,对所述未覆盖条目分类。

上述的芯片代码覆盖率交付系统中,所述排除类别包括可忽略的标准代码,可识别的常量赋值以及可识别的冗余代码。

上述的芯片代码覆盖率交付方法中,所述处理单元于所述对所述未覆盖条目分类后,还用于执行判断所述未覆盖条目中不存在非排除类别。

上述的芯片代码覆盖率交付方法中,所述处理单元于所述添加测试用例测试后,还用于执行所述获取芯片代码覆盖率。

上述的芯片代码覆盖率交付方法中,所述处理单元于所述对所述未覆盖条目分类后,还用于逐一评审所述未覆盖条目的分类是否合理;如果是,则判定交付通过,否则将所述未覆盖条目放入异议队列。

本发明以一种有后台数据库作为支撑,通过将芯片代码覆盖率原始数据进行预处理,完成对未覆盖条目的标记、过滤、分组,可以以如网页等形式作为数据呈现方式,在交付流程中可实时提交交付结果,显示交付状态,发送未交付条目详细信息,从而有效地提高了代码覆盖率交付效率和评审质量。

附图说明

图1是本发明实施例中芯片代码覆盖率交付方法的流程示意图;

图2是本发明实施例中芯片代码覆盖率交付系统的结构示意图。

具体实施方式

目前在芯片代码覆盖率交付流程中,通常我们会采用第三方eda工具商提供的代码覆盖率软件进行数据收集、评审和交付,比如synopsys的vcs+verdi,vcs用于收集覆盖率数据,verdi用于数据评审。然而现有技术存在诸如,代码覆盖率数据及其评审数据无法实现多用户共享操作,原始代码覆盖率数据未经有效过滤,数据量大,评审效率低,未交付条目需要人工记录,繁琐且容易遗漏,以及未覆盖条目未经合理分类,需要测试人员自行填写等问题。

可见在现有技术中,目前还没有一种可以提高代码覆盖率交付效率和评审质量的方法和装置。

本发明以一种有后台数据库作为支撑,通过将芯片代码覆盖率原始数据进行预处理,完成对未覆盖条目的标记、过滤、分组,可以以如网页等形式作为数据呈现方式,在交付流程中可实时提交交付结果,显示交付状态,发送未交付条目详细信息,从而有效地提高了代码覆盖率交付效率和评审质量。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

实施例1

本发明实施例的一种芯片代码覆盖率交付方法。如图1所示,所述芯片代码覆盖率交付方法可以包括如下步骤:

步骤s101,获取芯片代码覆盖率。

在具体实施中,可以通过synopsys的verilogcompilesimulator(vcs)软件是仿真和验证的软件,支持verilog,systemverilog,openvera,systemc等语言,也有代码覆盖率检测等功能,可以用来收集覆盖率数据。同时,也可以和第三方软件集合使用,例如vera,debussy,specman等等。

步骤s102,识别芯片代码中未覆盖条目的排除类别。

步骤s103,判断芯片代码中未覆盖条目中是否存在非排除类别。

在代码测试中,未覆盖条目通常包括如下类型:

a.测试用例缺失

由于测试环境本身问题(激励的随机性不够,测试用例数目过少等等)导致的的测试用例缺失,所引起某些代码覆盖率条目无法被现有测试用例所覆盖。需要测试人员新增测试用例,或修改已有测试用例的取值范围,从而到达覆盖该未覆盖条目的目的。

b.冗余代码

冗余代码的存在可能导致无论使用多少用例都覆盖到,交付处理的方法一般有以下几种:1)设计人员确认后,删除对应的冗余代码;2)设计人员确认后,代码保持现状,排除该未覆盖条目。

c.逻辑互斥代码:

由于前后级逻辑处理互斥导致的未覆盖条目,需要设计人员确认后,排除该未覆盖条目,完成交付。

d.常量赋值:

当某标量被一直赋值为一个常量时,该条目将无法被覆盖,需要设计人员确认后,排除该未覆盖条目,完成交付。

e.设计假设:

由于设计导致的不可覆盖条目,需要设计人员确认后,排除该未覆盖条目,完成交付。

f.可忽略的标准代码:

设计中实例化调用经过反复验证过的标准代码,该部分代码的覆盖率需要排除到评审之外。

在具体实施中,为了提高代码交付效率,可以通过对上述未覆盖代码类别中的,可忽略的标准代码,可识别的常量赋值以及可识别的冗余代码作识别预处理,从而减少待未覆盖代码条目的评审量,提高代码覆盖率交付的效率。

步骤s104,存在所述非排除类别时,判断是否存在测试用例缺失;

识别芯片代码中未覆盖条目的排除类别后,如果还存在如其他非排除的类别,则是否存在对于非排除类别的测试用例缺失。

步骤s105,存在测试用例缺失时,添加测试用例测试。

步骤s106,不存在时,对所述未覆盖条目分类。

在具体实施中,添加测试用例进行再次测试后,重新返回步骤s101,重新执行获取芯片代码覆盖率,以及后续的步骤。

步骤s107,分类完成。

如果未覆盖条目中不再包含上述的非排除类别,则分类完成。

如图1所示,在具体实施中,对于设置在未覆盖条目分类中的还可以包括步骤s108,逐一评审所述未覆盖条目的分类是否合理。如果是,则判定交付通过,否则将所述未覆盖条目放入异议队列进行评审。

评审主要由设计人员,测试人员参加。测试人员首先对所有未覆盖条目进行合理分类,并且将分类结果提交到后台数据库进行存储。设计人员与测试人员通过交付系统网页形式一同评审所有已分类的未覆盖条目,进行逐条交付,再对存在异议的条目进行标记记录处理。

提交并存储于所述异议列队的条目记录存储在对应的后台数据库中,便于后续查看和对比,且当提交该队列数据时,系统会将队列中的异议条目的详细数据通过邮件的形式提交给测试人员,避免人工记录带来的时间耗费和可能引入的差错。

在评审过程中,系统能够通过网页形式实时的显示当前的评审状态,待评审的条目数,已通过评审的条目数,存在异议的条目数等等。

本实施例由于分类数据将直接提交给后台数据库,所以该流程可以支持多用户针对同一代码覆盖率数据进行操作,针对覆盖率条目较多的交付任务来说,可以支持多用户并行执行,大大地提高整个交付流程的效率。

实施例2

本发明实施例还公开了一种芯片代码覆盖率交付系统。如图2所示,所述芯片代码覆盖率交付系统,包括:获取单元,用于获取芯片代码覆盖率;处理单元,用于识别芯片代码中未覆盖条目的排除类别,以及判断芯片代码中未覆盖条目中是否存在非排除类别;以及,存在所述非排除类别时,判断是否存在测试用例缺失;以及存在测试用例缺失时,添加测试用例测试;不存在时,对所述未覆盖条目分类。

在具体实施中,所述排除类别包括可忽略的标准代码,可识别的常量赋值以及可识别的冗余代码。

在具体实施中,所述处理单元于所述对所述未覆盖条目分类后,还用于执行判断所述未覆盖条目中不存在非排除类别。

在具体实施中,所述处理单元于所述添加测试用例测试后,还用于执行所述获取芯片代码覆盖率。

在具体实施中,所述处理单元于所述对所述未覆盖条目分类后,还用于逐一评审所述未覆盖条目的分类是否合理;如果是,则判定交付通过,否则将所述未覆盖条目放入异议队列。

本发明实施例的一种芯片代码覆盖率交付系统,与本发明实施例的一种芯片代码覆盖率交付系统方法为基于同一发明构思。关于本实施例的具体方案,可以参照第一实施例的相应内容,此处不再赘述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1