CN115422883A - 芯片开发与验证方法、终端设备、验证平台及存储介质 - Google Patents
芯片开发与验证方法、终端设备、验证平台及存储介质 Download PDFInfo
- Publication number
- CN115422883A CN115422883A CN202211234132.1A CN202211234132A CN115422883A CN 115422883 A CN115422883 A CN 115422883A CN 202211234132 A CN202211234132 A CN 202211234132A CN 115422883 A CN115422883 A CN 115422883A
- Authority
- CN
- China
- Prior art keywords
- qemu
- virtual
- virtual equipment
- program
- equipment
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及芯片验证技术领域,具体涉及芯片开发与验证方法、终端设备、验证平台及存储介质。该方法包括以下步骤:创建虚拟设备后端程序,在Host运行虚拟设备后端程序,生成虚拟设备后端进程,其中所述虚拟设备后端程序具有两条管道;获取包含上述虚拟设备前端的QEMU程序,在Host运行包含虚拟设备前端的QEMU程序,生成QEMU进程;且在运行时还要指定虚拟设备对接到上述已创建的两条管道;其中,在所述QEMU进程里安装Linux,部署SDK开发与验证所需的软件环境;获取原始数据,将所述原始数据经由总线、虚拟设备前端和一个管道,传递给虚拟设备后端,虚拟设备后端将原始数据加工处理后,生成处理后的数据。
Description
技术领域
本发明涉及芯片验证技术领域,尤其涉及芯片开发与验证方法、终端设备、验证平台及存储介质。
背景技术
芯片开发流程十分复杂,其中硬件侧的几个重要环节依次是:芯片架构设计->芯片设计与实现->芯片前端设计与验证->芯片后端设计与实现->芯片版图交付制造。
在芯片开发流程中将“芯片设计与实现”和“芯片SDK开发与验证”并行开始,各自独立推进。采用下面技术解决“软件开发人员需要非常频繁地与芯片硬件进行数据交互”问题:
在QEMU仿真器里添加虚拟设备,具体方法是:按照QEMU的虚拟设备代码框架(目前最常见的是QOM)规范,编写软件代码实现当前项目要开发的芯片产品的功能、特性、算法,然后编译生成包含该虚拟设备的QEMU程序。执行这个QEMU程序就会仿真出一台包含了新添加虚拟设备的计算机,该虚拟设备的功能、特性、算法都与芯片产品极为相似。软件团队基于这个新QEMU里的虚拟设备进行SDK的开发与验证。如图6所示。
现有技术,QEMU虚拟设备代码框架(QOM),了解其基本规则和约束,再编写软件代码实现芯片产品的功能、特性、算法,而且编写这些软件代码的过程中必须严格遵循QEMU虚拟设备代码框架的规范约束。之后若在使用过程中发现虚拟设备软件代码存在bug,则不仅要按照QEMU虚拟设备代码框架修改虚拟设备软件代码,还要重新编译QEMU程序、执行QEMU程序重新仿真出计算机。现有技术修正bug过程的过程较繁琐,工作量较大,出现了虚拟设备软件代码与QEMU紧密耦合的现象,为了解决该技术问题现提出芯片开发与验证方法、终端设备、验证平台及存储介质。
发明内容
为了解决上述现有技术中存在的技术问题,本发明提供了一种芯片开发与验证方法、终端设备、验证平台及存储介质,将虚拟设备的数据收发功能和数据加工处理功能解耦,虚拟设备前端与虚拟设备后端之间通过简单成熟的管道技术传递数据。整体降低了SDK开发、验证所需QEMU虚拟设备的代码开发复杂度。
为实现上述目的,本发明实施例提供了如下的技术方案:
第一方面,在本发明提供的一个实施例中,提供了芯片开发与验证方法,该方法包括以下步骤:
创建虚拟设备后端程序,在Host运行虚拟设备后端程序,生成虚拟设备后端进程,其中所述虚拟设备后端程序具有两条管道;
获取包含上述虚拟设备前端的QEMU程序,在Host运行包含虚拟设备前端的QEMU程序,生成QEMU进程;且在运行时还要指定虚拟设备对接到上述已创建的两条管道。
其中,在所述QEMU进程里安装Linux,部署SDK开发与验证所需的软件环境;
获取原始数据,将所述原始数据经由总线、虚拟设备前端和一个管道,传递给虚拟设备后端,虚拟设备后端将原始数据加工处理后,生成处理后的数据;所述处理后的数据经由另一个管道、虚拟设备前端和总线,最终送给SDK开发与验证人员。
作为本发明的进一步方案,所述创建虚拟设备后端程序,包括以下步骤:
获取虚拟设备后端软件代码,且虚拟设备后端软件代码还创建两条管道;
将所述虚拟设备后端软件代码编译生成虚拟设备后端程序。
作为本发明的进一步方案,所述软件代码直接复用芯片开发流程中“芯片架构设计”的C Model算法原型代码。
作为本发明的进一步方案,两条所述管道,一条管道负责接收虚拟设备前端发来的原始数据以供后续的加工处理,另一条管道负责将加工处理后的数据发给虚拟设备前端。
作为本发明的进一步方案,所述获取包含上述虚拟设备前端的QEMU程序,包括,
实现虚拟设备前端;
修改QEMU的Kconfig文件,将上述虚拟设备前端作为模块加入到QEMU的编译配置;
在Host编译这套QEMU代码,生成包含上述虚拟设备前端的QEMU程序。
作为本发明的进一步方案,所述实现虚拟设备前端,包括:
在QEMU源码中,按照QEMU设备代码框架编写软件代码实现虚拟设备前端。
作为本发明的进一步方案,所述QEMU设备代码框架在编写所述虚拟设备前端代码时至少要实现3个的结构体;所述结构体包括ObjectClass、Object、TypeInfo及相关的方法。
第二方面,在本发明提供的又一个实施例中,提供了一种终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现芯片开发与验证方法的步骤。
第三方面,在本发明提供的又一个实施例中,提供了一种验证平台,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现芯片开发与验证方法的步骤。
第四方面,在本发明提供的再一个实施例中,提供了一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现所述芯片开发与验证方法的步骤。
本发明提供的技术方案,具有如下有益效果:
本发明提供的芯片开发与验证方法、终端设备、验证平台及存储介质,将虚拟设备的数据收发功能和数据加工处理功能解耦,虚拟设备前端与虚拟设备后端之间通过简单成熟的管道技术传递数据。整体降低了SDK开发、验证所需QEMU虚拟设备的代码开发复杂度。若虚拟设备后端存在bug,可随时修正,不需要重新编译、重新运行QEMU。另外,本发明所有步骤均由软件实现,不需要任何硬件辅助即可完成SDK开发、验证工作,提早了软件团队开始工作的时间点。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明一个实施例的芯片开发与验证方法的流程图;
图2为本发明一个实施例的芯片开发与验证方法实现的框架图;
图3为本发明一个实施例的芯片开发与验证方法中步骤S10的流程图;
图4为本发明一个实施例的芯片开发与验证方法中步骤S20的流程图;
图5为本发明一个实施例的终端设备的结构图;
图6为现有技术框架图。
图中:处理器-401、通信接口-402、存储器-403、通信总线-404。
具体实施方式
以下参照附图说明各种实施例及/或各形态。在以下说明中,以说明为目的公开了多个具体细节以整体上理解一个以上的形态。但是,本领域的技术人员可以理解在没有具体细节的情况下也可以实施这些形态。在以下的记载及附图中将详细说明一个以上的形态的特定例示。但是,这些形态是例示而已,可以利用各种形态的原理中各种方法中的一部分,所阐述的说明旨在包括所有形态及其等同物。具体地,在本说明书中使用的术语“实施例”、“例”、“形态”、“例示”等可以被解释为所描述的任意形态或设计可以比其他形态或设计更好或具有优点。
另外,各种形态及特征可通过包括一个以上的装置、终端、服务器、设备、组件及/或模块等的系统体现。应理解并认识各种系统可包括额外的多个装置、终端、服务器、设备、组件及/或模块,并且/或也可以不包括图中所示的多个装置、终端、服务器、设备、组件、模块等的全部。
在本说明书中使用的术语“计算机程序”、“组件”、“模块”、“系统”等可以互换使用,并且计算机-相关实体、硬件、固件、软件、软件及硬件的组合或指软件的执行。例如,组件可以是在处理器上执行的处理过程、处理器、客体、执行线程、程序及/或计算机,但不限定于此。例如,可以是在计算机装置执行的应用程序及/或计算装置所有组件。一个以上的组件可以安装在处理器及/或执行线程内。一个组件可以在一个计算机中本地化。一个组件也可以在两个以上的计算机之间分配。
并且,这些组件可由在内部存储各种数据构造的各种计算机可读介质执行。这些组件,例如可根据具有一个以上的数据包的信号(例如,在本地系统、分散系统上通过与其他组件相互作用的一个组件发出的数据及信号与其他系统通过互联网等网络传输的数据)通过本地及/或远程处理通信。
以下,与图面符号无关,对相同或类似的构成要素赋予相同的符号,并省略对此的重复说明。并且,在说明本说明书中公开的实施例时,若判断对公知技术的具体说明会使本发明的要旨不明确,则省略对其的详细说明。并且,附图仅为了更容易理解在本说明书中公开的实施例,本说明书中公开的技术思想并不限定于附图。
在本说明书中使用的术语是为了说明这些实施例的,而不是限制本发明。在没有特别提及的情况下,本说明书中的单数表现包括复数表现。在说明书中使用的“包含(comprises)”及/或“包含的(comprising)”被提及的构成要素以外不排除一个以上的其他构成要素的存在或附加。
第一、第二等术语可用于说明多种元件或构成要素,但所述元件或构成要素并不局限于所述术语。所述术语以从其他元件或构成要素区分一个元件或构成要素而使用。因此,在以下提及的第一元件或构成要素当然也可以是本发明的技术思想内的第2元件或构成要素。
若没有其他定义,在本说明书中使用的所有术语(包括技术及科学术语)可以用于本发明所属领域的领域技术人员共通理解的含义。另外,在一般使用的词典上被定义的术语,若没有特别明确定义,则不应以理想性或过度解释。
另外,术语“或”的意思不是排他的“或”而是包含的“或”。即,除非有其他特定或文脉上不明确时“X利用A或B”意味着自然内涵的替换之一。即,X利用A或;X利用B或X利用A及B时,“X利用A或B”可以上面的任何情况。并且,应理解在本说明书中使用的“及/或”的术语指代包括在例举的相关项目中的一个以上项目可能的所有组合。
另外,在本说明书中使用的术语“信息”及“数据”通常可互换使用。
在以下说明中使用的对构成要素的后缀“模块”及“部”,只是为了方便撰写说明书而赋予或混用的,其本身并没有相互区别的含义或作用。
具体地,下面结合附图,对本发明实施例作进一步阐述。
请参阅图1,图1是本发明实施例提供的一种芯片开发与验证方法的流程图,如图1所示,该芯片开发与验证方法包括步骤S10至步骤S30。
S10、创建虚拟设备后端程序,在Host运行虚拟设备后端程序,生成虚拟设备后端进程,其中所述虚拟设备后端程序具有两条管道。
其中,所述创建虚拟设备后端程序,包括以下步骤:
S101、获取虚拟设备后端软件代码,且虚拟设备后端软件代码还创建两条管道。
其中,两条所述管道,一条管道负责接收虚拟设备前端发来的原始数据以供后续的加工处理,另一条管道负责将加工处理后的数据发给虚拟设备前端。
在本发明的实施例中,所述软件代码可以直接复用芯片开发流程中“芯片架构设计”的C Model算法原型代码、也可根据项目实际情况使用第三方的开源代码或者标准库作为基础,亦可以完全自行编码实现芯片产品的功能、特性、算法等部分。
所述创建两条管道的动作,也可不集成进虚拟设备后端,而由另一个一个单独的程序完成。
S102、将所述虚拟设备后端软件代码编译生成虚拟设备后端程序。
S20、获取包含上述虚拟设备前端的QEMU程序,在Host运行包含虚拟设备前端的QEMU程序,生成QEMU进程;且在运行时还要指定虚拟设备对接到上述已创建的两条管道。
其中,在所述QEMU进程里安装Linux,部署SDK开发与验证所需的软件环境。
在本发明的实施例中,所述获取包含上述虚拟设备前端的QEMU程序,包括,
S201、实现虚拟设备前端;
S202、修改QEMU的Kconfig文件,将上述虚拟设备前端作为模块加入到QEMU的编译配置;
S203、在Host编译这套QEMU代码,生成包含上述虚拟设备前端的QEMU程序。
S30、获取原始数据,将所述原始数据经由总线、虚拟设备前端和管道,传递给虚拟设备后端,虚拟设备后端将原始数据加工处理后,生成处理后的数据;所述处理后的数据经由管道、虚拟设备前端和总线,最终送给SDK开发与验证人员。
在本发明的实施例中,所述实现虚拟设备前端,包括:
在QEMU源码中,按照QEMU设备代码框架编写软件代码实现虚拟设备前端。
其中,QEMU设备代码框架(QOM)要求我们在编写虚拟设备前端代码时至少要实现3个结构体。所述结构体包括ObjectClass、Object、TypeInfo及相关的方法。
本发明将虚拟设备的数据收发功能和数据加工处理功能解耦,虚拟设备前端与虚拟设备后端之间通过简单成熟的管道技术传递数据。整体降低了SDK开发、验证所需QEMU虚拟设备的代码开发复杂度。
本发明纯软件实现不需要硬件辅助,使SDK开发与验证工作前置。虚拟设备前端与后端由不同进程实现,中间由管道连接。虚拟设备后端的软件实现复用芯片架构设计阶段的C Model算法原型代码达到与最终真实芯片bit match的效果或使用第三方开源代码及标准库简化仿真过程提高效率。
应该理解的是,上述虽然是按照某一顺序描述的,但是这些步骤并不是必然按照上述顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,本实施例的一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在本发明的一个实施例中,参见图5所示,在本发明的实施例中还提供了一种终端设备,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信。
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的计算机程序时,执行所述的芯片开发与验证方法,该处理器执行指令时实现上述方法实施例中的步骤:
S10、创建虚拟设备后端程序,在Host运行虚拟设备后端程序,生成虚拟设备后端进程,其中所述虚拟设备后端程序具有两条管道。
其中,所述创建虚拟设备后端程序,包括以下步骤:
S101、获取虚拟设备后端软件代码,且虚拟设备后端软件代码还创建两条管道。
其中,两条所述管道,一条管道负责接收虚拟设备前端发来的原始数据以供后续的加工处理,另一条管道负责将加工处理后的数据发给虚拟设备前端。
在本发明的实施例中,所述软件代码可以直接复用芯片开发流程中“芯片架构设计”的C Model算法原型代码、也可根据项目实际情况使用第三方的开源代码或者标准库作为基础,亦可以完全自行编码实现芯片产品的功能、特性、算法等部分。
所述创建两条管道的动作,也可不集成进虚拟设备后端,而由另一个一个单独的程序完成。
S102、将所述虚拟设备后端软件代码编译生成虚拟设备后端程序。
S20、获取包含上述虚拟设备前端的QEMU程序,在Host运行包含虚拟设备前端的QEMU程序,生成QEMU进程;且在运行时还要指定虚拟设备对接到上述已创建的两条管道。
其中,在所述QEMU进程里安装Linux,部署SDK开发与验证所需的软件环境。
在本发明的实施例中,所述获取包含上述虚拟设备前端的QEMU程序,包括,
S201、实现虚拟设备前端;
S202、修改QEMU的Kconfig文件,将上述虚拟设备前端作为模块加入到QEMU的编译配置;
S203、在Host编译这套QEMU代码,生成包含上述虚拟设备前端的QEMU程序。
S30、获取原始数据,将所述原始数据经由总线、虚拟设备前端和管道,传递给虚拟设备后端,虚拟设备后端将原始数据加工处理后,生成处理后的数据;所述处理后的数据经由管道、虚拟设备前端和总线,最终送给SDK开发与验证人员。
在本发明的实施例中,所述实现虚拟设备前端,包括:
在QEMU源码中,按照QEMU设备代码框架编写软件代码实现虚拟设备前端。
其中,QEMU设备代码框架(QOM)要求我们在编写虚拟设备前端代码时至少要实现3个结构体。所述结构体包括ObjectClass、Object、TypeInfo及相关的方法。
本发明将虚拟设备的数据收发功能和数据加工处理功能解耦,虚拟设备前端与虚拟设备后端之间通过简单成熟的管道技术传递数据。整体降低了SDK开发、验证所需QEMU虚拟设备的代码开发复杂度。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或外设部件高速互连标准(Peripheral ComponentInterconnect Express,简称PCIe)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
所述终端设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述终端设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他终端设备的交互操作来实现本发明。其中,所述终端设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
还应当进理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
在本发明的一个实施例中,参见图5所示,在本发明的实施例中还提供了一种验证平台,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现所述的芯片开发与验证方法的步骤:
S10、创建虚拟设备后端程序,在Host运行虚拟设备后端程序,生成虚拟设备后端进程,其中所述虚拟设备后端程序具有两条管道。
其中,所述创建虚拟设备后端程序,包括以下步骤:
S101、获取虚拟设备后端软件代码,且虚拟设备后端软件代码还创建两条管道。
其中,两条所述管道,一条管道负责接收虚拟设备前端发来的原始数据以供后续的加工处理,另一条管道负责将加工处理后的数据发给虚拟设备前端。
在本发明的实施例中,所述软件代码可以直接复用芯片开发流程中“芯片架构设计”的C Model算法原型代码、也可根据项目实际情况使用第三方的开源代码或者标准库作为基础,亦可以完全自行编码实现芯片产品的功能、特性、算法等部分。
所述创建两条管道的动作,也可不集成进虚拟设备后端,而由另一个一个单独的程序完成。
S102、将所述虚拟设备后端软件代码编译生成虚拟设备后端程序。
S20、获取包含上述虚拟设备前端的QEMU程序,在Host运行包含虚拟设备前端的QEMU程序,生成QEMU进程;且在运行时还要指定虚拟设备对接到上述已创建的两条管道。
其中,在所述QEMU进程里安装Linux,部署SDK开发与验证所需的软件环境。
在本发明的实施例中,所述获取包含上述虚拟设备前端的QEMU程序,包括,
S201、实现虚拟设备前端;
S202、修改QEMU的Kconfig文件,将上述虚拟设备前端作为模块加入到QEMU的编译配置;
S203、在Host编译这套QEMU代码,生成包含上述虚拟设备前端的QEMU程序。
S30、获取原始数据,将所述原始数据经由总线、虚拟设备前端和管道,传递给虚拟设备后端,虚拟设备后端将原始数据加工处理后,生成处理后的数据;所述处理后的数据经由管道、虚拟设备前端和总线,最终送给SDK开发与验证人员。
在本发明的实施例中,所述实现虚拟设备前端,包括:
在QEMU源码中,按照QEMU设备代码框架编写软件代码实现虚拟设备前端。
其中,QEMU设备代码框架(QOM)要求我们在编写虚拟设备前端代码时至少要实现3个结构体。所述结构体包括ObjectClass、Object、TypeInfo及相关的方法。
本发明将虚拟设备的数据收发功能和数据加工处理功能解耦,虚拟设备前端与虚拟设备后端之间通过简单成熟的管道技术传递数据。整体降低了SDK开发、验证所需QEMU虚拟设备的代码开发复杂度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种芯片开发与验证方法,其特征在于,该方法包括:
创建虚拟设备后端程序,在Host运行虚拟设备后端程序,生成虚拟设备后端进程,其中所述虚拟设备后端程序具有两条管道;
获取包含虚拟设备前端的QEMU程序,在Host运行包含所述虚拟设备前端的QEMU程序,生成QEMU进程;且在运行时指定虚拟设备对接已创建的两条管道;
其中,在所述QEMU进程里安装Linux,部署SDK开发与验证所需的软件环境;
获取原始数据,将所述原始数据经由总线、虚拟设备前端和一个管道,传递给虚拟设备后端,虚拟设备后端将原始数据加工处理后,生成处理后的数据;所述处理后的数据经由另一个管道、虚拟设备前端和总线,最终送给SDK开发与验证人员。
2.如权利要求1所述的芯片开发与验证方法,其特征在于,所述创建虚拟设备后端程序,包括以下步骤:
获取虚拟设备后端软件代码,且虚拟设备后端软件代码还创建两条管道;
将所述虚拟设备后端软件代码编译生成虚拟设备后端程序。
3.如权利要求2所述的芯片开发与验证方法,其特征在于,所述软件代码直接复用芯片开发流程中“芯片架构设计”的C Model算法原型代码。
4.如权利要求2所述的芯片开发与验证方法,其特征在于,两条所述管道,一条管道负责接收虚拟设备前端发来的原始数据以供后续的加工处理,另一条管道负责将加工处理后的数据发给虚拟设备前端。
5.如权利要求1所述的芯片开发与验证方法,其特征在于,所述获取包含上述虚拟设备前端的QEMU程序,包括,
实现虚拟设备前端;
修改QEMU的Kconfig文件,将上述虚拟设备前端作为模块加入到QEMU的编译配置;
在Host编译这套QEMU代码,生成包含上述虚拟设备前端的QEMU程序。
6.如权利要求5所述的芯片开发与验证方法,其特征在于,所述实现虚拟设备前端,包括:
在QEMU源码中,按照QEMU设备代码框架编写软件代码实现所述虚拟设备前端。
7.如权利要求6所述的芯片开发与验证方法,其特征在于,所述QEMU设备代码框架在编写所述虚拟设备前端代码时至少要实现3个的结构体;所述结构体包括ObjectClass、Object、TypeInfo及相关的方法。
8.一种终端设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现如权利要求1-7任一项所述的芯片开发与验证方法的步骤。
9.一种验证平台,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器加载并执行所述计算机程序时实现如权利要求1-7任一项所述的芯片开发与验证方法的步骤。
10.一种存储介质,存储有计算机程序,所述计算机程序被处理器加载并执行时实现如权利要求1-7任一项所述的芯片开发与验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211234132.1A CN115422883A (zh) | 2022-10-10 | 2022-10-10 | 芯片开发与验证方法、终端设备、验证平台及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211234132.1A CN115422883A (zh) | 2022-10-10 | 2022-10-10 | 芯片开发与验证方法、终端设备、验证平台及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115422883A true CN115422883A (zh) | 2022-12-02 |
Family
ID=84207103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211234132.1A Pending CN115422883A (zh) | 2022-10-10 | 2022-10-10 | 芯片开发与验证方法、终端设备、验证平台及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115422883A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116205199A (zh) * | 2023-05-04 | 2023-06-02 | 阿里云计算有限公司 | 芯片验证方法、装置、电子设备、存储介质以及程序产品 |
-
2022
- 2022-10-10 CN CN202211234132.1A patent/CN115422883A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116205199A (zh) * | 2023-05-04 | 2023-06-02 | 阿里云计算有限公司 | 芯片验证方法、装置、电子设备、存储介质以及程序产品 |
CN116205199B (zh) * | 2023-05-04 | 2023-07-18 | 阿里云计算有限公司 | 芯片验证方法、装置、电子设备、存储介质以及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9361079B2 (en) | Method for compiling a parallel thread execution program for general execution | |
US10942716B1 (en) | Dynamic computational acceleration using a heterogeneous hardware infrastructure | |
CN101517536B (zh) | 带多重优化的函数级即时翻译引擎 | |
US10884707B1 (en) | Transpose operations using processing element array | |
US10180850B1 (en) | Emulating applications that use hardware acceleration | |
CN108093652A (zh) | 应用的模拟 | |
CN111460815B (zh) | 规则处理方法、装置、介质及电子设备 | |
US20130167112A1 (en) | Cross-platform virtual machine and method | |
US20210158131A1 (en) | Hierarchical partitioning of operators | |
CN107404418A (zh) | 互联网产品测试方法、装置、设备及存储介质 | |
CN115422883A (zh) | 芯片开发与验证方法、终端设备、验证平台及存储介质 | |
US9710575B2 (en) | Hybrid platform-dependent simulation interface | |
CN114443559A (zh) | 可重构算子单元、处理器、计算方法、装置、设备及介质 | |
CN114008635A (zh) | 神经网络逐层调试 | |
CN116228515B (zh) | 硬件加速系统、方法及相关装置 | |
CN105335203A (zh) | 共享库的二进制翻译执行方法和装置 | |
CN113778564B (zh) | 一种高效执行evm智能合约的方法、设备及储存介质 | |
US11797277B2 (en) | Neural network model conversion method server, and storage medium | |
CN115374017A (zh) | 一种仿真运行可执行文件时抓取现场的方法及计算设备 | |
KR20190075508A (ko) | 가상화된 시스템 상에서 임베디드 소프트웨어를 자동으로 생성하는 방법 및 컴퓨팅 시스템 | |
US11748622B1 (en) | Saving intermediate outputs of a neural network | |
CN109542447B (zh) | 一种otx程序文件执行方法及装置 | |
CN104615583A (zh) | 基于gpu平台实现数据处理的方法和装置 | |
CN109656728A (zh) | 页面数据操作方法、装置、设备及介质 | |
CN110673834A (zh) | 一种源码调用方法、装置、计算机设备及存储介质 |
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 |