CN112363877A - 芯片验证方法及平台 - Google Patents
芯片验证方法及平台 Download PDFInfo
- Publication number
- CN112363877A CN112363877A CN202011249246.4A CN202011249246A CN112363877A CN 112363877 A CN112363877 A CN 112363877A CN 202011249246 A CN202011249246 A CN 202011249246A CN 112363877 A CN112363877 A CN 112363877A
- Authority
- CN
- China
- Prior art keywords
- tested
- hardware module
- virtual storage
- hardware
- storage model
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例提供一种芯片验证方法及平台,所述方法包括:构建待测硬件模块,所述待测硬件模块中耦接的存储结构为虚拟存储模型,所述虚拟存储模型用于存储写入所述待测硬件模块的数据;测试所述待测硬件模块,以基于所述虚拟存储模型中存储的数据,验证所述待测硬件模块的功能。其中,基于所述待测硬件模块中的存储结构为虚拟存储模型,相应的数据写入可以根据实际需求进行设置,而不必耗费大量的时间执行数据的实际写入过程,从而降低了验证待测硬件模块的时间成本和运行成本。
Description
技术领域
本发明实施例涉及虚拟机技术领域,具体涉及一种芯片验证方法及平台。
背景技术
逻辑验证是数字芯片前端设计过程中的一个关键步骤,通常利用验证平台实现。具体的,验证平台可模拟芯片的实际运行环境,使芯片基于预先设计的测试用例运行,并根据芯片的运行结果,检验芯片功能的正确性。
随着数字集成电路在规模和复杂性上的快速增长,以及大量功能类似芯片的快速发布需求,对芯片验证在时间和成本上提出了更高的要求。因此如何进一步优化芯片验证方案,以降低芯片验证的验证时间和验证成本,成为了本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本发明实施例提供一种芯片验证方法及相关装置,以降低验证待测硬件模块的时间成本和运行成本。
为解决上述问题,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供一种芯片验证方法,包括:
构建待测硬件模块,所述待测硬件模块中耦接的存储结构为虚拟存储模型,所述虚拟存储模型用于存储写入所述待测硬件模块的数据;
测试所述待测硬件模块,以基于所述虚拟存储模型中存储的数据,验证所述待测硬件模块的功能。
第二方面,本发明实施例提供一种芯片验证平台,包括:
硬件构建单元,用于构建待测硬件模块,所述待测硬件模块中耦接的存储结构为虚拟存储模型,所述虚拟存储模型用于存储写入所述待测硬件模块的数据;
硬件测试单元,用于测试所述待测硬件模块,以基于所述虚拟存储模型中存储的数据,验证所述待测硬件模块的功能。
本发明实施例提供了一种芯片验证方法及平台,所述方法包括:构建待测硬件模块,所述待测硬件模块中耦接的存储结构为虚拟存储模型,所述虚拟存储模型用于存储写入所述待测硬件模块的数据;测试所述待测硬件模块,以基于所述虚拟存储模型中存储的数据,验证所述待测硬件模块的功能。其中,基于所述待测硬件模块中的存储结构为虚拟存储模型,相应的数据写入可以根据实际需求进行设置,而不必耗费大量的时间执行数据的实际写入过程,从而降低了验证待测硬件模块的时间成本和运行成本。
并且,基于虚拟存储模型不会如硬件存储结构一样出现存储随机数据,使得本发明实施例中的芯片验证方法也不需要进行存储结构的清零操作,从而进一步降低了验证待测硬件模块的时间成本和运行成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为UVM验证环境的架构示意图;
图2为本发明实施例提供的芯片验证方法的可选流程图;
图3为本发明实施例提供的构建待测硬件模块的可选流程图;
图4本发明实施例提供的测试所述待测硬件模块的可选流程图;
图5本发明实施例提供的芯片验证平台的架构示意图;
图6本发明实施例提供的硬件构建单元的结构示意图;
图7本发明实施例提供的硬件测试单元的结构示意图;
图8本发明实施例提供的硬件测试单元的又一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,采用验证方法学是芯片验证的趋势之一,通用验证方法学(UniversalVerification Methodology,简称UVM)是其中的典型代表。UVM是以SystemVerilog类为主的通用验证方法学,利用它的可重用组件,能够构建具有标准化层次结构和接口的功能验证环境,即UVM验证环境。其中,UVM验证环境规定了UVM中的基本类(即可重用组件),例如,序列编辑器(sequencer)、监视器(monitor)等,以及通信接口。验证人员可以在基本类的基础上扩展自己需要的类,然后用UVM标准的通信语句将各个类的通信接口连接起来。
参考图1示出的一种UVM验证环境的架构示意图,在所述架构中包括:输入代理(InAgent)和输出代理(Out Agent);计分板(scoreboard)以及参考模型(reference model),其中,输入代理中包括:序列编辑器和监视器,输出代理包括监视器;针对待测硬件(DUT,device under test),一次验证的流程大致如下:序列编辑器调用验证对应的测试用例的激励,将激励输入待测硬件,同时监视器检测待测硬件接收到的激励,并将激励传递给参考模型。参考模型将激励的期望结果发送给计分板,同时监视器也将待测硬件针对激励的反馈结果收集至计分板。最后计分板对比参考模型的期望结果和待测硬件的反馈结果,得出最终的验证结果并输出。
然而,在待测硬件的功能需要基于预设数据实现时,对应的待测硬件的验证时间和验证成本过高。
具体的,在待测硬件的功能需要基于预设数据实现时,在待测硬件中通常配置相应的硬件存储结构,以存储预设数据。在进行功能验证时,则通过总线发出相应数据的写入命令,将预设数据配置至存储结构后,执行对待测硬件的验证过程。以一个测试用例对应一个预设数据为例,在需要大量的测试用例不断的测试以验证待测硬件的功能时,则需要耗费大量的时间成本和运行成本以实现对存储结构的配置。
并且,在使用SRAM作为预设数据的存储介质时,每次写入预设数据前,还需要将全部的存储单元进行清零,以避免存储结构中存有随机数据,而对存储结构的清零过程进一步提高了验证所述待测硬件的时间成本和运行成本。
基于此,本发明实施例提供了一种芯片验证方法及平台,所述方法包括:构建待测硬件模块,所述待测硬件模块中耦接的存储结构为虚拟存储模型,所述虚拟存储模型用于存储写入所述待测硬件模块的数据;测试所述待测硬件模块,以基于所述虚拟存储模型中存储的数据,验证所述待测硬件模块的功能。其中,基于所述待测硬件模块中的存储结构为虚拟存储模型,相应的数据存储可以根据实际需求进行设置,而不必耗费大量的时间执行数据的实际写入过程,从而降低了验证待测硬件模块的时间成本和运行成本。
并且,基于虚拟存储模型不会如硬件存储结构一样出现存储有随机数据的情况,使得本发明实施例中的芯片验证方法也不需要进行存储结构的清零操作,从而进一步降低了验证待测硬件模块的时间成本和运行成本。
在一个可选的实现中,图2示出了本申请实施例提供的芯片验证方法的可选流程,该流程可由芯片验证平台实现,芯片验证平台可以为UVM平台,也可以为其他类型的平台;如图2所示,该流程可以包括:
步骤S100、构建待测硬件模块,所述待测硬件模块中耦接的存储结构为虚拟存储模型,所述虚拟存储模型用于存储写入所述待测硬件模块的数据。
在本发明实施例中,所述待测硬件模块可以理解为需要验证的硬件结构,在本实施例中,所述待测硬件模块不再是纯粹的硬件,而是耦接有虚拟存储模型的硬件结构。通过耦接虚拟存储模型的方式,进行对应硬件结构的验证,从而降低对硬件的存储结构进行配置的时间成本和运行成本,且避免了对硬件的存储结构进行清零过程耗费的时间成本和运行成本,从而降低了待测硬件模块的验证时间和验证成本。
在本实施例中,待测硬件模块中可以包含用于执行相应的功能性操作的待测硬件电路和用于存储数据的虚拟存储模型,所述待测硬件电路和所述虚拟存储模型耦接,使待测硬件电路可以基于虚拟存储模型中存储的数据执行相应的功能性操作。其中,所述功能性操作可以为读操作、写操作或计算操作中的一种或多种。
步骤S110、测试所述待测硬件模块,以基于所述虚拟存储模型中存储的数据,验证所述待测硬件模块的功能。
在构建所述待测硬件模块后,可以基于所述待测硬件模块,对所述待测硬件模块执行相应的测试流程。
其中,基于所述待测硬件模块中的存储结构为虚拟存储模型,在进行测试过程中,可以直接在所述虚拟存储模型中设置预设数据,或者,设置预设的规则,使所述虚拟存储模型中设置的数据按照预设的规则进行相应的变化,以适应测试需求。
基于所述虚拟存储模型中的数据,可以实现对所述待测硬件模块的验证。
可以看出,本发明实施例中基于所述待测硬件模块中的存储结构为虚拟存储模型,相应的数据配置可以根据实际需求进行设置,而不必耗费大量的时间执行数据的实际写入过程,从而降低了验证待测硬件模块的时间成本和运行成本。
并且,基于虚拟存储模型不会如硬件存储结构一样出现随机数据,使得本发明实施例中的芯片验证方法也不需要进行存储结构的清零操作,从而进一步降低了验证待测硬件模块的时间成本和运行成本。
在一个可选实现中,所述待测硬件模块可以构建得到。其中,针对待测的硬件结构,可以首先获得用于执行相关的功能性操作的硬件电路,并进一步仿真出对应的存储模型,并通过耦接件电路和仿真的存储模型,形成待测的硬件结构。可选的,图3示出了本申请实施例提供的构建待测硬件模块的可选流程,该流程可以理解为步骤S100的一个可选实现,如图3所示,该流程可以包括:
步骤S200:提供待测硬件电路,所述待测硬件电路用于执行所述待测硬件模块的功能性操作;
所述待测硬件电路,为所述待测硬件模块中,用于执行相关的功能性操作的硬件电路。可选的,所述待测硬件模块可以为加密验证模块,所述硬件电路可以为加密验证电路。其中,在加密验证模块中,可以存储有密钥数据,所述加密验证电路用于在接收到加密数据后,读取加密验证模块中存储的密钥数据,并基于所述密钥数据进行比对,确定所述加密数据是否与所述密钥数据相匹配。
在本发明的其他示例中,所述待测硬件模块还可以为其他功能性模块,例如地址解析模块、命令解析模块等,本发明在此不做赘述。
步骤S210:根据所述待测硬件模块的功能参数,模拟得到与所述待测硬件电路匹配的虚拟存储模型;
可选的,所述虚拟存储模型可以基于软件程序模拟得到。通过软件程序模拟得到的虚拟存储模型,可以基于设计需求进行虚拟存储模型的建立,而不必拘泥于工艺条件和实际的硬件限制。同时,基于软件模拟得到的虚拟存储模型,可以对存入的数据进行直接设置,而不会受到硬件中残余的信号或信号传输导致的误码的影响。并且,所述虚拟存储模型中的数据,还可以基于预设的规律进行相应的变化,从而适应测试过程中,对不同的数据的验证需求。
其中,待测硬件模块具有预先设计的功能参数,以实现相应的功能。在本示例中,可以基于所述待测硬件模块的功能参数,例如与待测硬件模块的存储功能相关的参数,模拟虚拟存储模型。例如,根据待测硬件模块中的存储结构的深度和宽度参数,例如可以为8192×18,确定虚拟存储模型的深度和宽度。
需要说明的是,在模拟虚拟存储模型时,所述虚拟存储模型还应与待测硬件电路的相关参数相匹配,例如,与待测硬件电路的相接的接口协议,所述虚拟存储模型位于待测硬件电路中的地址等。
所述虚拟存储模型可以为SRAM结构的存储模型,例如可以为Fake SRAM,也可以为其他类型结构的存储模型,本发明在此不做具体的限定。
步骤S220:耦接所述待测硬件电路与所述虚拟存储模型,得到所述待测硬件模块。
在模拟得到与所述待测硬件电路适配的虚拟存储模型后,可以通过耦接的方式,连接所述待测硬件电路与所述虚拟存储模型,并以耦接后的待测硬件电路与所述虚拟存储模型作为所述待测硬件模块。
可以理解的是,所述虚拟存储模型与所述待测硬件电路的耦接,实质上是装载有虚拟存储模型的硬件与所述待测硬件电路的耦接,通过配置相匹配的接口,可以实现所述虚拟存储模型和所述待测硬件电路的耦接。可选的,与所述待测硬件电路相匹配的接口可以为axi、pcie等,本发明在此不做具体的限定。
通过采用软件构建待测硬件模块中的虚拟存储模型,本发明实施例可以对存入虚拟存储模型的数据进行直接设置,而不会受到硬件中残余的信号或信号传输导致的误码的影响。并且,所述虚拟存储模型中的数据,还可以基于预设的规律进行相应的变化,从而适应测试过程中,对不同的数据的验证需求,进一步降低验证待测硬件模块的时间成本和运行成本。
在一个可选实现中,本发明实施例进一步提供了测试所述待测硬件模块的流程,图4示出了本申请实施例提供的测试所述待测硬件模块的可选流程,该流程可以理解为步骤S110的一个可选实现,如图4所示,该流程可以包括:
步骤S300:初始化所述虚拟存储模型,在所述虚拟存储模型中加载预设数据;
所述初始化过程,可以理解为对所述虚拟存储模型进行初始配置,例如,基于即将执行的测试过程,对所述虚拟存储模型中时钟信号、使能信号、复位信号等进行配置,以适应后续的测试流程。
在本示例中,在初始化过程中,还在所述虚拟存储模型中加载预设数据,从而使后续步骤可以基于该预设数据进行相应的测试。
可选的,所述预设数据可以为设定的预存储数据,也可以为带有预设错误的预存储数据。其中,所述预设数据为带有预设错误的预存储数据,可以实现对错误场景的模拟,从而进一步进行待测硬件模块在错误场景下的验证。
可以理解的是,在真实场景中,存储结构中不可避免的出现一定的误码、空码或信号的溢出等,在本示例中,可以将预先设置的错误信息注入虚拟存储模型中,从而测试该种场景下待测硬件模块的功能。
在一个可选的示例中,还可以在所述初始化过程中,进一步设置预设的参数值,使加载在所述虚拟存储模型的所述预存储数据基于所述参数值进行变化,从而可以满足测试过程中预存储数据的变化需求,避免测试过程对虚拟存储模块进行多次数据加载的过程,进一步降低测试时间和测试成本。
以所述待测硬件模块可以为加密验证模块,所述硬件电路可以为加密验证电路为例,所述虚拟存储模块中用于存储的预存储数据可以为密钥数据,通过对密钥数据的预先加载,可以得知初始的密钥数据,在后续的测试过程中,可以使密钥数据基于一定的规律进行变化,从而测试不同密钥数据的有效性。
在另一个可选的示例中,所述预存储数据的值,可以基于所述预存储数据在所述虚拟存储模型中存储的地址对应的值推导得到,从而可以快速准确的推导出预存储数据的值,使后续的测试能够快速准确的产生能够命中所述预存储数据的激励,从而避免预存储数据的值的变化无法预知,使得只能随机产生的激励不易命中的问题。
例如,加密验证模块中的密钥数据的值可以基于所述虚拟存储模型中存储的地址对应的值的增加而增加,例如,虚拟存储模块的空间是8k,即8192,采用地址耦合存放密钥时,地址为1,则存放的密钥值为1;地址为2,存放的密钥值为2;……地址为8192,存放的密钥值为8192。这样,在进行相应的验证任务时,根据要访问的虚拟存储模块的地址,可以产生根据该地址计算出来的密钥数据的激励,从而使得发出的访问虚拟存储地址模块的请求能够命中虚拟存储模块的密钥数据。
步骤S310:生成激励信号,其中,至少部分激励信号中的数据与所述预存储数据相耦合;
在所述虚拟存储模型中加载预设数据后,可以生成大量的激励信号,实现对加载有预设数据的待测硬件模块的验证。
其中,针对任一预设数据,可以生成多个激励信号,且至少部分激励信号中的数据与所述预存储数据相耦合,从而能够产生激励命中。
仍以所述待测硬件模块可以为加密验证模块,所述硬件电路可以为加密验证电路为例,所述虚拟存储模块存储密钥数据,所述激励信号中,至少部分激励信号中的数据与所述密钥数据相匹配,从而得到密钥数据匹配的信息,以确定所述加密验证模块能够在密钥正确时,比对得到正确的结论。
同时,需要说明的是,生成的所述激励信号中,还可以包括至少部分激励信号中的数据与所述预存储数据不相耦合的数据,从而可以产生激励未命中。例如,待测硬件模块为加密验证模块,在虚拟存储模块存储密钥数据的场景下,激励信号中的数据与所述密钥数据不匹配,以得到未匹配成功的信息,从而确定所述加密验证模块能够在密钥不正确时,比对得到未匹配成功的结论。
步骤S320:向所述待测硬件模块发送激励信号,并获取所述待测硬件模块在执行所述激励信号后得到的激励结果;
在生成激励信号后,可以向所述待测硬件模块发送激励信号,并获取所述待测硬件模块在执行所述激励信号后得到的激励结果。
其中,所述待测硬件模块基于所述虚拟存储模型中存储的数据执行相应的操作,并基于自身的执行逻辑,得到相应的激励结果。
在一个可选的示例中,可以采用监视所述待测硬件模块的输出信号的方式,获取所述待测硬件模块在执行所述激励信号后得到的激励结果。例如,可以在所述待测硬件模块的输出侧接入一个输出监视器(Monitor2),以完成对待测硬件模块的输出端口数据的收集。可选的,所述输出信号可以通过TLM(transaction level models,事务级模型)被Monitor2监视到。
步骤S330:基于所述激励信号,确定待测硬件模块的期望值;
待测硬件模块的期望值,为基于所述激励信号所携带的数据,所述待测硬件模块在相应执行逻辑下,推导得到的值。也就是说,所述待测硬件模块的期望值,为所述待测硬件模块在理想状态下应当得到的值。
其中,根据向所述待测硬件模块发送的激励信号,可以确定待测硬件模块的期望值,从而可以确定所述待测硬件模块的激励结果是否准确,进而验证所述待测硬件模块的功能。
在一个可选的示例中,确定待测硬件模块的期望值,可以基于以下流程确定:
步骤S31:监视所述待测硬件模块的输入信号,获取向所述待测硬件模块发送的激励信号;
其中,可以通过输入监视器,监视所述待测硬件模块的输入信号,从而获取向所述待测硬件模块发送的激励信号。
步骤S32:翻译所述激励信号,获取所述待测硬件模块基于所述激励信号,对虚拟存储模型的操作信息;
在获取所述激励信号后(该激励信号例如可以为一个数据包),可以对所述激励信号进行翻译,从而得到所述待测硬件模块基于所述激励信号,对虚拟存储模型的操作信息。
步骤S33:基于所述操作信息,模拟得到所述硬件电路期望值。
在获取所述操作信息后,可以进一步模拟所述虚拟存储模型在该操作信息下产生的待测硬件模块的期望值。
步骤S340:对比所述激励结果和所述期望值,确定所述待测硬件模块的验证结果。
在得到所述期望值后,通过对比所述激励结果和所述期望值,可以确定所述待测硬件模块的验证结果。其中,在所述激励结果和所述期望值相一致时,则所述验证结果为验证成功,在所述激励结果和所述期望值不一致时,则所述验证结果为验证失败。
例如,在所述激励结果为激励未命中时,对应的所述期望值也为激励未命中,则所述待测硬件模块验证成功,在所述激励结果为激励命中,对应的所述期望值也为激励命中,则所述待测硬件模块验证成功。而在所述激励结果为激励命中,而所述期望值为激励未命中时,则所述待测硬件模块验证失败。
在本发明实施例中,基于所述待测硬件模块中的存储结构为虚拟存储模型,相应的数据配置可以根据实际需求进行设置,而不必耗费大量的时间执行数据的实际写入过程,从而降低了验证待测硬件模块的时间成本和运行成本。
并且,基于虚拟存储模型不会如硬件存储结构一样出现存储随机数据,使得本发明实施例中的芯片验证方法也不需要进行存储结构的清零操作,从而进一步降低了验证待测硬件模块的时间成本和运行成本。
在本发明的另一可选实现中,还提供了一种芯片验证平台,参考图5所示的芯片验证平台的架构示意图,所述芯片验证平台包括:
硬件构建单元100,用于构建待测硬件模块,所述待测硬件模块中耦接的存储结构为虚拟存储模型,所述虚拟存储模型用于存储写入所述待测硬件模块的数据;
硬件测试单元200,用于测试所述待测硬件模块,以基于所述虚拟存储模型中存储的数据,验证所述待测硬件模块的功能。
可选的,参考图6所示的硬件构建单元的结构示意图,所述硬件构建单元100,包括:
硬件电路获取模块110,用于获取待测硬件电路,所述待测硬件电路用于执行所述待测硬件模块的功能性操作;
存储模型模拟模块120,用于根据所述待测硬件模块的功能参数,模拟得到与所述待测硬件电路适配的虚拟存储模型;
耦接模块130,用于耦接所述待测硬件电路与所述虚拟存储模型,得到所述待测硬件模块。
可选的,参考图7所示的硬件测试单元的结构示意图,所述硬件测试单元,包括:
激励模块(Stimulus)210,用于初始化所述虚拟存储模型,在所述虚拟存储模型中加载预设数据,并向所述待测硬件模块发送激励信号;
输出监视器(Monitor2)220,用于获取所述待测硬件模块在执行所述激励信号后得到的激励结果;
结果确定模块230,用于基于所述激励信号,确定所述待测硬件模块的期望值,并对比所述激励结果和所述硬件电路期望值,确定所述待测硬件模块的验证结果。
可选的,所述激励模块210用于初始化所述虚拟存储模型,在所述虚拟存储模型中加载预设数据,包括:
在所述虚拟存储模型中加载预存储数据;
或;
在所述虚拟存储模型中加载带有预设错误的预存储数据。
可选的,所述激励模块210还用于:
设置预设的参数值,使所述预存储数据的值基于所述参数值变化。
可选的,所述预存储数据的值基于所述预存储数据在所述虚拟存储模型中存储的地址对应的值推导得到。
可选的,所述激励模块210还用于:
生成激励信号,其中,至少部分激励信号中的数据与所述预存储数据相耦合。可选的,可以在所述激励模块210中设置耦合激励发生器(Coupling sequencer),以生成数据与所述预存储数据相耦合的激励信号。
可选的,所述输出监视器220,用于获取所述待测硬件模块在执行所述激励信号后得到的激励结果,具体为:监视所述待测硬件模块的输出信号,获取所述待测硬件模块在执行所述激励信号后得到的激励结果。
所述结果确定模块230,用于基于所述激励信号,确定所述待测硬件模块的期望值,包括:
输入监视器(Monitor1),用于监视所述待测硬件模块的输入信号,获取向所述待测硬件模块发送的激励信号;
计分板(Scoreboard),用于翻译所述激励信号,获取所述待测硬件模块基于所述激励信号,对虚拟存储模型的操作信息;
参考模型,用于基于所述操作信息,模拟得到所述待测硬件模块的期望值。
其中,所述计分板(Scoreboard)还用于对比所述激励结果和所述硬件电路期望值,确定所述待测硬件模块的验证结果。
可选的,所述功能性操作包括:读操作、写操作和计算操作中的一种或多种。
下面,结合图8示出的所述硬件测试单元的又一结构示意图,对所述测试单元的测试过程进行详细的说明。
具体的,所述待测硬件模块DUT为加密验证模块,所述虚拟存储模型为SRAM结构的Fake SRAM。在初始化阶段,耦合序列发生器Coupling sequencer将预存储数据,或者,带有随机错误的预存储数据预加载(preload)到虚拟存储模型Fake SRAM中,其中,带有随机错误的预存储数据的加载可以理解为注错(inject error)。之后,激励模块Stimulus通过耦合序列发生器Coupling sequencer产生对虚拟存储模型Fake SRAM访问的各种耦合性激励。这些激励信号为带有读/写请求(W/R Request)的数据包,通过TLM被输入监视器Monitor1监视到,输入监视器Monitor1将监视到的数据包发送给待测硬件模块DUT和计分板Scoreboard。计分板Scoreboard接收到数据包会将该数据包翻译成对参考模型(本示例可以为Shadow SRAM)的操作,产生硬件电路期望值。待测硬件模块DUT接收到来自输入监视器Monitor1通过TLM传过来的数据包,在硬件电路中进行运算。运算的结果被监视输出接口的输出监视器Monitor2拿到,然后该输出监视器Monitor2将结果传送到计分板Scoreboard中,在计分板Scoreboard中完成与期望值的对比,输出对比结果。
可以看出,在本发明实施例中,基于所述待测硬件模块中的存储结构为虚拟存储模型,相应的数据配置可以根据实际需求进行设置,而不必耗费大量的时间执行数据的实际写入过程,从而降低了验证待测硬件模块的时间成本和运行成本。
并且,基于虚拟存储模型不会如硬件存储结构一样出现存储随机数据,使得本发明实施例中的芯片验证方法也不需要进行存储结构的清零操作,从而进一步降低了验证待测硬件模块的时间成本和运行成本。
上文描述了本发明实施例提供的多个实施例方案,各实施例方案介绍的各可选方式可在不冲突的情况下相互结合、交叉引用,从而延伸出多种可能的实施例方案,这些均可认为是本发明实施例披露、公开的实施例方案。
虽然本发明实施例披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (20)
1.一种芯片验证方法,其特征在于,包括:
构建待测硬件模块,所述待测硬件模块中耦接的存储结构为虚拟存储模型,所述虚拟存储模型用于存储写入所述待测硬件模块的数据;
测试所述待测硬件模块,以基于所述虚拟存储模型中存储的数据,验证所述待测硬件模块的功能。
2.根据权利要求1所述的芯片验证方法,其特征在于,所述构建待测硬件模块,包括:
获取待测硬件电路,所述待测硬件电路用于执行所述待测硬件模块的功能性操作;
根据所述待测硬件模块的功能参数,模拟得到与所述待测硬件电路匹配的虚拟存储模型;
耦接所述待测硬件电路与所述虚拟存储模型,得到所述待测硬件模块。
3.根据权利要求1所述的芯片验证方法,其特征在于,所述测试所述待测硬件模块,包括:
初始化所述虚拟存储模型,在所述虚拟存储模型中加载预设数据;
向所述待测硬件模块发送激励信号,并获取所述待测硬件模块在执行所述激励信号后得到的激励结果;
基于所述激励信号,确定所述待测硬件模块的期望值;
对比所述激励结果和所述期望值,确定所述待测硬件模块的验证结果。
4.根据权利要求3所述的芯片验证方法,其特征在于,所述初始化所述虚拟存储模型,在所述虚拟存储模型中加载预设数据,包括:
在所述虚拟存储模型中加载预存储数据;
或;
在所述虚拟存储模型中加载带有预设错误的预存储数据。
5.根据权利要求4所述的芯片验证方法,其特征在于,所述初始化所述虚拟存储模型,在所述虚拟存储模型中加载预设数据,还包括:
设置预设的参数值,使加载在所述虚拟存储模型的所述预存储数据基于所述参数值变化。
6.根据权利要求4所述的芯片验证方法,其特征在于,所述预存储数据的值基于所述预存储数据在所述虚拟存储模型中存储的地址对应的值推导得到。
7.根据权利要求4所述的芯片验证方法,其特征在于,所述向所述待测硬件模块发送激励信号之前,还包括:
生成激励信号,其中,至少部分激励信号中的数据与所述预存储数据相耦合。
8.根据权利要求3所述的芯片验证方法,其特征在于,所述获取所述待测硬件模块在执行所述激励信号后得到的激励结果,具体为:
监视所述待测硬件模块的输出信号,获取所述待测硬件模块在执行所述激励信号后得到的激励结果。
9.根据权利要求3所述的芯片验证方法,其特征在于,所述基于所述激励信号,确定所述待测硬件模块的期望值,包括:
监视所述待测硬件模块的输入信号,获取向所述待测硬件模块发送的激励信号;
翻译所述激励信号,获取所述待测硬件模块基于所述激励信号,对虚拟存储模型的操作信息;
基于所述操作信息,模拟得到所述待测硬件模块的期望值。
10.根据权利要求2所述的芯片验证方法,其特征在于,所述功能性操作包括:读操作、写操作和计算操作中的一种或多种。
11.一种芯片验证平台,其特征在于,包括:
硬件构建单元,用于构建待测硬件模块,所述待测硬件模块中耦接的存储结构为虚拟存储模型,所述虚拟存储模型用于存储写入所述待测硬件模块的数据;
硬件测试单元,用于测试所述待测硬件模块,以基于所述虚拟存储模型中存储的数据,验证所述待测硬件模块的功能。
12.根据权利要求11所述的芯片验证平台,其特征在于,所述硬件构建单元,包括:
硬件电路获取模块,用于获取待测硬件电路,所述待测硬件电路用于执行所述待测硬件模块的功能性操作;
存储模型模拟模块,用于根据所述待测硬件模块的功能参数,模拟得到与所述待测硬件电路适配的虚拟存储模型;
耦接模块,用于耦接所述待测硬件电路与所述虚拟存储模型,得到所述待测硬件模块。
13.根据权利要求11所述的芯片验证平台,其特征在于,所述硬件测试单元,包括:
激励模块,用于初始化所述虚拟存储模型,在所述虚拟存储模型中加载预设数据,并向所述待测硬件模块发送激励信号;
输出监视器,用于获取所述待测硬件模块在执行所述激励信号后得到的激励结果;
结果确定模块,用于基于所述激励信号,确定所述待测硬件模块的期望值,并对比所述激励结果和所述硬件电路期望值,确定所述待测硬件模块的验证结果。
14.根据权利要求13所述的芯片验证平台,其特征在于,所述激励模块用于初始化所述虚拟存储模型,在所述虚拟存储模型中加载预设数据,包括:
在所述虚拟存储模型中加载预存储数据;
或;
在所述虚拟存储模型中加载带有预设错误的预存储数据。
15.根据权利要求14所述的芯片验证平台,其特征在于,所述激励模块还用于:
设置预设的参数值,使所述预存储数据的值基于所述参数值变化。
16.根据权利要求14所述的芯片验证平台,其特征在于,所述预存储数据的值基于所述预存储数据在所述虚拟存储模型中存储的地址对应的值推导得到。
17.根据权利要求14所述的芯片验证平台,其特征在于,所述激励模块,还用于:
生成激励信号,其中,至少部分激励信号中的数据与所述预存储数据相耦合。
18.根据权利要求13所述的芯片验证平台,其特征在于,所述输出监视器,用于获取所述待测硬件模块在执行所述激励信号后得到的激励结果,具体为:
监视所述待测硬件模块的输出信号,获取所述待测硬件模块在执行所述激励信号后得到的激励结果。
19.根据权利要求13所述的芯片验证平台,其特征在于,所述结果确定模块,包括:
输入监视器,用于监视所述待测硬件模块的输入信号,获取向所述待测硬件模块发送的激励信号;
计分板,用于翻译所述激励信号,获取所述待测硬件模块基于所述激励信号,对虚拟存储模型的操作信息;
参考模型,用于基于所述操作信息,模拟得到所述待测硬件模块的期望值。
20.根据权利要求12所述的芯片验证平台,其特征在于,所述功能性操作包括:读操作、写操作和计算操作中的一种或多种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011249246.4A CN112363877B (zh) | 2020-11-10 | 2020-11-10 | 芯片验证方法及平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011249246.4A CN112363877B (zh) | 2020-11-10 | 2020-11-10 | 芯片验证方法及平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112363877A true CN112363877A (zh) | 2021-02-12 |
CN112363877B CN112363877B (zh) | 2023-04-21 |
Family
ID=74509523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011249246.4A Active CN112363877B (zh) | 2020-11-10 | 2020-11-10 | 芯片验证方法及平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112363877B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486625A (zh) * | 2021-06-29 | 2021-10-08 | 海光信息技术股份有限公司 | 芯片的验证方法与验证系统 |
CN113671349A (zh) * | 2021-08-22 | 2021-11-19 | 山东云海国创云计算装备产业创新中心有限公司 | 一种fpga芯片测试平台和fpga芯片测试方法 |
CN115248998A (zh) * | 2022-09-22 | 2022-10-28 | 济南新语软件科技有限公司 | 一种SoC芯片分布式仿真验证平台和方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005032191A (ja) * | 2003-07-11 | 2005-02-03 | Sharp Corp | 仮想テスタ、テスト装置、半導体集積回路用テストシステム、及び半導体集積回路用テストプログラムの検証方法 |
CN103530166A (zh) * | 2013-09-26 | 2014-01-22 | 中国航天科工集团第三研究院第八三五七研究所 | 一种基于虚拟ram的面向多通道芯片的验证平台和验证方法 |
CN107797846A (zh) * | 2017-09-26 | 2018-03-13 | 记忆科技(深圳)有限公司 | 一种Soc芯片验证方法 |
CN109271231A (zh) * | 2017-07-18 | 2019-01-25 | 波音公司 | 利用虚拟化的系统集成 |
CN110377475A (zh) * | 2019-07-03 | 2019-10-25 | 福州数据技术研究院有限公司 | 一种基于uvm的大规模存储器读写验证平台及其方法 |
CN111542818A (zh) * | 2018-12-12 | 2020-08-14 | 深圳鲲云信息科技有限公司 | 一种网络模型数据存取方法、装置及电子设备 |
-
2020
- 2020-11-10 CN CN202011249246.4A patent/CN112363877B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005032191A (ja) * | 2003-07-11 | 2005-02-03 | Sharp Corp | 仮想テスタ、テスト装置、半導体集積回路用テストシステム、及び半導体集積回路用テストプログラムの検証方法 |
CN103530166A (zh) * | 2013-09-26 | 2014-01-22 | 中国航天科工集团第三研究院第八三五七研究所 | 一种基于虚拟ram的面向多通道芯片的验证平台和验证方法 |
CN109271231A (zh) * | 2017-07-18 | 2019-01-25 | 波音公司 | 利用虚拟化的系统集成 |
CN107797846A (zh) * | 2017-09-26 | 2018-03-13 | 记忆科技(深圳)有限公司 | 一种Soc芯片验证方法 |
CN111542818A (zh) * | 2018-12-12 | 2020-08-14 | 深圳鲲云信息科技有限公司 | 一种网络模型数据存取方法、装置及电子设备 |
CN110377475A (zh) * | 2019-07-03 | 2019-10-25 | 福州数据技术研究院有限公司 | 一种基于uvm的大规模存储器读写验证平台及其方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486625A (zh) * | 2021-06-29 | 2021-10-08 | 海光信息技术股份有限公司 | 芯片的验证方法与验证系统 |
CN113671349A (zh) * | 2021-08-22 | 2021-11-19 | 山东云海国创云计算装备产业创新中心有限公司 | 一种fpga芯片测试平台和fpga芯片测试方法 |
CN115248998A (zh) * | 2022-09-22 | 2022-10-28 | 济南新语软件科技有限公司 | 一种SoC芯片分布式仿真验证平台和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112363877B (zh) | 2023-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112363877B (zh) | 芯片验证方法及平台 | |
CN115841089B (zh) | 一种基于uvm的系统级芯片验证平台及验证方法 | |
US10204698B2 (en) | Method to dynamically inject errors in a repairable memory on silicon and a method to validate built-in-self-repair logic | |
US4644487A (en) | Method and apparatus for verifying the design of digital electronic components | |
US10209306B2 (en) | Methods and systems for generating functional test patterns for manufacture test | |
CN113076227A (zh) | Mcu验证方法、系统和终端设备 | |
CN111145826B (zh) | 一种存储器内建自测试方法、电路及计算机存储介质 | |
CN113486625B (zh) | 芯片的验证方法与验证系统 | |
CN115130402B (zh) | 一种缓存验证方法、系统、电子设备及可读存储介质 | |
CN112417798A (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN115496018A (zh) | 一种SoC芯片多版本验证方法、装置及设备 | |
CN114444422A (zh) | 芯片验证系统、方法及存储介质 | |
JP2002323993A (ja) | シングルチップマイクロコンピュータ並びにその試験方法及び試験プログラム | |
CN116662050A (zh) | 一种错误注入支持功能验证方法、装置、终端及介质 | |
CN114492269B (zh) | 闪存控制器的验证系统 | |
US10528689B1 (en) | Verification process for IJTAG based test pattern migration | |
CN113672260B (zh) | 一种处理器cpu初始化方法 | |
CN112463633B (zh) | 一种片上存储器的地址译码校验方法、装置、设备及介质 | |
US11295051B2 (en) | System and method for interactively controlling the course of a functional simulation | |
US20020026301A1 (en) | Automatic evaluation method, automatic evaluation system, and storage medium storing automatic evaluation program | |
CN112069009A (zh) | 一种在Recovery模式下进行压力测试的方法、装置和终端设备 | |
CN117422029B (zh) | eFuse控制模块的验证方法 | |
CN113176974B (zh) | 用于验证ip核的方法、装置及系统 | |
CN113138914B (zh) | 资源交互系统测试方法、装置、存储介质和计算机设备 | |
CN114297966A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |