一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于形式化验证快速收敛覆盖率的验证方法及装置与流程

2022-02-19 09:22:23 来源:中国专利 TAG:


1.本技术涉及总线验证技术领域,具体而言,涉及一种基于形式化验证快速收敛覆盖率的验证方法及装置。


背景技术:

2.随着soc规模越来越大,amba总线应用已经成为常态。amba总线的验证,通常采用高级验证方法学uvm进行验证,但是,基于uvm的验证方法,在验证至覆盖率较高后,验证效率将会极大的降低,导致覆盖率收敛时间非常长,效率低,例如最后10%的覆盖率需要大概50%的工作量。


技术实现要素:

3.本技术实施例的目的在于提供一种基于形式化验证快速收敛覆盖率的验证方法及装置,用以解决基于uvm的验证方法,在验证至覆盖率较高后,验证效率将会极大的降低,导致覆盖率收敛时间非常长,效率低的问题。
4.本技术实施例提供的一种基于形式化验证快速收敛覆盖率的验证方法,包括:
5.根据dut的设计说明书,创建验证计划;其中,验证计划包括设定要验证的dut行为及对应的预期结果;
6.创建用以描述dut行为的断言或假设;
7.利用形式化验证工具构建形式化验证环境;
8.对能够覆盖的dut行为,利用形式化仿真器穷举输入信号的行为并生成测试激励;
9.在形式化验证环境,通过测试激励对dut行为进行仿真验证的过程中,并运行断言或假设,判断断言或假设的运行结果是否与预期结果一致:若是,则继续验证;若否,则更改验证计划,重新进行验证。
10.上述技术方案中,dut为amba总线的协议转换模块,如ahb2apb模块、axi2ahb模块或axi2apb模块等,其中,ahb2apb模块用于ahb(advanced high performance bus)与apb(advanced peripheral bus)之间的协议转换,axi2ahb模块用于axi(advanced extensible interface)与ahb之间的协议转换,axi2apb模块用于axi与apb之间的协议转换。针对能够覆盖的dut行为,利用形式化仿真器穷举输入信号的行为并生成测试激励,基于统一覆盖率的验证结果分析,如果验证结果达不到要求,将结果反馈给验证计划,使得验证平台更容易建立、覆盖率更容易收敛,通过形式化验证避免了在验证至覆盖率较高后的验证效率降低,缩短了覆盖率收敛时间,提高了验证效率。
11.在一些可选的实施方式中,对能够覆盖的dut行为,利用形式化仿真器穷举输入信号的行为并生成测试激励之前,还包括:
12.确定能够覆盖的dut行为已经被断言或假设全部描述。
13.上述技术方案中,验证方法需要判断断言和假设是否已经描述了全部的dut行为,如果按照目前定义好的断言和假设去做验证,是否已经全面,是否能够真正收敛除无法覆
盖部分的所有覆盖率,分析该部分是否全面,分析的结果是一份能够表示哪些dut部分被覆盖的覆盖率报告,如果断言和假设已经描述了全部的dut行为,则进入下一步,如果断言和假设不能描述全部的dut行为,则需要回到第一步,重新定义验证计划。
14.在一些可选的实施方式中,确定能够覆盖的dut行为已经被断言或假设全部描述之前,还包括:
15.根据编码限制或激励方式,确定能够被覆盖的dut行为。
16.上述技术方案中,在确定能够覆盖的dut行为已经被断言或假设全部描述之前,首先要确定能够被覆盖的dut行为,其中,不能被覆盖的dut行为与因编码限制或激励方式所导致的无法工作的部分dut有关,不能被覆盖的dut行为无需覆盖也无需验证。
17.在一些可选的实施方式中,验证计划还包括:
18.dut行为对应的覆盖率的合格率,覆盖率为dut行为被测试时的被测次数。
19.在一些可选的实施方式中,通过测试激励对dut行为进行仿真验证,还包括:
20.获取能够覆盖的dut行为的覆盖率,并生成覆盖率报告。
21.本技术实施例提供的一种基于形式化验证快速收敛覆盖率的验证装置,包括:
22.创造验证计划模块,用于根据dut的设计说明书,创建验证计划;其中,验证计划包括设定要验证的dut行为及对应的预期结果;
23.创建断言或假设模块,用于创建用以描述dut行为的断言或假设;
24.形式化验证工具,用于构建形式化验证环境;
25.测试激励生成模块,用于对能够覆盖的dut行为,利用形式化仿真器穷举输入信号的行为并生成测试激励;
26.仿真验证模块,用于在形式化验证环境,通过测试激励对dut行为进行仿真验证的过程中,并运行断言或假设,判断断言或假设的运行结果是否与预期结果一致:若是,则继续验证;若否,则更改验证计划,重新进行验证。
27.在一些可选的实施方式中,还包括:
28.第一判断模块,用于确定能够覆盖的dut行为已经被断言或假设全部描述。
29.在一些可选的实施方式中,包括:
30.第二判断模块,用于根据编码限制或激励方式,确定能够被覆盖的dut行为。
31.在一些可选的实施方式中,仿真验证模块,还用于:
32.获取能够覆盖的dut行为的覆盖率,并生成覆盖率报告。
33.本技术实施例提供的一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如以上任一项方法的步骤。
附图说明
34.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
35.图1为基于uvm验证的amba总线验证工作流程图;
36.图2为基于uvm的验证架构示意图;
37.图3为本技术实施例提供的一种基于形式化验证快速收敛覆盖率的验证方法步骤流程图;
38.图4为本技术实施例提供的一种基于形式化验证快速收敛覆盖率的验证方法工作流程图;
39.图5为本技术实施例提供的一种基于形式化验证快速收敛覆盖率的验证装置;
40.图6为本技术实施例提供的另一种基于形式化验证快速收敛覆盖率的验证装置;
41.图7为本技术实施例提供的ahb2apb模块基于形式化验证的验证架构示意图。
42.图标:1

创造验证计划模块,2

创建断言或假设模块,3

形式化验证工具,4

测试激励生成模块,5

仿真验证模块,6

第一判断模块,7

第二判断模块。
具体实施方式
43.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
44.随着soc规模越来越大,amba总线应用已经成为常态。amba总线的验证,采用高级验证方法学uvm进行验证,也已经常态化。
45.请参照图1,图1为基于uvm(universal verification methodology,通用验证方法学)验证的amba总线验证工作流程图,具体包括:首先,根据dut(device under test,被测器件)的设计说明书,创建验证计划。其次,使用uvm组件构建验证环境。然后,构建随机测试用例和直接测试用例,构建时需要使用虚拟序列器。然后是仿真并搜集代码覆盖率和功能覆盖率,并分析未被覆盖的部分,根据轻重缓急,选择是否屏蔽(waive)掉或者改变验证计划。
46.当覆盖率被量化以后,功能覆盖率是最有效的表示了dut执行情况。通常,量化被限定在覆盖率验证计划制定者和覆盖率报告分析者的人为因素。另外一个决定验证质量的因素是自动化检查机制的正确性。计分板检查和断言检查的有效结合保证芯片流片后不再有bug。
47.在总线验证时,dut为amba总线的协议转换模块,如ahb2apb模块、axi2ahb模块或axi2apb模块等。对于ahb2apb模块,即总线ahb到apb桥模块,图2描述了基于uvm的验证架构。
48.请参照图2,图2为基于uvm的验证架构示意图,具体包括:配置组件,根据测试用例的配置信息对验证环境进行配置。虚拟序列发生器,根据测算用例生成对应的虚拟序列。将虚拟序列输入冗余dut接口的配置组件、ahb协议主设备验证组件及apb协议主设备验证组件。ahb协议主设备验证组件与apb协议主设备验证组件通过ahb2apb模块,实现ahb到apb、或者apb到ahb的协议转换。表1描述了使用uvm验证环境所需时间:
49.表1、基于uvm的amba总线验证覆盖率收敛情况
[0050][0051]
表中:最初构建验证环境时间(initial setup)为一周(1w),直接测试用例开发和调试通过(directed tests)需要两周(2w),随机测试用例(random tests)需要一周(1w),收敛覆盖率(coverage closer)需要两周(2w)。共计(overall development time)需要六周。一共5个直接测试用例和100个随机测试用例。最右侧一列覆盖部分占比(overall code coverage)表示总共覆盖的部分(其数值为2634)占总共需覆盖部分(其数值为2864)的比例(即:2634/2864)。没有覆盖部分为两种情况:第一种情况,即是无法覆盖;第二种情况,即是没能覆盖。其中,无法覆盖的部分dut无需覆盖,没能覆盖的部分dut可以在覆盖率报告中排除掉。
[0052]
虽然上述基于uvm的amba总线验证在覆盖率收敛,随机约束等方面很有优势,但是在制定验证架构、环境建立时间和难度、环境复用难度、验证收敛以及覆盖率收敛方面,还存在在验证至覆盖率较高后,验证效率将会极大的降低,导致覆盖率收敛时间非常长,效率低的问题。例如,基于uvm的amba总线验证,在最后10%的覆盖率需要大概50%的工作量。
[0053]
因此,对于amba总线模块,本技术实施例提出一种形式化验证方法。在amba总线的协议转换模块,如ahb2apb模块、axi2ahb模块或axi2apb模块等,采用形式化验证方法,验证平台更容易建立、覆盖率更容易收敛。
[0054]
请参照图3,图3为本技术实施例提供的一种基于形式化验证快速收敛覆盖率的验证方法步骤流程图,包括:
[0055]
步骤100:根据dut的设计说明书,创建验证计划;其中,验证计划包括设定要验证的dut行为及对应的预期结果;
[0056]
步骤200:创建用以描述dut行为的断言或假设;
[0057]
步骤300:利用形式化验证工具构建形式化验证环境;
[0058]
步骤400:对能够覆盖的dut行为,利用形式化仿真器穷举输入信号的行为并生成测试激励;
[0059]
步骤500:在形式化验证环境,通过测试激励对dut行为进行仿真验证的过程中,并运行断言或假设,判断断言或假设的运行结果是否与预期结果一致:若是,则继续验证;若否,则更改验证计划,重新进行验证。
[0060]
本技术实施例的dut为amba总线的协议转换模块,如ahb2apb模块、axi2ahb模块或axi2apb模块等,其中,ahb2apb模块用于ahb与apb之间的协议转换,axi2ahb模块用于axi与ahb之间的协议转换,axi2apb模块用于axi与apb之间的协议转换。针对能够覆盖的dut行
为,利用形式化仿真器穷举输入信号的行为并生成测试激励,基于统一覆盖率的验证结果分析,如果验证结果达不到要求,将结果反馈给验证计划,使得验证平台更容易建立、覆盖率更容易收敛,通过形式化验证避免了在验证至覆盖率较高后的验证效率降低,缩短了覆盖率收敛时间,提高了验证效率。
[0061]
请参照图4,图4为本技术实施例提供的一种基于形式化验证快速收敛覆盖率的验证方法工作流程图。本技术实施例中,对能够覆盖的dut行为,利用形式化仿真器穷举输入信号的行为并生成测试激励之前,还包括:确定能够覆盖的dut行为已经被断言或假设全部描述。
[0062]
本技术实施例的验证方法需要判断断言和假设是否已经描述了全部的dut行为,如果按照目前定义好的断言和假设去做验证,是否已经全面,是否能够真正收敛除无法覆盖部分的所有覆盖率,分析该部分是否全面,分析的结果是一份能够表示哪些dut部分被覆盖的覆盖率报告,如果断言和假设已经描述了全部的dut行为,则进入下一步,如果断言和假设不能描述全部的dut行为,则需要回到第一步,重新定义验证计划。
[0063]
在一些可选的实施方式中,确定能够覆盖的dut行为已经被断言或假设全部描述之前,还包括:根据编码限制或激励方式,确定能够被覆盖的dut行为。
[0064]
本技术实施例,在确定能够覆盖的dut行为已经被断言或假设全部描述之前,首先要确定能够被覆盖的dut行为,其中,不能被覆盖的dut行为与因编码限制或激励方式所导致的无法工作的部分dut有关,不能被覆盖的dut行为无需覆盖也无需验证。
[0065]
在一些可选的实施方式中,验证计划还包括:dut行为对应的覆盖率的合格率,覆盖率为dut行为被测试时的被测次数。
[0066]
在一些可选的实施方式中,通过测试激励对dut行为进行仿真验证,还包括:获取能够覆盖的dut行为的覆盖率,并生成覆盖率报告。
[0067]
请参照图5,图5为本技术实施例提供的一种基于形式化验证快速收敛覆盖率的验证装置,包括:
[0068]
创造验证计划模块1,用于根据dut的设计说明书,创建验证计划;其中,验证计划包括设定要验证的dut行为及对应的预期结果;
[0069]
创建断言或假设模块2,用于创建用以描述dut行为的断言或假设;
[0070]
形式化验证工具3,用于构建形式化验证环境;
[0071]
测试激励生成模块4,用于对能够覆盖的dut行为,利用形式化仿真器穷举输入信号的行为并生成测试激励;
[0072]
仿真验证模块5,用于在形式化验证环境,通过测试激励对dut行为进行仿真验证的过程中,并运行断言或假设,判断断言或假设的运行结果是否与预期结果一致:若是,则继续验证;若否,则更改验证计划,重新进行验证。
[0073]
请参照图6,图6为本技术实施例提供的另一种基于形式化验证快速收敛覆盖率的验证装置,该装置还包括:
[0074]
第一判断模块6,用于确定能够覆盖的dut行为已经被断言或假设全部描述。
[0075]
在一些可选的实施方式中,包括:
[0076]
第二判断模块7,用于根据编码限制或激励方式,确定能够被覆盖的dut行为。
[0077]
在一些可选的实施方式中,仿真验证模块,还用于:获取能够覆盖的dut行为的覆
盖率,并生成覆盖率报告。
[0078]
请参照图7,图7为本技术实施例提供的ahb2apb模块基于形式化验证的验证架构示意图,ahb2apb模块即总线ahb到apb桥模块,该验证架构具体包括:ahb master vip即ahb主设备abvip(基于断言的验证用ip),apb master vip即apb主设备abvip。该实施例的dut即ahb2apb模块,其包括ahb slave vip、apb slave vip以及冗余dut模块。abvip包含了协议相关的断言和假设,用于检测协议是否正确,同时也实现冗余逻辑的断言用于检查冗余逻辑正确性。回归后生成覆盖率报告。表2描述了形式化验证ahb2apb模块所需时间:
[0079]
表2、基于形式化验证的ahb2apb模块验证覆盖率收敛情况
[0080][0081]
表中:最初构建验证环境时间(initial setup)为一周(1w),确定能够被覆盖的dut行为的时间为一周(1w),确定能够被覆盖的dut行为被全部描述的时间为一周(1w),判断断言或假设的运行结果是否与预期结果一致所需时间为两周(2w),总时间大概为五周。因此,相比基于uvm的验证,使用形式化验证的总线验证缩短了覆盖率收敛时间,提高了验证效率。
[0082]
本技术实施例提供的一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如以上任一项方法的步骤,包括:根据dut的设计说明书,创建验证计划;其中,验证计划包括设定要验证的dut行为及对应的预期结果;创建用以描述dut行为的断言或假设;利用形式化验证工具构建形式化验证环境;对能够覆盖的dut行为,利用形式化仿真器穷举输入信号的行为并生成测试激励;在形式化验证环境,通过测试激励对dut行为进行仿真验证的过程中,并运行断言或假设,判断断言或假设的运行结果是否与预期结果一致:若是,则继续验证;若否,则更改验证计划,重新进行验证。
[0083]
在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0084]
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0085]
再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部
分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0086]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0087]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献