CN115168241B - 一种基于组合功能覆盖率的测试方法和系统 - Google Patents
一种基于组合功能覆盖率的测试方法和系统 Download PDFInfo
- Publication number
- CN115168241B CN115168241B CN202211093127.3A CN202211093127A CN115168241B CN 115168241 B CN115168241 B CN 115168241B CN 202211093127 A CN202211093127 A CN 202211093127A CN 115168241 B CN115168241 B CN 115168241B
- Authority
- CN
- China
- Prior art keywords
- value
- random
- coverage rate
- combination
- combined
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于组合功能覆盖率的测试方法和系统,本发明涉及芯片验证、软件测试等技术领域。方法包括根据验证需求,构建组合功能覆盖率,并将组合功能覆盖率直接作为随机约束以产生随机激励;分别为组合功率覆盖率结构中每个变量的取值范围设置随机种子;根据组合功率覆盖率结构中总的场景数按顺序或随机产生一个取值段组合;根据产生的取值段组合及其对应的随机种子,产生相应的随机激励以进行当前场景测试;重复执行随机激励产生以及场景测试,直到完成所有场景测试。本发明通过将功能覆盖率的定义直接作为随机约束,大大降低了编程工作量,同时结合随机测试算法,可快速实现功能覆盖率目标。
Description
技术领域
本发明涉及芯片验证、软件测试等技术领域,具体涉及一种基于组合功能覆盖率的测试方法和系统。
背景技术
在芯片验证中,为了保证芯片的质量,需要进行大量的场景分析,以期各种场景都能被覆盖到,便于量化统计覆盖率的达成情况。这种覆盖率被定义为功能覆盖率(FunctionCoverage)。
在功能覆盖率被定义之后,采用随机测试方法(Random Test)和直接/定向测试方法(Direct Test),对随机数据进行功能覆盖率的统计,得出覆盖率的结果。
现有基于功能覆盖率的测试技术主要包括以下两类:
现有技术1:例如针对一个简单的场景,由两个变量因素x和y决定,通过SystemVerilog语言进行定义,其采用covergroup – coverpoint – bins – cross的语法结构来定义组合功能覆盖率(cross coverage),代码如下:
covergroup cg(ref rand_data inst);
a: coverpoint inst.x
{
bins a1 = { [0:63] };
bins a2 = { [64:127] };
bins a3 = { [128:191] };
bins a4 = { [192:255] };
}
b: coverpoint inst.y
{
bins b1 = { 0 };
bins b2 = { [1:84] };
bins b3 = { [85:169] };
bins b4 = { [170:255] };
option.weight = 2;
}
c: cross inst.x, inst.y;
endgroup
其中,cg(ref rand_data inst)中的参数inst是“随机数据集”的实例,这个“随机数据集”在后面定义。变量x和y的理论取值范围为0-255。定义这两个变量的组合覆盖率,需要先定义covergroup覆盖率组cg;然后在其内部定义两个coverpoint覆盖率点a和b,分别对应变量x和y;再针对覆盖率点a和b,分别定义多个bins覆盖率仓;定义cross组合覆盖率,对应变量x和y,使用覆盖率点a和b的覆盖率仓来进行组合,一共定义了16种需要覆盖率的组合。
option.weight = 2;语句用于设置权重,用于统计功能覆盖率计算。
为了达到以上的组合覆盖,使用随机约束constraint来实现,代码如下:
class rand_data;
rand bit[7:0] x;
rand bit[7:0] y;
constraint x_c
{
x inside {[0:63], [64:127], [128:191], [192:255] };
}
constraint y_c
{
y inside {0, [1:84], [85:169], [170:255] };
}
endclass
通过以上定义后,实例化一个随机对象_inst和一个组合覆盖率对象cg_inst。rand_inst随机对象调用randomize()函数产生一组随机数据,组合覆盖率对象cg_inst调用sample()函数即可完成组合覆盖率数据的收集,代码如下:
module test;
rand_data rand_inst = new();
cg cg_inst = new(rand_inst);
initial begin
repeat(16) begin
rand_inst.randomize();
cg_inst.sample();
end
end
endmodule
通过上述分析可知,现有技术主要包括:定义组合功能覆盖率目标,定义随机约束产生相应的随机激励,对随机数据进行收集,得到功能覆盖率数据。
现有技术2:首先定义需要测试的覆盖对象object,和现有技术1的coverpoint对应;然后再定义object的组合testcase,和现有技术1的covergroup对应;最后通过keep约束实现testcase的覆盖,和现有技术1的constraint对应。现有技术2中仍然是将covergroup组合覆盖率目标与constraint随机约束两者单独分别定义和实现。现有技术2主要是对随机约束定义进行了改进,其将随机约束定义方式直接重复covergroup组合覆盖率目标定义,同时为了提升测试效率,提出了正交随机激励产生方法,其以正交表为基础,根据cross组合的“形状”(由每个object的长度大小决定),通过“查找算法”、“涨算法”和“凑算法”,找到组合中的正交因子进行优先产生,作为优先覆盖的目标,并赋予最高的覆盖率权重,其他因子作为次要覆盖目标随机产生。
众所周知,功能覆盖率和随机约束是两套独立的系统,功能覆盖率只定义目标,随机约束负责实现功能覆盖率目标,两者没有关联闭环,需要人工通过大量编程施加随机约束来实现功能覆盖率目标。因此,现有技术中,covergroup定义的是组合覆盖率目标,constraint随机约束(keep随机约束)是实现目标的手段。两者单独分别定义和实现,存在如下缺点:
(1)采用covergroup-coverpoint-bins的定义功能覆盖率,步骤繁琐,为了编译器的需要,输入大量的额外信息,有效信息密度低,编程工作量大。
(2)设置权重weight只针对covergroup、coverpoint、cross,且仅仅用于覆盖率数据的计算;对bins不能设置权重,权重设置没有真正达到验证的目的。
(3)功能覆盖率定义和随机约束分离,彼此没有关联。为了实现覆盖率covergroup定义的组合覆盖率,需要定义复杂的constraint随机约束,比如:集合、权重定义(基本是coverpoint-bins的重复定义),表达式(使用关系操作符>, >=, <, <=, ==)、条件约束(if…else)等,导致编程工作量大。
(4)没有针多个随机变量的组合约束,只能通过复杂的语法进行编程实现多个变量的组合约束,因而无法实现完全命中,需要增加仿真验证时间,导致测试效率低。变量x、y的约束即使和组合覆盖率定义得完全一致,也无法完全命中x、y的16种组合情况,常见的情况是某些组合反复被命中,有些组合始终无法命中。改进的做法是增加随机激励产生的次数(将重复次数从16增加到32),或者更改随机数种子,这无疑会增加仿真验证的时间。即使这样,也无法保证所有的组合就能完全命中。而现有技术2虽然为了提高效率,改进了随机约束定义方式以及随机测试算法,然而其仍然无法达到100%覆盖率。
发明内容
为了解决现有功能覆盖率测试技术存在编程工作量大、测试效率低等问题,本发明提供了一种基于组合功能覆盖率的测试方法。本发明通过将功能覆盖率的定义直接作为随机约束,从而使得随机约束和功能覆盖率不再是独立的系统,减少了施加随机约束相关的编码工作,大大降低了编程工作量,同时结合随机测试算法,可快速实现功能覆盖率目标。
本发明通过下述技术方案实现:
一种基于组合功能覆盖率的测试方法,包括:
根据验证需求,构建组合功能覆盖率,并将组合功能覆盖率直接作为随机约束以产生随机激励;
分别为组合功率覆盖率结构中每个变量的取值范围设置随机种子;
根据组合功率覆盖率结构中总的场景数按顺序或随机产生一个取值段组合;
根据产生的取值段组合及其对应的随机种子,产生相应的随机激励以进行当前场景测试;
判断是否执行完组合功率覆盖率结构中的所有场景测试,如果否则返回执行根据组合功率覆盖率结构中总的场景数按顺序或随机产生一个取值段组合步骤。
作为优选实施方式,本发明构建的组合功率覆盖率结构为嵌套的三级结构,由外至内依次为第一级、第二级和第三级;
其中,第一级采用大括号“{}”表示涉及的内部变量及其组合;
第二级采用中括号“[ ]”表示每个变量的所有取值段;
第三级采用中括号“[ ]”表示每个取值段的取值范围。
作为优选实施方式,本发明的第一级包括至少一个变量。
作为优选实施方式,本发明中每个取值段的取值范围包括两种类型,一种是单个的数值,即取值范围的上下限为同一个值;另一种为采用上下限的取值范围,即取值范围的上下限为不同的值。
作为优选实施方式,本发明当取值范围为单个的数值时,中括号“[ ]”省略。
作为优选实施方式,本发明的第三级还包括在每个取值范围的中括号“[ ]”后增加“*weight”,其中,weight表示权重,权重用于表征其对应的取值重复次数。
作为优选实施方式,本发明的根据组合功能覆盖率结构的总的场景数按顺序或随机产生一个取值段组合,具体为:
一个组合功能覆盖率结构的总的场景数为N= N1 * N2 * … * Nn,其中,n表示变量的个数,Ni(i=1,2,…,n)表示第i个变量的取值段数量;
如果按顺序产生一个取值段组合,则按照场景数N顺序组合,遇到权重则按权重重复;
如果随机产生一个取值段组合,则首先按照场景数N产生N个覆盖组合功能覆盖率结构中所有场景的取值段组合,然后在N个取值段组合中随机产生一个取值段组合,且每次产生的取值段组合不重复。
作为优选实施方式,本发明的根据产生的取值段组合及其对应的随机种子,产生相应的随机激励,具体为:
根据取值段组合中每个变量的取值范围,如果为单一的数值,则直接返回该值作为随机激励;如果为一个数值范围,则根据其对应设置的随机种子,产生出在该数值范围内的一个随机值作为随机激励,一个变量获取一个随机值。
另一方面,本发明提出了一种基于组合功能覆盖率的测试系统,包括:
构建模块,根据实际验证需求,构建组合功能覆盖率,并将组合功能覆盖率直接作为随机约束以产生随机激励;
随机种子确定模块,分别为组合功率覆盖率结构中每个变量的取值范围设置随机种子;
组合模块,根据组合功能覆盖率结构的总的场景数按顺序或随机产生一个取值段组合;
测试模块,根据产生的取值段组合及其对应的随机种子,产生相应的随机激励以进行测试。
作为优选实施方式,本发明的组合模块包括顺序组合单元和随机组合单元;
其中,顺序组合单元根据组合功能覆盖率结构的总的场景数,按顺序产生一个取值段组合;
随机组合单元首先产生覆盖组合功能覆盖率结构的所有场景的取值段组合,然后在所有取值段组合中随机产生一个取值段组合,且每次产生的取值段组合不重复。
本发明具有如下的优点和有益效果:
1、本发明将功能覆盖率目标直接作为随机约束来产生随机激励,一方面省去了大量的随机约束相关编码工作,大大减少了编码工作量,提升了编码效率;另一方面,可实现随机数据直接命中目标,特别是一次性命中组合目标,弥补了现有技术没有组合约束的功能。
2、相较于传统的功能覆盖率目标定义,本发明采用简化的功能覆盖率目标定义结构,实现单个变量或多变量组合功能覆盖率目标定义,改进了人机交互水平,省去2/3的编码工作量。特别是在实际验证过程中,需要定义的功能覆盖率目标成百成千,编码工作量节省巨大。
3、相较于现有技术仅能对coverpoint、cross、covergroup设置整体权重,只有计算总体覆盖率数据的意义,并不能反映验证需求,本发明采用的结构同时还能对bins设置权重,使其更加符合实际验证需求。
4、本发明还能够实现随机测试和直接测试的统一,其中,单个取值是直接测试,一个取值范围是随机测试。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明实施例的方法流程示意图。
图2为本发明实施例的计算机原理框图。
图3为本发明实施例的系统原理框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
现有基于功能覆盖率的随机测试技术,由于功能覆盖率目标和随机约束分别独立定义和实现,导致编程工作量大,且测试效率低,无法达到100%覆盖等问题,本发明实施例提出了一种基于组合功能覆盖率的测试方法,本发明实施例提出的随机测试方法采用新的结构定义功能覆盖率,同时将功能覆盖率的定义直接作为随机约束,从而省略了随机约束定义和实现相关的编码工作,大大减轻了相关人员的编码工作量,并实现相关的随机测试算法,高效实现组合功能覆盖率的目标。
具体如图1所示,本发明实施例提出的测试方法主要包括如下步骤:
步骤1,根据验证需求,构建组合功能覆盖率,并将组合功能覆盖率直接作为随机约束以产生随机激励。
本发明实施例中,构建的组合功能覆盖率结构为嵌套的三级结构,由外至内依次为第一级、第二级和第三级;其中第一级采用大括号“{}”表示涉及的内部元素(coverpoint)及其组合(cross),其内部可以包括至少一个coverpoint元素(或变量)。本发明实施例采用的功能覆盖率结构将coverpoint和cross合并统一归为一类,单个元素的cross组合即为coverpoint,即coverpoint是cross组合的一个特例,并且可省略coverpoint、cross等关键字;第二级采用中括号“[ ]”来实现,表示每个内部元素coverpoint的所有取值段bins,可以采用整数(包括负整数、零、正整数)来定义变量的取值段;第三级采用中括号“[ ]”来实现,表示单个取值段的取值范围,主要包括两种类型:第一种是单个的数值,也可以称之为数值范围中的一种特例,即数值范围的上下限均为同一值,中括号可省略,第二种是有上下限的数值范围,中括号不可省略。
bins是对一个变量的分段取值,在芯片验证领域,其取值有三种类型:
1、边界值:比较关键的单个值或范围,比如:0,1, 255,[63, 65]。
2、典型值:典型值一般有多个值,每个值的作用一样,命中任何其中一个即可。这样的典型值可以定义一个范围,随机命中即可,比如:[2, 254]。
3、错误值:比如超出范围的值或范围,比如被除数为0,256,[256, 511]。错误值属于异常测试,用于可靠性、健壮性测试。
本发明实施例将功能覆盖率目标定义直接作为随机约束以产生随机激励进行随机测试,从而节省了随机约束相关编码工作,同时本发明实施例采用的功能覆盖率目标结构相较于现有的功能覆盖率目标结构更加简化,能够将编码工作降低80%以上。
本发明实施例的功能覆盖率结构中第三级还采用“*weight”对bins设置权重,weight >= 0,权重用于表示其对应的bins重复次数。
相较于现有技术仅对整体进行权重设置以用于覆盖率数据的计算,本发明实施例可直接对bins进行权重设置,其更加符合实际验证需求。
本发明实施例以一个具体示例对功能覆盖率结构进行详细说明。
该示例定义了两个变量的情况,但是并不对此进行限定,在另外的优选实施例中,可以支持1个变量和多个变量的组合。具体代码如下:
cross c1 = {
// 变量 x
[[0, 63] * 2, [64, 127], [128, 191], [192, 255]],
// 变量 y
[0 * 3, [1, 84], [85, 169], [170, 255]]
}
根据上述定义可知,该示例为包括变量x和变量y的2个变量及其组合情况,其中,变量x有5个取值段,变量y有6个取值段,两者组合共5x6=30种情况。如果其中5种情况覆盖到了,则覆盖率为5/30=16.7%。
步骤2,分别为组合功率覆盖率结构中每个变量的取值范围设置随机种子。
本发明实施例通过设置随机种子,用于后续随机激励的产生,随机种子的设置用于保证每次测试用的随机激励能够复现。
步骤3,根据组合功能覆盖率结构的总的场景数按顺序或随机产生一个取值段组合。
本发明实施例中,一个组合功能覆盖率结构的总的场景数为N= N1 * N2 * … *Nn,其中,n表示变量的个数,Ni(i=1,2,…,n)表示第i个变量的取值段数量。
如果采用按顺序产生一个取值段组合的方式,即按组合顺序进行组合穷举即可,遇到权重则按权重重复。以本发明实施例上述采用的组合功率覆盖率结构示例为例进行说明,即第一次组合为:[[0, 63],0],第二次组合为:[[0, 63],0],第三次组合为:[[0, 63],0],第四次组合为:[[0, 63], [1, 84]],以此类推,第30次组合为:[[192, 255], [170,255]]。
如果采用随机产生一个取值段组合的方式,则首先获取N个取值段组合,且N个取值段组合覆盖该组合功能覆盖率结构中所有场景,即N个取值段组合不重复,实现cross组合的100%覆盖。然后在N个取值段组合中随机产生一个取值段组合,且每次产生的取值段组合与之前产生的取值段组合不重复。
步骤4,根据产生的取值段组合及其对应的随机种子,产生相应的随机激励以进行当前场景测试。
本发明实施例根据取值段组合中每个变量的取值范围,如果其为单一的数值,则直接返回该值作为随机激励,如果是一个数值范围,则根据已设置的随机种子,产生出在该数值范围内的一个随机值作为随机激励,一个变量获取一个随机值。
步骤5,判断是否完成组合功能覆盖率结构中的所有场景测试,如果是则输出测试结果,否则返回执行步骤3。
相较于传统的测试技术,本发明实施例通过将组合功能覆盖率目标结构直接作为随机约束,并在随机激励产生过程中,保证组合功能覆盖率中组合100%覆盖,从而可以快速高效的实现组合功能覆盖率目标,且覆盖率达到100%。
本发明实施例以上述采用的组合功能覆盖率结构示例为例进行详细说明,将步骤3中的直接组合方式封装为directCross ()函数,将步骤3中的随机组合方式封装为random()函数,通过调用directCross ()函数或random()函数30次,即可产生5x6=30组x和y的随机数据,并可以完全命中所有的组合情况。其代码具体为:
list<int> rand_data
int i
for i [1, 30, 1]:
rand_data = c1.directCross() // 直接组合方式
list<int> rand_data
int i
for i [1, 30, 1]:
rand_data = c1.random() // 随机组合方式
本发明实施例中将随机测试(Random Test)和直接测试(Direct Test)统一,两者之间的唯一区别在于产生的随机数据是单个的固定值,还是在一个数值范围内的任意随机值。
在cross数据结构中,[1, 100]表示的是取值范围,25或[25, 25]表示的是单个的固定值。两者在形式上是统一的,可以将固定值看作是取值范围的一个特例。这样只需改变取值范围的起止数据的大小,即可实现随机测试和直接测试的统一。
本实施例还提出了一种计算机设备,用于执行本实施例的上述方法。
具体如图2所示,计算机设备包括处理器、内存储器和系统总线;内存储器和处理器在内的各种设备组件连接到系统总线上。处理器是一个用来通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。内存储器是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。系统总线可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器和内存储器可以通过系统总线进行数据通信。其中内存储器包括只读存储器(ROM)或闪存(图中未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作系统和计算机程序的主存储器。
计算机设备一般包括一个外存储设备。外存储设备可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机设备访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机设备访问的任何其它介质。
计算机设备可在网络环境中与一个或者多个网络终端进行逻辑连接。网络终端可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机设备通过网络接口(局域网LAN接口)与网络终端相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi和双绞线布线以太网是最常用的构建局域网的两种技术。
应当指出的是,其它包括比计算机设备更多或更少的子系统的计算机系统也能适用于发明。
如上面详细描述的,适用于本实施例的计算机设备能执行基于组合功能覆盖率的测试方法的指定操作。计算机设备通过处理器运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备或者通过局域网接口从另一设备读入到存储器中。存储在存储器中的软件指令使得处理器执行上述的群成员信息的处理方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本实施例并不限于任何特定硬件电路和软件的组合。
实施例2
本发明实施例提出了一种基于组合功能覆盖率的测试系统,如图3所示,本发明实施例的测试系统包括:
构建模块,根据实际验证需求,构建组合功能覆盖率,并将组合功能覆盖率直接作为随机约束以产生随机激励。本发明实施例构建的组合功率覆盖率结构与上述实施例1相同,此处不再赘述。
随机种子确定模块,分别为组合功率覆盖率结构中每个变量的取值范围设置随机种子。
组合模块,包括顺序组合单元和随机组合单元,其中顺序组合单元根据组合功能覆盖率结构的总的场景数按顺序产生一个取值段组合,随机组合单元根据组合功能覆盖率结构的总的场景数随机产生一个取值段组合。
测试模块,根据产生的取值段组合及其对应的随机种子,产生相应的随机激励以进行测试。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于组合功能覆盖率的测试方法,其特征在于,包括:
根据验证需求,构建组合功能覆盖率,并将组合功能覆盖率直接作为随机约束以产生随机激励;
分别为组合功率覆盖率结构中每个变量的取值范围设置随机种子;
根据组合功率覆盖率结构中总的场景数按顺序或随机产生一个取值段组合;
根据产生的取值段组合及其对应的随机种子,产生相应的随机激励以进行当前场景测试;
判断是否执行完组合功率覆盖率结构中的所有场景测试,如果否则返回执行根据组合功率覆盖率结构中总的场景数按顺序或随机产生一个取值段组合步骤;构建的组合功率覆盖率结构为嵌套的三级结构,由外至内依次为第一级、第二级和第三级;
其中,第一级采用大括号“{}”表示涉及的内部变量及其组合;
第二级采用中括号“[ ]”表示每个变量的所有取值段;
第三级采用中括号“[ ]”表示每个取值段的取值范围;
根据组合功能覆盖率结构的总的场景数按顺序或随机产生一个取值段组合,具体为:
一个组合功能覆盖率结构的总的场景数为N= N1 * N2 * … * Nn,其中,n表示变量的个数,Ni(i=1,2,…,n)表示第i个变量的取值段数量;
如果按顺序产生一个取值段组合,则按照场景数N顺序组合,遇到权重则按权重重复;
如果随机产生一个取值段组合,则首先按照场景数N产生N个覆盖组合功能覆盖率结构中所有场景的取值段组合,然后在N个取值段组合中随机产生一个取值段组合,且每次产生的取值段组合不重复;
根据产生的取值段组合及其对应的随机种子,产生相应的随机激励,具体为:
根据取值段组合中每个变量的取值范围,如果为单一的数值,则直接返回该值作为随机激励;如果为一个数值范围,则根据其对应设置的随机种子,产生出在该数值范围内的一个随机值作为随机激励,一个变量获取一个随机值。
2.根据权利要求1所述的一种基于组合功能覆盖率的测试方法,其特征在于,第一级包括至少一个变量。
3.根据权利要求1所述的一种基于组合功能覆盖率的测试方法,其特征在于,每个取值段的取值范围包括两种类型,一种是单个的数值,即取值范围的上下限为同一个值;另一种为采用上下限的取值范围,即取值范围的上下限为不同的值。
4.根据权利要求3所述的一种基于组合功能覆盖率的测试方法,其特征在于,当取值范围为单个的数值时,中括号“[ ]”省略。
5.根据权利要求1所述的一种基于组合功能覆盖率的测试方法,其特征在于,第三级还包括在每个取值范围的中括号“[ ]”后增加“*weight”,其中,weight表示权重,权重用于表征其对应的取值重复次数。
6.一种基于组合功能覆盖率的测试系统,其特征在于,包括:
构建模块,根据实际验证需求,构建组合功能覆盖率,并将组合功能覆盖率直接作为随机约束以产生随机激励;构建的组合功率覆盖率结构为嵌套的三级结构,由外至内依次为第一级、第二级和第三级;
其中,第一级采用大括号“{}”表示涉及的内部变量及其组合;
第二级采用中括号“[ ]”表示每个变量的所有取值段;
第三级采用中括号“[ ]”表示每个取值段的取值范围;
随机种子确定模块,分别为组合功率覆盖率结构中每个变量的取值范围设置随机种子;
组合模块,根据组合功能覆盖率结构的总的场景数按顺序或随机产生一个取值段组合;所述组合模块如果按顺序产生一个取值段组合,则按照场景数N顺序组合,遇到权重则按权重重复;所述组合模块如果随机产生一个取值段组合,则首先按照场景数N产生N个覆盖组合功能覆盖率结构中所有场景的取值段组合,然后在N个取值段组合中随机产生一个取值段组合,且每次产生的取值段组合不重复;其中,N= N1 * N2 * … * Nn,N为一个组合功能覆盖结构的总的场景数,n表示变量的个数,Ni(i=1,2,…,n)表示第i个变量的取值段数量;
测试模块,根据产生的取值段组合及其对应的随机种子,产生相应的随机激励以进行测试,所述测试模块根据取值段组合中每个变量的取值范围,如果为单一的数值,则直接返回该值作为随机激励;如果为一个数值范围,则根据其对应设置的随机种子,产生出在该数值范围内的一个随机值作为随机激励,一个变量获取一个随机值。
7.根据权利要求6所述的一种基于组合功能覆盖率的测试系统,其特征在于,组合模块包括顺序组合单元和随机组合单元;
其中,顺序组合单元根据组合功能覆盖率结构的总的场景数,按顺序产生一个取值段组合;
随机组合单元首先产生覆盖组合功能覆盖率结构的所有场景的取值段组合,然后在所有取值段组合中随机产生一个取值段组合,且每次产生的取值段组合不重复。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211093127.3A CN115168241B (zh) | 2022-09-08 | 2022-09-08 | 一种基于组合功能覆盖率的测试方法和系统 |
PCT/CN2023/088071 WO2024051163A1 (zh) | 2022-09-08 | 2023-04-13 | 一种基于组合功能覆盖率的测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211093127.3A CN115168241B (zh) | 2022-09-08 | 2022-09-08 | 一种基于组合功能覆盖率的测试方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115168241A CN115168241A (zh) | 2022-10-11 |
CN115168241B true CN115168241B (zh) | 2022-11-29 |
Family
ID=83481685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211093127.3A Active CN115168241B (zh) | 2022-09-08 | 2022-09-08 | 一种基于组合功能覆盖率的测试方法和系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115168241B (zh) |
WO (1) | WO2024051163A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168241B (zh) * | 2022-09-08 | 2022-11-29 | 济南新语软件科技有限公司 | 一种基于组合功能覆盖率的测试方法和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992804A (zh) * | 2017-12-29 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 激励生成装置、芯片验证装置及系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101777507A (zh) * | 2010-01-04 | 2010-07-14 | 浪潮电子信息产业股份有限公司 | 一种对复杂控制类芯片的随机测试方法 |
CN102902834B (zh) * | 2011-07-29 | 2015-12-09 | 炬芯(珠海)科技有限公司 | 一种soc芯片的验证方法及系统 |
US8510692B2 (en) * | 2011-09-29 | 2013-08-13 | Lexmark International, Inc. | Verification system and method using constrained random test parameter selection |
CN105279062A (zh) * | 2014-07-24 | 2016-01-27 | 上海华虹集成电路有限责任公司 | 调整随机权重的方法 |
US9514035B1 (en) * | 2014-12-24 | 2016-12-06 | Cadence Design Systems, Inc. | Coverage driven generation of constrained random stimuli |
CN104679634A (zh) * | 2015-03-06 | 2015-06-03 | 浪潮电子信息产业股份有限公司 | 一种用于超大规模芯片仿真的自适应随机验证方法 |
CN107273604B (zh) * | 2017-06-12 | 2020-09-22 | 苏州浪潮智能科技有限公司 | 随机约束可选择的基于覆盖率驱动的随机验证方法 |
CN107704384A (zh) * | 2017-09-14 | 2018-02-16 | 郑州云海信息技术有限公司 | 一种加速芯片功能验证收敛的方法及系统 |
CN109522565A (zh) * | 2017-09-18 | 2019-03-26 | 深圳市中兴微电子技术有限公司 | 一种验证方法、装置及计算机可读存储介质 |
CN109992462B (zh) * | 2017-12-29 | 2020-01-17 | 中科寒武纪科技股份有限公司 | 验证激励生成方法、装置、芯片验证方法及系统 |
US10831961B2 (en) * | 2018-07-14 | 2020-11-10 | Synopsys, Inc. | Automated coverage convergence by correlating random variables with coverage variables sampled from simulation result data |
CN113868987A (zh) * | 2020-06-30 | 2021-12-31 | 澜至电子科技(成都)有限公司 | 一种系统级芯片的验证平台及其验证方法 |
CN111814414A (zh) * | 2020-07-13 | 2020-10-23 | 中国科学院微电子研究所 | 一种基于遗传算法的覆盖率收敛方法及系统 |
CN112084802B (zh) * | 2020-08-12 | 2023-06-02 | 广州芯世物科技有限公司 | 一种rfid标签芯片验证系统 |
US20230376645A1 (en) * | 2020-11-10 | 2023-11-23 | Google Llc | Faster Coverage Convergence with Automatic Test Parameter Tuning in Constrained Random Verification |
CN113297071B (zh) * | 2021-05-14 | 2022-08-19 | 山东云海国创云计算装备产业创新中心有限公司 | 基于uvm功能覆盖率驱动的验证方法、装置及设备 |
CN113868061B (zh) * | 2021-09-29 | 2024-05-28 | 深圳大普微电子科技有限公司 | 芯片验证方法、装置及服务器 |
CN113807046B (zh) * | 2021-10-09 | 2024-05-31 | 中国人民解放军国防科技大学 | 一种测试激励优化回归验证方法、系统及介质 |
CN114492258A (zh) * | 2022-01-25 | 2022-05-13 | 杭州云合智网技术有限公司 | 随机约束和覆盖组同步方法 |
CN115168241B (zh) * | 2022-09-08 | 2022-11-29 | 济南新语软件科技有限公司 | 一种基于组合功能覆盖率的测试方法和系统 |
-
2022
- 2022-09-08 CN CN202211093127.3A patent/CN115168241B/zh active Active
-
2023
- 2023-04-13 WO PCT/CN2023/088071 patent/WO2024051163A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992804A (zh) * | 2017-12-29 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 激励生成装置、芯片验证装置及系统 |
Non-Patent Citations (1)
Title |
---|
罗登富等.基于覆盖率的集成电路验证.《现代电子技术》.2009,(第14期), * |
Also Published As
Publication number | Publication date |
---|---|
CN115168241A (zh) | 2022-10-11 |
WO2024051163A1 (zh) | 2024-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832062B (zh) | 一种程序更新方法及终端设备 | |
Courcoubetis et al. | Markov decision processes and regular events | |
CN115168241B (zh) | 一种基于组合功能覆盖率的测试方法和系统 | |
CN115168240B (zh) | 一种基于变量组合时间序列功能覆盖率的测试方法和系统 | |
CN110830234A (zh) | 一种用户流量分配方法及装置 | |
US5491639A (en) | Procedure for verifying data-processing systems | |
CN112181430B (zh) | 代码变更统计方法、装置、电子设备及存储介质 | |
van Glabbeek et al. | On characterising distributability | |
CN117034821B (zh) | 用于芯片设计前端仿真验证的回归验证方法及介质 | |
CN111475402A (zh) | 程序功能的测试方法及相关装置 | |
Grigni et al. | Monotone separation of logarithmic space from logarithmic depth | |
US20040044508A1 (en) | Method for generating commands for testing hardware device models | |
CN111125996B (zh) | 一种伪随机激励生成器的基于双向约束树指令集实现方法 | |
CN112988215A (zh) | 评价规则的实现与用户数据的评价方法、装置及电子设备 | |
CN106469042B (zh) | 伪随机数的生成方法和装置 | |
CN113568598B (zh) | 基于yosys实现求和运算的FPGA逻辑综合方法及装置 | |
US8954307B1 (en) | Chained programming language preprocessors for circuit simulation | |
CN115292178A (zh) | 测试数据搜索方法、装置、存储介质以及终端 | |
Luccio et al. | A probabilistic simulation of PRAMs on a bounded degree network | |
CN117131824A (zh) | 自动生成芯片设计rtl代码的方法、电子设备和介质 | |
Hálecek et al. | On XAIG rewriting | |
CN114156864B (zh) | 光伏逆变器配置方法、装置、终端及存储介质 | |
CN115378824B (zh) | 模型相似度确定方法、装置、设备及存储介质 | |
CN116090183B (zh) | 一种面向scr需求模型的数字化模拟方法和系统 | |
CN111796975B (zh) | 芯片的随机化验证方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |