激励生成装置的模板库构建方法、芯片验证方法及系统与流程

文档序号:18142492发布日期:2019-07-10 11:13阅读:149来源:国知局
激励生成装置的模板库构建方法、芯片验证方法及系统与流程

本发明涉及验证技术领域,特别是涉及一种激励生成装置的模板库构建方法、装置、芯片验证方法、系统、存储介质及计算机设备。



背景技术:

芯片验证的其中一个目的是检测芯片上运行的程序是否存在bug。在芯片验证时,芯片验证系统的rtl仿真器(registertransferlevelsimulation)和验证模型执行激励生成装置生成的验证激励,输出执行结果,芯片验证系统的处理器根据该输出结果得到覆盖率数据,并根据得到的覆盖率数据是否达到预期判断芯片验证是否终止。覆盖率(coverage)数据是用来评价验证过程与结果的一种量化指标。

目前在使用芯片验证系统进行芯片验证时产生激励的机制包括:

1)基于应用(applicationbased)生成激励:根据需测试的应用程序设置的约束文件(config-file)生成激励。

2)随机(random)生成激励:根据随机产生约束文件(config-file)生成激励。

3)基于模板(templatebase)生成激励:根据激励生成装置模板库中的约束文件(config-file)生成激励。模板库中约束文件包含根据需验证芯片的基本功能点设置的约束文件,以及对覆盖率的提升影响较高的激励对应的约束文件。

芯片验证的基本功能点会随验证的需求(dut/duvdesignundertest/verification)或芯片类型的改变而改变。例如:对于cpu而言,基本功能点可以包括浮点运算,定点运算,任务调度,内存分配,内存管理,数据io。而对于人工神经网络芯片而言,基本功能点可以包括人工神经网络运算(比如卷积运算,矩阵运算,全连接运算),任务调度,内存分配,内存管理,数据io。

一般情形下,芯片验证得到的覆盖率数据涉及的激励越全面,rtl仿真器运行通过的激励越多,该芯片验证的覆盖率也就越高,对应验证的芯片的“保障程度”同样也越高。

在芯片验证时,随着rtl仿真器和验证模型执行的激励数的增多,覆盖率会相应的提升。但是,覆盖率在提升到一定数值后,即使rtl仿真器继续执行激励,覆盖率也难以提升。因此,在进行芯片验证时,如何快速的获取对覆盖率提升影响大的激励便成为亟需解决的技术问题。



技术实现要素:

基于此,本发明提出了一种模板库的构建方法以及芯片验证方法,以实现加速覆盖率收敛,提高芯片验证效率。

一种激励生成装置的模板库构建方法,包括:

对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值;

将所述覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励;

将所述目标激励对应的约束文件添加至激励生成装置的模板库。

一种芯片验证的方法,包括:从上述方法获取的模板库中获取约束文件;按照预设规则对所述约束文件中的约束条件进行调整,得到最终约束条件;

根据所述最终约束条件生成验证激励。

在其中一个实施例中,所述从模板库中获取约束文件的步骤包括:

获取与所述模板库中约束文件对应的覆盖率提升值;

根据所述覆盖率提升值的大小从模板库中获取约束文件。

在其中一个实施例中,根据所述覆盖率提升值从模板库中获取约束文件的步骤包括:根据约束文件对应的覆盖率提升值是否达到提升阈值,选择约束文件。

在其中一个实施例中,根据所述覆盖率提升值从模板库中获取约束文件的步骤包括:根据所述覆盖率提升值的大小对约束文件进行排序,根据排序结果获取约束文件。

在其中一个实施例中,所述按照预设规则对所述约束文件中约束条件进行调整,得到最终约束条件的步骤包括:对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件。

在其中一个实施例中,对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件的步骤包括:对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件。

在其中一个实施例中,对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件的步骤包括:获取顺序扰动参数,根据所述顺序扰动参数对所述指令顺序进行顺序扰动,得到最终约束条件。

在其中一个实施例中,对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件的步骤包括:对所述约束文件中指令域值进行域值扰动,得到最终约束条件。

在其中一个实施例中,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件。

在其中一个实施例中,所述变化值分布选自均匀分布、正态分布、柯西分布、拉普拉斯分布或者逆伽玛分布中的一种。

在其中一个实施例中,根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:获取所述变化值取值范围,在所述变化值的取值范围内对约束文件中指令域值进行域值扰动,得到最终约束条件。

在其中一个实施例中,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:对指令域值进行域值扰动,使指令域值的变化值满足列维分布,得到最终约束条件。

一种芯片验证的方法,包括:从上述方法得到的模板库中获取多个约束文件,并将各所述约束文件中的约束条件拼合,得到最终约束条件;

根据所述最终约束条件生成验证激励,并使用所述验证激励进行芯片验证。

一种激励生成装置,包括:模板库、解析模块、条件调整模块和激励生成模块,

所述模板库,用于存储约束文件。

所述解析模块,用于解析从模板库中获取的所述约束文件,得到约束条件。

所述条件调整模块,用于按照预设规则对所述约束条件进行调整,得到最终约束条件。

所述激励生成模块,用于根据所述最终约束条件生成验证激励

所述模板库构建模块,用于对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值;将各所述覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励;将所述目标激励对应的约束文件添加至激励生成装置的模板库。

一种芯片验证系统,所述芯片验证系统包含上述的验证激励生成装置。一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序处理器执行时,实现上述的方法的步骤。

一种计算机设备,包括存储器、处理器,及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述的方法的步骤。

与传统技术相比,本发明提供的一种激励生成装置的模板库构建方法、装置、芯片验证方法及系统具有如下有益效果:

一种激励生成装置的模板库构建方法、装置、芯片验证方法及系统,通过对芯片验证覆盖率数据的分析得到目标激励,将得到的目标激励对应的约束文件添加至模板库,进行模板库构建。由于目标激励对芯片验证的覆盖率提升贡献达到了期望,使用这些目标激励对应的约束文件构建的模板库中的约束文件生成验证激励,进行芯片验证,相当于使用目标激励进行芯片验证,这可以有效的提高芯片验证的效率。

附图说明

图1为其中一个实施例中提出的芯片验证系统的结构示意图;

图2为其中一个实施例中提出的一种激励生成装置的模板库构建方法的步骤流程图;

图3为其中一个实施例中提出的一种芯片验证的方法的步骤流程图;

图4为其中一个实施例中设定指令域值的变化值满足的列维函数曲线图;

图5为其中一个实施例中提出的一种激励生成装置的结构示意图;

图6为其中一个实施例中提出的一种计算机设备的内部结构图。

具体实施方式

为了使本发明的发明目的、技术方案及技术效果更加清楚明白,以下结合附图对本发明的具体实施例进行描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。应当清楚是,本实施例中的“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。

如图1所示,为其中一个实施例的芯片验证系统,该系统包括:激励生成装置110、rtl仿真器(registertransferlevelsimulation)120、验证模型130(referencemodel),第一处理器140。该系统中激励生成装置可以根据芯片需验证的内容产生激励,并将产生的激励发送到rtl仿真器和验证模型。rtl仿真器和验证模型接收到激励生成装置发送的激励后,会分别执行激励的指令序列得到输出结果,第一处理器140对比rtl仿真器和验证模型的输出结果生成覆盖率数据,并根据该覆盖率数据判断是否终止芯片验证进程。可选的,该系统中的激励生成装置110可以包括第二处理器,该第二处理器包括:获取模块、数据分析模块、条件调整模块、激励生成模块、解析模块、模板库、运算模块及控制模块等等。其中,该获取模块可以是i/o(input输入/output输出)接口等硬件模块,运算模块及控制模块均为硬件模块。

激励生成装置的第二处理器可以通过其获取模块获取覆盖率数据,再通过其数据分析模块对所述覆盖率数据进行分析,得到该覆盖率数据中的激励,以及与该验证激励对应的覆盖率提升值。之后获取模块根据覆盖率提升值是否达到预设阈值得到目标激励。第二处理器的解析模块对目标激励对应的约束文件进行解析得到约束条件。第二处理器的条件调整模块对这些约束条件进行调整得到最终约束条件。第二处理器的激励生成模块可以根据最终约束条件生成验证激励。此外该第二处理还可以将目标激励对应的约束文件添加至模板库,以备激励生成装置之后生成验证激励时使用。

图2示出了一种激励生成装置的模板库构建方法的步骤流程图。该方法第二处理器可被应用于包含第二处理器的激励生成装置中,该方法包括:

步骤s201:对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值。具体的,本步骤可由激励生成装置的第二处理器的数据分析模块执行。该数据分析模块第二处理器可以执行数据分析算法。

第二处理器处理的覆盖率数据可以包含功能覆盖率和代码覆盖率中的一种或两种。在芯片验证的过程中,rtl仿真器每执行一个激励,覆盖率会相应提升。但是,每个执行的激励使覆盖率提升的程度不同。对获取的覆盖率数据进行统计、计算等分析处理,可以得到验证过程中每个执行的验证激励对应的覆盖率提升值。

步骤s202:将所述覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励。

应当清楚的是,本步骤中的目标激励是根据覆盖率数据,从之前使用过的进行芯片验证的激励中筛选出的激励。目标激励对应的覆盖率提升值达到了预设阈值,这说明该激励对芯片验证的覆盖率提升贡献达到了期望,即目标激励是在之前的芯片验证过程中对覆盖率提升贡献达到期望的激励。

可选的,本步骤可由第二处理器的获取模块执行。第二处理器在实施该步骤时,需预先设置覆盖率提升值的预设阈值。第二处理器获取验证激励对应的覆盖率提升值后,将该提升值与预设阈值进行比对,判断该覆盖率提升值是否达到预设阈值。具体的,预设阈值可以人为根据经验设定常规值,也可以验证需求、进程进行调整或修改。具体设定方式可以根据实际情形灵活设定,本发明对此不作限定。

步骤s203:将所述目标激励对应的约束文件添加至激励生成装置的模板库。可选的,该约束文件可以是随机生产的约束文件,也人为设置的约束文件。模板库可以存储约束文件。

本实施例提出的一种激励生成装置的模板库构建方法,通过对芯片验证覆盖率数据的分析得到目标激励,将得到的目标激励对应的约束文件添加至模板库,进行模板库构建。由于目标激励对芯片验证的覆盖率提升贡献达到了期望,使用这些目标激励对应的约束文件构建的模板库中的约束文件生成验证激励,进行芯片验证,相当于使用目标激励进行芯片验证,这可以有效的提高芯片验证的效率。

在其中一个实施例中,激励生成装置的模板库构建方法还包括:根据覆盖率数据信息和/或芯片需验证的信息获得激励生成的约束条件,使用所述约束条件生成约束文件。

本实施例提出的根据覆盖率数据信息和/或芯片需验证的信息获得激励生成的约束条件,使用所述约束条件生成约束文件的实现方式,本步骤可由激励生成装置的处理器随机生成,也可以是人为根据覆盖率数据信息和/或芯片需验证的信息在约束文件中写入约束条件。

本发明在其中一个实施例中提出了一种基于上述构建的模板库进行芯片验证的方法,本方法可被应用与包含激励生成装置110的芯片验证系统中。该方法步骤流程如图3所示,包括:

步骤s301:从应用上述实施例的方法得到的模板库中获取约束文件。具体的,第二处理器的获取模块获取模板库中的约束文件。

可选的,约束文件中可以包含激励生成装置生成激励时的所有约束条件,第二处理器的解析模块解析约束文件可以获得激励生成的约束条件。约束条件可以包括:激励指令序列的指令类型、指令条数、指令顺序、指令域值、指令出现概率等约束条件中的一种或几种。

步骤s302:按照预设规则对所述约束文件中的约束条件进行调整,得到最终约束条件。

可选的,执行本步骤时,激励生成装置需先通过第二处理器的解析模块解析约束文件,得到约束文件中的约束条件。可选的,第二处理器的激励生成模块可以根据该约束条件生成验证激励。可选的,这些约束文件可以是随机生产的约束文件,也可以是模板库中的约束文件。第二处理器的条件调整模块调整约束文件中的约束条件的预设规则可以是,增加、减少或者替换约束条件。例如,在一个验证“100以内数值的求和操作”过程中,得到约束文件中存在约束条件“取值范围10-50”,预设的调整约束文件中约束条件的规则为替换取值范围。那么将上述约束条件“取值范围10-50”替换“取值范围20-30”即为上述调整约束文件中的约束条件的过程。

步骤s303:根据所述最终约束条件生成验证激励。具体的,第二处理器的激励生成模块获取这些最终约束条件,再根据这些最终约束条件生成验证激励,即激励生成模块生成符合最终约束条件的验证激励。

本实施例提出芯片验证方法,通过调整模板库中约束文件的约束条件,得到验证激励的约束条件,再使用验证激励的约束条件生成的验证激励进行芯片验证,使的验证激励的生成方式更加多样,利于充分的进行芯片验证。

在其中一个实施例中,从模板库中获取约束文件的步骤包括:

步骤s3011:获取所述模板库中约束文件对应的覆盖率提升值。可选的,覆盖率提升值是第二处理器的数据分析模块分析覆盖率数据得到的,若模板库中的约束文件被使用过,则使用根据该约束文件生成的激励进行芯片验证时,会产生相应的覆盖率提升值。

步骤s3012:根据覆盖率提升值的大小从模板库中获取约束文件。

本步骤可由第二处理器的获取模块执行相应指令进行实施。

在其中一个实施例中,根据覆盖率提升值从模板库中获取约束文件的步骤包括:根据约束文件对应的覆盖率提升值是否达到提升阈值,选择约束文件。具体的,第二处理器预先设定覆盖率提升值的域值,再根据约束文件对应的覆盖率提升值是否达到提升阈值,选择约束文件

在另一个实施例中,根据覆盖率提升值从模板库中获取约束文件的步骤包括:根据覆盖率提升值的大小对约束文件进行排序,根据排序结果获取约束文件。

在其中一个实施例中,第二处理器的扰动模块按照预设规则对所述约束文件中约束条件进行调整,得到最终约束条件的步骤包括:对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件。本实施例中的指令扰动是指按照一定的策略对约束文件中与指令相关的约束条件进行调整(例如指令顺序)。

在其中一个实施例中,第二处理器的扰动模块对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件的步骤包括:

对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件。其中,指令顺序是指指令相互之间的顺序/相对位置。本实施例中的顺序扰动是指按照一定的策略调整该指令顺序的过程。

应当清楚的是,在进行指令的顺序扰动时,需保证得到的指令序列合理(例如指令的依赖关系正确)。

在其中一个实施例中,第二处理器的扰动模块对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件的步骤包括:获取顺序扰动参数,根据所述顺序扰动参数对所述指令顺序进行顺序扰动,得到最终约束条件。

可选的,顺序扰动参数需预先设置。例如,预先设定顺序扰动的参数为a,a的取值范围是(0,1]之间的实数,假设指令序列中含有n条指令,每个含有[na]条指令的指令子序列(不交叠,共[1/a]个子序列),进行指令的顺序扰动,这些子序列内部的指令的位置可以任意变动。

在上述实施例中,顺序扰动的参数a取的数值越大,指令子序列包含的指令条数越多,指令子序列可变形式也就越多,在顺序扰动后可以得到的验证激励的指令顺序的变化也越多,因此当顺序扰动的参数a数值增大时,可以得到更多种类的验证激励;但是,随着顺序扰动的参数a取的数值的增大,根据顺序扰动后的约束条件与原约束条件关联性越小。在实际应用场景中设置顺序扰动参数a时,还需要考虑调整的具体约束条件等因素,本申请旨在说明可以使用顺序扰动的参数a保证指令顺序扰动的可控,具体如何设置顺序扰动的参数a,本发明不做限定。

在其中一个实施例中,对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件的步骤包括:对所述约束文件中指令域值进行域值扰动,得到最终约束条件。本实施例中的域值扰动是指按照一定的策略调整约束文件中对指令域值的过程。

在其中一个实施例中,第二处理器的扰动模块对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:根据预设的指令域值的变化值分布(例如数学分布),对所述约束文件中指令域值进行域值扰动,得到最终约束条件。

指令域值的变化值满足的分布可以是均匀分布(uniformdistribution)、正态分布(normaldistribution)、柯西分布(cauchydistribution)、拉普拉斯分布(laplacedistribution)或者逆伽玛分布(inverse-gammadistribution)中的一种。

由于选择不同的变化值分布,得到的相应的最终约束条件不同,进而根据最终约束条件得到的验证激励也会存在区别。因此,在实际应用场景中选择使用何种分布限定指令域值的变化值,还需要综合考虑使用选择的约束文件对应的覆盖率提升值,选择的约束文件个数以及芯片验证的进程等诸多因素。本步骤旨在提供指令域值的域值扰动方式,对如何选择分布限定指令域值的变化值,不做限定。

在其中一个实施例中,第二处理器的扰动模块根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:获取所述变化值取值范围,在所述变化值的取值范围内对约束文件中指令域值进行域值扰动,得到最终约束条件。

设定指令域值的变化值的取值范围与设置顺序扰动参数的目的相同,在此不再详述。本实施例设定指令域值的变化值的取值范围,可以使指令域值的扰动可控。

在其中一个实施例中设定指令域值的变化值满足列维分布(levydistribution)。此时,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:对指令域值进行域值扰动,使指令域值的变化值满足列维分布,得到最终约束条件。

如图4所示,为设定指令域值的变化值满足的列维函数曲线图。由于列维函数曲线尾部的厚度与长度可以通过调整列维函数的参数进行调整,因此,使用列维分布限定指令域值的变化值,在确定了指令域值的变化值的前提下,还可以调整列维函数的参数得到不同的最终约束条件,可以更加灵活的调整约束文件中的约束条件。

本实施例提出的通过列维分布限定指令域值的变化值的方式,使最终域值的确定的方式更加多样,进而可以得到更多种类的验证激励。

需要说明的是,对约束文件中的相关指令条件进行指令扰动的方式,可以是仅对约束文件中的指令顺序进行顺序扰动,也可以是仅对约束文件中的指令域值进行域值扰动,还可以将二者结合,具体如何对约束文件中的相关指令条件进行指令扰动,需根据实际情形选择,本发明对此不作限定。

在其中一个实施例中,提出了另一种芯片验证的方法,包括:

步骤s301’:从上述实施例提及激励生成装置的模板库构建方法得到的模板库中获取多个约束文件,并将各所述约束文件中的约束条件拼合,得到最终约束条件;

步骤s302’:根据所述最终约束条件生成验证激励,并使用所述验证激励进行芯片验证。

由于本实施例中的模板库是使用目标激励对应的约束文件构建,而目标激励对验证覆盖率的提升达到了期望,那么目标激励对应的约束文件中约束条件也就与覆盖率提升具有较高的关联性。基于此,根据多个这些约束文件中的约束条件拼合得到最终约束条件,与覆盖率提升关联性高的概率及较大。基于此,根据最终约束条件生成的验证激励,对验证覆盖率提升影响大的可能性高。因此,使用本实施例提出的将多个约束文件中的约束条件拼合得到最终约束条件的方案生成的验证激励,进行芯片验证,可以提高芯片验证效率。

图5示出的为在其中一个实施例中提出激励生成装置的结构示意图,该装置包括:模板库510、解析模块520、条件调整模块530、激励生成模块540、模板库构建模块550。

模板库510,用于存储约束文件。

解析模块520,用于解析从模板库510中获取的约束文件,得到约束条件。

条件调整模块530,用于按照预设规则对调整解析模块520得到的约束条件进行调整,得到最终约束条件。

激励生成模块540,用于根据最终约束条件生成验证激励。

模板库构建模块550,用于对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值;将与各所述验证激励对应的覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励;将所述目标激励对应的约束文件添加至激励生成装置的模板库510。

在其中一个实施例中,激励生成装置还包括:约束文件生成模块560,用于根据芯片需验证的信息和/或覆盖率数据随机生成约束文件。

在其中一个实施例中,还包括获取模块570,用于获取与所述模板库中约束文件对应的覆盖率提升值,根据覆盖率提升值得大小从模板库中获取约束文件。

在其中一个实施例中,获取模块570,用于根据约束文件对应的覆盖率提升值是否达到提升阈值,选择约束文件。

在其中一个实施例中,获取模块570,根据覆盖率提升值的大小对约束文件进行排序,根据排序结果获取约束文件。

在其中一个实施例中,条件调整模块530包括:扰动子模块531,用于对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件。

扰动子模块531对约束文件中的相关指令条件进行指令扰动,得到验证激励的约束条件的方式可以包含如下几种方式:

方式1:对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件。在进行顺序扰动时,可以设置顺序扰动参数,保证扰动可控性。

方式2:对所述约束文件中指令域值进行域值扰动,得到最终约束条件。在对约束文件进行域值扰动时,需保证指令域值的变化值满足预设的数学分布。满足的数学分布可以是均匀分布(uniformdistribution)、正态分布(normaldistribution)、柯西分布(cauchydistribution)、拉普拉斯分布(laplacedistribution)、逆伽玛分布(inverse-gammadistribution)或者列维分布(levydistribution)中的一种。

在其中一个实施例中,条件调整模块530包括:拼合子模块532,用于从模板库510中获取多个约束文件,并将各所述约束文件中的约束条件拼合,得到最终约束条件。

关于激励生成装置的具体限定可以参见上文中对于激励生成方法的限定,在此不再赘述。上述激励生成装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

本发明在其中一个实施例中提出了一种芯片验证系统,该芯片验证系统包含上述实施例提及的验证激励生成装置。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述实施例提及的验证激励的生成方法和/或芯片验证方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值;将与各所述验证激励对应的覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励;将所述目标激励对应的约束文件添加至激励生成装置的模板库。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:从模板库中获取约束文件;按照预设规则对所述约束文件中的约束条件进行调整,得到最终约束条件;根据所述最终约束条件生成验证激励。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取与所述模板库中约束文件对应的覆盖率提升值;根据所述覆盖率提升值的大小从模板库中获取约束文件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:设定覆盖率的提升阈值,根据约束文件对应的覆盖率提升值是否达到提升阈值,选择约束文件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据所述覆盖率提升值的大小对约束文件进行排序,根据排序结果获取约束文件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取顺序扰动参数,根据所述顺序扰动参数对所述指令顺序进行顺序扰动,得到最终约束条件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对所述约束文件中指令域值进行域值扰动,得到最终约束条件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取所述变化值取值范围,在所述变化值的取值范围内对约束文件中指令域值进行域值扰动,得到最终约束条件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对指令域值进行域值扰动,使指令域值的变化值满足列维分布,得到最终约束条件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:从模板库中获取多个约束文件,并将各所述约束文件中的约束条件拼合,得到最终约束条件;根据所述最终约束条件生成验证激励,并使用所述验证激励进行芯片验证。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值;将所述覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励;将所述目标激励对应的约束文件添加至激励生成装置的模板库。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从模板库中获取约束文件;按照预设规则对所述约束文件中的约束条件进行调整,得到最终约束条件;根据所述最终约束条件生成验证激励。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取与所述模板库中约束文件对应的覆盖率提升值;根据所述覆盖率提升值的大小从模板库中获取约束文件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:设定覆盖率的提升阈值,根据约束文件对应的覆盖率提升值是否达到提升阈值,选择约束文件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据所述覆盖率提升值的大小对约束文件进行排序,根据排序结果获取约束文件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取顺序扰动参数,根据所述顺序扰动参数对所述指令顺序进行顺序扰动,得到最终约束条件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对所述约束文件中指令域值进行域值扰动,得到最终约束条件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取所述变化值取值范围,在所述变化值的取值范围内对约束文件中指令域值进行域值扰动,得到最终约束条件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对指令域值进行域值扰动,使指令域值的变化值满足列维分布,得到最终约束条件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:从模板库中获取多个约束文件,并将各所述约束文件中的约束条件拼合,得到最终约束条件;根据所述最终约束条件生成验证激励,并使用所述验证激励进行芯片验证。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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