对微处理器进行功能验证的方法及服务器技术

技术编号:14277630 阅读:137 留言:0更新日期:2016-12-24 20:27
本发明专利技术提供一种对微处理器进行功能验证的方法及服务器,包括:生成至少一条随机指令、各随机指令对应的期望运行结果,以及初始化数据;根据微处理器的原始寄存器传输级RTL代码,生成比特流文件;将比特流文件加载至硬件仿真加速器中,并将至少一条随机指令和初始化数据加载至模拟微处理器的内存和用户可见寄存器中,模拟微处理器通过将微处理器烧入硬件仿真加速器形成;控制硬件仿真加速器运行至少一条随机指令;根据硬件仿真加速器对至少一条随机指令的运行结果和各随机指令对应的期望运行结果,验证微处理器的功能。采用本发明专利技术实施例提供的技术方案,可以提高对微处理器的功能验证的准确性和可调试性。

【技术实现步骤摘要】

本专利技术涉及计算机技术,尤其涉及一种对微处理器进行功能验证的方法及服务器
技术介绍
微处理器是用一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。通常对微处理器进行功能验证的方法有三种:基于软件仿真器的仿真验证、基于现场可编程门阵列(Field Programmable Gates Array,简称FPGA)原型验证系统的仿真验证和基于硬件仿真加速器的仿真验证。基于FPGA原型验证系统的仿真验证是在FPGA上实现一个主控电路,通过主控电路将随机指令和其对应的期望运行结果下载到FPGA系统仿真板的内部寄存器中,并在完成FPGA原型验证系统主板的初始化后进入仿真工作状态,即将被验证微处理器在FPGA原型验证系统主板上运行并输出结果,然后在仿真结束后将内部寄存器与上述期望运行结果进行比较,以确定被验证微处理器的输出是否有错;基于硬件仿真加速器的仿真验证首先用硬件仿真加速器将被验证微处理器的寄存器传输级(Register Transfer Level,简称RTL)代码综合为可以烧入到硬件仿真加速器上的网表文件,并将操作系统和应用程序软件的可执行文件转换为可以写入到硬件加速器中的格式,然后将上述网表文件烧入到硬件仿真加速器中,再将经过上述经格式处理后的可执行文件写入硬件仿真加速器的内存中,然后启动硬件仿真加速器开始仿真,并运行操作系统和应用程序进行验证。然而,基于FPGA原型验证系统进行仿真验证时,由于内部寄存器与期望结果的比较是在整个仿真结束时进行的,并非实时比较,而最终结果出错在大部分情况下是由于之前已经出错了,但由于该方案在出错时并没有比较
机制,因而不能确定具体错误地方,因而准确性较低;并且,由于在FPGA上实现时,可以抓取的信号有限且很难定根据抓取的信号定位出具体出错的地方,因而其调试性也较差。此外,使用现有的基于硬件仿真加速器的仿真验证方法只能对操作系统和应用程序软件进行验证,而并不能对微处理器的功能进行指令级验证,验证结果也不够准确。
技术实现思路
本专利技术提供一种对微处理器进行功能验证的方法及服务器,用以解决现有技术中基于FPGA原型验证系统的仿真验证的准确性低,调试性差,以及基于硬件仿真加速器的仿真验证不能支持指令级验证等问题。本专利技术的第一方面,提供一种对微处理器进行功能验证的方法,包括:生成至少一条随机指令、各所述随机指令对应的期望运行结果,以及初始化数据,所述初始化数据用于初始化微处理器的内存和用户可见寄存器;根据所述微处理器的原始寄存器传输级RTL代码,生成比特流文件;将所述比特流文件加载至硬件仿真加速器中,并将所述至少一条随机指令和所述初始化数据加载至模拟微处理器的内存和所述用户可见寄存器中,所述模拟微处理器通过将所述微处理器烧入所述硬件仿真加速器形成;控制所述硬件仿真加速器运行所述至少一条随机指令;根据所述硬件仿真加速器对所述至少一条随机指令的运行结果和各所述随机指令对应的期望运行结果,验证所述微处理器的功能。在第一种可能的实现方式中,根据第一方面,所述生成至少一条随机指令、各所述随机指令对应的期望运行结果,以及初始化数据,具体包括:根据所述微处理器的结构,生成所述至少一条随机指令、各所述随机指令对应的期望结果以及所述初始化数据;对所述至少一条随机指令及所述初始化数据进行处理,以使所述至少一条随机指令的格式和所述初始化数据的格式,与所述模拟微处理器的内存和所述用户可见寄存器中所存储的数据格式匹配。在第二种可能的实现方式中,结合第一方面和第一种可能的实现方式,所述根据微处理器的原始寄存器传输级RTL代码,生成比特流文件,具体包括:对所述原始RTL代码中不可综合的代码和所述硬件仿真加速器中不能处理的代码进行替换,生成替换RTL代码;在所述替换RTL代码中增加用于初始化所述模拟微处理器的用户可见寄存器的第一逻辑代码,生成被验证RTL代码;生成所述期望运行结果对应的第二逻辑代码;对所述被验证RTL代码和所述第二逻辑代码进行综合布局,生成所述比特流文件。本专利技术的第二方面,提供一种对微处理器进行功能验证的服务器,包括:第一生成模块,用于生成至少一条随机指令、各所述随机指令对应的期望结果,以及初始化数据,所述初始化数据用于初始化微处理器的内存和用户可见寄存器;第二生成模块,用于根据所述微处理器的原始寄存器传输级RTL代码,生成比特流文件;加载模块,用于将所述第二生成模块生成的所述比特流文件加载至硬件仿真加速器中,并将所述第一生成模块生成的所述至少一条随机指令和所述初始化数据加载至模拟微处理器的内存和所述用户可见寄存器中,所述模拟微处理器通过将所述微处理器烧入所述硬件仿真加速器形成;控制模块,用于控制所述硬件仿真加速器运行所述第一生成模块生成的所述至少一条随机指令;验证模块,用于根据所述硬件仿真加速器对所述至少一条随机指令的运行结果和所述第一生成模块生成的各所述随机指令对应的期望运行结果,验证所述微处理器的功能。在第一种可能的实现方式中,根据第二方面,所述第一生成模块具体包括:第一生成单元,用于根据所述微处理器的结构,生成所述至少一条随机指令、各所述随机指令对应的期望结果以所述初始化数据;处理单元,用于对所述第一生成单元生成的所述至少一条随机指令及所述初始化数据进行处理,以使所述至少一条随机指令的格式和所述初始化数
据的格式,与所述模拟微处理器的内存和用户可见寄存器中所存储的数据格式匹配。在第二种可能的实现方式中,结合第二方面和第一种可能的实现方式,所述第二生成模块具体包括:第二生成单元,用于对所述原始RTL代码中不可综合的代码和所述硬件仿真加速器中不能处理的代码进行替换,生成替换RTL代码;并在生成的所述替换RTL代码中增加用于初始化所述用户可见寄存器的第一逻辑代码,生成被验证RTL代码;生成所述第一生成模块生成的所述期望运行结果对应的第二逻辑代码;以及对所述生成的所述被验证RTL代码和所述生成的所述第二逻辑代码进行综合布局,生成所述比特流文件。本专利技术实施例提供的对微处理器进行功能验证的方法,首先生成至少一条随机指令,各随机指令对应的期望运行结果,以及初始化数据,初始化数据用于初始化微处理器的内存和用户可见寄存器,然后根据微处理器的RTL代码,生成比特流文件,接着将比特流文件加载至硬件仿真加速器中,并将随机指令和初始化数据加载至模拟微处理器的内存和用户可见寄存器中,最后控制硬件仿真加速器运行随机指令,并根据硬件仿真加速器对随机指令的运行结果和期望运行结果,验证微处理器的功能。本专利技术实施例提供的技术方案,实现了基于硬件仿真加速器对微处理器的功能进行指令级验证,可以提高对微处理器的功能验证的准确性和可调试性。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种对微处理器进行功能验证的方法的流程图;图本文档来自技高网
...
对微处理器进行功能验证的方法及服务器

【技术保护点】
一种对微处理器进行功能验证的方法,其特征在于,包括:生成至少一条随机指令、各所述随机指令对应的期望运行结果,以及初始化数据,所述初始化数据用于初始化微处理器的内存和用户可见寄存器;根据所述微处理器的原始寄存器传输级RTL代码,生成比特流文件;将所述比特流文件加载至硬件仿真加速器中,并将所述至少一条随机指令和所述初始化数据加载至模拟微处理器的内存和所述用户可见寄存器中,所述模拟微处理器通过将所述微处理器烧入所述硬件仿真加速器形成;控制所述硬件仿真加速器运行所述至少一条随机指令;根据所述硬件仿真加速器对所述至少一条随机指令的运行结果和各所述随机指令对应的期望运行结果,验证所述微处理器的功能。

【技术特征摘要】
1.一种对微处理器进行功能验证的方法,其特征在于,包括:生成至少一条随机指令、各所述随机指令对应的期望运行结果,以及初始化数据,所述初始化数据用于初始化微处理器的内存和用户可见寄存器;根据所述微处理器的原始寄存器传输级RTL代码,生成比特流文件;将所述比特流文件加载至硬件仿真加速器中,并将所述至少一条随机指令和所述初始化数据加载至模拟微处理器的内存和所述用户可见寄存器中,所述模拟微处理器通过将所述微处理器烧入所述硬件仿真加速器形成;控制所述硬件仿真加速器运行所述至少一条随机指令;根据所述硬件仿真加速器对所述至少一条随机指令的运行结果和各所述随机指令对应的期望运行结果,验证所述微处理器的功能。2.根据权利要求1所述的方法,其特征在于,所述生成至少一条随机指令、各所述随机指令对应的期望运行结果,以及初始化数据,具体包括:根据所述微处理器的结构,生成所述至少一条随机指令、各所述随机指令对应的期望结果以及所述初始化数据;对所述至少一条随机指令及所述初始化数据进行处理,以使所述至少一条随机指令的格式和所述初始化数据的格式,与所述模拟微处理器的内存和用户可见寄存器中所存储的数据格式匹配中。3.根据权利要求1或2所述的方法,其特征在于,所述根据微处理器的原始寄存器传输级RTL代码,生成比特流文件,具体包括:对所述原始RTL代码中不可综合的代码和所述硬件仿真加速器中不能处理的代码进行替换,生成替换RTL代码;在所述替换RTL代码中增加用于初始化所述用户可见寄存器的第一逻辑代码,生成被验证RTL代码;生成所述期望运行结果对应的第二逻辑代码;对所述被验证RTL代码和所述第二逻辑代码进行综合布局,生成所述比特流文件。4.根据权利要求3所述的方法,其特征在于,所述根据所述硬件仿真加速器对所述至少一条随机指令的运行结果和各所述随机指令对应的期望运
\t行结果,验证所述微处理器的功能之后,还包括:若任意一条随机指令的运行结果与其对应的期望运行结果不同,则重新运行该随机指令,并采用调试波形文件对该随机指令进行调试。5.根据权利要求2所述的方法,其特征在于,所述初始化数据包括:第一文件、虚页号和第二文件,所述第一文件包括所述模拟微处理器的内存的初始化值,所述第二文件包括所述至少一条随机指令的程序地址PC。6.根据权利要求5所述的方法,其特征在于,所述对所述至少一条随机指令及所述初始化数据进行处理,具体包括:为每个虚页号分配一个实页号,并生成页表,所述页表用于保存所述虚页号与所述实页号之间的对应关系;根据所述页表,把每条所述随机指令的PC转换为第一物理地址,并将每条第一物理地址对应的随机指令合并至第三文件,所述第一物理地址为所述随机指令的16进制编码;根据所述页表,把所述微处理器的内存的虚地址转换为第二物理地址,并将每条第二物理地址对应的所述微处理器的内存的初始化值合并至第四文件,所述第二物理地址为所述微处理器的内存的虚地址的初始化值。7.根据权利要求3所述的方法,其特征在于,所述在所述替换RTL代码中增加用于初始化所述用户可见寄存器的第一逻辑代码,生成被验证RTL代码包括:在所述替换RTL代码中增加寄存器数组;在所述替换RTL代码中增加所述第一逻辑代码,生成所述被验证RTL代码,所述第一逻辑代码用于读取所述寄存器数组内每个寄存器的数值,并将所述每个寄存器的数...

【专利技术属性】
技术研发人员:王朋宇尹夕振
申请(专利权)人:龙芯中科技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1