仿真验证方法、装置及计算设备

文档序号:1964118 发布日期:2021-12-14 浏览:17次 >En<

阅读说明:本技术 仿真验证方法、装置及计算设备 (Simulation verification method and device and computing equipment ) 是由 索健 王正 于 2021-09-13 设计创作,主要内容包括:本申请实施例提供一种仿真验证方法、装置及计算设备。其中,该方法包括:获取系统级芯片的系统代码,所述系统代码对应于多个模块;根据仿真需求,在所述多个模块中确定出至少一个目标模块;调用硬件加速器对所述至少一个目标模块进行仿真验证;获取所述硬件加速器返回的第一仿真验证结果。本申请通过在系统代码对应的多个模块中确定出需要进行仿真验证的至少一个目标模块,仅针对至少一个目标模块进行仿真验证,可以减少不必要的模块占用硬件加速器资源以及有效提高针对至少一个目标模块的仿真验证效率。(The embodiment of the application provides a simulation verification method, a simulation verification device and computing equipment. Wherein, the method comprises the following steps: obtaining a system code of a system-on-chip, wherein the system code corresponds to a plurality of modules; determining at least one target module in the plurality of modules according to simulation requirements; calling a hardware accelerator to perform simulation verification on the at least one target module; and acquiring a first simulation verification result returned by the hardware accelerator. According to the method and the device, at least one target module needing simulation verification is determined from a plurality of modules corresponding to the system code, and simulation verification is only carried out on the at least one target module, so that unnecessary modules occupying hardware accelerator resources can be reduced, and the simulation verification efficiency of the at least one target module can be effectively improved.)

仿真验证方法、装置及计算设备

技术领域

本申请实施例涉及芯片领域,尤其涉及一种仿真验证方法、装置及计算设备。

背景技术

随着大规模集成电路门数增多,采用仿真器对系统级芯片(System on Chip,简称SOC)进行仿真验证的速度越来越慢,为了解决这一问题通常采用硬件加速器对系统级芯片进行仿真验证来提高仿真验证的速度。

系统级芯片通过运行多个系统对应的系统代码来实现多个系统各自对应的功能,统代码对应于多个功能模块,不同功能模块用来实现系统的不同功能,比如,算法模块、时钟模块、功耗控制模块等等。对系统级芯片的仿真验证主要是针对多个功能模块的仿真验证,也即确定多个功能模块是否存在问题。

目前在进行针对SOC芯片中系统之间的算法进行交互或者系统某一算法进行仿真验证时,会出现硬件加速器资源紧张,而且还会导致仿真验证过程的效率低的问题。

发明内容

本申请实施例提供一种仿真验证方法、装置及计算设备,用以解决现有技术中硬件加速器资源紧张,仿真验证过程的效率低的问题。

第一方面,本申请实施例中提供了一种仿真验证方法,该方法包括:

获取系统级芯片的系统代码,所述系统代码对应于多个模块;

根据仿真需求,在所述多个模块中确定出至少一个目标模块;

调用硬件加速器对所述至少一个目标模块进行仿真验证;

获取所述硬件加速器返回的第一仿真验证结果。

第二方面,本申请实施例提供了一种仿真验证方法,应用于硬件加速器,该方法包括:

接收电子设备的调用指令;所述调用指令包括从系统级芯片的系统代码中所确定的至少一个目标模块;

获取所述至少一个目标模块对应的测试数据;

基于所述测试数据对所述至少一个目标模块进行仿真验证,得到仿真验证结果;

将所述仿真验证结果发送至所述电子设备。

第三方面,本申请实施例提供了一种仿真验证装置,该装置包括:

获取单元,用于获取系统级芯片的系统代码,所述系统代码对应于多个模块;获取所述硬件加速器返回的第一仿真验证结果;

确定单元,用于根据仿真需求,在所述多个模块中确定出至少一个目标模块;

调用单元,用于调用硬件加速器对所述至少一个目标模块进行仿真验证。

第四方面,本申请实施例提供了一种仿真验证装置,应用于硬件加速器,该装置包括:

接收单元,用于接收电子设备的调用指令;所述调用指令包括从系统级芯片的系统代码中所确定的至少一个目标模块;

获取单元,用于获取所述至少一个目标模块对应的测试数据;

仿真验证单元,用于基于所述测试数据对所述至少一个目标模块进行仿真验证,得到仿真验证结果;

发送单元,用于将所述仿真验证结果发送至所述电子设备。

第五方面,本申请实施例提供了一种计算设备,包括处理组件以及存储组件;所述存储组件存储一条或多条计算机指令;所述一条或多条计算机指令用以被所述处理组件调用执行;所述处理组件用于:

获取系统级芯片的系统代码,所述系统代码对应于多个模块;

根据仿真需求,在所述多个模块中确定出至少一个目标模块;

调用硬件加速器对所述至少一个目标模块进行仿真验证;

获取所述硬件加速器返回的第一仿真验证结果。

第六方面,本申请实施例提供了一种计算设备,包括处理组件以及存储组件;

所述存储组件存储一条或多条计算机指令;所述一条或多条计算机指令用以被所述处理组件调用执行;

所述处理组件用于:

接收电子设备的调用指令;所述调用指令包括从系统级芯片的系统代码中所确定的至少一个目标模块;

获取所述至少一个目标模块对应的测试数据;

基于所述测试数据对所述至少一个目标模块进行仿真验证,得到仿真验证结果;

将所述仿真验证结果发送至所述电子设备。

第七方面,本发明实施例提供了一种非暂时性机器可读存储介质,非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使处理器至少可以实现如第一方面所述的仿真验证方法。

第八方面,本发明实施例提供了一种非暂时性机器可读存储介质,非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使处理器至少可以实现如第二方面所述的仿真验证方法。

本申请实施例提供一种仿真验证方法、装置及计算设备。该方法包括:获取系统级芯片的系统代码,所述系统代码对应于多个模块;根据仿真需求,在所述多个模块中确定出至少一个目标模块;调用硬件加速器对所述至少一个目标模块进行仿真验证;获取所述硬件加速器返回的第一仿真验证结果。本申请通过在系统代码对应的多个模块中确定出需要进行仿真验证的至少一个目标模块,仅针对至少一个目标模块进行仿真验证,可以减少不必要的模块占用硬件加速器资源以及有效提高针对至少一个目标模块的仿真验证效率。

本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请提供的仿真验证方法的一种实施例的流程示意图;

图2示出了本申请提供的仿真验证方法的另一种实施例的流程示意图;

图3示出了本申请提供的仿真验证装置一个实施例的结构示意图;

图4示出了本申请提供的仿真验证装置另一个实施例的结构示意图;

图5示出了与图3对应的计算设备的结构示意图;

图6示出了与图4对应的计算设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

在本申请的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

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

目前,在进行SOC芯片中某些系统的算法仿真时,在获取到这些系统的系统代码之后,仿真测试人员会将对系统代码进行仿真验证,由于系统代码涉及的集成门电路比较多,采用仿真器仿真速度比较慢,而由于芯片的发展日新月异,对仿真速度的要求比较严格,因此,一般仿真测试人员会采用硬件加速器对该系统进行仿真。但是系统代码对应于多个功能模块,比如系统对应的算法模块以及在真实运行环境中包括的许多模块,比如功耗控制模块、时钟模块和总线模块等等。

硬件加速器一般会分成若干个硬件加速器块供仿真测试人员使用,仿真测试人员调用对应的硬件加速器块对该系统对应的集成门电路进行仿真,但是,由于该系统对应的集成门电路中对应有功耗控制模块、时钟模块和总线模块等等与该系统对应的算法无关的模块,因此,在进行仿真测试的时候,这些模块会占用硬件加速器的资源,造成硬件加速器资源不足,或者在仿真测试过程中发现这些模块存在运行错误或者该系统中的模块版本较低,还需要调试这些模块或者对这些模块进行版本升级,造成仿真效率下降。

为了解决上述技术问题,本申请实施例提供一种仿真验证方法、装置及计算设备。该方法包括:获取系统级芯片的系统代码,所述系统代码对应于多个模块;根据仿真需求,在所述多个模块中确定出至少一个目标模块;调用硬件加速器对所述至少一个目标模块进行仿真验证;获取所述硬件加速器返回的第一仿真验证结果。本申请通过在系统代码对应的多个模块中确定出需要进行仿真验证的至少一个目标模块,仅针对至少一个目标模块进行仿真验证,可以减少不必要的模块占用硬件加速器资源以及有效提高针对至少一个目标模块的仿真验证效率。

图1示出了本申请提供的仿真验证方法的一种实施例的流程示意图,其中,本申请实施例的执行主体可以为安装有第三方应用程序的电子设备,该第三方应用程序用于基于电子设备的指令执行上述仿真验证方法。如图1所示,该方法包括:

101、获取系统级芯片的系统代码。

系统代码对应于多个模块。其中,系统代码可以是预先编辑好的,可以由系统代码的编辑人员发送到电子设备,一般情况下,在SOC芯片的系统级仿真验证过程中,会调用不同的硬件加速器块对SOC芯片的不同系统的对应的系统代码进行仿真验证,此时的系统代码对应于多个模块,以NPU系统为例,NPU系统对应的系统代码对应于NPU系统包括的实现AI功能的算法模块,系统内部的功耗控制模块、时钟模块以及与其他系统进行数据传输的总线模块等。

若目标系统的数量为多个,那么功耗控制模块、时钟模块以及与其他系统进行数据传输的总线模块等与算法模块无关的模块的数量也会增加。

102、根据仿真需求,在多个模块中确定出至少一个目标模块。

一般情况下,由于在系统中,算法模块比较复杂,如果利用普通仿真对算法模块进行仿真,那么需要利用硬件加速器对算法模块进行仿真,从而能够快速的得到仿真结果,仿真需求对应的至少一个目标模块可以为至少一个算法模块。举例来说,若至少一个目标系统为NPU系统,则目标模块可以为实现AI功能的算法模块,若至少一个目标系统为NPU系统和ISP系统,则目标模块可以为图像处理的算法模块和实现AI功能的算法模块。

如上文所述,与算法无关的模块会随着目标系统数量的增多而增加,而如果将这些算法无关的模块与算法模块一同进行会影响对算法模块进行仿真验证的效率,因此,需要在多个模块中确定出至少一个目标模块,即确定出至少一个算法模块,进而只针对至少一个算法模块进行验证仿真。

其中,在系统代码中,多个模块的各自对应的标识不一致,因此,可以基于多个模块各自对应的标识确定出至少一个目标模块。

可选地,在多个模块中确定出至少一个目标模块可以实现为:根据仿真需求中包括的至少一个模块标识,在多个模块中查找至少一个模块标识对应的至少一个目标模块。

其中,标识可以为模块名称,比如,目标模块的名称一般为model。

103、调用硬件加速器对至少一个目标模块进行仿真验证。

可选地,硬件加速器可以为帕拉丁硬件加速器等,可以通过调用硬件加速器的接口对至少一个目标模块进行仿真。

可选地,在根据仿真需求,在多个模块中确定出至少一个目标模块之后,还包括:根据至少一个目标模块的代码逻辑,生成逻辑电路;调用硬件加速器对至少一个目标模块进行仿真验证,包括:调用硬件加速器对逻辑电路进行仿真验证。

其中,在确定出算法模块之后,将算法模块包括的代码输入转换工具,以便转换工具根据至少一个目标模块的代码逻辑,生成逻辑电路。

可选地,该转换工具可以是任何将代码转换成逻辑电路的开源工具。

可选地,该转换工具还可以具有可视化界面,可以将逻辑电路在可视化界面进行展示,以便用户对该逻辑电路进行查看,从而用户可以基于该逻辑电路确定出逻辑问题,以便可以在调用仿真器对目标电路进行仿真验证之前减少目标电路的逻辑性问题,可以有效提高之后对目标电路的仿真效率。

可选地,调用硬件加速器对目标电路进行仿真验证可以实现为:建立与硬件加速器的网络连接;基于网络连接,将逻辑电路发送至硬件加速器。

其中,网络连接可以是局域网连接,广域网连接等等。

其中,一般情况下,芯片公司都会购买用于进行芯片仿真验证的硬件加速器,并将该硬件加速器分配在对应的网络下,运行有第三方程序的电子设备可以连接到对应的网络与硬件加速器进行连接,从而可以将逻辑电路发送至硬件加速器,以便硬件加速器对目标电路进行仿真验证。

104、获取所述硬件加速器返回的第一仿真验证结果。

其中,第一仿真验证结果中包括至少一个目标模块的执行逻辑是否有误,以及若有误,错误的字段以及错误类型。

电子设备获取到第一仿真验证结果之后,若至少一个目标模块的执行逻辑是否有误,则基于第一仿真验证结果对至少一个目标模块的代码进行调试。

可选地,调用硬件加速器对至少一个目标模块进行仿真验证之后,还包括:调用仿真器对多个模块中除至少一个目标模块之外的其他模块进行仿真。

其中,多个模块中除至少一个目标模块之外的其他模块为与仿真模块无关的多个模块,这些模块的占用资源较小,因此,利用普通仿真就可以在较短的时间内确定出仿真结果。

进一步的,电子设备获取仿真器返回的第二仿真验证结果。

其中,第二仿真认证结果包括其他模块各自对应的执行逻辑是否有误,以及各个模块之间的互联性是否有问题。

可选地,若第一仿真验证结果和第二仿真验证结果无误,则调用硬件加速器对系统代码进行仿真验证;

接收所述硬件加速器返回的第三仿真验证结果。

第一仿真验证结果和第二仿真验证结果无误,则说明至少一个目标模块到的执行逻辑无误以及其他模块之间的互联性没有问题,此时可以将系统代码对应的多个模块通过上述转换工具转换成对应的逻辑电路,将逻辑电路发送至硬件加速器,以便硬件加速器返回第三仿真验证结果。

其中,第三仿真验证结果包括至少一个目标模块与其他模块的互联性是否有问题,以及在有问题的情况下的问题字段以及问题类型,从而可以基于问题字段以及问题类型对系统代码进行调试。

本申请实施例提供一种仿真验证方法,该方法包括:该方法包括:获取系统级芯片的系统代码,所述系统代码对应于多个模块;根据仿真需求,在所述多个模块中确定出至少一个目标模块;调用硬件加速器对所述至少一个目标模块进行仿真验证;获取所述硬件加速器返回的第一仿真验证结果。本申请通过在系统代码对应的多个模块中确定出需要进行仿真验证的至少一个目标模块,仅针对至少一个目标模块进行仿真验证,可以减少不必要的模块占用硬件加速器资源以及有效提高针对至少一个目标模块的仿真验证效率。

图2示出了本申请提供的仿真验证方法的另一种实施例的流程示意图,本申请实施例的执行主体可以为硬件加速器,该方法包括:

201、接收电子设备的调用指令。

调用指令包括从系统级芯片的系统代码中所确定的至少一个目标模块。

202、获取至少一个目标模块对应的测试数据。

可选地,至少一个目标模块中仅仅包括有算法的执行逻辑,而不包括与算法对应的测试数据,因此至少一个目标模块的验证过程可以实现为:确定至少一个目标模块中对应的算法,基于该算法向存储器发送数据获取请求,以便存储器返回对应的数据,基于该数据对算法模块进行验证仿真。

其中,存储器可以是双倍速率同步动态随机(Double DataRate,简称DDR)存储器,该存储器用于存储目标模块中包括的算法对应的测试数据,该测试数据用于测试至少一个目标模块中的算法的执行逻辑是否有误。

203、基于测试数据对至少一个目标模块进行仿真验证,得到仿真验证结果。

204、将仿真验证结果发送至电子设备。

为了进一步说明本申请实施例提供的仿真验证方法,一般情况下,NPU系统与ISP系统算法之间的交互较多,本申请实施例就以NPU系统与ISP系统算法之间的交互进行举例说明。

电子设备接收到用户发送的NPU系统和ISP系统对应的系统代码,并且基于NPU系统和ISP系统各自算法模块对应的标识在系统代码对应的多个模块中确定出NPU算法模块和ISP算法模块。

进一步的,利用代码转换工具将NPU算法模块、ISP算法模块转换成各自对应的逻辑电路,电子设备连接到加速器所在的网络,将NPU算法模块、ISP算法模块各自对应的逻辑电路发送到加速器。若测试结果需要模拟实际进行交互的延时信息,则在将NPU算法模块、ISP算法模块各自对应的逻辑电路之间添加延时模块,用于模拟芯片实际运行中的延时信息。

加速器基于接收到的逻辑电路向DDR存储器请求测试数据,从而DDR存储器将测试数据发送至加速器,加速器基于该测试据对逻辑电路进行仿真验证。

进一步的,用户可以将多个模块中除了NPU算法模块、ISP算法模块的其他模块发送到普通仿真器,从而普通仿真器可以仿真验证这些模块的互联行以及协助工作的能力。

最终,电子设备在NPU算法模块、ISP算法模块的仿真验证结果以及其他模块的验证结果无误的情况下,调用硬件加速器对系统代码进行仿真,从而接收硬件加速器对NPU算法模块、ISP算法模块以及其他模块的互联性。

图3示出了本申请提供的仿真验证装置一个实施例的结构示意图,如图3所述,该装置包括:获取单元31、确定单元32、调用单元33。

获取单元31,用于获取系统级芯片的系统代码,所述系统代码对应于多个模块;获取所述硬件加速器返回的第一仿真验证结果。

确定单元32,用于根据仿真需求,在所述多个模块中确定出至少一个目标模块。

控制单元33,用于调用硬件加速器对所述至少一个目标模块进行仿真验证。

可选地,确定单元32具体用于:根据所述仿真需求中包括的至少一个模块标识,在所述多个模块中查找所述至少一个模块标识对应的至少一个目标模块

可选地,上述装置还包括,生成单元,用于根据所述至少一个目标模块的代码逻辑,生成逻辑电路。

可选地,调用单元33具体用于:调用硬件加速器对所述逻辑电路进行仿真验证。

可选地,上述装置还包括:建立单元,用于建立与所述硬件加速器的网络连接;发送单元,用于基于所述网络连接,将所述逻辑电路发送至所述硬件加速器。

可选地,调用单元33进一步用于:调用仿真器对所述多个模块中除所述至少一个目标模块之外的其他模块进行仿真。

可选地,上述装置还包括:接收单元,用于接收所述仿真器返回的第二仿真验证结果。

可选地,调用单元33还进一步用于:若所述第一仿真验证结果和所述第二仿真验证结果无误,则调用所述硬件加速器对所述系统代码进行仿真验证。

可选地,接收单元,还用于接收所述硬件加速器返回的第三仿真验证结果。

图3所述的仿真验证装置可以执行图1所示实施例所述的仿真验证方法,其实现原理和技术效果不再赘述。对于上述实施例中的仿真验证装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图4示出了本申请提供的仿真验证装置另一个实施例的结构示意图,如图4所述,该装置包括:接收单元41、获取单元42、仿真验证单元43、发送单元44。

接收单元41,用于接收电子设备的调用指令;所述调用指令包括从系统级芯片的系统代码中所确定的至少一个目标模块;

获取单元42,用于获取所述至少一个目标模块对应的测试数据;

仿真验证单元43,用于基于所述测试数据对所述至少一个目标模块进行仿真验证,得到仿真验证结果;

发送单元44,用于将所述仿真验证结果发送至所述电子设备。

图4所述的仿真验证装置可以执行图2所示实施例所述的仿真验证方法,其实现原理和技术效果不再赘述。对于上述实施例中的仿真验证装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在一个可能的设计中,图3所示实施例的仿真验证装置可以实现为计算设备,如图5所示,该计算设备可以包括存储组件501以及处理组件502;

所述存储组件501存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件502调用执行。

所述处理组件502用于:

获取系统级芯片的系统代码,所述系统代码对应于多个模块;

根据仿真需求,在所述多个模块中确定出至少一个目标模块;

调用硬件加速器对所述至少一个目标模块进行仿真验证;

获取所述硬件加速器返回的第一仿真验证结果。

在一个可能的设计中,图4所示实施例的仿真验证装置可以实现为计算设备,如图6所示,该计算设备可以包括存储组件601以及处理组件602;

所述存储组件601存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件602调用执行。

所述处理组件602用于:

接收电子设备的调用指令,所述调用指令包括从系统级芯片的系统代码中所确定的至少一个目标模块;

获取所述至少一个目标模块对应的测试数据;

基于所述测试数据对所述至少一个目标模块进行仿真验证,得到仿真验证结果;

将所述仿真验证结果发送至所述电子设备。

另外,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述图1所示实施例中提供的页面显示方法。

本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述图2所示实施例中提供的页面显示方法。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一种地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种仿真调试方法、装置、计算设备以及计算机存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类