处理器验证系统及基于处理器验证系统的处理器验证方法与流程

文档序号:17661583发布日期:2019-05-15 22:24阅读:135来源:国知局

本发明涉及通信技术领域,尤其涉及一种处理器验证系统及基于处理器验证系统的处理器验证方法。



背景技术:

集成电路设计开发中处理器模块规模大、复杂度高。集成电路在生产制造前需要验证所设计电路硬件的正确性,功能验证则是为了确保待测电路的行为与功能设计规范一致,实现的方式包含处理器功能验证。

在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:

处理器功能验证不能高效支持处理器异步中断行为,给参考模型期望值的建立及比对造成困难,导致处理器功能验证的效率降低,在验证后期难以在较短的迭代周期下对处理器功能进行完整的验证。



技术实现要素:

本发明提供的处理器验证系统及基于处理器验证系统的处理器验证方法,实现了处理器功能的完整验证,提高了处理器功能验证的效率。

第一方面,本发明提供一种处理器验证系统,包括:

仿真系统、参考模型、检查点管理器、监视器和比较器;

所述仿真系统,用于接收待测程序,并进行仿真;

所述参考模型,用于接收待测程序;

所述检查点管理器,用于保存和恢复所述仿真系统的仿真状态;

所述监视器,用于监测所述仿真系统的仿真状态,并在所述仿真系统的仿真状态满足预设条件时,启动所述检查点管理器,以使所述检查点管理器保存和恢复所述仿真系统的仿真状态;

所述比较器,用于将所述仿真系统的仿真状态的值和所述参考模型产生的仿真期望值进行比较。

可选的,所述仿真系统包括待测处理器;

所述监视器,具体用于检测所述仿真系统中的所述待测处理器的仿真状态。

可选的,所述待测处理器,还用于控制所述参考模型进行相应状态的更新,并产生仿真期望值;

所述相应状态为与所述待测处理器的状态相同的状态。

第二方面,本发明实施例还提供了一种基于上述的处理器验证系统的处理器验证方法,包括:

仿真系统和参考模型读取并执行待测程序,监视器检查所述仿真系统的仿真状态;

所述监视器在所述仿真系统中的待测处理器发生异步中断时,所述待测处理器处理异步中断;

检查点管理器保存所述仿真系统的仿真状态,并将所述仿真系统的仿真状态恢复至与所述参考模型的仿真状态一致。

可选的,所述方法还包括:

比较器在所述仿真系统的仿真状态未满足预设条件时,读取所述仿真系统的仿真状态的值,并将所述仿真系统的仿真状态的值和所述参考模型产生的仿真期望值进行比较。

可选的,所述方法还包括:

在所述比较器监测到待测程序执行结束时,所述监视器向所述参考模型发送更新状态的通知。

可选的,所述监视器在所述仿真系统中的待测处理器发生异步中断时,所述方法还包括:

所述比较器停止将所述仿真系统的仿真状态的值和所述参考模型产生的仿真期望值进行比较。

第三方面,本发明实施例还提供了一种基于上述的处理器验证系统的处理器验证方法,包括:

参考模型读取并执行待测程序,获取所述待测程序的检查点;

所述仿真系统和/或所述参考模型依据所述检查点对所述待测程序进行仿真。

可选的,所述仿真系统和/或所述参考模型依据所述检查点对所述待测程序进行仿真,包括:

在所述待测程序由所述参考模型执行仿真时,所述参考模型在运行到检查点时,检查点管理器保存所述参考模型的执行状态;

监视器向所述仿真系统发送执行所述待测程序的指令;

所述仿真系统根据所述检查点对所述待测程序进行仿真。

可选的,所述仿真系统和/或所述参考模型依据所述检查点对所述待测程序进行仿真,包括:

在所述待测程序由所述参考模型执行仿真时,所述参考模型在运行到检查点时,检查点管理器保存所述参考模型的执行状态;

监视器向所述仿真系统和所述参考模型发送执行所述待测程序的指令;

所述仿真系统和所述参考模型根据所述检查点对所述待测程序进行仿真。

本发明实施例提供的处理器验证系统及基于处理器验证系统的处理器验证方法,在监视器监测到仿真系统的仿真状态满足预设条件时,例如异步中断的条件,启动检查点管理器,并通过检查点管理器保存和恢复仿真系统的仿真状态,实现了在处理器出现异步中断时,通过启动检查点管理器,对当前异步中断的状态进行保存,并恢复仿真系统的仿真状态,以方便参考模型期望值的比对,在提高处理器功能验证的效率的同时,也完成了对处理器功能的完整验证。

附图说明

图1为本发明一实施例提供的处理器验证系统的结构示意图;

图2为本发明一实施例提供的基于处理器验证系统的处理器验证方法的流程图;

图3为本发明另一实施例提供的基于处理器验证系统的处理器验证方法的流程图;

图4为本发明另一实施例提供的基于处理器验证系统的处理器验证方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

集成电路在生产制造前需要验证所设计电路硬件的正确性,功能验证则是为了确保待测电路的行为与功能设计规范一致,实现的方式包含功能仿真。一般的功能仿真通过在仿真平台上运行模拟程序来校验电路设计,将不同的激励信号在不同时刻施加到电路设计输入,模拟实际应用中电路可能遇到的状态和输入场景。仿真过程中,检测电路的状态和输出信号,并将这些信号与期望值进行比较,如果比较结果不一致,则认为电路存在设计缺陷并且必须改善。

由于处理器的复杂性,其仿真的运行时间相对较长,为提高验证效率需要考虑仿真平台,激励长度,期望值的产生比对等因素。功能仿真平台包括了计算机上运行的电子设计自动化程序,硬件加速器及现场可编程逻辑门阵列,不同的仿真平台具有不同的仿真速度。处理器的仿真激励为待测程序,包含了随机生成的程序和实际应用中的操作系统和应用程序,其中操作系统和应用程序包含较长的指令序列,具有较长的激励长度。处理器仿真的期望值产生包括待测程序的自检测及使用参考模型,参考模型往往区别于电路rtl设计,由软件语言等方式进行建模,相比于处理器电路具有更高的抽象层次,仿真速度更快。期望值的比对具有不同粒度,通常在指令的级别比对每条指令完成时的状态和输出信号,当激励较长时可能不实现实时检查,只在特定仿真阶段进行校对。

异步中断为处理器支持的行为,在armv8指令集架构中包括物理中断及虚拟中断,通过处理器管脚和内部系统寄存器实现表示。异步中断的产生来源于处理器外部设备及存储设备等,产生时刻的影响因素包括外部设备存储设备的功能及仿真系统接受不同激励下的状态,往往不能被参考模型精确的建模,为仿真期望值的产生造成困难。

检查点为一种软硬件调试技术,在检查点对软件或硬件的状态信息进行存储,存储的状态信息保存在特定的仿真模块或文本文件,可以从存储介质中提取并恢复在软件或硬件中作为新的运行状态。检查点亦可作为仿真比对的时刻。

本发明实施例提供了一种处理器验证系统,如图1所示,该处理器验证系统100包括:

仿真系统120、参考模型170、检查点管理器140、监视器150和比较器160;

所述仿真系统120,用于接收待测程序110,并进行仿真;

所述参考模型170,用于接收待测程序110;

所述检查点管理器140,用于保存和恢复所述仿真系统120的仿真状态;

所述监视器150,用于监测所述仿真系统的仿真状态,并在所述仿真系统的仿真状态满足预设条件时,启动所述检查点管理器140,以使所述检查点管理器140保存和恢复所述仿真系统的仿真状态;

本实施例中的仿真系统的仿真状态满足预设条件,例如满足发生异步中断的条件。

所述比较器160,用于将所述仿真系统的仿真状态的值和所述参考模型产生的仿真期望值进行比较。

上述实施例中的处理器验证系统,在监视器监测到仿真系统的仿真状态满足预设条件时,例如异步中断的条件,启动检查点管理器,并通过检查点管理器保存和恢复仿真系统的仿真状态,实现了在处理器出现异步中断时,通过启动检查点管理器,对当前异步中断的状态进行保存,并恢复仿真系统的仿真状态,以方便参考模型期望值的比对,在提高处理器功能验证的效率的同时,也完成了对处理器功能的完整验证。

在上述实施例中的处理器验证系统中,所述仿真系统120包括待测处理器130;

由于检查点管理器140在仿真系统的仿真状态为预设状态时,会保存状态,为了避免在异步中断后仿真系统的仿真状态与参考模型的状态不一致,影响比较器的比较结果,因此上述实施例中的监视器和待测处理器还具有以下功能。

所述监视器150,具体用于检测所述仿真系统中的所述待测处理器130的仿真状态。

所述待测处理器130,还用于控制所述参考模型170进行相应状态的更新,并产生仿真期望值;所述相应状态为与所述待测处理器的状态相同的状态。

支持检查点的处理器验证系统100由待测程序110,仿真系统120,待测处理器130,检查点管理器140,监视器150,比较器160,参考模型170组成。

待测程序110在特定约束下随机生成或由操作系统和应用程序组成。待测程序110作为仿真过程中的激励,实现不同时刻下不同的输入信号,由仿真系统120和参考模型170通过输入接口读取。

仿真系统120模拟真实应用中的片上系统电路与待测处理器130进行信号交互,包括待测处理器130,往往还包括外部设备,存储模块,模块互连设施,其他主从设备等模块(未示出)。仿真系统120往往通过读取待测程序110初始化存储模块。

检查点管理器140用于保存及恢复仿真系统120和参考模型170的仿真执行状态。检查点保存的仿真执行状态包括仿真系统120及参考模型170中处理器内部通用寄存器,处理器内部系统寄存器,处理器内部缓存,系统存储设备,系统外部设备及系统其他主从设备等(未示出)。检查点保存的仿真执行状态存储在文本文件。检查点在仿真系统120中的恢复通过硬件编程语言强制信号赋值或处理器外部调试接口实现。检查点在参考模型170中的恢复通过参考模型应用编程接口实现。

监视器150在仿真过程中监测待测处理器150的仿真执行状态。当待测处理器150的状态满足一定条件时启动检查点管理器140进行检查点仿真状态的保存和恢复。待测处理器150的执行状态也用于控制参考模型170进行相应状态更新并产生对应的仿真期望值。

比较器160读取待测处理器130的仿真执行状态和参考模型170产生的仿真期望值进行比对。比对的内容往往包含待测处理器130的内部通用寄存器,内部系统寄存器。比对的时刻往往为一条或一段指令的完成。当比对发生不匹配时比较器160显示相关错误信息并可能停止仿真。

参考模型170读取并执行待测程序110,由监视器150在仿真中进行控制实时更新状态,产生处理器仿真期望值并发送至比较器160进行比对。

一般的,处理器验证系统100的仿真流程开始于仿真系统130和参考模型170的复位或检查点状态恢复,然后仿真系统130和参考模型170读取待测程序110开始模拟运行。仿真过程中150实时检测待测处理器130的状态并更新参考模型170,比较器160比对待测处理器130的状态及参考模型170产生的期望值,检查点管理器140保存及恢复仿真系统120和参考模型170的状态。

本发明实施例还提供了一种基于上述的处理器验证系统的处理器验证方法,如图2所示,该方法包括:

s201、仿真系统和参考模型读取并执行待测程序,监视器检查所述仿真系统的仿真状态;

可理解的是,仿真系统和参考模型读取并同步执行待测程序,监视器监视待测处理器的状态,当处理器状态发生变化,例如指令完成时,监视器同时负责同时更新参考模型的执行状态。

s202、判断待测处理器是否发生异步中断,若是,则执行步骤s203;否则,执行步骤s205;

s203、所述监视器在所述仿真系统中的待测处理器发生异步中断时,所述待测处理器处理异步中断;

需要说明的是,待测处理器接受并处理异步中断时,参考模型并未同步发生异步中断,暂停与参考模型的比对。

s204、检查点管理器保存所述仿真系统的仿真状态,并将所述仿真系统的仿真状态恢复至与所述参考模型的仿真状态一致。

检查点管理器在异步中断发生后保存仿真系统环境状态并恢复至参考模型,保证两者的状态同步。

具体的,在上述步骤s202中,待测处理器未发生异步中断时,所述方法还包括:

s205、比较器在所述仿真系统的仿真状态未满足预设条件时,读取所述仿真系统的仿真状态的值,并将所述仿真系统的仿真状态的值和所述参考模型产生的仿真期望值进行比较。

所述监视器在所述仿真系统中的待测处理器发生异步中断时,所述方法还包括:

所述比较器停止将所述仿真系统的仿真状态的值和所述参考模型产生的仿真期望值进行比较。

s206、比较器比对是否发生错误,若是,则仿真结束;否则,执行步骤s207;

s207、待测程序是否执行结束,若是,则仿真结束;否则,继续执行步骤s201。

所述方法还包括:

在所述比较器监测到待测程序执行结束时,所述监视器向所述参考模型发送更新状态的通知。

上述方法实现了支持检查点处理器的异步中断行为,在监视器监测到仿真系统的仿真状态满足预设条件时,例如异步中断的条件,启动检查点管理器,并通过检查点管理器保存和恢复仿真系统的仿真状态,实现了在处理器出现异步中断时,通过启动检查点管理器,对当前异步中断的状态进行保存,并恢复仿真系统的仿真状态,以方便参考模型期望值的比对,在提高处理器功能验证的效率的同时,也完成了对处理器功能的完整验证。

本发明实施例还提供了一种基于上述的处理器验证系统的处理器验证方法,如图3所示,该处理器验证方法包括:通过检查点状态在仿真系统和参考模型间切换,用于提高仿真速度及加速定位缺陷,

s301、参考模型读取并执行待测程序,获取所述待测程序的检查点;

s302、所述仿真系统和/或所述参考模型依据所述检查点对所述待测程序进行仿真。

所述步骤s302所述仿真系统和/或所述参考模型依据所述检查点对所述待测程序进行仿真,包括:

在所述待测程序由所述参考模型执行仿真时,所述参考模型在运行到检查点时,检查点管理器保存所述参考模型的执行状态;

监视器向所述仿真系统发送执行所述待测程序的指令;

所述仿真系统根据所述检查点对所述待测程序进行仿真。

在另一种可实现的方式中,所述步骤s302仿真系统和/或所述参考模型依据所述检查点对所述待测程序进行仿真,包括:

在所述待测程序由所述参考模型执行仿真时,所述参考模型在运行到检查点时,检查点管理器保存所述参考模型的执行状态;

监视器向所述仿真系统和所述参考模型发送执行所述待测程序的指令;

所述仿真系统和所述参考模型根据所述检查点对所述待测程序进行仿真。

上述方法实现了高效支持处理器异步中断行为,避免了给参考模型期望值的建立及比对造成困难;包括待测程序过长导致仿真时间过长效率低下、电路缺陷定位困难等问题;包括不支持参考模型及待测处理器之间灵活的检查点切换机制。

通过提出支持检查点的验证方法及系统,使待测处理器和参考模型的仿真状态可以灵活切换,达到支持异步中断行为,使较长的待测程序可以并行运行于待测处理器,利用状态切换快速定位处理器缺陷,最终提高处理器功能验证的效率。

下面通过具体的详细步骤对上述图3中的处理器验证系统的处理器验证方法进行详细说明,如图4所示,该方法包括以下步骤:

步骤s401、查询仿真是否由参考模型开始执行待测程序,如是则进入步骤s402;否则执行步骤s407;

s402、由参考模型读取并执行激励,参考模型读取并执行待测程序,检测器检查参考模型状态;

s403、判读待测程序是否结束,若是,则仿真结束,否则,执行步骤s404;

s404、检测参考模型是否运行到特定检查点,如是则进入步骤s405由检查点管理器保存参考模型的执行状态;若否,则执行步骤s402;

s405、检查点管理器保存参考模型的执行状态;

s406、是否切换至仿真系统模型,若是,则执行步骤s407;否则,执行步骤s402;

s407、仿真系统读取并执行待测程序,监视器检查待测处理器状态变化;

s408、待测程序是否执行结束,若是,则仿真结束;否则,执行步骤s409;

s409、待测程序是否运行到检查点,若是,则执行步骤s410;否则,执行步骤s407;

s410、检查点管理器保存仿真系统的状态;

s411、判断是否切换至参考模型,若是,则执行步骤s402;否则,执行步骤s407;

步骤s301查询仿真是否由参考模型开始执行待测程序,如是则进入步骤s302由参考模型读取并执行激励;参考模型执行过程中步骤s304检测参考模型是否运行到特定检查点,如是则进入步骤s305由检查点保存参考模型的执行状态;之后通过步骤s406切换至由仿真系统执行剩余待测程序即步骤s407,步骤s407可以可选的继续使用参考模型同步执行待测程序并与待测处理器比对,也可以停止参考模型及比对提高仿真速度;步骤s409检测步骤s407之后待测处理器是否运行到新的检查点,并可以通过步骤s411再次保存及恢复执行状态切换至参考模型执行剩余待测程序即s402;步骤s402中仿真系统不同时运行以提高仿真速度,并由参考模型可以快速检查当前运行状态比对之前待测处理器执行过程是否正确。

本发明还提出了一种支持检查点的处理器验证方法,通过检查点在仿真系统和参考模型间切换,用于提高仿真效率,先由参考模型执行仿真,通过步骤s402、步骤s405由检查点管理器保存多个仿真执行状态至仿真结束;多个仿真执行状态在多个仿真中恢复至仿真系统,分别开始执行步骤s407读取并运行状态对应剩余待测程序,同时同步的恢复并运行参考模型产生期望值进行比对至待测程序下一检查点结束仿真。通过上述步骤实现待测程序在仿真系统即待测处理器上的并行执行。

相比现有技术,本发明的优点包括:

通过提出支持检查点的验证方法及系统,使待测处理器和参考模型的仿真状态可以双向灵活切换,在处理器发生异步中断时暂停期望值比对,以较低的开销支持了处理器器异步中断行为。

通过待测处理器及参考模型之间状态灵活切换,由两者交替执行待测程序,提高仿真速度的同时实现快速定位处理器缺陷,提高处理器功能验证的效率。

通过参考模型的状态保存及恢复,使较长的待测程序可以并行运行于待测处理器,减少较长待测程序的仿真运行时间,提高处理器功能验证的效率。

在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或智能终端设备或处理器(processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

在本发明所提供的上述实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

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

以上仅为本发明的实施例,但并不限制本发明的专利范围,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本发明说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本发明专利保护范围之内。

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