CN116611375A - 软硬件协同仿真平台及软硬件测试方法 - Google Patents
软硬件协同仿真平台及软硬件测试方法 Download PDFInfo
- Publication number
- CN116611375A CN116611375A CN202310611464.5A CN202310611464A CN116611375A CN 116611375 A CN116611375 A CN 116611375A CN 202310611464 A CN202310611464 A CN 202310611464A CN 116611375 A CN116611375 A CN 116611375A
- Authority
- CN
- China
- Prior art keywords
- software
- hardware
- module
- simulation platform
- virtual machine
- 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.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 91
- 238000012360 testing method Methods 0.000 title claims abstract description 75
- 238000004891 communication Methods 0.000 claims description 22
- 238000013515 script Methods 0.000 claims description 20
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000011156 evaluation Methods 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 238000007405 data analysis Methods 0.000 claims description 3
- 238000000034 method Methods 0.000 abstract description 19
- 230000015654 memory Effects 0.000 description 17
- 238000013461 design Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000004744 fabric Substances 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2115/00—Details relating to the type of the circuit
- G06F2115/02—System on chip [SoC] design
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种软硬件协同仿真平台及软硬件测试方法,所述软硬件协同仿真平台包括:虚拟机以及至少一个仿真平台,虚拟机通过总线与仿真平台连接,虚拟机用于将仿真平台虚拟为标准的图形处理器或通用计算设备。本发明中的虚拟机可以将仿真平台虚拟为标准的图形处理器设备,从而仿真平台能够直接对接软件驱动和测试环境,软件可以仿真在真实硬件上进行测试。此外,本发明不需要根据不同测试环境生成并存储对应格式的向量文件vector,不仅实现了与向量文件vector解耦,而且减少了向量文件vector的数据转储dump过程,避免在数据转储dump过程中出现问题进而干扰系统运行出错时的定位精度。
Description
技术领域
本发明涉及软件测试技术领域,尤其涉及一种软硬件协同仿真平台及软硬件测试方法。
背景技术
片上系统(System on Chip,SOC)不仅包含大量硬件模块,还包含大量的软件,如操作系统、驱动程序、通信协议以及各种应用程序等,其设计复杂度远高于传统的集成电路芯片。因此,在对SOC进行仿真时,不仅需要对系统硬件部分进行仿真,还要对软件部分进行仿真,也就是要进行软硬件协同仿真。
目前,多是软件将运行过程中下发给硬件的命令(command)、寄存器序列(MMIOSequence)、数据文件、指令文件等按照给定格式存储下来,得到向量文件(以下简称vector文件),然后用C++编写的C模拟器(Cmodel)运行vector文件,并按照给定格式进行解析,以仿真软硬件系统的运行。然而,在存储vector文件的过程中容易出现很多问题,导致系统运行出错时增加了错误定位难度。
发明内容
本发明提供一种软硬件协同仿真平台及软硬件测试方法,用以解决现有技术中仿真软硬件系统运行出错时定位难度高的缺陷。
本发明提供一种软硬件协同仿真平台,包括:
虚拟机以及至少一个仿真平台,所述虚拟机通过总线与所述仿真平台连接,所述虚拟机用于将所述仿真平台虚拟为标准的图形处理器或通用计算设备。
根据本发明提供的一种软硬件协同仿真平台,所述虚拟机安装于计算机上,所述计算机用于启动所述虚拟机对应的仿真软件,并装载操作系统镜像文件和全栈软件。
根据本发明提供的一种软硬件协同仿真平台,所述仿真平台包括协议转发模块;
所述协议转发模块用于基于硬件设备的网络协议,仿真硬件设备的数据包流,并转发所述数据包流。
根据本发明提供的一种软硬件协同仿真平台,所述仿真平台还包括软件模块,所述软件模块与所述协议转发模块连接;
所述软件模块用于仿真硬件的外设接口,并转发所述数据包流。
根据本发明提供的一种软硬件协同仿真平台,所述仿真平台还包括评估模块、通信模块和分析模块,所述评估模块、所述通信模块和所述分析模块均与所述软件模块连接;
所述评估模块用于对软硬件协同工作系统进行评估,所述通信模块用于仿真多个用户之间的通信,所述分析模块用于对所述软硬件协同工作系统进行数据分析。
根据本发明提供的一种软硬件协同仿真平台,所述仿真平台还包括逻辑模块,所述逻辑模块与所述协议转发模块连接,所述逻辑模块用于基于负载均衡数据,对所述数据包流中各数据对应的任务进行分配。
根据本发明提供的一种软硬件协同仿真平台,所述仿真平台还包括第一模块和第二模块,所述第一模块和所述第二模块分别与所述逻辑模块连接;
所述第一模块用于模拟硬件设备的映射,所述第二模块用于向所述逻辑模块发送所述负载均衡数据。
根据本发明提供的一种软硬件协同仿真平台,所述虚拟机包括开源虚拟化软件Qemu。
根据本发明提供的一种软硬件协同仿真平台,所述仿真平台包括片上系统仿真平台。
本发明还提供一种软硬件测试方法,包括:
确定测试脚本;
在如上所述的软硬件协同仿真平台上运行所述测试脚本,得到运行数据,并基于所述运行数据确定测试结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述软硬件测试方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述软硬件测试方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述软硬件测试方法。
本发明提供的软硬件协同仿真平台及软硬件测试方法,由于虚拟机能够将仿真平台虚拟为标准的图形处理器设备,从而仿真平台能够直接对接软件驱动和测试环境,软件可以仿真在真实硬件上进行测试。此外,本发明不需要根据不同测试环境生成并存储对应格式的vector文件,不仅实现了与vector文件解耦,而且减少了vector的数据转储dump过程,避免在数据转储dump过程中出现问题进而干扰系统运行出错时的定位精度。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的软硬件协同仿真平台的结构示意图;
图2是本发明提供的又一软硬件协同仿真平台的结构示意图;
图3是本发明提供的软硬件测试方法的流程示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一个完整的SOC设计除了芯片代码以外,还有与之配套的软件以及工具链。软件在SOC系统中的地位伴随着系统复杂性的攀升也越发重要。传统的集成电路设计方法是在完成软硬件的功能切分以后,由软硬件团队分头开发各自的组件。虽然软硬件的开发步骤是同步进行的,但是直到芯片样片回片以后,才会进行真正的软硬件联合测试,此时若芯片出现bug,硬件的修改成本较高且费时较多,且软件的修改也会影响芯片的性能。因此在硬件研发的早期,需要提前进行软硬件协同仿真测试。
目前,多是软件将运行过程中下发给硬件的命令(command)、寄存器序列(MMIOSequence)、数据文件、指令文件等按照给定格式存储下来,得到vector文件,然后用Cmodel运行vector文件,并按照给定格式进行解析,以仿真软硬件系统的运行。然而,在存储vector文件的过程中容易出现很多问题,导致系统运行出错时增加了错误定位难度。此外,上述方法只适用于仿真SPC(Stream Processor Cluster)业务,而无法适用于仿真其它业务(如CP、DMA等)。
对此,本发明提供一种软硬件协同仿真平台。图1是本发明提供的软硬件协同仿真平台的结构示意图,如图1所示,软硬件协同仿真平台包括:
虚拟机110以及至少一个仿真平台120,虚拟机110通过总线与仿真平台120连接,虚拟机110用于将仿真平台120虚拟为标准的图形处理器或通用计算设备。
此处,虚拟机110是一种在计算机上模拟另一种计算机系统的软件或硬件环境的技术,它可以在物理机(host)上创建多个虚拟的逻辑机(guest)。其中,虚拟机110可以包括开源虚拟化软件(Quick EMUlator,Qemu)。仿真平台120指仿真硬件设备系统的平台,其可以通过Cmodel构建得到。
虚拟机110用于将仿真平台120虚拟为标准的图形处理器或通用计算设备,从而仿真平台120能够直接对接软件驱动和测试环境,软件可以仿真在真实硬件上进行测试。可选地,标准的图像处理器可以为PCIe GPU(PCI Express Graphics Processing Unit),通用计算设备可以为应用于人工智能领域的通用计算芯片GP-GPU(general-purpose-GraphicsProcessing Unit)。
此外,若虚拟机110通过总线与多个仿真平台120连接,则多个仿真平台120可以用于仿真多个不同业务场景下的硬件设备系统,也就是说本发明实施例能够实现仿真多个不同业务场景(如SPC业务、CP业务、DMA业务、SOC业务等)进行软硬件测试,克服现有技术中只能仿真SPC业务场景进行软硬件测试的缺陷。其中,总线可以为高速串行总线(PCIExpress,PCIe),以提供较高数据传输速度和较大带宽。
再有,本发明实施例中不需要根据不同测试环境生成并存储对应格式的vector文件,不仅实现了与vector文件解耦,而且减少了vector文件的数据转储dump过程,避免数据转储在dump过程中出现问题进而干扰系统运行出错时的定位精度。此外,仿真平台120用于仿真硬件设备系统,从而仿真平台120与对应硬件设备系统可以相互替换,方便排错。
本发明实施例提供的软硬件协同仿真平台,能够在硬件开发早期提前进行软硬件测试,以提前释放系统风险,避免芯片样片回片以后进行软硬件联合测试时发现bug导致硬件修改成本较高且费时较多,软件修改影响芯片性能的问题。
基于上述实施例,如图2所示,虚拟机110安装于计算机130上,计算机130用于启动虚拟机对应的仿真软件,并装载操作系统镜像文件和全栈软件。
具体地,虚拟机110可以为Qemu,Qemu为托管的虚拟机,其通过动态的二进制转换模拟CPU,并且提供一组设备模型,使该设备模型能够运行多种未修改的客户机OS(Operating System),并可与KVM(Kernel-based Virtual Machine)一起使用以接近本地速度运行虚拟机(即可以理解为其运行速度接近真实电脑的速度)。
其中,虚拟机110安装于计算机130(如host)上,计算机130用于启动虚拟机对应的仿真软件,并装载操作系统镜像文件和全栈软件。接着,可以在Qemu中以PCIE设备的形式注册好CModel,虚拟操作系统可以识别到硬件PCIE设备,在此情况下软件无法感知底层到底是硬件还是CModel,从而可以基于本发明实施例提供的软硬件协同仿真平台在比较真实的开发环境中进行软硬件系统仿真测试。
基于上述任一实施例,仿真平台120包括协议转发模块121;
协议转发模块121用于基于硬件设备的网络协议,仿真硬件设备的数据包流,并转发数据包流。其中,协议转发模块121可以基于HA(Hardware Abstraction)构建得到,在软硬件协同仿真平台中,其能够提供硬件抽象化层,将具体的硬件平台与软件进行解耦。
基于上述任一实施例,仿真平台120还包括软件模块122,软件模块122与协议转发模块121连接,从而软件模块122可以接收协议转发模块121转发的数据包流。
此外,软件模块122用于仿真硬件的外设接口,并转发数据包流。其中,软件模块122可以基于HBF(High Bandwidth Fabric)构建得到,HBF是利用专用芯片实现的硬件转发技术,可以使用硬件直接转发数据包,不需要经过软件的处理。相比软件的转发方式,HBF可以实现更快的转发速度和更高的稳定性。HBF是运行在计算机主机上的软件模块,在与计算机主机相互作用时能够模拟硬件外设的接口,可以发送指令和接收数据以及将数据传递到仿真硬件中。HBF可以作为中间层,提供软件和硬件之间的通信接口,从而可以模拟系统的各个部分,并且可以代表外部设备与软件进行通信。
基于上述任一实施例,仿真平台120还包括评估模块122a、通信模块122b和分析模块122c,评估模块122a、通信模块122b和分析模块122c均与软件模块122连接;
评估模块122a用于对软硬件协同工作系统进行评估,通信模块122b用于仿真多个用户之间的通信,分析模块122c用于对软硬件协同工作系统进行数据分析。
其中,评估模块122a可以基于CP(Command Processor)构建得到,CP为硬件层面的系统,用于监控、管理和控制芯片内任务的调度等。在软硬件协同仿真平台中,CP可以评估系统的抗多路径干扰能力和时延等性能指标。
通信模块122b可以基于SDMA(Software-Defined Memory Access)构建得到,SDMA是一种基于软件定义的内存访问技术,可以实现高效,可扩展和安全的数据包处理。SDMA通过使用内存映射技术,将网络设备中的内部内存划分为多个逻辑区域,再通过控制软件实现内存的动态分配和调度,优化线性内存访问,从而提高数据包的处理速度和效率。在软硬件协同仿真平台中,SDMA可以用于仿真多个用户间的通信,使得系统更加稳定和高效,能够评估系统的吞吐量、时延和容错能力等性能指标。
分析模块122c可以基于SPC(Stream Processor Cluster)构建得到。在软硬件协同仿真平台中,可以模拟和评估系统的生产过程,并根据实时数据进行统计分析,发现问题并制定相关控制措施。可以通过模拟不同的生产流程,分析每种方案的生产效益,从而找到最优化的流程和方案。可以模拟不同的故障情况,分析系统出现问题的原因,并及时采取措施进行排除。可以对生产数据进行统计、分析和可视化展示,帮助管理人员更好地了解生产情况,制定更科学合理的生产计划和决策。
基于上述任一实施例,仿真平台120还包括逻辑模块123,逻辑模块123与协议转发模块121连接,逻辑模块123用于基于负载均衡数据,对数据包流中各数据对应的任务进行分配。
其中,逻辑模块123可以基于LBF(Low Bandwidth Fabric)构建得到,LBF可以通过HA与计算机主机进行通信。在软硬件协同仿真平台中,LBF接收来自HBF的控制信息,并将结果返回到HBF。LBF可以用于在软硬件协同仿真中模拟负载均衡的场景。在协同仿真中,软件和硬件可以模拟多种负载场景,LBF可以根据负载场景实现任务的适当分配和处理。
此外,通过HBF和LBF的协作,软硬件协同仿真平台可以模拟整个系统,确保在实际系统中函数正确,并且可以避免不必要的实际测试以及减少产品研发周期,最终提高产品的质量和可靠性。
基于上述任一实施例,仿真平台120还包括第一模块123a和第二模块123b,第一模块123a和第二模块分别123b与逻辑模块123连接;
第一模块123a用于模拟硬件设备的映射,第二模块123b用于向逻辑模块123发送负载均衡数据。
其中,第一模块123a可以基于MMIO(Memory Mapped Input/Output)构建得到。在软硬件协同仿真平台中,MMIO可以用于在虚拟化环境下模拟硬件设备的映射,从而实现虚拟机对实体硬件的访问。通过MMIO,软件可以模拟发送I/O请求,硬件可以模拟读取和响应I/O请求的过程。
第二模块123b可以基于Doorbell构建得到,在软硬件协同仿真平台中,Doorbell可以模拟I/O请求的发送和响应,软件可以通过Doorbell向硬件发送请求,硬件则可以通过Doorbell通知软件请求的处理结果。
基于上述任一实施例,虚拟机110包括开源虚拟化软件Qemu。
具体地,Qemu为开源的虚拟机系统,可以支持多种硬件平台和操作系统。Qemu可以在多个主机上运行,并能够提供较多高级特性,包括动态二进制翻译来加速虚拟机的性能,以及与现有系统集成的能力。Qemu支持多种客户机操作系统,包括Linux、Android、Windows、iOS等操作系统。
此外,Qemu还可与KVM使用,以提供硬件加速虚拟化,并提高性能。其中,KVM为开源的Linux内核模块,可支持虚拟化硬件并提供高效的虚拟化功能。
基于上述任一实施例,仿真平台120包括片上系统仿真平台。
具体地,片上系统仿真平台指用于模拟SOC的仿真平台,SOC是将各种硬件资源、计算机指令和数据存储器等集成到单一芯片上的处理器系统,包括处理器核心、内存、输入/输出接口、片上总线系统和各种电路组件等。SOC的设计过程包括软件设计和硬件设计两个方面。硬件设计主要包括芯片的逻辑电路设计、片上总线设计、电源管理设计、封装和测试等,软件设计则包括操作系统设计、驱动程序设计和应用程序编写等。
基于上述任一实施例,本发明还提供一种软硬件测试方法,如图3所述,该方法包括:
步骤310、确定测试脚本;
步骤320、在如上任一实施例所述的软硬件协同仿真平台上运行测试脚本,得到运行数据,并基于运行数据确定测试结果。
软硬件测试是指对计算机系统中的软件和硬件组件进行测试以确保它们能够正常工作和达到预期的性能要求。软件测试主要包括对应用程序、操作系统、驱动程序等软件组件的测试,验证其功能是否正常、性能是否达标以及是否存在安全漏洞等问题。硬件测试主要包括对处理器、存储器、显卡、主板等硬件组件的测试,验证其是否能够正常运行、稳定性是否良好、是否存在缺陷等。软硬件测试通常需要针对不同的测试用例进行测试,即需要根据不同的测试用例确定对应的测试脚本。
此处,测试脚本是用于自动运行测试过程、验证软硬件系统的功能和性能的指令或代码。测试脚本可以基于如下方法获取:
①可以结合测试用例的覆盖率和测试质量,编写测试脚本来实现自动化测试。②可以从第三方测试框架中获取测试脚本,其中第三方测试框架可以包括Jenkins、RobotFramework等。③从开源社区获取可靠性较高的测试脚本。
在获取测试脚本后,在上述任一实施例所述的软硬件协同仿真平台上运行测试脚本,得到运行数据,并基于运行数据确定测试结果。其中,运行数据包括测试输出数据、错误日志数据、统计报告数据等。测试结果用于表征软硬件测试是否成功,若是,则表明无需对软硬件进行修改,若否,则基于测试结果对软硬件进行修改。
图4是本发明提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、存储器(memory)420、通信接口(Communications Interface)430和通信总线440,其中,处理器410,存储器420,通信接口430通过通信总线440完成相互间的通信。处理器410可以调用存储器420中的逻辑指令,以执行软硬件测试方法,该方法包括:确定测试脚本;在如上所述的软硬件协同仿真平台上运行所述测试脚本,得到运行数据,并基于所述运行数据确定测试结果。
此外,上述的存储器420中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的软硬件测试方法,该方法包括:确定测试脚本;在如上所述的软硬件协同仿真平台上运行所述测试脚本,得到运行数据,并基于所述运行数据确定测试结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的软硬件测试方法,该方法包括:确定测试脚本;在如上所述的软硬件协同仿真平台上运行所述测试脚本,得到运行数据,并基于所述运行数据确定测试结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种软硬件协同仿真平台,其特征在于,包括:
虚拟机以及至少一个仿真平台,所述虚拟机通过总线与所述仿真平台连接,所述虚拟机用于将所述仿真平台虚拟为标准的图形处理器或通用计算设备。
2.根据权利要求1所述的软硬件协同仿真平台,其特征在于,所述虚拟机安装于计算机上,所述计算机用于启动所述虚拟机对应的仿真软件,并装载操作系统镜像文件和全栈软件。
3.根据权利要求2所述的软硬件协同仿真平台,其特征在于,所述仿真平台包括协议转发模块;
所述协议转发模块用于基于硬件设备的网络协议,仿真硬件设备的数据包流,并转发所述数据包流。
4.根据权利要求3所述的软硬件协同仿真平台,其特征在于,所述仿真平台还包括软件模块,所述软件模块与所述协议转发模块连接;
所述软件模块用于仿真硬件的外设接口,并转发所述数据包流。
5.根据权利要求4所述的软硬件协同仿真平台,其特征在于,所述仿真平台还包括评估模块、通信模块和分析模块,所述评估模块、所述通信模块和所述分析模块均与所述软件模块连接;
所述评估模块用于对软硬件协同工作系统进行评估,所述通信模块用于仿真多个用户之间的通信,所述分析模块用于对所述软硬件协同工作系统进行数据分析。
6.根据权利要求3所述的软硬件协同仿真平台,其特征在于,所述仿真平台还包括逻辑模块,所述逻辑模块与所述协议转发模块连接,所述逻辑模块用于基于负载均衡数据,对所述数据包流中各数据对应的任务进行分配。
7.根据权利要求6所述的软硬件协同仿真平台,其特征在于,所述仿真平台还包括第一模块和第二模块,所述第一模块和所述第二模块分别与所述逻辑模块连接;
所述第一模块用于模拟硬件设备的映射,所述第二模块用于向所述逻辑模块发送所述负载均衡数据。
8.根据权利要求1至7任一项所述的软硬件协同仿真平台,其特征在于,所述虚拟机包括开源虚拟化软件Qemu。
9.根据权利要求1至7任一项所述的软硬件协同仿真平台,其特征在于,所述仿真平台包括片上系统仿真平台。
10.一种软硬件测试方法,其特征在于,包括:
确定测试脚本;
在权利要求1至9任一项所述的软硬件协同仿真平台上运行所述测试脚本,得到运行数据,并基于所述运行数据确定测试结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310611464.5A CN116611375A (zh) | 2023-05-26 | 2023-05-26 | 软硬件协同仿真平台及软硬件测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310611464.5A CN116611375A (zh) | 2023-05-26 | 2023-05-26 | 软硬件协同仿真平台及软硬件测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116611375A true CN116611375A (zh) | 2023-08-18 |
Family
ID=87681537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310611464.5A Pending CN116611375A (zh) | 2023-05-26 | 2023-05-26 | 软硬件协同仿真平台及软硬件测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116611375A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117113908A (zh) * | 2023-10-17 | 2023-11-24 | 北京开源芯片研究院 | 一种验证方法、装置、电子设备及可读存储介质 |
-
2023
- 2023-05-26 CN CN202310611464.5A patent/CN116611375A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117113908A (zh) * | 2023-10-17 | 2023-11-24 | 北京开源芯片研究院 | 一种验证方法、装置、电子设备及可读存储介质 |
CN117113908B (zh) * | 2023-10-17 | 2024-02-02 | 北京开源芯片研究院 | 一种验证方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10409632B2 (en) | Emulation of hardware components based on interrupt design | |
CN104636076B (zh) | 一种用于云存储的分布式块设备驱动方法和系统 | |
CN114880977B (zh) | 软硬件联合仿真系统、方法、装置、设备和存储介质 | |
CN114818599A (zh) | 芯片仿真验证系统 | |
JP7321839B2 (ja) | ハードウェア抽象化ソフトウェアレイヤを使用するシステムのための汎用仮想化プラットフォーム | |
US10671506B2 (en) | Evaluating fairness in devices under test | |
CN116681013B (zh) | 网络芯片的仿真验证方法、平台、装置、设备及介质 | |
CN116414526B (zh) | 一种基于虚拟机的仿真装置和方法 | |
CN111796912A (zh) | 申威平台存储输入输出设备虚拟化性能优化方法及系统 | |
CN116611375A (zh) | 软硬件协同仿真平台及软硬件测试方法 | |
CN111679889B (zh) | 一种虚拟机的转换迁移方法和系统 | |
CN111459606A (zh) | 一种虚拟化下快速创建虚拟机的方法及服务器 | |
CN112764981B (zh) | 一种协同测试系统及方法 | |
US7447618B2 (en) | Method and system for ASIC simulation | |
CN107741868B (zh) | 一种基本输入输出系统bios的设置方法和装置 | |
US11068371B2 (en) | Method and apparatus for simulating slow storage disk | |
CN112559336B (zh) | 自适应调试异构计算芯片的方法、装置、系统及主板芯片 | |
CN117971400A (zh) | 一种网卡设备仿真系统、方法、电子设备及存储介质 | |
US20220066911A1 (en) | Virtual machine for developing and testing target code for hardware designs | |
US20240175916A1 (en) | Systems and methods for testing virtual functions of a device under test | |
CN117785593B (zh) | 一种基于UVM的xHCI驱动的实现系统及方法 | |
CN117527646A (zh) | 一种ssd的sr-iov流控测试方法、组网装置、设备及介质 | |
CN115809463A (zh) | 基于系统调用重定向的物联网固件混合仿真方法及系统 | |
Yang et al. | Research on Heterogeneous Cloud Test Platform Based on Elastic Scaling Mechanism | |
CN117389470A (zh) | 一种nvme固态硬盘仿真方法 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Applicant after: Shanghai Bi Ren Technology Co.,Ltd. Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Applicant before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |