芯片验证方法、装置、设备及介质
文献发布时间:2024-04-18 19:58:30
技术领域
本申请涉及集成电路技术领域,尤其涉及一种芯片验证方法、装置、设备及介质。
背景技术
UVM(Universal Verification Methodology,通用验证方法学)是一个以SystemVerilog类库为主体的验证平台开发框架,验证工程师可以利用其可重构组件构建具有标准层次结构和接口的功能验证环境。在具体验证工作中,为了验证的完备性,需要向被验设计(Design Under Test,DUT)灌输大量激励。对此,为了尽可能地覆盖所有的验证点,需要对产生激励的参数进行约束。目前,比较常用的约束方式为随机约束方式。然而,随机约束会有较大概率产生重复的种子,并且当参数比较复杂的情况下,参数之间有较为复杂的逻辑关系时,或者参数之间会互相影响时,随机约束并不能生成较优的测试激励,这就容易造成不必要的资源浪费,不利于提高验证效率。
发明内容
本申请实施例提供了一种芯片验证方法、装置、设备及介质,能够有效地改善上述造成不必要的资源浪费以及验证效率低的技术问题。
第一方面,本申请实施例提供了一种芯片验证方法,所述方法包括:
利用验证点预测模型对预设的初始验证点序列进行处理,得到预测激励参数;其中,所述验证点预测模型通过样本验证点数据训练得到;
基于所述预测激励参数,向目标芯片施加激励信号,以对所述目标芯片进行功能验证。
进一步地,所述预测激励参数的组数为N,N为大于或等于1的整数;
所述基于所述预测激励参数,向目标芯片施加激励信号,以对所述目标芯片进行功能验证,包括:
分别基于每组所述预测激励参数,向目标芯片施加激励信号,以对所述目标芯片进行功能验证。
进一步地,所述验证点预测模型是根据以下步骤训练得到的:
获取样本验证点数据,所述样本验证点数据包括至少一个样本验证点序列,每个样本验证点序列包括多个样本验证点对应的激励参数;
基于所述样本验证点数据对初始深度学习模型进行训练,得到所述验证点预测模型;
其中,所述初始深度学习模型为长短期记忆网络模型。
进一步地,所述多个样本验证点包括:边界点,和/或,验证结果为异常的验证点。
进一步地,所述利用验证点预测模型对预设的初始验证点序列进行处理,得到预测激励参数,包括:
从所述初始验证点序列中确定输入序列,将所述输入序列输入所述验证点预测模型,得到一组预测激励参数;
依次基于所得到的预测激励参数对所述输入序列进行更新,将更新后的输入序列输入所述验证点预测模型,得到下一组预测激励参数。
进一步地,所述基于所述预测激励参数,向目标芯片施加激励信号之后,还包括:
监测所述目标芯片在所述激励信号作用下的输出数据,并基于所述输出数据得到对所述目标芯片的验证结果。
进一步地,所述基于所述预测激励参数,向目标芯片施加激励信号,包括:
依次将每组预测激励参数转发到预先配置的驱动器,由所述驱动器基于接收到的预测激励参数向所述目标芯片输出相应的激励信号。
第二方面,本申请实施例还提供了一种芯片验证装置,所述装置包括:
处理模块,用于利用验证点预测模型对预设的初始验证点序列进行处理,得到预测激励参数;其中,所述验证点预测模型通过样本验证点数据训练得到;
激励施加模块,用于基于所述预测激励参数,向目标芯片施加激励信号,以对所述目标芯片进行功能验证。
第三方面,本申请实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面提供的芯片验证方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述第一方面提供的芯片验证方法的步骤。
本申请实施例提供的芯片验证方法、装置、设备及介质,通过预先收集的样本验证点数据训练得到验证点预测模型,利用验证点预测模型对预设的初始验证点序列进行处理,得到预测激励参数,再进一步基于预测激励参数,向目标芯片施加激励信号,以对目标芯片进行功能验证。相比于随机约束方式,本技术方案能够减小产生重复验证点以及不合法验证点的概率,避免造成不必要的验证时间以及人力资源浪费,提高验证效率,保证产品上市时间,并且验证点预测模型充分学习了样本验证点数据中激励参数的规律,能够生成各种复杂且有特殊规律的参数组合,有利于较全面地覆盖验证的特殊点和边界点,降低芯片验证阶段漏掉潜在漏洞概率,保证产品质量。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了UVM验证平台的架构示意图;
图2示出了本说明书实施例提供的芯片验证方法的的流程图;
图3示出了本说明书实施例提供的模型训练区数据与预测区数据的对比图;
图4示出了本说明书实施例提供的芯片验证装置的模块框图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
通常来讲,在芯片验证工作中,被验设计(Design Under Test,DUT)的每一组输入输出接口需要一个测试(Test)项目。每个Test项目包括环境(Environment)组件、事务(Transaction)组件和序列组(Sequence)组件。其中,Transaction组件根据传递信息的协议,定义与该协议各字段对应的变量。每个Environment组件有一组与之对应的Transacion组件,在这组Transaction中,一般有一个Transaction作为其他Transaction的父类。验证平台启动后,Sequence组件会对Trancstion中各个变量的进行赋值或约束,再由Environment组件将其传入DUT。
图1示出了UVM验证平台的架构示意图。如图1所示,UVM验证平台的基本Environment组件可以包括:序列器(sequencer)、驱动器(driver)、监听器(monitor)、计分板(scoreboard)以及参考模型(reference model)。其中,driver,monitor和sequencer封装在一起构成In_agent,将另一monitor封装成out_agent。工作时,sequencer通过启动一个sequence,从sequence获取激励参数,并把这些激励参数转交给driver,由driver根据接收到的激励参数向DUT施加相应的激励信号。monitor用于监测DUT的输出;referencemodel是根据DUT设置的,用于输入与DUT相同的激励信号,输出期望值;scoreboard用于比较期望值与monitor监测到的DUT的输出,得到对DUT的验证结果。
基于此,本说明书实施例针对现有芯片验证过程中激励参数获取方式容易造成不必要的资源浪费,不利于提高验证效率的问题,提出了一种芯片验证方法,通过预先收集的样本验证点数据训练得到验证点预测模型,利用验证点预测模型对预设的初始验证点序列进行处理,得到预测激励参数,再进一步基于预测激励参数,向目标芯片施加激励信号,以对目标芯片进行功能验证。相比于随机约束方式,本技术方案能够减小产生重复验证点以及不合法验证点的概率,避免造成不必要的验证时间以及人力资源浪费,提高验证效率,保证产品上市时间,并且验证点预测模型充分学习了样本验证点数据中激励参数的规律,能够生成各种复杂且有特殊规律的参数组合,有利于较全面地覆盖验证的特殊点和边界点,降低芯片验证阶段漏掉潜在漏洞概率,保证产品质量。
下面对本说明书实施例提供的具体实现方案进行详细介绍。
第一方面,本说明书实施例提供了一种芯片验证方法,如图2所示,该方法包括以下步骤S201和步骤S202。
步骤S201,利用验证点预测模型对预设的初始验证点序列进行处理,得到预测激励参数;其中,验证点预测模型通过样本验证点数据训练得到;
通过验证平台对目标芯片进行验证时,验证平台需要先获取激励参数,然后根据激励参数来生成相应激励信号,灌输到目标芯片中被验设计对应的输入端口。
例如,使用UVM进行芯片验证时,通常采用基于测试用例(Case)管理的方式,根据DUT的功能提取出关键的特性,每个Case针对其中的一种或几种特性进行验证。如图1所示,如果想验证不同的特性,可以在验证平台的各个Test中添加不同的Case,完成验证工作。而在构建测试用例之前,需要先针对该测试用例要验证的特性确定激励信号对应的激励参数。假设待验证特性涉及参数A、参数B、参数C和参数D,那么,每组激励参数均由参数A、参数B、参数C和参数D的取值组成。例如,目标芯片为存储芯片,要验证数据读取特性,激励参数可以包括读数据使能、地址使能以及地址等相关参数。
在此基础上,针对所确定的激励参数构建验证点预测模型。验证点预测模型的构建过程包括:获取样本验证点数据,样本验证点数据包括至少一个样本验证点序列,每个样本验证点序列包括多个样本验证点对应的激励参数;然后,基于样本验证点数据对初始深度学习模型进行训练,得到验证点预测模型。下面就对具体构建过程进行详细说明。
在项目初始阶段根据验证计划上的验证点收集需要验证的特殊点和/或边界点,作为样本验证点数据,存储到预先构建的样本数据库中。需要说明的是,一个验证点即为一组激励参数。
举例来讲,验证计划包含根据历史验证经验设置的多个验证点,可以预先对这些验证点进行验证,得到每个验证点的验证结果,将这些验证点中验证结果为异常的验证点作为特殊点,收集到样本验证点数据中。此外,还可以将验证计划中涉及的边界点,也就是位于参数取值区间边界的点,如需要验证存储器的边界最低地址和最高地址等,收集到样本验证点数据中。具体可以根据实际应用场景的需要对样本验证点数据进行配置,此处不作限制。
具体实施时,初始深度学习模型可以采用LSTM(Long Short-Term Memory,长短期记忆)网络模型。LSTM网络模型是基于循环神经网络(Recurrent Neural Networks,RNN)改进的一种算法,采用LSTM网络模型方法预测参数,不同于其他传统的预测方法,不需要建立一个准确的物理模型,只需要将历史数据或是实时数据进行深度分析就可以进行学习和预测,准确率高且成本较低。当然,在本说明书其他实施例中,初始深度学习模型也可以采用其他适用的循环神经网络模型。
以采用LSTM网络模型为例,可以利用TENSORFLOW平台,通过样本验证点数据训练LSTM网络模型,得到验证点预测模型,使得验证点预测模型能够根据输入的M个验证点的激励参数,输出第M+1个验证点的激励参数。
样本验证点数据包括至少一个样本验证点序列,每个样本验证点序列包括多个样本验证点对应的激励参数。在模型训练过程中,可以依次从样本验证点序列中提取M个样本验证点的激励参数作为每一次训练流程的输入,将输出的激励参数与样本验证点序列中下一个样本验证点的激励参数进行比较,直至正确率满足预设条件如大于或等于95%即可停止训练,得到训练好的验证点预测模型。
图3示出了一种应用场景中,LSTM网络模型训练过程采用的样本验证点序列以及通过训练好的验证点预测模型得到的预测验证点序列的对比图。图3中,LSTM网络训练区为样本验证点数据,LSTM网络预测区为预测验证点数据,通过比较可以看出,预测验证点与样本验证点的规律基本相符,说明验证点预测模型已经充分学习了样本验证点数据中激励参数的规律,由此,通过验证点预测模型能够生成合法的、且延续已有特殊点和/或边界点规律的新验证点,有利于较全面地覆盖验证的特殊点和边界点,降低漏掉潜在漏洞概率。
在此基础上,就可以基于训练好的验证点预测模型,构建目标测试用例,添加到目标芯片相应输入输出接口的Test项目中。
需要说明的是,为了方便后期在验证环境中使用,具体实施时,需要将训练好的验证点预测模型转化成C语言函数,并封装为验证环境适用的SystemVerilog函数。需要说明的是,具体封装的函数类型根据实际验证环境确定,此处不作限制。
具体实施时,在获取到目标测试用例后,就可以通过运行目标测试用例来生成激励参数,从而灌输相应激励信号到目标芯片,以完成相应的Test项目的过程。具体来讲,通过在目标测试用例中调用由验证点预测模型封装而成的SystemVerilog函数,向验证点预测模型中输入预设的初始验证点序列,即可启动激励参数的模型预测过程,得到N组预测激励参数。N为大于或等于1的整数。
举例来讲,初始验证点序列可以是运行目标测试用例时由相关人员实时输入,或者,也可以预先配置到目标测试用例中。假设验证点预测模型的输入序列需要包含M个验证点,则初始验证点序列可以包括大于或等于M个初始验证点,或者,也可以大于或等于1且小于M个,此时,其余不足的验证点由指定激励参数填补。具体来讲,可以仅得到一组预测激励参数即可,即N=1,或者,也可以利用验证点预测模型得到多组预测激励参数,即N大于或等于2,具体根据实际需要设置。
在需要得到多组预测激励参数的场景中,可以从初始验证点序列中确定输入序列,将输入序列输入验证点预测模型,得到一组预测激励参数;依次基于所得到的预测激励参数对输入序列进行更新,将更新后的输入序列输入验证点预测模型,得到下一组预测激励参数。
假设初始验证点序列包括依次排列的10个验证点,验证点预测模型的输入序列需要包含5个验证点,则可以提取第6到10个验证点作为输入序列,输入验证点预测模型,得到一组预测激励参数;那么,所得到的预测激励参数则为第11个验证点,然后将第7个验证点到第11个验证点作为新的输入序列,输入验证点预测模型,得到下一组预测激励参数,作为第12个验证点,再将第8个验证点到第12个验证点作为新的输入序列,以此类推,持续产生新的预测激励参数,直至完成当前验证工作。
举例来讲,可以在目标测试用例中配置停止生成激励参数的条件,如产生预测激励参数的组数达到预设阈值时停止,从而在监测到所生成的预测激励参数达到该条件时,判定当前验证工作已完成,不再继续生成预测激励参数。或者,也可以响应于相关人员触发的停止指令,判定当前验证工作已完成,不再继续生成预测激励参数。
步骤S202,基于预测激励参数,向目标芯片施加激励信号,以对目标芯片进行功能验证。
在得到预测激励参照后,根据预测激励参数来生成相应激励信号,灌输到目标芯片中被验设计对应的输入端口,即可对目标芯片进行验证。当预测激励参数有多组时,可以分别基于每组预测激励参数,向目标芯片施加激励信号,以对目标芯片进行功能验证。
以UVM验证平台为例,在获取到预测激励参数后,可以依次将每组预测激励参数经sequencer转发到driver,由driver基于接收到的预测激励参数向目标芯片输出相应的激励信号,具体可以参见相关技术,此处不做详述。进一步地,就可以监测目标芯片在激励信号作用下的输出数据,并基于输出数据得到对目标芯片的验证结果。
具体来讲,可以将输出数据与期望值进行比较,若一致,则表示该激励信号对应的验证点通过验证,若不一致,则表示该激励信号对应的验证点未通过验证。以UVM验证平台为例,通过monitor监测目标芯片在激励信号作用下的输出数据;通过向预先根据目标芯片的被验设计配置的reference model输入与目标芯片相同的激励信号,得到该激励信号对应的期望值;进而,通过scoreboard比较期望值与monitor监测到的输出数据,得到对被验设计的验证结果。具体可以参见相关技术,此处不做详述。
上述芯片验证过程中,通过复用验证点预测模型来生成更多符合样本验证点数据规律的激励参数,相比于采用随机约束方式获取激励参数,能够有效地降低产生大量重复或是不合法的验证点的概率,避免造成不必要的验证时间以及人力资源浪费,提高验证效率,保证产品上市时间,并且验证点预测模型充分学习了样本验证点数据中激励参数的规律,能够生成各种复杂且有特殊规律的参数组合,有利于较全面地覆盖验证的特殊点和边界点,降低芯片验证阶段漏掉潜在漏洞概率,保证产品质量。
第二方面,基于同一发明构思,本说明书实施例还提供了一种芯片验证装置,如图4所示,该芯片验证装置40包括:
处理模块401,用于利用验证点预测模型对预设的初始验证点序列进行处理,得到预测激励参数;其中,所述验证点预测模型通过样本验证点数据训练得到;
激励施加模块402,用于基于所述预测激励参数,向目标芯片施加激励信号,以对所述目标芯片进行功能验证。
在一种可选的实施方式中,上述预测激励参数的组数为N,N为大于或等于1的整数;上述激励施加模块402用于:分别基于每组所述预测激励参数,向目标芯片施加激励信号,以对所述目标芯片进行功能验证。
在一种可选的实施方式中,上述验证点预测模型是根据以下步骤训练得到的:
获取样本验证点数据,所述样本验证点数据包括至少一个样本验证点序列,每个样本验证点序列包括多个样本验证点对应的激励参数;
基于所述样本验证点数据对初始深度学习模型进行训练,得到所述验证点预测模型;
其中,所述初始深度学习模型为长短期记忆网络模型。
在一种可选的实施方式中,上述多个样本验证点包括:边界点,和/或,验证结果为异常的验证点。
在一种可选的实施方式中,上述处理模块401用于:
从所述初始验证点序列中确定输入序列,将所述输入序列输入所述验证点预测模型,得到一组预测激励参数;
依次基于所得到的预测激励参数对所述输入序列进行更新,将更新后的输入序列输入所述验证点预测模型,得到下一组预测激励参数。
在一种可选的实施方式中,上述芯片验证装置40还包括:
监测模块,用于监测所述目标芯片在所述激励信号作用下的输出数据,并基于所述输出数据得到对所述目标芯片的验证结果。
在一种可选的实施方式中,上述激励施加模块402用于:
依次将每组预测激励参数转发到预先配置的驱动器,由所述驱动器基于接收到的预测激励参数向所述目标芯片输出相应的激励信号。
需要说明的是,本说明书实施例所提供的芯片验证装置40,其中各个模块执行操作的具体方式已经在上述第一方面提供的方法实施例中进行了详细描述,此处将不做详细阐述说明。
第三方面,基于同一发明构思,本说明书实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面提供的芯片验证方法的步骤。
第四方面,基于同一发明构思,本说明书实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述第一方面提供的芯片验证方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。举例来讲,该计算机可读存储介质可以是只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“多个”表示两个以上,包括两个或大于两个的情况。
尽管已描述了本说明书的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本说明书范围的所有变更和修改。
显然,本领域的技术人员可以对本说明书进行各种改动和变型而不脱离本说明书的精神和范围。这样,倘若本说明书的这些修改和变型属于本说明书权利要求及其等同技术的范围之内,则本说明书也意图包含这些改动和变型在内。
- 基于规则引擎的验证方法、验证设备、存储介质及装置
- 密码保护方法、身份验证方法、装置、设备及存储介质
- 一种图片加密方法、验证方法、装置、设备和介质
- 一种芯片测试方法、装置、设备及介质
- 芯片离线烧录方法、装置、系统、计算机存储介质及设备
- 芯片的验证方法、装置、芯片、电子设备和介质
- 用于AI推理芯片的芯片验证方法、装置、设备及介质