仿真测试方法、装置、计算机设备和存储介质
文献发布时间:2023-06-19 10:21:15
技术领域
本申请涉及固态硬盘技术领域,尤其涉及一种仿真测试方法、装置、计算机设备和存储介质。
背景技术
现有的固态硬盘开发前期一般是在FPGA(Field Programmable Gate Array,可编程逻辑器件)或者仿真软件上进行,单纯通过测试计算机中的仿真软件进行的仿真测试不够具有真实性。单纯通过FPGA硬件的仿真测试中调试手段有限,无法直观查看测试结果,使得开发测试工程会有所滞后,延长开发周期。
发明内容
为了解决上述技术问题,本申请提供了一种仿真测试方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种仿真测试方法,应用于测试计算机,包括:
获取固件代码;
当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令;
发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码;
接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。
可选地,所述获取固件代码之后,所述方法还包括:
创建测试单元,所述测试单元用于提供测试工具;
初始化所述测试单元和所述固件代码。
可选地,所述获取固件代码之后,所述方法还包括:
当未检测到所述测试脚本时,获取默认脚本;
根据所述默认脚本生成所述第二驱动指令。
可选地,所述发送所述第一驱动指令至可编程逻辑器件,包括:
通过第一通讯接口发送所述第一驱动指令至可编程逻辑器件的第二通讯接口。
第二方面,提供了一种仿真测试方法,应用于可编程逻辑器件,所述方法包括:
获取硬件代码;
接收来自测试计算机的第一驱动指令;
根据所述第一驱动指令驱动所述硬件代码,生成测试结果;
发送所述测试结果至所述测试计算机。
可选地,所述获取硬件代码之前,所述方法还包括:
当所述可编程逻辑器件上电时,初始化所述可编程逻辑器件。
第三方面,本申请提供了一种仿真装置,所述仿真装置包括:
固件代码获取模块,用于获取固件代码;
驱动指令生成模块,用于当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令;
驱动指令发送模块,用于发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码;
测试结果接收模块,用于接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。
第四方面,本申请提供了一种仿真装置,包括:
硬件代码获取模块,用于获取硬件代码;
驱动指令接收模块,用于接收来自测试计算机的第一驱动指令;
真实测试模块,用于根据所述第一驱动指令驱动所述硬件代码,生成测试结果;
测试结果发送模块,用于发送所述测试结果至所述测试计算机。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取固件代码;
当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令;
发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码;
接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取固件代码;
当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令;
发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码;
接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。
上述仿真测试方法、装置、计算机设备和存储介质,所述方法包括:获取固件代码;当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令;发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码;接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。基于上述仿真测试方法将软件测试和硬件测试相结合,通过软件仿真驱动硬件测试,通过硬件测试提高了仿真测试的真实性,通过测试计算机实时观察测试结果,并及时作出测试调整,减少测试项目的测试开发时间,提高了测试效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中仿真测试方法的应用环境图;
图2为一个实施例中一种仿真测试方法的流程示意图;
图3为一个实施例中一种仿真测试方法的流程示意图;
图4为一个实施例中一种仿真装置的结构框图;
图5为一个实施例中一种仿真装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中仿真测试方法的应用环境图。参照图1,该仿真测试方法应用于仿真测试系统。该仿真测试系统包括测试计算机110和可编程逻辑器件120。测试计算机110和可编程逻辑器件120通过连接线相连。测试计算机110为PC机(Personal Computer,个人计算机),测试计算机110具体可以是台式机、笔记本电脑到小型笔记本电脑、平板电脑或超级本中至少一种。在本实施例中,可编程逻辑器件120采用FPGA(Field ProgrammableGate Array)。
在一个实施例中,图2为一个实施例中一种仿真测试方法的流程示意图,参照图2,提供了一种仿真测试方法。本实施例主要以该方法应用于上述图1中的测试计算机110来举例说明,该仿真测试方法具体包括如下步骤:
步骤S210,获取固件代码。
具体地,固件代码就是写入EROM或EPROM(可编程只读存储器)中的驱动程序代码,负责控制和协调集成电路的功能。
步骤S220,当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令。
具体地,测试脚本包括特定测试的驱动指令,驱动指令用于驱动自动化测试工具执行,即测试脚本中的驱动指令用于驱动固件代码执行自动化测试,相当于测试脚本向固件代码发送激励,固件代码响应该激励执行相应的测试输出第一驱动指令。测试脚本是自动执行测试过程(或部分测试过程)的计算机可读指令。测试脚本可以被创建(记录)或使用测试自动化工具自动生成,或用编程语言编程来完成,也可综合前三种方法来完成,测试脚本可根据实际情况进行自定义,编程语言具体可以为C语言、java、c++、python、BASIC等其中一种或多种组合。
步骤S230,发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码。
具体地,可编程逻辑器件为FPGA,第一驱动指令为固件代码的执行结果,第一驱动指令驱动FPGA中的硬件代码,通过硬件代码驱动硬件电路,以实现硬件测试,其中,硬件代码为可实现逻辑电路运行的汇编代码或逻辑运算,硬件电路包括乘法器、寄存器、地址发生器等元器件。
步骤S240,接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。
具体地,FPGA将测试结果发送至测试计算机的测试单元,测试单元进行整理分析,得到分析后的测试结果,通过显示屏显示该分析后的测试结果。通过软件仿真驱动硬件测试,通过硬件测试提高了仿真测试的真实性,以此提高了测试产品的质量,通过测试计算机实时观察测试结果,可根据观察到的测试结果及时作出测试调整,减少测试项目的测试开发时间,提高了测试效率。
在一个实施例中,所述获取固件代码之后,创建测试单元,所述测试单元用于提供测试工具;初始化所述测试单元和所述固件代码。
具体地,测试单元包括多种测试工具,初始化测试单元和固件代码后,测试单元根据固件代码选择对应的测试工具执行后续的软件测试,初始化固件代码和测试单元为了保证上一次的测试结果不会影响当前测试。
在一个实施例中,所述获取固件代码之后,当未检测到所述测试脚本时,获取默认脚本;根据所述默认脚本生成所述第二驱动指令。
具体地,在获取固件代码,且初始化测试单元和固件代码之后,当未检测到测试脚本时,获取默认脚本,默认脚本为测试计算机本地的测试脚本,利用默认脚本驱动固件代码生成第二驱动指令,第二驱动指令用于驱动FPGA中的硬件代码,不同的测试脚本对应不同的测试内容,因此,不同的测试脚本驱动固件代码后生成不同的驱动指令,即生成不同的激励信号,根据激励信号驱动FPGA中的硬件代码进行硬件测试。
在一个实施例中,通过第一通讯接口发送所述第一驱动指令至可编程逻辑器件的第二通讯接口。
具体地,测试计算机通过第一通讯接口和FPGA的第二通讯接口相连,第一通讯接口和第二通讯接口类型一致,通讯接口具体可以为串口或以太网接口,串口具体可以为USB接口,以太网接口具体可以为SC光纤接口、RJ-45接口、FDDI接口、AUI接口或BNC接口等中任意一种。
在一个实施例中,参考图3,提供了一种仿真测试方法,本实施例主要以该方法应用于上述图1中的可编程逻辑器件120来举例说明,所述方法包括:
步骤S310,获取硬件代码。
具体地,硬件代码为可实现逻辑电路运行的汇编代码或逻辑运算,可通过用户对FPGA的代码编写生成硬件代码,或通过FPGA的通信接口从测试计算机传输获取。
步骤S320,接收来自测试计算机的第一驱动指令。
具体地,第一驱动指令通过测试计算机的第一通讯接口传输至FPGA中,且第一驱动指令为测试计算机中测试脚本驱动固件代码后的驱动结果,第一驱动指令为激励信号,用于驱动FPGA实现硬件测试。
步骤S330,根据所述第一驱动指令驱动所述硬件代码,生成测试结果。
具体地,FPGA根据第一驱动指令驱动硬件代码,硬件代码用于驱动硬件电路,硬件代码为可实现逻辑电路运行的汇编代码或逻辑运算,硬件电路包括乘法器、寄存器、地址发生器等元器件。
步骤S340,发送所述测试结果至所述测试计算机。
具体地,测试结果为FPGA根据硬件代码驱动硬件电路后的输出结果,测试结果根据FPGA的通讯接口发送至测试计算机,令测试计算机将接收到的测试结果进行整理后显示,从而实现在测试计算机中进行软件测试的同时,在FPGA中进行硬件测试,在FPGA中进行硬件测试提高了仿真测试的真实性,将测试结果返回至测试计算机,可直观观察到测试结果,可及时根据测试结果进行调整,减少测试项目的测试开发时间,提高了测试效率。
在一个实施例中,所述获取硬件代码之前,当所述可编程逻辑器件上电时,初始化所述可编程逻辑器件。
具体地,在FPGA上电时进行初始化,删除上一次的测试痕迹,保证当前测试结果的准确性,避免上一次的测试结果影响当前测试。
图2和图3分别为一个实施例中仿真测试方法的流程示意图。应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,参照图4,本实施例提供了一种仿真装置,所述仿真装置包括:
固件代码获取模块410,用于获取固件代码;
第一驱动指令生成模块420,用于当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令;
驱动指令发送模块430,用于发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码;
测试结果接收模块440,用于接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。
在一个实施例中,所述装置还包括:
创建模块,用于创建测试单元,所述测试单元用于提供测试工具;
第一初始化模块,用于初始化所述测试单元和所述固件代码。
在一个实施例中,所述装置还包括:
脚本获取模块,用于当未检测到所述测试脚本时,获取默认脚本;
第二驱动指令生成模块420,用于根据所述默认脚本生成所述第二驱动指令。
在一个实施例中,所述驱动指令发送模块430包括:
传输单元,用于通过第一通讯接口发送所述第一驱动指令至可编程逻辑器件的第二通讯接口。
在一个实施例中,参照图5,本实施例提供了一种仿真装置,所述仿真装置包括:
硬件代码获取模块510,用于获取硬件代码;
驱动指令接收模块520,用于接收来自测试计算机的第一驱动指令;
真实测试模块530,用于根据所述第一驱动指令驱动所述硬件代码,生成测试结果;
测试结果发送模块540,用于发送所述测试结果至所述测试计算机。
在一个实施例中,所述装置还包括:
第二初始化模块,用于当所述可编程逻辑器件上电时,初始化所述可编程逻辑器件。
图6示出了一个实施例中计算机设备的内部结构图。该计算机设备是图1中的测试计算机110。如图6所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现仿真测试方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行仿真测试方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的仿真装置可以实现为一种计算机程序的形式,计算机程序可在如图6所示的计算机设备上运行。计算机设备的存储器中可存储组成该仿真装置的各个程序模块,比如,图4所示的固件代码获取模块410、驱动指令生成模块420、驱动指令发送模块430和测试结果接收模块440。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的仿真测试方法中的步骤。
图6所示的计算机设备可以通过如图4所示的仿真装置中的固件代码获取模块410执行获取固件代码。计算机设备可通过驱动指令生成模块420执行当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令。计算机设备可通过驱动指令发送模块430执行发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码。计算机设备可通过测试结果接收模块440执行接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取固件代码;当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令;发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码;接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:创建测试单元,所述测试单元用于提供测试工具;初始化所述测试单元和所述固件代码。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当未检测到所述测试脚本时,获取默认脚本;根据所述默认脚本生成所述第二驱动指令。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过第一通讯接口发送所述第一驱动指令至可编程逻辑器件的第二通讯接口。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取硬件代码;接收来自测试计算机的第一驱动指令;根据所述第一驱动指令驱动所述硬件代码,生成测试结果;发送所述测试结果至所述测试计算机。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述可编程逻辑器件上电时,初始化所述可编程逻辑器件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取固件代码;当检测到测试脚本时,根据所述测试脚本驱动所述固件代码,生成第一驱动指令;发送所述第一驱动指令至可编程逻辑器件,所述第一驱动指令用于驱动所述可编程逻辑器件中的硬件代码;接收来自所述可编程逻辑器件的测试结果,并展示所述测试结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:创建测试单元,所述测试单元用于提供测试工具;初始化所述测试单元和所述固件代码。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当未检测到所述测试脚本时,获取默认脚本;根据所述默认脚本生成所述第二驱动指令。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过第一通讯接口发送所述第一驱动指令至可编程逻辑器件的第二通讯接口。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取硬件代码;接收来自测试计算机的第一驱动指令;根据所述第一驱动指令驱动所述硬件代码,生成测试结果;发送所述测试结果至所述测试计算机。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述可编程逻辑器件上电时,初始化所述可编程逻辑器件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指示相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
- 基于网元仿真的测试方法、装置、设备及计算机存储介质
- 仿真测试方法、装置、计算机设备和存储介质