CN111737933A - 一种soc原型验证方法、系统、设备及介质 - Google Patents
一种soc原型验证方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN111737933A CN111737933A CN202010567667.5A CN202010567667A CN111737933A CN 111737933 A CN111737933 A CN 111737933A CN 202010567667 A CN202010567667 A CN 202010567667A CN 111737933 A CN111737933 A CN 111737933A
- Authority
- CN
- China
- Prior art keywords
- tested
- peripheral
- operation command
- simulation
- local
- 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.)
- Withdrawn
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/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种SOC原型验证方法、系统、设备以及介质,该方法包括:通过本地uart接口接收交互仿真平台发送的操作命令;通过所述本地ARM核心上运行的命令解析器对所述操作命令进行解析,并转换成外设驱动操作命令;通过本地待测外设总线将所述外设驱动操作命令发送到对应的待测外设;通过所述uart接口将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。这样可以将uart接口和命令解析器应用于不同的SOC原型系统,提高了SOC原型验证系统的通用性,减少了整个SOC原型验证的工作量,且提高了验证的工作效率。
Description
技术领域
本申请涉及SOC技术领域,特别涉及一种SOC原型验证方法、系统、设备、介质。
背景技术
在SOC(System on Chip,片上系统)芯片设计开发过程中,通常会使用原型仿真的方法对数字电路设计的功能和性能进行验证。现有的SOC芯片原仿真中,一般需要在SOC原型设计中添加大量代码来构建一个仿真用的通信接口,以便连接SOC原型设计电路和仿真平台的驱动模块以及监控模块,实现仿真交互和控制。对应的就需要对此通信接口设计一套自定义的通信和控制机制,来传输系统激励,协助控制仿真流程。在仿真前还需要对这一套自定义的机制进行额外的验证,且需要验证的SOC芯片设计完成后这部分自定义机制不会便继续使用,导致工作量大大增加,且降低了通用性和工作效率。
发明内容
有鉴于此,本申请的目的在于提供一种SOC原型验证方法、装置、设备、介质,能够提高SOC原型验证系统的通用性,减少了整个SOC原型验证的工作量,且提高了验证的工作效率。其具体方案如下:
第一方面,本申请公开了一种SOC原型验证方法,应用于待测SOC原型系统,包括:
通过本地uart接口接收交互仿真平台发送的操作命令;
通过所述本地ARM核心上运行的命令解析器对所述操作命令进行解析,并转换成外设驱动操作命令;
通过本地待测外设总线将所述外设驱动操作命令发送到对应的待测外设;
通过所述uart接口将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。
可选地,所述通过本地uart接口接收交互仿真平台发送的操作命令之前,还包括:
接收所述交互仿真平台发送的待测外设信息查询指令;
根据所述待测外设信息查询指令对所述本地待测外设总线上挂载的待测外设进行扫描,得到待测外设信息;
将所述待测外设信息反馈给所述交互仿真平台。
可选地,所述通过本地uart接口接收交互仿真平台发送的操作命令之前,还包括:
通过所述本地ARM核心运行本地预先保存的u-boot代码,以便所述本地ARM核心进入命令解析器界面;
通过所述uart向所述交互仿真平台发送仿真准备完成信息,以便所述交互仿真平台在接收到所述仿真准备完成信息之后,向本地发送所述操作命令。
第二方面,本申请公开了一种SOC原型验证方法,应用于交互仿真平台,包括:
通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令;
通过所述u-boot仿真交互模块接收所述待测SOC原型系统执行所述操作命令后返回的验证结果;
通过本地预设的仿真控制模块将所述验证结果与预期结果进行比对,以确定所述验证结果对应的待测外设的行为是否正常,其中,所述预期结果为本地预期结果库中与所述操作命令对应的运行结果。
可选地,所述通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令之前,还包括:
向所述待测SOC原型系统发送待测外设信息查询指令;
接收所述待测SOC原型系统根据所述待测外设查询指令返回的待测外设信息,以便根据所述待测外设信息从本地交互命令集中确定出所述操作命令。
可选地,所述通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令之前,还包括:
通过所述u-boot仿真交互模块接收所述待测SOC原型系统发送的仿真准备完成信息,以便根据所述仿真准备完成信息向所述待测SOC原型系统发送所述操作命令。
可选地,所述通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令之前,还包括:
通过所述u-boot仿真交互模块接收所述待测SOC原型系统发送的仿真准备完成信息,以便根据所述仿真准备完成信息向所述待测SOC原型系统发送所述操作命令。
第三方面,本申请公开了一种待测SOC原型系统,包括:
uart接口,用于接收交互仿真平台发送的操作命令;
运行在ARM核心上的命令解析器,用于对所述操作命令进行解析,并转换成外设驱动操作命令;
待测外设总线,用于将所述外设驱动操作命令发送到对应的待测外设;
所述uart接口,用于将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。
第四方面,本申请公开了一种电子设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述公开的SOC原型验证方法。
第五方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的SOC原型验证方法。
可见,本申请先通过本地uart接口接收交互仿真平台发送的操作命令,然后再通过所述本地ARM核心上运行的命令解析器对所述操作命令进行解析,并转换成外设驱动操作命令,接着通过本地待测外设总线将所述外设驱动操作命令发送到对应的待测外设,并通过所述uart接口将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。这样通过在需要验证的待测SOC原型系统上预先设置uart接口和命令解析器,便可以通过uart接口接收交互仿真平台发送的操作命令,并通过所述命令解析器对接收到的操作命令进行解析,以实现待测SOC原型系统和交互仿真平台之间的仿真交互,由此便可以完成待测SOC原型系统的原型验证,这样可以将uart接口和命令解析器应用于不同的SOC原型系统,提高了SOC原型验证系统的通用性,减少了整个SOC原型验证的工作量,且提高了验证的工作效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种SOC原型验证方法流程图;
图2为本申请公开的一种SOC原型验证系统结构示意图;
图3为本申请公开的一种具体的SOC原型验证方法流程图;
图4为本申请公开的一种SOC原型验证方法流程图;
图5为本申请公开的一种具体的SOC原型验证方法流程图;
图6为本申请公开的一种待测SOC原型系统结构示意图;
图7为本申请公开的一种交互仿真平台结构示意图;
图8为本申请公开的一种电子设备结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,SOC芯片原仿真中,一般需要在SOC原型设计中添加大量代码来构建一个仿真用的通信接口,以便连接SOC原型设计电路和仿真平台的驱动模块以及监控模块,实现仿真交互和控制。对应的就需要对此通信接口设计一套自定义的通信和控制机制,来传输系统激励,协助控制仿真流程。在仿真前还需要对这一套自定义的机制进行额外的验证,且需要验证的SOC芯片设计完成后这部分自定义机制不会便继续使用,导致工作量大大增加,且降低了通用性和工作效率。有鉴于此,本申请提出了一种SOC原型验证方法,能够提高SOC原型验证系统的通用性,减少了整个SOC原型验证的工作量,且提高了验证的工作效率。
参见图1所示,本申请实施例公开了一种SOC原型验证方法,应用于待测SOC原型系统,该方法包括:
步骤S11:通过本地uart接口接收交互仿真平台发送的操作命令。
在具体的实施过程中,需要先通过本地uart(通用异步收发传输器,也称作串口)接口接收对应的交互仿真平台发送的操作命令,其中,所述操作命令为以uart协议发送的操作命令。通过本地uart接口接收所述操作命令之后,还需要本地uart接口根据uart协议对所述操作命令进行解析,得到解析后的操作命令。其中,原型验证一般指通过将芯片的数字设计移植到现场可编程门阵列(FPGA)来验证专门应用的集成电路(ASIC)和片上系统(SOC)的功能和性能。
步骤S12:通过本地ARM核心上运行的命令解析器对所述操作命令进行解析,并转换成外设驱动操作命令。
在通过所述本地uart接口接收所述操作命令之后,便可以由所述本地uart接口将所述操作命令发送到本地ARM核心(ARM core)上运行的命令解析器,由所述命令解析器对所述操作命令进行解析并转换成外设驱动操作命令,以便利用所述外设驱动操作命令对本地的待测外设进行仿真验证。
步骤S13:通过本地待测外设总线将所述外设驱动操作命令发送到对应的待测外设。
可以理解的是,在得到所述外设驱动操作命令之后,便可以通过本地待测外设总线将所述外设驱动操作命令发送到对应的待测外设中,以便所述待测外设执行所述外设驱动操作命令,所述待测外设执行所述外设驱动操作命令时会进行相应的处理,处理形式由所述待测外设的特征确定,例如更新待测外设的状态寄存器、产生中断、打印回显字符串等等。
步骤S14:通过所述uart接口将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。
在所述待测外设执行所述外设驱动操作命令之后,所述待测外设将验证结果返回给所述本地ARM核心,由所述本地ARM核心反馈给所述uart接口,再通过所述uart接口将所述验证结果反馈给所述交互仿真平台,其中,所述验证结果包括但不限于所述回显字符串等。
可见,本申请先通过本地uart接口接收交互仿真平台发送的操作命令,然后再通过所述本地ARM核心上运行的命令解析器对所述操作命令进行解析,并转换成外设驱动操作命令,接着通过本地待测外设总线将所述外设驱动操作命令发送到对应的待测外设,并通过所述uart接口将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。这样通过在需要验证的待测SOC原型系统上预先设置uart接口和命令解析器,便可以通过uart接口接收交互仿真平台发送的操作命令,并通过所述命令解析器对接收到的操作命令进行解析,以实现待测SOC原型系统和交互仿真平台之间的仿真交互,由此便可以完成待测SOC原型系统的原型验证,这样可以将uart接口和命令解析器应用于不同的SOC原型系统,提高了SOC原型验证系统的通用性,减少了整个SOC原型验证的工作量,且提高了验证的工作效率。
参见图2所示,本申请实施例公开了一种具体的SOC原型验证系统,包括:待测SOC原型系统和交互仿真平台,其中,所述待测SOC原型系统包括DDR(Double Data Rate,双倍速率同步动态随机存储器)、QSPI flash、ARM核心(ARM core)、uart接口、待测外设总线、查询接口以及多个待测外设,待测外设通过待测外设总线挂载到ARM核心,接收ARM核心的访问控制,ARM核心使用DDR作为运行内存,使用QSPI flash作为u-boot启动介质,启动时ARMcore从QSPI flash读取编译好的u-boot程序运行启动。ARM核心使用uart接口作为u-boot交互接口来接收命令激励和发送命令运行结果信息,在待测SoC原型系统的外设访问总线中预留一个查询接口,供仿真控制模块直接查询待测外设的状态以协助判定待测外设的工作结果。
所述交互仿真平台包括u-boot仿真交互模块、仿真控制模块、交互命令集、预期结果库。其中,所述u-boot仿真交互模块负责与待测SOC原型系统的uart接口进行交互,所述仿真控制模块负责仿真流程和检查仿真结果。所述交互命令集和所述预期结果库供所述仿真控制模块使用。所述交互命令集中包含u-boot代码中对各种待测外设的控制命令,是仿真前通过脚本统计生成的。所述预期结果库包含待测外设在接收驱动指令后对应的状态指示信息,一般表现为外设寄存器预期值。
结合图2中的SOC原型验证系统对所述SOC原型验证方法进行说明,参见图3所示,本申请实施例公开了一种具体的SOC原型验证方法,应用于待测SOC原型系统,该方法包括:
步骤S21:接收所述交互仿真平台发送的待测外设信息查询指令。
在具体的应用过程中,需要先接收所述交互仿真平台发送的待测外设信息查询指令,具体的,通过本地查询接口接收所述交互仿真平台中的仿真控制模块发送的待测外设信息查询指令。
步骤S22:根据所述待测外设信息查询指令对所述本地待测外设总线上挂载的待测外设进行扫描,得到待测外设信息。
在接收到所述待测外设信息查询指令之后,需要对所述本地待测外设总线上挂载的待测外设进行扫描,得到待测外设信息。其中,所述待测外设信息包括待测外设数量以及类型。
步骤S23:将所述待测外设信息反馈给所述交互仿真平台。
在得到所述待测外设信息之后,便可以将所述待测外设信息反馈所述交互平台,以便所述交互仿真平台根据所述待测外设信息确定需要发送的操作命令。具体的,通过所述本地查询接口将所述待测外设信息反馈给所述交互仿真平台中的仿真控制模块。
步骤S24:通过本地ARM核心运行本地预先保存的u-boot代码,以便所述本地ARM核心进入命令解析器界面。
在启动仿真之后,需要先通过本地ARM核心运行本地预先保存的u-boot代码,以便所述本地ARM核心进入命令解析器界面。具体的,就是本地ARM核心从所述QSPI flash中读取u-boot代码运行并正确进入命令解析器界面。u-boot进入命令解析器界面后可通过uart接口接收操作命令,与仿真平台进行命令行交互。
步骤S25:通过所述本地uart接口向所述交互仿真平台发送仿真准备完成信息,以便所述交互仿真平台在接收到所述仿真准备完成信息之后,向本地发送所述操作命令。
在进入命令解析器界面之后,调用所述本地uart接口向所述交互仿真平台发送仿真准备完成信息,以便所述交互仿真平台在接收到所述仿真准备完成信息之后,向本地发送所述操作命令。
步骤S26:通过本地uart接口接收交互仿真平台发送的操作命令。
步骤S27:通过所述本地ARM核心上运行的命令解析器对所述操作命令进行解析,并转换成外设驱动操作命令。
步骤S28:通过本地待测外设总线将所述外设驱动操作命令发送到对应的待测外设。
步骤S29:通过所述uart接口将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。
其中,步骤S26至步骤S29的具体实施方式可以参考前述实施例中公开的相应内容,在此不再进行赘述。
参见图4所示,本申请实施例公开了一种SOC原型验证方法,应用于交互仿真平台,该方法包括:
步骤S31:通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令。
在具体的实施过程中,首先需要通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令。具体的,就是通过本地预设的u-boot仿真交互模块向待测SOC原型系统中的uart接口发送操作命令,以便所述uart接口接收到所述操作命令之后,对所述操作命令进行相应的处理,以驱动待测外设进行仿真操作。
步骤S32:通过所述u-boot仿真交互模块接收所述待测SOC原型系统执行所述操作命令后返回的验证结果。
在向所述待测SOC原型发送所述操作命令之后,还需要通过所述u-boot仿真交互模块接收所述待测SOC原型系统执行所述操作命令后返回的验证结果。具体的,就是u-boot仿真交互模块接收所述待测SOC原型系统中的uart接口发送的验证结果,其中,所述验证结果为所述待测SOC原型系统中对应的待测外设执行所述操作命令后得到的结果。在接受到所述验证结果之后,由于所述验证结果是按照uart协议进行发送的,所以需要先对接收到的验证结果进行解析,并将解析之后的验证结果传输给本地的仿真控制模块。
步骤S33:通过本地预设的仿真控制模块将所述验证结果与预期结果进行比对,以确定所述验证结果对应的待测外设的行为是否正常,其中,所述预期结果为本地预期结果库中与所述操作命令对应的运行结果。
在接收到所述验证结果之后,还需要通过本地预设的仿真控制模块将所述验证结果与预期结果进行比对,以确定所述验证结果对应的待测外设的行为是否正常,其中,所述预期结果为本地预期结果库中与所述操作命令对应的运行结果。所述验证结果包括但不限于回显字符串。
此外,所述仿真控制模块还可以通过所述待测SOC原型系统中的查询接口对待测外设的寄存器进行监控。这样所述仿真控制模块便可以将接收到的回显字符串和待测外设的寄存器信息与预期结果进行比较,以判断回显字符串是否符合预期结果,或者待测外设的寄存器状态是否符合预期,进而判断待测外设的行为是否正确。
如果交互仿真过程中,待测外设的行为符合预期结果,则继续执行后续仿真操作,直到仿真验证序列全部完成,再停止交互仿真。如果待测外设的行为出现异常,则记录下来,然后查询ARM核心是否仍正常工作,和/或,判断所述交互仿真平台是否可以继续运行,如果可以运行则继续验证其他待测外设。如果由于某个待测外设的异常行为导致所述交互仿真平台无法继续运行,则停止仿真,并记录已完成的仿真结果和异常错误,供后续调试使用。
可见,本申请可以先通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令,然后通过所述u-boot仿真交互模块接收所述待测SOC原型系统执行所述操作命令后返回的验证结果,再通过本地预设的仿真控制模块将所述验证结果与预期结果进行比对,以确定所述验证结果对应的待测外设的行为是否正常,其中,所述预期结果为本地预期结果库中与所述操作命令对应的运行结果。这样通过本地预设的u-boot仿真交互模块和仿真控制模块便可以控制待测SOC原型系统的仿真流程,且对于不同的待测SOC原型系统来说也适用,提高了SOC原型验证系统的通用性,减少了整个SOC原型验证的工作量,且提高了验证的工作效率。
参见图5所示,本申请实施例公开了一种具体的SOC原型验证方法,应用于交互仿真平台,该方法包括:
步骤S41:向所述待测SOC原型系统发送待测外设信息查询指令。
在实际应用中,在仿真启动时,需要先向所述待测SOC原型系统发送待测外设信息查询指令,具体的,通过本地仿真控制模块向所述待测SOC原型系统的查询接口发送待测外设信息查询指令,以便获得待测外设的相关信息。
步骤S42:接收所述待测SOC原型系统根据所述待测外设查询指令返回的待测外设信息,以便根据所述待测外设信息从本地交互命令集中确定出所述操作命令。
在向所述查询接口发送所述待测外设查询指令之后,便可以通过所述仿真控制模块接收所述待测SOC原型系统根据所述待测外设查询指令返回的待测外设信息,以便根据所述待测外设信息从本地交互命令集中确定出所述操作命令。具体的,所述仿真控制模块接收到所述待测外设信息之后,根据所述待测外设信息从本地交互命令集和预期结果库取出相应外设的操作命令集合和对应的预期结果集合,组成树形结构的仿真验证命令序列和对应的结果序列。在将操作命令发送到本地的u-boot仿真交互模块。在确定要发送到所述u-boot仿真交互模块的操作命令时,使用深度优先搜索方式对仿真验证命令序列的操作命令集合进行搜索,确保遍历每个外设的操作命令,提高待测外设的仿真覆盖率。
步骤S43:通过所述u-boot仿真交互模块接收所述待测SOC原型系统发送的仿真准备完成信息,以便根据所述仿真准备完成信息向所述待测SOC原型系统发送所述操作命令。
在所述待测SOC原型系统完成仿真准备之后,便会通过uart接口向本地发送仿真准备完成信息,相应的,便可以通过所述u-boot仿真交互模块接收所述待测SOC原型系统发送的仿真准备完成信息,以便根据所述仿真准备完成信息向所述待测SOC原型系统发送所述操作命令。
步骤S44:通过所述u-boot仿真交互模块向待测SOC原型系统发送操作命令。
在接收到所述仿真准备完成信息之后,便可以通过所述u-boot仿真交互模块向待测SOC原型系统发送操作命令,以便对所述待测SOC原型系统中的待测外设进行仿真验证。
步骤S45:通过所述u-boot仿真交互模块接收所述待测SOC原型系统执行所述操作命令后返回的验证结果。
步骤S46:通过本地预设的仿真控制模块将所述验证结果与预期结果进行比对,以确定所述验证结果对应的待测外设的行为是否正常,其中,所述预期结果为本地预期结果库中与所述操作命令对应的运行结果。
其中,步骤S45至步骤S46的具体实施方式可以参考前述实施例中公开的相应内容,在此不再进行赘述。
参见图6所示,本申请实施例公开了一种待测SOC原型系统,包括:
uart接口11,用于接收交互仿真平台发送的操作命令;
运行在ARM核心上的命令解析器12,用于对所述操作命令进行解析,并转换成外设驱动操作命令;
待测外设总线13,用于将所述外设驱动操作命令发送到对应的待测外设;
所述uart接口11,用于将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。
可见,本申请先通过本地uart接口接收交互仿真平台发送的操作命令,然后再通过所述本地ARM核心上运行的命令解析器对所述操作命令进行解析,并转换成外设驱动操作命令,接着通过本地待测外设总线将所述外设驱动操作命令发送到对应的待测外设,并通过所述uart接口将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。这样通过在需要验证的待测SOC原型系统上预先设置uart接口和命令解析器,便可以通过uart接口接收交互仿真平台发送的操作命令,并通过所述命令解析器对接收到的操作命令进行解析,以实现待测SOC原型系统和交互仿真平台之间的仿真交互,由此便可以完成待测SOC原型系统的原型验证,这样可以将uart接口和命令解析器应用于不同的SOC原型系统,提高了SOC原型验证系统的通用性,减少了整个SOC原型验证的工作量,且提高了验证的工作效率。
参见图7所示,本申请实施例公开了一种交互仿真平台,包括:
u-boot仿真交互模块21,用于向待测SOC原型系统发送操作命令;
所述u-boot仿真交互模块21,用于接收所述待测SOC原型系统执行所述操作命令后返回的验证结果;
仿真控制模块22,用于将所述验证结果与预期结果进行比对,以确定所述验证结果对应的待测外设的行为是否正常,其中,所述预期结果为本地预期结果库中与所述操作命令对应的运行结果。
可见,本申请可以先通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令,然后通过所述u-boot仿真交互模块接收所述待测SOC原型系统执行所述操作命令后返回的验证结果,再通过本地预设的仿真控制模块将所述验证结果与预期结果进行比对,以确定所述验证结果对应的待测外设的行为是否正常,其中,所述预期结果为本地预期结果库中与所述操作命令对应的运行结果。这样通过本地预设的u-boot仿真交互模块和仿真控制模块便可以控制待测SOC原型系统的仿真流程,且对于不同的待测SOC原型系统来说也适用,提高了SOC原型验证系统的通用性,减少了整个SOC原型验证的工作量,且提高了验证的工作效率。
进一步的,参见图8为本申请实施例提供的一种电子设备30的结构示意图,该电子设备30可以实现前述实施例中公开的SOC原型验证方法。
通常,本实施例中的电子设备30包括:处理器31和存储器32。
其中,处理器31可以包括一个或多个处理核心,比如四核心处理器、八核心处理器等。处理器31可以采用DSP(digital signal processing,数字信号处理)、FPGA(field-programmable gate array,现场可编程们阵列)、PLA(programmable logic array,可编程逻辑阵列)中的至少一种硬件来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(central processing unit,中应处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以集成有GPU(graphics processing unit,图像处理器),GPU用于负责显示屏所需要显示的图像的渲染和绘制。一些实施例中,处理器31可以包括AI(artificialintelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器32可以包括一个或多个计算机可读存储介质,计算机可读存储介质可以是非暂态的。存储器32还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器32至少用于存储以下计算机程序321,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例中公开的SOC原型验证方法步骤。另外,存储器32所存储的资源还可以包括操作系统322和数据323等,存储方式可以是短暂存储也可以是永久存储。其中,操作系统222可以是Windows、Unix、Linux等。数据323可以包括各种各样的数据。
在一些实施例中,电子设备30还可包括有显示屏33、输入输出接口34、通信接口35、传感器36、电源37以及通信总线38。
本技术领域人员可以理解,图8中示出的结构并不构成对电子设备30的限定,可以包括比图示更多或更少的组件。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例中公开的SOC原型验证方法。
其中,关于上述SOC原型验证方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种SOC原型验证方法、系统、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种SOC原型验证方法,其特征在于,应用于待测SOC原型系统,包括:
通过本地uart接口接收交互仿真平台发送的操作命令;
通过本地ARM核心上运行的命令解析器对所述操作命令进行解析,并转换成外设驱动操作命令;
通过本地待测外设总线将所述外设驱动操作命令发送到对应的待测外设;
通过所述uart接口将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。
2.根据权利要求1所述的SOC原型验证方法,其特征在于,所述通过本地uart接口接收交互仿真平台发送的操作命令之前,还包括:
接收所述交互仿真平台发送的待测外设信息查询指令;
根据所述待测外设信息查询指令对所述本地待测外设总线上挂载的待测外设进行扫描,得到待测外设信息;
将所述待测外设信息反馈给所述交互仿真平台。
3.根据权利要求1所述的SOC原型验证方法,其特征在于,所述通过本地uart接口接收交互仿真平台发送的操作命令之前,还包括:
通过所述本地ARM核心运行本地预先保存的u-boot代码,以便所述本地ARM核心进入命令解析器界面;
通过所述本地uart接口向所述交互仿真平台发送仿真准备完成信息,以便所述交互仿真平台在接收到所述仿真准备完成信息之后,向本地发送所述操作命令。
4.一种SOC原型验证方法,其特征在于,应用于交互仿真平台,包括:
通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令;
通过所述u-boot仿真交互模块接收所述待测SOC原型系统执行所述操作命令后返回的验证结果;
通过本地预设的仿真控制模块将所述验证结果与预期结果进行比对,以确定所述验证结果对应的待测外设的行为是否正常,其中,所述预期结果为本地预期结果库中与所述操作命令对应的运行结果。
5.根据权利要求4所述的SOC原型验证方法,其特征在于,所述通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令之前,还包括:
向所述待测SOC原型系统发送待测外设信息查询指令;
接收所述待测SOC原型系统根据所述待测外设查询指令返回的待测外设信息,以便根据所述待测外设信息从本地交互命令集中确定出所述操作命令。
6.根据权利要求4所述的SOC原型验证方法,其特征在于,所述通过本地预设的u-boot仿真交互模块向待测SOC原型系统发送操作命令之前,还包括:
通过所述u-boot仿真交互模块接收所述待测SOC原型系统发送的仿真准备完成信息,以便根据所述仿真准备完成信息向所述待测SOC原型系统发送所述操作命令。
7.根据权利要求4所述的SOC原型验证方法,其特征在于,所述通过本地预设的仿真控制模块将所述验证结果与预期结果进行比对之后,还包括:
如果所述验证结果与预期结果进行不一致,则对所述述待测SOC原型系统中的ARM核心的运行状态进行查询;
如果所述ARM核心处于异常状态,则停止仿真交互。
8.一种待测SOC原型系统,其特征在于,包括:
uart接口,用于接收交互仿真平台发送的操作命令;
运行在ARM核心上的命令解析器,用于对所述操作命令进行解析,并转换成外设驱动操作命令;
待测外设总线,用于将所述外设驱动操作命令发送到对应的待测外设;
所述uart接口,用于将验证结果反馈给所述交互仿真平台,其中,所述验证结果为所述待测外设执行所述外设驱动操作命令后得到的结果。
9.一种电子设备,其特征在于,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现权利要求1至7任一项所述的SOC原型验证方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的SOC原型验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010567667.5A CN111737933A (zh) | 2020-06-19 | 2020-06-19 | 一种soc原型验证方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010567667.5A CN111737933A (zh) | 2020-06-19 | 2020-06-19 | 一种soc原型验证方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111737933A true CN111737933A (zh) | 2020-10-02 |
Family
ID=72651808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010567667.5A Withdrawn CN111737933A (zh) | 2020-06-19 | 2020-06-19 | 一种soc原型验证方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737933A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112668262A (zh) * | 2020-12-25 | 2021-04-16 | 瓴盛科技有限公司 | SoC验证方法、系统、装置和计算机可读介质 |
CN113326670A (zh) * | 2021-05-31 | 2021-08-31 | 上海阵量智能科技有限公司 | 原型验证系统、方法、处理单元、及设备 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100161309A1 (en) * | 2008-12-23 | 2010-06-24 | Scaleo Chip | Apparatus and Methods Thereof for Configuration and Control of a System-On-Chip Emulation Platform |
US20120143583A1 (en) * | 2010-12-05 | 2012-06-07 | Cheng-Yen Huang | System-level emulation/verification system and system-level emulation/verification method |
CN102508753A (zh) * | 2011-11-29 | 2012-06-20 | 青岛海信信芯科技有限公司 | Ip核验证系统 |
CN202995711U (zh) * | 2012-12-27 | 2013-06-12 | 杭州乔微电子科技有限公司 | 一种实现fpga原型验证远程控制的装置 |
CN103178996A (zh) * | 2013-03-15 | 2013-06-26 | 烽火通信科技股份有限公司 | 分布式包交换芯片模型验证系统及验证方法 |
CN103235749A (zh) * | 2013-03-26 | 2013-08-07 | 江南大学 | 一种基于FPGA的传感器网络SoC原型验证平台 |
CN104536867A (zh) * | 2015-01-22 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 实现多片现场可编程门阵列调试的系统及方法 |
US20160034582A1 (en) * | 2013-06-29 | 2016-02-04 | Huawei Technologies Co., Ltd. | Computing device and method for executing database operation command |
CN106934187A (zh) * | 2017-05-11 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种提高芯片fpga原型验证效率的调试方法及系统 |
CN106980597A (zh) * | 2017-03-31 | 2017-07-25 | 合肥松豪电子科技有限公司 | 片上系统验证方法及验证系统 |
CN108572312A (zh) * | 2018-04-12 | 2018-09-25 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | SoC芯片测试方法、装置、系统和SoC芯片测试验证板 |
CN109684672A (zh) * | 2018-11-30 | 2019-04-26 | 上海芯钛信息科技有限公司 | 一种soc芯片系统级验证系统及方法 |
CN110110355A (zh) * | 2019-03-25 | 2019-08-09 | 电子科技大学 | 一种基于fpga的原型验证平台 |
CN110532140A (zh) * | 2019-08-28 | 2019-12-03 | 北京国科环宇科技股份有限公司 | 一种1553b总线的仿真测试系统 |
CN110907798A (zh) * | 2019-10-23 | 2020-03-24 | 盛科网络(苏州)有限公司 | 集成SoC的交换芯片的测试验证板、测试装置及方法 |
CN111025129A (zh) * | 2019-12-25 | 2020-04-17 | 中电海康无锡科技有限公司 | 基于fpga的soc芯片自动化测试工具和测试方法 |
-
2020
- 2020-06-19 CN CN202010567667.5A patent/CN111737933A/zh not_active Withdrawn
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100161309A1 (en) * | 2008-12-23 | 2010-06-24 | Scaleo Chip | Apparatus and Methods Thereof for Configuration and Control of a System-On-Chip Emulation Platform |
US20120143583A1 (en) * | 2010-12-05 | 2012-06-07 | Cheng-Yen Huang | System-level emulation/verification system and system-level emulation/verification method |
CN102508753A (zh) * | 2011-11-29 | 2012-06-20 | 青岛海信信芯科技有限公司 | Ip核验证系统 |
CN202995711U (zh) * | 2012-12-27 | 2013-06-12 | 杭州乔微电子科技有限公司 | 一种实现fpga原型验证远程控制的装置 |
CN103178996A (zh) * | 2013-03-15 | 2013-06-26 | 烽火通信科技股份有限公司 | 分布式包交换芯片模型验证系统及验证方法 |
CN103235749A (zh) * | 2013-03-26 | 2013-08-07 | 江南大学 | 一种基于FPGA的传感器网络SoC原型验证平台 |
US20160034582A1 (en) * | 2013-06-29 | 2016-02-04 | Huawei Technologies Co., Ltd. | Computing device and method for executing database operation command |
CN104536867A (zh) * | 2015-01-22 | 2015-04-22 | 浪潮(北京)电子信息产业有限公司 | 实现多片现场可编程门阵列调试的系统及方法 |
CN106980597A (zh) * | 2017-03-31 | 2017-07-25 | 合肥松豪电子科技有限公司 | 片上系统验证方法及验证系统 |
CN106934187A (zh) * | 2017-05-11 | 2017-07-07 | 郑州云海信息技术有限公司 | 一种提高芯片fpga原型验证效率的调试方法及系统 |
CN108572312A (zh) * | 2018-04-12 | 2018-09-25 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | SoC芯片测试方法、装置、系统和SoC芯片测试验证板 |
CN109684672A (zh) * | 2018-11-30 | 2019-04-26 | 上海芯钛信息科技有限公司 | 一种soc芯片系统级验证系统及方法 |
CN110110355A (zh) * | 2019-03-25 | 2019-08-09 | 电子科技大学 | 一种基于fpga的原型验证平台 |
CN110532140A (zh) * | 2019-08-28 | 2019-12-03 | 北京国科环宇科技股份有限公司 | 一种1553b总线的仿真测试系统 |
CN110907798A (zh) * | 2019-10-23 | 2020-03-24 | 盛科网络(苏州)有限公司 | 集成SoC的交换芯片的测试验证板、测试装置及方法 |
CN111025129A (zh) * | 2019-12-25 | 2020-04-17 | 中电海康无锡科技有限公司 | 基于fpga的soc芯片自动化测试工具和测试方法 |
Non-Patent Citations (3)
Title |
---|
尹晓旭: "基于ARM9的SOC系统设计与验证", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
汪洋 等: "SOC验证平台的联合架构设计", 《信息技术》 * |
莫世锋 等: "一个交互式仿真计算内核参考模型", 《系统仿真学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112668262A (zh) * | 2020-12-25 | 2021-04-16 | 瓴盛科技有限公司 | SoC验证方法、系统、装置和计算机可读介质 |
CN112668262B (zh) * | 2020-12-25 | 2023-04-07 | 瓴盛科技有限公司 | SoC验证方法、系统、装置和计算机可读介质 |
CN113326670A (zh) * | 2021-05-31 | 2021-08-31 | 上海阵量智能科技有限公司 | 原型验证系统、方法、处理单元、及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739478B (zh) | 前端项目自动化构建方法、装置、存储介质及电子设备 | |
CN113704043A (zh) | 芯片功能验证方法、装置、可读存储介质及电子设备 | |
CN110704304A (zh) | 一种应用程序测试方法、装置、存储介质和服务器 | |
CN111737933A (zh) | 一种soc原型验证方法、系统、设备及介质 | |
CN110688313B (zh) | 一种VxWorks操作系统下软件测试的故障注入方法 | |
CN111104269A (zh) | 一种基于uart接口的处理器调试方法及系统 | |
CN114912413A (zh) | 芯片验证方法及平台 | |
CN105120259A (zh) | 数字电视机检测方法及装置 | |
CN1963785A (zh) | 软件测试系统和软件测试方法 | |
CN108776723B (zh) | 测试系统自检适配器连线生成方法、装置、设备及存储介质 | |
CN114564392A (zh) | Rtl仿真方法、装置、电子设备及计算机可读存储介质 | |
CN113064618B (zh) | 一种模拟新能源车辆符合性检测的系统及方法 | |
CN111736924B (zh) | 基于Lua脚本接入数采仪的方法、装置、设备及介质 | |
CN113836825A (zh) | 神经网络处理器关键标准与验证芯片的应用方法 | |
CN114253841A (zh) | 测试脚本生成方法、装置及存储介质 | |
CN112003647A (zh) | 一种回收光猫的检测方法、装置、设备及存储介质 | |
CN113127329A (zh) | 脚本调试方法、装置及计算机存储介质 | |
CN115098402B (zh) | 调试方法以及调试装置 | |
CN114090454B (zh) | 一种接口自动化测试方法、装置、设备及存储介质 | |
CN114327682B (zh) | WebView白屏检测方法、系统、电子设备和存储介质 | |
CN115080407A (zh) | 游戏应用程序的测试方法及装置、存储介质及电子设备 | |
JP2820080B2 (ja) | 電子交換機の通話路系装置シミュレータ | |
CN112084082B (zh) | 一种键盘检测方法 | |
CN114564728B (zh) | 一种无代码的流程可视化漏洞检测方法和系统 | |
CN117540700A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201002 |