CN109992461B - 激励生成装置的模板库构建方法、芯片验证方法及系统 - Google Patents

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

Info

Publication number
CN109992461B
CN109992461B CN201711484660.1A CN201711484660A CN109992461B CN 109992461 B CN109992461 B CN 109992461B CN 201711484660 A CN201711484660 A CN 201711484660A CN 109992461 B CN109992461 B CN 109992461B
Authority
CN
China
Prior art keywords
constraint
value
excitation
instruction
file
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
Application number
CN201711484660.1A
Other languages
English (en)
Other versions
CN109992461A (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN201711484660.1A priority Critical patent/CN109992461B/zh
Publication of CN109992461A publication Critical patent/CN109992461A/zh
Application granted granted Critical
Publication of CN109992461B publication Critical patent/CN109992461B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

激励生成装置的模板库构建方法、芯片验证方法及系统
技术领域
本发明涉及验证技术领域,特别是涉及一种激励生成装置的模板库构建方法、装置、芯片验证方法、系统、存储介质及计算机设备。
背景技术
芯片验证的其中一个目的是检测芯片上运行的程序是否存在bug。在芯片验证时,芯片验证系统的RTL仿真器(Register Transfer level simulation)和验证模型执行激励生成装置生成的验证激励,输出执行结果,芯片验证系统的处理器根据该输出结果得到覆盖率数据,并根据得到的覆盖率数据是否达到预期判断芯片验证是否终止。覆盖率(Coverage)数据是用来评价验证过程与结果的一种量化指标。
目前在使用芯片验证系统进行芯片验证时产生激励的机制包括:
1)基于应用(Application based)生成激励:根据需测试的应用程序设置的约束文件(config-file)生成激励。
2)随机(Random)生成激励:根据随机产生约束文件(config-file)生成激励。
3)基于模板(Template base)生成激励:根据激励生成装置模板库中的约束文件(config-file)生成激励。模板库中约束文件包含根据需验证芯片的基本功能点设置的约束文件,以及对覆盖率的提升影响较高的激励对应的约束文件。
芯片验证的基本功能点会随验证的需求(DUT/DUV design under test/verification)或芯片类型的改变而改变。例如:对于CPU而言,基本功能点可以包括浮点运算,定点运算,任务调度,内存分配,内存管理,数据IO。而对于人工神经网络芯片而言,基本功能点可以包括人工神经网络运算(比如卷积运算,矩阵运算,全连接运算),任务调度,内存分配,内存管理,数据IO。
一般情形下,芯片验证得到的覆盖率数据涉及的激励越全面,RTL仿真器运行通过的激励越多,该芯片验证的覆盖率也就越高,对应验证的芯片的“保障程度”同样也越高。
在芯片验证时,随着RTL仿真器和验证模型执行的激励数的增多,覆盖率会相应的提升。但是,覆盖率在提升到一定数值后,即使RTL仿真器继续执行激励,覆盖率也难以提升。因此,在进行芯片验证时,如何快速的获取对覆盖率提升影响大的激励便成为亟需解决的技术问题。
发明内容
基于此,本发明提出了一种模板库的构建方法以及芯片验证方法,以实现加速覆盖率收敛,提高芯片验证效率。
一种激励生成装置的模板库构建方法,包括:
对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值;
将所述覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励;
将所述目标激励对应的约束文件添加至激励生成装置的模板库。
一种芯片验证的方法,包括:从上述方法获取的模板库中获取约束文件;按照预设规则对所述约束文件中的约束条件进行调整,得到最终约束条件;
根据所述最终约束条件生成验证激励。
在其中一个实施例中,所述从模板库中获取约束文件的步骤包括:
获取与所述模板库中约束文件对应的覆盖率提升值;
根据所述覆盖率提升值的大小从模板库中获取约束文件。
在其中一个实施例中,根据所述覆盖率提升值从模板库中获取约束文件的步骤包括:根据约束文件对应的覆盖率提升值是否达到提升阈值,选择约束文件。
在其中一个实施例中,根据所述覆盖率提升值从模板库中获取约束文件的步骤包括:根据所述覆盖率提升值的大小对约束文件进行排序,根据排序结果获取约束文件。
在其中一个实施例中,所述按照预设规则对所述约束文件中约束条件进行调整,得到最终约束条件的步骤包括:对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件。
在其中一个实施例中,对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件的步骤包括:对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件。
在其中一个实施例中,对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件的步骤包括:获取顺序扰动参数,根据所述顺序扰动参数对所述指令顺序进行顺序扰动,得到最终约束条件。
在其中一个实施例中,对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件的步骤包括:对所述约束文件中指令域值进行域值扰动,得到最终约束条件。
在其中一个实施例中,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件。
在其中一个实施例中,所述变化值分布选自均匀分布、正态分布、柯西分布、拉普拉斯分布或者逆伽玛分布中的一种。
在其中一个实施例中,根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:获取所述变化值取值范围,在所述变化值的取值范围内对约束文件中指令域值进行域值扰动,得到最终约束条件。
在其中一个实施例中,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:对指令域值进行域值扰动,使指令域值的变化值满足列维分布,得到最终约束条件。
一种芯片验证的方法,包括:从上述方法得到的模板库中获取多个约束文件,并将各所述约束文件中的约束条件拼合,得到最终约束条件;
根据所述最终约束条件生成验证激励,并使用所述验证激励进行芯片验证。
一种激励生成装置,包括:模板库、解析模块、条件调整模块和激励生成模块,
所述模板库,用于存储约束文件。
所述解析模块,用于解析从模板库中获取的所述约束文件,得到约束条件。
所述条件调整模块,用于按照预设规则对所述约束条件进行调整,得到最终约束条件。
所述激励生成模块,用于根据所述最终约束条件生成验证激励
所述模板库构建模块,用于对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值;将各所述覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励;将所述目标激励对应的约束文件添加至激励生成装置的模板库。
一种芯片验证系统,所述芯片验证系统包含上述的验证激励生成装置。一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序处理器执行时,实现上述的方法的步骤。
一种计算机设备,包括存储器、处理器,及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述的方法的步骤。
与传统技术相比,本发明提供的一种激励生成装置的模板库构建方法、装置、芯片验证方法及系统具有如下有益效果:
一种激励生成装置的模板库构建方法、装置、芯片验证方法及系统,通过对芯片验证覆盖率数据的分析得到目标激励,将得到的目标激励对应的约束文件添加至模板库,进行模板库构建。由于目标激励对芯片验证的覆盖率提升贡献达到了期望,使用这些目标激励对应的约束文件构建的模板库中的约束文件生成验证激励,进行芯片验证,相当于使用目标激励进行芯片验证,这可以有效的提高芯片验证的效率。
附图说明
图1为其中一个实施例中提出的芯片验证系统的结构示意图;
图2为其中一个实施例中提出的一种激励生成装置的模板库构建方法的步骤流程图;
图3为其中一个实施例中提出的一种芯片验证的方法的步骤流程图;
图4为其中一个实施例中设定指令域值的变化值满足的列维函数曲线图;
图5为其中一个实施例中提出的一种激励生成装置的结构示意图;
图6为其中一个实施例中提出的一种计算机设备的内部结构图。
具体实施方式
为了使本发明的发明目的、技术方案及技术效果更加清楚明白,以下结合附图对本发明的具体实施例进行描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。应当清楚是,本实施例中的“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。
如图1所示,为其中一个实施例的芯片验证系统,该系统包括:激励生成装置110、RTL仿真器(Register Transfer level simulation)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,本发明不做限定。
在其中一个实施例中,对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件的步骤包括:对所述约束文件中指令域值进行域值扰动,得到最终约束条件。本实施例中的域值扰动是指按照一定的策略调整约束文件中对指令域值的过程。
在其中一个实施例中,第二处理器的扰动模块对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:根据预设的指令域值的变化值分布(例如数学分布),对所述约束文件中指令域值进行域值扰动,得到最终约束条件。
指令域值的变化值满足的分布可以是均匀分布(Uniform Distribution)、正态分布(Normal Distribution)、柯西分布(Cauchy Distribution)、拉普拉斯分布(LaplaceDistribution)或者逆伽玛分布(Inverse-Gamma Distribution)中的一种。
由于选择不同的变化值分布,得到的相应的最终约束条件不同,进而根据最终约束条件得到的验证激励也会存在区别。因此,在实际应用场景中选择使用何种分布限定指令域值的变化值,还需要综合考虑使用选择的约束文件对应的覆盖率提升值,选择的约束文件个数以及芯片验证的进程等诸多因素。本步骤旨在提供指令域值的域值扰动方式,对如何选择分布限定指令域值的变化值,不做限定。
在其中一个实施例中,第二处理器的扰动模块根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:获取所述变化值取值范围,在所述变化值的取值范围内对约束文件中指令域值进行域值扰动,得到最终约束条件。
设定指令域值的变化值的取值范围与设置顺序扰动参数的目的相同,在此不再详述。本实施例设定指令域值的变化值的取值范围,可以使指令域值的扰动可控。
在其中一个实施例中设定指令域值的变化值满足列维分布(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:对所述约束文件中指令域值进行域值扰动,得到最终约束条件。在对约束文件进行域值扰动时,需保证指令域值的变化值满足预设的数学分布。满足的数学分布可以是均匀分布(Uniform Distribution)、正态分布(Normal Distribution)、柯西分布(Cauchy Distribution)、拉普拉斯分布(Laplace Distribution)、逆伽玛分布(Inverse-Gamma Distribution)或者列维分布(Levy Distribution)中的一种。
在其中一个实施例中,条件调整模块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)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (22)

1.一种激励生成装置的模板库构建方法,其特征在于,包括:
对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值;
将所述覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励,其中,所述目标激励为芯片验证过程中对覆盖率提升贡献达到期望的激励;
将所述目标激励对应的约束文件添加至激励生成装置的模板库。
2.一种芯片验证的方法,其特征在于,包括:
从如权利要求1所述方法获取的模板库中获取约束文件;
按照预设规则对所述约束文件中的约束条件进行调整,得到最终约束条件;
根据所述最终约束条件生成验证激励。
3.根据权利要求2所述的方法,其特征在于,从模板库中获取约束文件的步骤包括:
获取与所述模板库中约束文件对应的覆盖率提升值;
根据所述覆盖率提升值的大小从所述模板库中获取约束文件。
4.根据权利要求3所述的方法,其特征在于,根据所述覆盖率提升值的大小从模板库中获取约束文件的步骤包括:
根据所述约束文件对应的覆盖率提升值是否达到提升阈值,选择约束文件。
5.根据权利要求3所述的方法,其特征在于,根据所述覆盖率提升值的大小从模板库中获取约束文件的步骤包括:
根据所述覆盖率提升值的大小对所述约束文件进行排序,根据排序结果获取约束文件。
6.根据权利要求2所述的方法,其特征在于,所述按照预设规则对所述约束文件中约束条件进行调整,得到最终约束条件的步骤包括:
对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件。
7.根据权利要求6所述的方法,其特征在于,对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件的步骤包括:
对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件。
8.根据权利要求7所述的方法,其特征在于,对所述约束文件中的指令顺序进行顺序扰动,得到最终约束条件的步骤包括:
获取顺序扰动参数,根据所述顺序扰动参数对所述指令顺序进行顺序扰动,得到最终约束条件。
9.根据权利要求6所述的方法,其特征在于,对所述约束文件中的相关指令条件进行指令扰动,得到最终约束条件的步骤包括:
对所述约束文件中指令域值进行域值扰动,得到最终约束条件。
10.根据权利要求9所述的方法,其特征在于,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:
根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件。
11.根据权利要求10所述的方法,其特征在于,所述变化值分布选自均匀分布、正态分布、柯西分布、拉普拉斯分布或者逆伽玛分布中的一种。
12.根据权利要求10所述的方法,其特征在于,根据预设的指令域值的变化值分布,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:
获取所述变化值取值范围,在所述变化值的取值范围内对约束文件中指令域值进行域值扰动,得到最终约束条件。
13.根据权利要求9所述的方法,其特征在于,对所述约束文件中指令域值进行域值扰动,得到最终约束条件的步骤包括:
对指令域值进行域值扰动,使指令域值的变化值满足列维分布,得到最终约束条件。
14.一种芯片验证的方法,其特征在于,包括:
从如权利要求1所述的模板库中获取多个约束文件,并将各所述约束文件中的约束条件拼合,得到最终约束条件;
根据所述最终约束条件生成验证激励,并使用所述验证激励进行芯片验证。
15.一种激励生成装置,其特征在于,包括:模板库、解析模块、条件调整模块、模板库构建模块和激励生成模块,
所述模板库,用于存储约束文件;
所述解析模块,用于解析从模板库中获取的所述约束文件,得到约束条件;
所述条件调整模块,用于按照预设规则对所述约束条件进行调整,得到最终约束条件;
所述激励生成模块,用于根据所述最终约束条件生成验证激励;
所述模板库构建模块,用于对芯片验证的覆盖率数据进行数据分析,得到与验证激励对应的覆盖率提升值;将各所述覆盖率提升值和预设阈值进行比较,根据比较结果得到目标激励;将所述目标激励对应的约束文件添加至激励生成装置的模板库。
16.一种芯片验证系统,其特征在于,所述芯片验证系统包含如权利要求15所述的激励生成装置。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求2-13任一项所述的方法的步骤。
18.一种计算机设备,包括存储器、处理器,及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行如权利要求2-13任一项所述的方法的步骤。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1所述的方法的步骤。
20.一种计算机设备,包括存储器、处理器,及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行如权利要求1所述的方法的步骤。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求14所述的方法的步骤。
22.一种计算机设备,包括存储器、处理器,及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行如权利要求14所述的方法的步骤。
CN201711484660.1A 2017-12-29 2017-12-29 激励生成装置的模板库构建方法、芯片验证方法及系统 Active CN109992461B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711484660.1A CN109992461B (zh) 2017-12-29 2017-12-29 激励生成装置的模板库构建方法、芯片验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711484660.1A CN109992461B (zh) 2017-12-29 2017-12-29 激励生成装置的模板库构建方法、芯片验证方法及系统

Publications (2)

Publication Number Publication Date
CN109992461A CN109992461A (zh) 2019-07-09
CN109992461B true CN109992461B (zh) 2020-03-10

Family

ID=67110334

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711484660.1A Active CN109992461B (zh) 2017-12-29 2017-12-29 激励生成装置的模板库构建方法、芯片验证方法及系统

Country Status (1)

Country Link
CN (1) CN109992461B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114118356B (zh) * 2021-10-11 2023-02-28 北京百度网讯科技有限公司 神经网络处理器验证方法、装置、电子设备及存储介质
CN114384403B (zh) * 2022-03-22 2022-07-12 浙江大学 一种芯片验证ip装置及其测试方法
CN115617594B (zh) * 2022-12-12 2023-03-14 摩尔线程智能科技(北京)有限责任公司 用于生成激励信息的方法、装置、存储介质及程序产品
CN116167333B (zh) * 2023-04-25 2023-07-14 苏州浪潮智能科技有限公司 芯片验证方法和装置、电子设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3732708B2 (ja) * 2000-03-27 2006-01-11 株式会社東芝 テストパターン選別装置、テストパターン選別方法およびテストパターン選別プログラムを格納したコンピュータ読取り可能な記録媒体
CN101515301B (zh) * 2008-02-23 2011-05-04 炬力集成电路设计有限公司 一种片上系统芯片验证的方法和装置
CN104679634A (zh) * 2015-03-06 2015-06-03 浪潮电子信息产业股份有限公司 一种用于超大规模芯片仿真的自适应随机验证方法
CN105631134A (zh) * 2015-12-30 2016-06-01 山东海量信息技术研究院 一种用于芯片随机验证的分批随机机制

Also Published As

Publication number Publication date
CN109992461A (zh) 2019-07-09

Similar Documents

Publication Publication Date Title
CN109992462B (zh) 验证激励生成方法、装置、芯片验证方法及系统
CN109992804B (zh) 激励生成装置、芯片验证装置及系统
CN109992461B (zh) 激励生成装置的模板库构建方法、芯片验证方法及系统
Simakov et al. A slurm simulator: Implementation and parametric analysis
US8024615B2 (en) Steady state computer testing
US9195833B2 (en) System and method for implementing application policies among development environments
US8001505B2 (en) Method and apparatus for merging EDA coverage logs of coverage data
US9606899B1 (en) Software testing using shadow requests
US8719789B2 (en) Measuring coupling between coverage tasks and use thereof
CN110991649A (zh) 深度学习模型搭建方法、装置、设备和存储介质
US8719799B2 (en) Measuring coupling between coverage tasks and use thereof
US20210056009A1 (en) Risk-focused testing
CN108492005B (zh) 项目数据处理方法、装置、计算机设备和存储介质
US10592703B1 (en) Method and system for processing verification tests for testing a design under test
CN111797026A (zh) 测试用例生成方法、装置、计算机设备及存储介质
Lin et al. Why power laws? an explanation from fine-grained code changes
CN111897727A (zh) 软件测试方法、装置、计算机设备及存储介质
CN110990249B (zh) 代码扫描结果处理方法、装置、计算机设备及存储介质
CN112379913A (zh) 基于风险识别的软件优化方法、装置、设备及存储介质
CN112417463A (zh) 软件漏洞预测方法、装置、计算机设备及存储介质
CN117272894A (zh) 用于电路设计调试的机器学习技术方法、装置及系统
US10761973B2 (en) Code coverage thresholds for code segments based on usage frequency and change frequency
US9824175B1 (en) Method and system of evaluation of validity of a refinement rule for a hardware emulation
CN111083007A (zh) 测试方法、装置、计算机设备和存储介质
CN110865939A (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
CB02 Change of applicant information

Address after: 100191 room 644, research complex, 6 South Road, Haidian District Science Academy, Beijing.

Applicant after: Zhongke Cambrian Technology Co., Ltd

Address before: 100191 room 644, research complex, 6 South Road, Haidian District Science Academy, Beijing.

Applicant before: Beijing Zhongke Cambrian Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant