验证激励生成方法、装置、芯片验证方法及系统与流程

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

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



背景技术:

芯片验证的其中一个目的是检测芯片上运行的程序是否存在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仿真器和验证模型继续执行激励,覆盖率也难以提升,这导致芯片的验证周期过长,验证效率低下。

因此,如何提供一种高效的芯片验证方法,便成为亟需解决的技术问题。



技术实现要素:

基于此,有必要针对覆盖率在提升到一定数值后难以提升,导致芯片验证效率低的问题,提供一种验证激励的生成方法进行芯片验证,以提高芯片验证效率。

一种验证激励的生成方法,包括:

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

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

按照预设规则对所述目标激励对应的约束文件中约束条件进行调整,得到最终约束条件;

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

在其中一个实施例中,对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值的步骤包括:

对所述当前芯片验证过程中的当前覆盖率数据进行分析运算,得到当前覆盖率数据中的验证激励,以及与所述验证激励对应的覆盖率提升值。

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

对所述约束文件中的指令条件进行指令扰动,得到最终约束条件。

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

对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件。

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

获取顺序扰动参数,根据所述顺序扰动参数对所述指令顺序进行顺序扰动,得到最终约束条件。

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

对所述约束文件中指令域值进行域值扰动,得到最终约束条件。

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

根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件。

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

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

获取所述变化值取值范围,在所述变化值的取值范围内对约束文件中指令域值进行域值扰动,得到最终约束条件。

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

对指令域值进行域值扰动,使指令域值的变化值满足列维分布,得到验证激励的指令域值。

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

获取多个目标激励对应的多个约束文件;

将各所述约束文件中的约束条件拼合,得到最终约束条件。

在其中一个实施例中,使用上述的方法得到的验证激励进行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:按照预设规则对所述目标的约束文件中约束条件进行调整,得到最终约束条件。

可选的,激励生成装置在生成激励时需先通过第二处理器的解析模块解析约束文件,得到约束文件中的约束条件。可选的,第二处理器的激励生成模块可以根据该约束条件生成验证激励。可选的,这些约束文件可以是随机生产的约束文件,也可以是模板库中的约束文件。

可选的,约束文件中包含生成激励时的所有约束条件,例如:激励指令序列的指令类型、指令条数、指令顺序、指令域值、指令出现概率等约束条件。本步骤旨在通过调整目标激励对应的约束文件中的约束条件得到生成验证激励的约束条件,以实现对目标激励进行更充分的利用。在执行本步骤时,第二处理器需先根据覆盖率数据得到目标激励,再根据目标激励追溯出目标激励对应的约束文件。第二处理器调整约束文件中的约束条件的预设规则可以是,增加、减少或者替换约束条件。例如,在一个验证“100以内数值的求和操作”过程中,得到约束文件中存在约束条件“取值范围10-50”,预设的调整约束文件中约束条件的规则为替换取值范围。那么将上述约束条件“取值范围10-50”替换“取值范围20-30”即为上述调整约束文件中的约束条件的过程。

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

本实施例得到的验证激励是通过调整生成目标激励的约束条件获得,因此验证激励与目标激励具有关联性。基于此,由于本实施例中目标激励的覆盖率提升值达到了预设阈值,这意味着目标激励覆盖率提升贡献达到了期望,那么与目标激励存在关联性的验证激励对覆盖率的提升具有较大的影响的概率较大。

需要说明的是,本实施提出的验证激励的生成方法中使用覆盖率数据旨在通过覆盖率数据获取对覆盖率提升影响大的激励(即目标激励),因此,该覆盖率数据在可以揭示验证使用的激励对覆盖率的影响的前提下,该覆盖率数据来源于之前芯片相关验证,或者是本次芯片验证并不会影响本发明的保护范围。

本实施例提出的验证激励生成方法,通过对覆盖率数据的深度分析得到验证使用的与验证激励对应的覆盖率提升值,然后根据覆盖率提升值是否达到预设阈值的得到目标的约束文件,再对该约束文件中的约束条件进行调整得到最终约束条件,最后根据最终约束条件生成验证激励。由于目标激励覆盖率提升贡献达到了期望,本实施例中的验证激励是根据目标激励得到,因此,使用该验证激励进行芯片验证可以加速的覆盖率的收敛,提高芯片验证的效率。

在其中一个实施例中,对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值的步骤包括:

对所述当前芯片验证过程中的覆盖率数据进行分析运算,进行分析运算,得到当前覆盖率数据中的激励,以及与所述与验证激励对应的覆盖率提升值。

可选的,本实施步骤由激励生成装置的第二处理器的获取模块和数据分析模块执行。使用当前芯片验证得到的当前覆盖率数据进行分析运算得到各验证激励对应的覆盖率提升值,可以更有效的根据当前验证进程,调整激励的生成,从而加快覆盖率的收敛,提高芯片的验证效率。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

在其中一个实施例中,当覆盖率数据中存在多于一个目标激励时,第二处理器的扰动模块按照预设规则对所述目标激励对应的约束文件中约束条件进行调整,得到最终约束条件的步骤可以包括:

获取多个目标激励对应的多个约束文件。

将各所述约束文件中的约束条件拼合,得到最终约束条件。

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

基于同样的发明构思,在其中一个实施例中提出了一种芯片验证方法,该芯片验证方法被应用于芯片验证系统中,使用上述实施例提及的验证激励的生成方法得到的验证激励进行芯片验证。该芯片验证系统包括:包含第二处理器的激励生成装置、rtl仿真器、验证模型和比较器。如图4示出的为该芯片验证方法的步骤流程图,包括如下步骤:

步骤s401:使用上述实施例提及的验证激励的生成方法得到的验证激励进行rtl仿真和软件模拟,得到输出结果。

本步骤中生成验证激励的部分由芯片系统的激励生成装置完成,芯片验证系统的rtl仿真器和验证模型分别执行生成的验证激励,进行rtl仿真和软件模拟,并输出执行结果到比较器。

步骤s402:根据所述输出结果得到当前覆盖率数据,并判断当前覆盖率数据中的覆盖率是否达到覆盖率阈值;若判断结果为是,则执行步骤s403;若判断结果为否,则重复步骤s401-s402。

本步骤覆盖率数据有芯片验证系统的比较器生成。判断覆盖率是否达到覆盖率阈值由激励生成装置的第二处理器执行。

步骤s403:终止验证。

在其中一个实施例中,使用上述实施例提及的验证激励的生成方法得到的验证激励进行rtl仿真的步骤包括:

步骤s4011:对当前覆盖率数据进行数据分析,得到当前覆盖率数据中各验证激励对应的覆盖率提升值。

步骤s4012:将覆盖率提升值达到预设阈值的激励作为目标激励。

步骤s4013:按照预设规则对所述目标的约束文件中约束条件进行调整,得到最终约束条件,并根据最终约束条件生成验证激励,进行芯片验证。

使用对覆盖率的提升影响大的目标激励进行芯片验证,可以加速覆盖率收敛。本实施例进行芯片验证使用的验证激励,是根据目标激励生成的,是对目标激励更深层次的利用。与随机生成的激励相比,本实施例时用的验证激励对覆盖率提升影响大的概率大,可以加速验证覆盖率收敛进程,提高芯片验证的效率。

应该理解的是,虽然图2和图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

图5示出的为其中一个实施例提出的一种验证激励生成装置的结构示意图。该验证激励生成装置包括:数据分析模块510、解析模块520、条件调整模块530和激励生成模块540。

数据分析模块510,用于对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值,并将所述验证激励对应的覆盖率提升值与预设阈值进行比较,根据比较结果得到目标激励。

解析模块520,用于对目标激励对应的约束文件进行解析,得到约束文件中的约束条件。

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

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

本实施例提出的验证激励生成装置,可以根据覆盖率数据的分析结果得到的目标激励,在根据目标激励的得到验证激励,该验证激励在芯片验证时可以加速覆盖率收敛,提高芯片验证效率。

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

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

扰动子模块531对约束文件中的指令条件进行指令扰动,得到最终约束条件的方式可以包含:

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

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

在其中一个实施例中,条件调整模块530包括:拼合子模块532,用于获取多个目标激励对应的约束文件中的约束条件,并将各约束文件中的约束条件拼合,得到最终约束条件。

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

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

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

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

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

在一个实施例中,处理器执行计算机程序时还实现以下步骤:对所述当前芯片验证过程中的当前覆盖率数据进行分析运算,得到当前覆盖率数据中的激励,以及与所述验证激励对应的覆盖率提升值。

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

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

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

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

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

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

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

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取多个目标的多个约束文件;将各所述约束文件中的约束条件拼合,得到最终约束条件。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:使用上述的方法得到的验证激励进行rtl仿真和软件模拟,得到输出结果;根据所述输出结果得到当前覆盖率数据,并判断当前覆盖率数据中的覆盖率是否达到覆盖率阈值;若判断结果为是,则终止芯片验证;若判断结果为否,则继续获取执行上述验证激励的生成方法得到的验证激励进行芯片验证。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值。将所述覆盖率提升值是否达到预设阈值,得到目标激励。按照预设规则对所述目标激励对应的约束文件中约束条件进行调整,得到最终约束条件。根据所述最终约束条件生成验证激励。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对所述当前芯片验证过程中的当前覆盖率数据进行分析运算,得到当前覆盖率数据中的激励,以及与所述验证激励对应的覆盖率提升值。

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

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

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

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

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

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

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

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取多个目标的多个约束文件;将各所述约束文件中的约束条件拼合,得到最终约束条件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:使用上述的方法得到的验证激励进行rtl仿真和软件模拟,得到输出结果;根据所述输出结果得到当前覆盖率数据,并判断当前覆盖率数据中的覆盖率是否达到覆盖率阈值;若判断结果为是,则终止芯片验证;若判断结果为否,则继续获取执行上述验证激励的生成方法得到的验证激励进行芯片验证。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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