一种软硬件协同仿真的验证系统及其方法与流程

文档序号:11583082阅读:1470来源:国知局
一种软硬件协同仿真的验证系统及其方法与流程

本发明涉及通信相关芯片设计仿真领域,具体是涉及一种软硬件协同仿真的验证系统及其方法,主要是利用软件验证参考模型和协同仿真验证系统,来完成芯片的硬件仿真验证测试。



背景技术:

随着全球通信技术的发展和深入,对于通信相关芯片的需求也越来越大,功能也越来越复杂。传统的硬件验证方法是利用程序建模方法,完成寄存器模型,功能模型和fpga原型的测试。对于复杂的协议通信芯片,这过程是非常复杂的,需要做大量重复的测试才能完成,效率不高。软硬件协同仿真的思想是首先通过软件建模,并通过软件完成协议功能和寄存器的测试验证,确保软件模型的正确性。然后在通过软件的激励和结果,完成硬件的仿真验证。减少硬件仿真过程中反复的修改验证,节省开发验证时间。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种软硬件协同仿真的验证系统及其方法,它解决了现有验证方法可复用性低,效率差,验证周期长的问题,能够大幅的减少系统功能的验证时间周期。

本发明提供一种软硬件协同仿真的验证系统,该验证系统包括激励驱动模块、硬件模块、软件参考模块、入口监视模块、出口监视模块和比较模块;

所述激励驱动模块用于:将软件的激励配置转换成硬件能够识别的激励配置,并完成向硬件输入激励的工作;

所述软件参考模块用于:通过高级语言c语言在软件层面完成系统功能的测试,实现硬件的系统功能,并确保软件参考模型的正确性;

所述入口监视模块用于:监测入口数据使激励信息同步,让激励信息能够同时输入到软件参考模块和硬件模块中;

所述出口监视模块用于:监测出口数据,通过硬件模块中的输出参数监视硬件模块运行状况,如果运行完成,则将结果送入到比较模块中;

所述比较模块用于:将软件参考模块输出的期望结果和硬件模块的实际运行结果进行内容比较。

在上述技术方案的基础上,所述激励配置包括数据包字节信息和寄存器配置,所述数据包为虚拟仪表组成的数据包,所述寄存器配置通过控制台命令行接口配置寄存器命令。

在上述技术方案的基础上,所述数据包通过直接编程接口下入到激励驱动模块中,寄存器配置是直接编程接口通过地址将数值直接写入到硬件模块中。

在上述技术方案的基础上,所述入口监视模块监视硬件模块将数据全部接收完成后,再将数据重新输入到软件参考模块和硬件模块中去。

在上述技术方案的基础上,所述出口监视模块监视输出数据组成完整的数据包输出。

本发明还提供一种软硬件协同仿真的验证方法,该验证方法包括如下步骤:

s1.软件参考模型的确定:通过高级语言c语言实现芯片的系统功能,并在软件层面完成系统功能的测试,确保软件参考模型的正确性;

s2.激励驱动模块的配置:将步骤s1中的软件参考模型的测试用例激励配置送入激励驱动模块中,激励驱动模块主要是用来将软件的激励配置转换成硬件能够识别的激励配置,并完成向硬件输入激励的工作;

s3.监测入口数据:激励驱动模块产生激励到入口监视模块,使得激励信息同时输入到软件参考模块和硬件模块中;

s4.监测出口数据:硬件模块输出数据块和中间信息到出口监视模块,通过出口监视模块监测硬件模块的运行情况,并将结果送入比较模块中;

s5.结果比较:将软件参考模块的运行结果和硬件模块的运行结果输入比较模块,在比较模块进行结果校验,完成两者运行结果的自动比对,并输出结果到日志文件中。

在上述技术方案的基础上,所述步骤s2中,激励配置包括数据包字节信息和寄存器配置,所述数据包为虚拟仪表组成的数据包,所述寄存器配置通过控制台命令行接口配置寄存器命令,数据包字节信息和寄存器配置都是在验证高级语言c语言的软件参考模块时完成编写。

在上述技术方案的基础上,所述数据包通过直接编程接口下入到激励驱动模块中,寄存器配置是直接编程接口通过地址将数值直接写入到硬件模块中,所述硬件模块根据数据包和寄存器配置信息来产生一定流量速率的激励进入仿真环境中。

在上述技术方案的基础上,所述步骤s3中,所述入口监视模块监视硬件模块将数据全部接收完成后,再将数据重新输入到软件参考模块和硬件模块中去。

在上述技术方案的基础上,所述步骤s4中,所述出口监视模块监视输出数据组成完整的数据包输出,当硬件模块的运行完成时,收集运行结果,将运行结果送入比较模块中。

与现有技术相比,本发明的优点如下:

(1)本发明适用于芯片验证的整个过程。在软件参考模块验证期间就能够开发所有的测试用例,后面协同仿真时可以完全的重用相同的测试用列,能够有效的缩短测试时间。

(2)本发明能够完成软件参考模块和硬件模块运行结果的自动比对,无需人工介入,方便回归。

(3)本发明能够完成芯片的单个功能模块和整个芯片的系统功能进行仿真验证,不用重复开发验证环境。

(4)本发明入口监视模块可以使激励信息能够同时输入到软件参考模块和硬件模块中,出口监视模块能够监测硬件模块的运行情况,监视输出数据组成完整的数据包输出。

附图说明

图1为本发明实施例中软硬件协同仿真的验证系统的结构框图。

图2为本发明实施例中软硬件协同仿真的验证方法的流程图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的详细描述。

参见图1所示,本发明实施例提供一种软硬件协同仿真的验证系统,该验证系统包括激励驱动模块、硬件模块、软件参考模块、入口监视模块、出口监视模块和比较模块;

激励驱动模块用于:将软件的激励配置转换成硬件能够知别的激励配置,并完成向硬件输入激励的工作;

软件参考模块用于:通过高级语言c语言在软件层面完成系统功能的测试,实现硬件的系统功能,并确保软件参考模型的正确性;

入口监视模块用于:监测入口数据使激励信息同步,让激励信息能够同时输入到软件参考模块和硬件模块中;

出口监视模块用于:监测出口数据,通过硬件模块中的输出参数监视硬件模块运行状况,如果运行完成,则将结果送入到比较模块中;

比较模块用于:将软件参考模块输出的期望结果和硬件模块的实际运行结果进行内容比较。

激励配置包括数据包字节信息和寄存器配置,数据包为虚拟仪表组成的数据包,寄存器配置通过控制台命令行接口配置寄存器命令。其中,数据包通过直接编程接口下入到激励驱动模块中,寄存器配置是直接编程接口通过地址将数值直接写入到硬件模块中。其中,直接编程接口,全称为directprogramminginterface,简称dpi接口,是硬件编程语言systemverilog和软件编程语言之间连接的一种接口。寄存器命令通过命令行输入进来后,可以分为两个方向配置,一个是配置软件的寄存器,一个是通过dpi接口配置硬件的寄存器。

入口监视模块监视硬件模块将数据全部接收完成后,再将数据重新输入到软件参考模块和硬件模块中去。出口监视模块监视输出数据组成完整的数据包输出。在入口监视模块中,由于硬件模块中数据包的传输与时间是有关联的,即某一时间段内只能接收一块数据包,接收完一个完整的数据包通常都需要几段时间,而软件参考模块是没有时间要求的。所以为了完成软件参考模块和硬件模块的同步,需要监视硬件模块将数据全部接收完成后,再将数据重新输入到软件参考模块和硬件模块中去。

参见图1、图2所示,一种软硬件协同仿真的验证方法,其特征在于,包括如下步骤:

s1.软件参考模型的确定:通过高级语言c语言实现芯片的系统功能,并在软件层面完成系统功能的测试,确保软件参考模型的正确性;

s2.激励驱动模块的配置:将步骤s1中的软件参考模型的测试用例激励配置送入激励驱动模块中,激励驱动模块主要是用来将软件的激励配置转换成硬件能够识别的激励配置,并完成向硬件输入激励的工作;

s3.监测入口数据:激励驱动模块产生激励到入口监视模块,入口监视模块监视硬件模块将数据全部接收完成后再将数据重新输入到软件参考模块和硬件模块中去,使得激励信息同时输入到软件参考模块和硬件模块中;

s4.监测出口数据:硬件模块输出数据块和中间信息到出口监视模块,通过出口监视模块监测硬件模块的运行情况,监视输出数据组成完整的数据包输出,当硬件模块的运行完成时,收集运行结果,将运行结果送入比较模块中;

s5.结果比较:将软件参考模块的运行结果和硬件模块的运行结果输入比较模块,在比较模块进行结果校验,完成两者运行结果的自动比对,并输出结果到日志文件中。

其中,所述步骤s2中,激励配置包括数据包字节信息和寄存器配置,所述数据包为虚拟仪表组成的数据包,所述寄存器配置通过控制台命令行接口配置寄存器命令,数据包字节信息和寄存器配置都是在验证高级语言c语言的软件参考模块时完成编写。

其中,所述数据包通过直接编程接口下入到激励驱动模块中,寄存器配置是直接编程接口通过地址将数值直接写入到硬件模块中,所述硬件模块根据数据包和寄存器配置信息来产生一定流量速率的激励进入仿真环境中。

本领域的技术人员可以对本发明实施例进行各种修改和变型,倘若这些修改和变型在本发明权利要求及其等同技术的范围之内,则这些修改和变型也在本发明的保护范围之内。

说明书中未详细描述的内容为本领域技术人员公知的现有技术。

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