一种非型闪存指令组合验证方法、系统、存储介质和终端与流程

文档序号:21778058发布日期:2020-08-07 19:47阅读:133来源:国知局
一种非型闪存指令组合验证方法、系统、存储介质和终端与流程

本发明涉及集成电路领域,尤其涉及的是一种非型闪存指令组合验证方法、系统、存储介质和终端。



背景技术:

指令组合验证即验证norflash所有指令之间两两组合的情况,增加norflash验证的完备性。传统的指令组合验证方法一般采用的是定向激励,验证人员手动去编程控制指令组合来遍历确保验证完备;由于指令较多,遍历需编写大量case,耗时耗力效率低,且不便于检查是否有疏漏的组合。

因此,现有的技术还有待于改进和发展。



技术实现要素:

本发明的目的在于提供一种非型闪存指令组合验证方法、系统、存储介质和终端,通过随机生成指令组合,对这些指令组合进行验证,然后记录验证结果,将验证结果与基准库进行对比,得到覆盖率,通过覆盖率及芯片应答结果判断验证是否通过。

本发明的技术方案如下:一种非型闪存指令组合验证方法,其中,具体包括以下步骤:

s1:向norflash芯片发送激励,所述激励中包含了随机的指令;

s2:采集norflash芯片根据指令组合做出的应答结果与期望结果作对比,若应答结果与期望结果相同则跳转至s3,否则跳转至s1;

s3:对应增加指令组合覆盖率;

s4:判断指令组合覆盖率是否满足预设阈值,是则跳转至s5,否则跳转至s1。

s5:判定该norflash芯片的指令组合验证通过,结束验证。

所述的非型闪存指令组合验证方法,其中,所述s1中,向norflash芯片发送一个或多个激励,激励中包含了大量随机的指令。

所述的非型闪存指令组合验证方法,其中,所述s1和s2之间还包括以下过程:采集激励中的指令,并将指令两两组合形成指令组合,通过交叉覆盖组操作,生成实际的组合指令库。

所述的非型闪存指令组合验证方法,其中,预设一个包含所有norflash芯片需要验证执行的指令组合及其应答结果的参考指令组合库。

一种采用如上述任一所述的非型闪存指令组合验证方法的系统,其中,包括uvm验证平台。

所述的系统,其中,所述uvm验证平台包括:

向norflash芯片发送激励的指令驱动组件;

采集指令驱动组件发送的激励中的输入指令及norflash芯片对应该指令的应答结果的指令采集组件;

保存有覆盖所有可能的指令组合及其期望结果的指令参考模型;

将norflash芯片根据指令组合做出的应答结果与期望结果作对比的结果自动对比组件;

接收指令采集组件采集的输入指令,并判断组合覆盖率是否满足预设阈值的覆盖率收集组件。

所述的系统,其中,实际的组合指令库通过以下过程生成:

指令采集组件采集指令驱动组件发送的激励中的输入指令,采集完第一条指令后pushback到队列中,采集到第二条指令后再次pushback到该队列中,再将队列中的两个指令值赋给数据包数组,然后将数据包发送给覆盖率收集组件;发送完数据包之后,指令采集组件对队列执行popfront操作;在指令采集组件采集第三条指令前队列中只剩下第二条指令,指令采集组件采集第三条指令并将第三条指令pushback,与第二条指令变成一个组合数据包,再次发送给覆盖率收集组件,指令采集组件再popfront删除第三条指令,如此循环,确保每次向覆盖率收集组件发送的数据包只包含最新的两条指令;

覆盖率收集组件收到指令采集组件发送的多组数据包后,首先定义覆盖组:覆盖组n为接收到的第n条组合数据包;对这n条组合数据包两两进行交叉覆盖组处理,即生成实际的组合指令库。

一种存储介质,其中,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一项所述的方法。

一种终端,其中,包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行上述任一项所述的方法。

本发明的有益效果:本发明通过提供一种非型闪存指令组合验证方法、系统、存储介质和终端,验证时,向芯片发送包含大量随机组合指令的激励,代替原来人工手动发送的方式,芯片根据指令做出应答,采集应答结果与期望结果作对比来判断芯片功能是否正常;另外,建立一个所有可能的指令组合库,采集验证时发送的指令组合,与组合库中的组合作对比,若比对相同则累加覆盖率直到达到预设值,且芯片所有应答正常即可停止仿真,判定该芯片指令组合验证通过;本方案通过自动随机指令,省去人为组合发送指令的繁琐过程,极大地提高验证效率;收集组合覆盖率直观反馈验证完成度,并驱动验证工程师补充随机个数,避免可能出现的遗漏指令组合的情形,大大提高验证的完备性和可靠性。

附图说明

图1是本发明中非型闪存指令组合验证方法的步骤流程图。

图2是本发明中系统的示意图。

图3是本发明中终端的示意图。

具体实施方式

下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

如图1所示,一种非型闪存指令组合验证方法,具体包括以下步骤:

s1:向norflash(非易失闪存存储器)芯片发送激励,所述激励中包含了随机组合的指令。

其中,通过向norflash芯片发送一个或多个激励,激励中包含了大量随机的指令,代替原来人工手动发送众多指令组合的方式,省时省力,避免人工发送存在的错漏问题。

s2:采集norflash芯片根据指令组合做出的应答结果与期望结果作对比,若应答结果与期望结果相同则跳转至s3,否则跳转至s1。

其中,norflash芯片根据指令组合做出应答,采集norflash芯片应答结果与期望结果作对比,来判断芯片功能是否正常。

s3:对应增加指令组合覆盖率。

其中,建立一个覆盖所有可能的参考指令组合库,采集验证时发送的指令组合,与参考组合库中的指令组合作比对,若应答结果与参考组合库中指令组合的期望结果比对相同则对指令组合覆盖率进行累加。

s4:判断指令组合覆盖率是否满足预设阈值,是则跳转至s5,否则跳转至s1。

s5:判定该norflash芯片的指令组合验证通过,结束验证。

其中,当组合覆盖率满足预设阈值时(覆盖率达到或接近100%),且所有验证的组合均与指令组合库中组合的结果相同(即norflash芯片所有应答正常)即可停止仿真,判定该芯片指令组合验证通过。

如图2所示,一种采用如上述所述的非型闪存指令组合验证方法的系统,包括uvm(通用验证方法学,universalverificationmethodology)验证平台,所述uvm验证平台包括:

向norflash芯片发送激励的指令驱动组件driver;

采集指令驱动组件driver发送的激励中的输入指令及norflash芯片对应该指令的应答结果的指令采集组件monitor;

保存有覆盖所有可能的指令组合及其期望结果的指令参考模型refermodel;

将norflash芯片根据指令组合做出的应答结果与期望结果作对比的结果自动对比组件scoreboard;

接收指令采集组件monitor采集的输入指令,并判断组合覆盖率是否满足预设阈值的覆盖率收集组件coverage。

根据上述所述的非型闪存指令组合验证方法和系统,现做以下详细说明:

搭建uvm验证平台,如图2,在uvm验证平台中加入指令驱动组件driver、指令采集组件monitor、指令参考模型refermodel、结果自动对比组件scoreboard,以及覆盖率收集组件coverage。

monitor采集driver发送的激励中的输入指令,采集完第一条指令后pushback(从队列尾部放入)到队列cmd[$]中,采集到第二条指令后再次pushback到该队列中,之后将队列cmd[$]中的两个指令值赋给数据包数组,之后将数据包发送给coverage组件。

发送完数据包之后,对队列cmd[$]执行popfront操作(从队列首部弹出并删除第一条指令)。

第三条指令到来时,队列cmd[$]中只剩第二条指令,将第三条指令pushback,与第二条指令变成一个组合数据包,再次发送给coverage,之后再popfront删除第三条指令,依次类推,确保每次发送的数据包只包含最新的两条指令。

coverage收到monitor发送的多组数据包后,首先定义覆盖组:覆盖组1为数据包数组中的第一条组合数据包,覆盖组2为数据包数据中的第二条组合数据包,覆盖组n为接收到的第n条组合数据包;对这n条组合数据包两两进行cross(交叉覆盖组)处理,即生成实际的组合指令库;收集两两覆盖组的交叉覆盖率即指令组合覆盖率。

norflash芯片根据覆盖率收集组件coverage产生的指令组合库中的指令组合做出对应的应答结果,monitor采集norflash芯片执行对应指令组合的应答结果,结果自动对比组件scoreboard将norflash芯片执行对应指令的应答结果指令参考模型refermodel中存储的指令组合的期望结果相对比,直到应答结果与期望结果相同,同时增加指令组合的覆盖率。

通过仿真工具自动分析指令组合覆盖情况并产生覆盖率报告,验证人员查看覆盖率报告并分析是否有未覆盖到的情况,若有则补充随机激励。

本发明还提供了一种存储介质,该存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一项所述的方法,以实现以下功能:向norflash芯片发送激励,所述激励中包含了随机组合的指令;采集norflash芯片根据指令组合做出的应答结果与期望结果作对比,若应答结果与期望结果相同则对应增加指令组合覆盖率,否则重复上述的验证操作;判断指令组合覆盖率是否满足预设阈值,是则判定该norflash芯片的指令组合验证通过,否则重复上述的验证操作。

请参照图3,本发明实施例还提供一种终端,终端b300包括处理器b301和存储器b302。其中,处理器b301与存储器b302电性连接。处理器b301是终端b300的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或调用存储在存储器b302内的计算机程序,以及调用存储在存储器b302内的数据,执行终端的各种功能和处理数据,从而对终端b300进行整体监控。

在本实施例中,终端b300中的处理器b301会按照如下的步骤,将一个或一个以上的计算机程序的进程对应的指令加载到存储器b302中,并由处理器b301来运行存储在存储器b302中的计算机程序,从而实现各种功能:向norflash芯片发送激励,所述激励中包含了随机组合的指令;采集norflash芯片根据指令组合做出的应答结果与期望结果作对比,若应答结果与期望结果相同则对应增加指令组合覆盖率,否则重复上述的验证操作;判断指令组合覆盖率是否满足预设阈值,是则判定该norflash芯片的指令组合验证通过,否则重复上述的验证操作。

存储器b302可用于存储计算机程序和数据。存储器b302存储的计算机程序中包含有可在处理器中执行的指令。计算机程序可以组成各种功能模块。处理器b301通过调用存储在存储器b302的计算机程序,从而执行各种功能应用以及数据处理。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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