掌桥专利:专业的专利平台
掌桥专利
首页

片上系统的验证方法、装置、系统及电子设备

文献发布时间:2024-04-18 19:59:31


片上系统的验证方法、装置、系统及电子设备

技术领域

本发明涉及芯片验证领域,尤其是涉及一种片上系统的验证方法、装置、系统及电子设备。

背景技术

在片上系统中,对CPU(Central Processing Unit,中央处理器)中的指令集架构(ISA,Instruction Set Architecture)的正确性验证是对CPU工作验证的重要部分。由于CPU的可编程性,针对CPU的验证策略和对功能模块的验证具有明显区别。片上系统中对CPU进行验证通常只能通过波形来确认是否符合预期。目前常用的做法是通过UART(UniversalAsynchronous Receiver/Transmitter,通用异步收发传输器)进行打印,可以方便的获得CPU的运行状态。在对CPU中的其他功能模块进行EDA(Electronic design automation,电子设计自动化)验证时,需要进行内存的配置,如对DDR SDRAM(Double Data RateSynchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器)进行配置。

然而,本发明的发明人发现,现有的验证方法存在以下问题:CPU的工作频率远远高于UART的工作频率,二者之间相差几十倍,利用UART进行验证效率较低;利用CPU进行功能模块的EDA验证时,内存的配置和训练需要大量时间。

发明内容

根据本发明的第一个方面,提出一种片上系统的验证方法,应用于片上系统的中央处理器,该方法可以包括:接收验证环境发送的芯片复位释放信号和待验证信息;响应于芯片复位释放信号,根据待验证信息完成初始化配置;根据待验证信息在片上系统的内存中分配协同验证空间;以及,根据验证需求和待验证信息生成协同验证信息;将协同验证信息以及用于触发验证环境进行协同验证的第一协同信号写入协同验证空间,以触发验证环境进行协同验证。

根据本发明的第二个方面,提出一种片上系统的验证装置,该装置可以包括:接收模块,可以用于接收验证环境发送的芯片复位释放信号和待验证信息;初始化模块,可以用于响应于芯片复位释放信号,根据待验证信息完成初始化配置;空间分配模块,可以用于根据待验证信息在片上系统的内存中分配协同验证空间;信息生成模块,可以用于根据验证需求和待验证信息生成协同验证信息;写入模块,可以用于将协同验证信息以及用于触发验证环境进行协同验证的第一协同信号写入协同验证空间,以触发验证环境进行协同验证。

根据本发明的第三个方面,提出一种片上系统的验证系统,该系统可以包括:

片上系统,可以包括中央处理器、功能模块、内存;中央处理器用于执行如本申请第一个方面所述的方法;功能模块用于接受中央处理器的控制,进行初始化和运行;内存用于接受中央处理器的控制,在协同验证空间内存储协同验证信息和第一协同信号;内存还用于接受验证环境的控制,在协同验证空间内存储第二协同信号;

验证环境,用于向中央处理器发送芯片复位释放信号和待验证信息;在验证需求包括验证功能模块的情况下,进行功能执行准备,并在功能执行准备完成后向协同验证空间写入第二协同信号;响应于第一协同信号,获取协同验证空间内的协同验证信息;在协同验证信息为执行结果的情况下,根据执行结果和预设结果生成验证结果。

根据本发明的第四个方面,提出一种电子设备,可以包括:处理器;存储器,存储有计算机程序,当计算机程序被处理器执行时,使得处理器执行如本发明第一个方面所述的方法。

根据本发明的第五个方面,提出一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当指令被处理器执行时,使得处理器执行如本发明第一个方面所述的方法。

本发明提出的方法通过在内存中分配一段地址空间来实现CPU和验证环境协同仿真,通过协同的方式来对片上系统中内存和复杂功能模块进行验证,其技术效果至少包括:利用验证环境实现对CPU来说难以实现或效率较低的操作,包括但不限于对内存进行配置训练、对功能模块执行结果比对等过程,从而极大程度上减少了仿真所需要的时间;利用片上系统内存中的地址空间写入协同信号的方式进行协同工作,CPU和验证环境对协同信号的写入和监控仅需要一两条指令即可完成,操作便利、准确度高。本发明提出的方法在时间和操作上均能提升对片上系统中内存和功能模块进行验证的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图,而并不超出本发明要求保护的范围。

图1为本发明的应用于中央处理器的片上系统的验证方法1000的流程示意图;

图2为图1中方法1000所包括的步骤S103中的步骤S103A的流程示意图;

图3为图2中步骤S103A所包括的步骤S1031的实施例S1031A的流程示意图;

图4为图2中步骤S103A所包括的步骤S1031的实施例S1031B的流程示意图;

图5为图1中方法1000所包括的步骤S104的流程示意图;

图6为本发明的片上系统的验证装置2000的结构示意图;

图7为本发明的片上系统的验证系统3000的结构示意图;

图8为本发明的片上系统的验证方法的具体实施例4000的示意图;

图9为本发明的片上系统的验证方法的具体实施例5000的示意图;

图10为本发明提供的一种电子设备的结构示意图。

附图标记说明:

2000:片上系统的验证装置;201:接收模块;202:初始化模块;203:空间分配模块;204:信息生成模块;205:写入模块;

3000:片上系统的验证系统;301:片上系统;302:验证环境。

具体实施方式

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

本发明中包括的英文缩写及对应的中文翻译如下:

CPU(Central Processing Unit,中央处理器);ISA(Instruction SetArchitecture,指令集架构);UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器);EDA(Electronic design automation,电子设计自动化);DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器);IP(IntellectualProperty,知识产权);Ethernet(以太网);PCIE(PeripheralComponent Interconnect Express,高速串行计算机扩展总线标准);UVM(UniversalVerification Methodology,通用验证方法学);SoC(System on Chip,片上系统);SRAM(Static Random Access Memory,静态随机存储器);SDRAM(Synchronous Dynamic RandomAccess Memory,同步动态随机存储器)。

其中,芯片行业将芯片设计工程师开发出的功能模块作为一种知识产权,因此,IP(IntellectualProperty,知识产权)可以理解为实现某些功能的模块。

图1为本发明的应用于中央处理器的片上系统的验证方法1000的流程示意图。如图1所示,方法1000包括步骤S101-步骤S104。

在步骤S101中,中央处理器接收验证环境发送的芯片复位释放信号和待验证信息。可选地,芯片复位释放信号表示当前的中央处理器处在能够进行验证的工作状态。在一些具体实施例中,在步骤S101中,待验证信息中包括要进行验证的中央处理器的功能信息、要进行验证的片上系统的内存或其他功能模块的功能信息、要验证的内存或其他功能模块的预设结果。

在步骤S102中,响应于芯片复位释放信号,中央处理器根据待验证信息完成初始化配置。在步骤S102中,中央处理器根据待验证信息完成上电启动,并执行中央处理器的main函数,以完成片上系统的基本配置。

在步骤S103中,中央处理器根据待验证信息在片上系统的内存中分配协同验证空间;以及,根据验证需求和待验证信息生成协同验证信息。

在一些具体实施例中,在步骤S103中,中央处理器根据待验证信息在片上系统的内存中分配协同验证空间。在一些具体实施例中,待验证信息中包括要验证的内存或功能模块的预设结果,中央处理器根据预设结果的大小和数据格式,基于片上系统的地址规划在内存中划分协同验证空间。可选地,划分出的协同验证空间满足预设结果的大小并符合预设结果的数据格式。其中,划分出的协同验证空间能够被中央处理器和验证环境读取、写入。在步骤S103中,中央处理器在内存中分配协同验证空间仅用于片上系统的验证过程,不影响片上系统使用中的功能实现。

可选地,片上系统的内存包括寄存器、SRAM、SDRAM、DDRAM中的任意一种或多种。在一些具体实施例中,在步骤S103中,协同验证空间包括信号地址空间和验证地址空间。可选地,信号地址空间为根据片上系统的地址规划进行分配的内存中大小为8或16或32比特的存储空间。可选地,中央处理器将大小为8或16或32比特的一个或多个寄存器作为信号地址空间。可选地,CPU将SRAM或SDRAM中的一段地址作为验证地址空间。

在一些具体实施例中,在步骤S103中,信号地址空间存储CPU写入的第一协同信号。例如,在一些具体实施例中,第一协同信号包括功能模块执行完成信号,表示要验证的功能模块执行完成,并且执行结果写入了验证地址空间。可选地,CPU向作为信号地址空间的寄存器写入的第一协同信号为第一标识值。

在一些具体实施例中,在步骤S103中,信号地址空间存储验证环境写入的第二协同信号,第二协同信号表示验证环境进行的功能执行准备完成。在一些具体实施例中,第二协同信号包括内存训练完成信号,表示验证环境进行的内存训练完成。可选地,验证环境向作为信号地址空间的寄存器写入的第二协同信号为第二标识值。

在一些具体实施例中,在步骤S103中,中央处理器根据验证需求和待验证信息生成协同验证信息。在一些具体实施例中,中央处理器根据验证需求和待验证信息获得执行结果,将执行结果作为协同验证信息。

可选地,验证需求包括验证内存或验证功能模块。在一些具体实施例中,在步骤S103中,验证需求包括验证内存,中央处理器根据待验证信息确定待验证内存,并读取待验证内存的默认内存值,作为执行结果。

在一些具体实施例中,在步骤S103中,验证需求包括验证功能模块,中央处理器根据待验证信息确定待验证功能模块。在一些具体实施例中,在步骤S103中,中央处理器在确定待验证功能模块后,监测协同验证空间,以获得第二协同信号。

在一些具体实施例中,在步骤S103中,响应于第二协同信号,中央处理器根据待验证信息初始化并执行待验证功能模块,以获得执行结果。在一些具体实施例中,在步骤S103中,待验证功能模块包括芯片中实现某一具体功能的IP(IntellectualProperty,知识产权)模块。可选地,待验证功能模块为 Ethernet(以太网)模块或PCIE(PeripheralComponent Interconnect Express,高速串行计算机扩展总线标准)模块。

在一些具体实施例中,在步骤S103中,中央处理器根据执行结果和预设结果生成验证结果,将验证结果作为协同验证信息。在一些具体实施例中,在执行结果和预设结果满足验证条件的情况下,中央处理器确定验证结果为功能正常。在一些具体实施例中,在执行结果和预设结果不满足验证条件的情况下,中央处理器确定验证结果为功能异常。

在步骤S104中,中央处理器将协同验证信息以及用于触发验证环境进行协同验证的第一协同信号写入协同验证空间,以触发验证环境进行协同验证。

在一些具体实施例中,协同验证空间包括验证地址空间和信号地址空间。在一些具体实施例中,在步骤S104中,中央处理器将协同验证信息写入验证地址空间,然后生成第一协同信号,并将第一协同信号写入信号地址空间,以触发验证环境进行协同验证。

在一些具体实施例中,在步骤S104中,协同验证信息为对内存或功能模块进行验证的执行结果或验证结果,协同验证信息的内容较长,即使中央处理器将其存入验证地址空间内,验证环境轮询读取验证地址空间也将耗费较多时间和资源。因此,设置信号地址空间用于中央处理器存储信息写入信号,使得验证环境可以轮询监视信号地址空间,方便的得知协同验证信息已经写入,从而验证环境能够读取协同验证信息。

根据如图1所示的实施方式,本发明提出的方法通过在内存中分配一段地址空间来实现CPU和验证环境协同仿真,通过协同的方式来对片上系统中内存和复杂功能模块进行验证,其技术效果至少包括:利用验证环境实现对CPU来说难以实现或效率较低的操作,包括但不限于对内存进行配置训练、对功能模块执行结果比对等过程,从而极大程度上减少了仿真所需要的时间;利用片上系统内存中的地址空间写入协同信号的方式进行协同工作,CPU和验证环境对协同信号的写入和监控仅需要一两条指令即可完成,操作便利、准确度高。本发明提出的方法在时间和操作上均能提升对片上系统中内存和功能模块进行验证的效率。

图2为图1中方法1000所包括的步骤S103中的步骤S103A的流程示意图。如图2所示,步骤S103A为根据验证需求和待验证信息生成协同验证信息,步骤S103A包括步骤S1031-步骤S1033。

在步骤S1031中,中央处理器根据验证需求和待验证信息获得执行结果。在一些具体实施例中,验证需求包括验证内存或验证功能模块。在一些具体实施例中,在步骤S1031中,验证需求包括验证内存,中央处理器根据待验证信息确定待验证内存。在一些具体实施例中,在步骤S1031中,验证需求包括验证功能模块,中央处理器根据待验证信息确定待验证功能模块。

在一些具体实施例中,在步骤S1031中,验证需求为验证内存,中央处理器读取待验证内存的默认内存值,作为执行结果。在一些具体实施例中,在步骤S1031中,验证需求为验证功能模块,中央处理器监测协同验证空间,以获得第二协同信号。在一些具体实施例中,中央处理器执行待验证功能模块时需要执行准备,此时利用中央处理器进行功能准备耗时长、效率低。因此利用验证环境完成功能准备,并在功能准备完成后验证环境在协同验证空间内写入第二协同信号。

在一些具体实施例中,在步骤S1031中,响应于第二协同信号,中央处理器根据待验证信息初始化并执行待验证功能模块,以获得执行结果。

在步骤S1032中,中央处理器将执行结果作为协同验证信息。在步骤S1033中,中央处理器根据执行结果和预设结果生成验证结果,将验证结果作为协同验证信息。在一些具体实施例中,在步骤S1033中,验证需求为验证内存,预设结果为开发文档中包括的内存的预设值。在一些具体实施例中,在步骤S1033中,验证需求为验证功能模块,预设结果为经过计算得到的该功能模块预期的一组输出值。

在一些具体实施例中,在步骤S1032和步骤S1033中,中央处理器根据实际应用场景确定将执行结果或验证结果作为协同验证信息。例如,在执行结果较为复杂的情况下,确定验证结果的过程需要耗费更多资源和时间,效率低,中央处理器将执行结果作为协同验证信息,验证环境读取协同验证空间内的执行结果,并在验证环境中完成确定验证结果的过程。在执行结果较为简单的情况下,中央处理器完成确定验证结果的过程,并将验证结果作为协同验证信息,验证环境仅需获取到协同验证空间内的验证结果并打印。

图3为图2中步骤S103A所包括的步骤S1031的实施例S1031A的流程示意图。如图3所示,步骤S1031A包括步骤S311-步骤S312。在一些具体实施例中,在图3所示的步骤S1031A中,验证需求包括验证内存。

在步骤S311中,中央处理器根据待验证信息确定待验证内存。在步骤S312中,中央处理器读取待验证内存的默认内存值,作为执行结果。

在一些具体实施例中,在步骤S311中和步骤S312中,待验证内存为片上系统所包括的寄存器,寄存器的默认内存值为寄存器上电复位后的默认值。其中,寄存器上电复位后的默认值能够影响片上系统的运行状态,因此需要对其正确性进行验证。

图4为图2中步骤S104所包括的步骤S1031的实施例S1031B的流程示意图。如图3所示,步骤S1031B包括步骤S313-步骤S315。在一些具体实施例中,在图4所示的步骤S1031B中,验证需求包括验证功能模块。

在步骤S313中,中央处理器根据待验证信息确定待验证功能模块。在一些具体实施例中,在步骤S313中,待验证功能模块包括芯片中实现某一具体功能的IP模块。可选地,待验证功能模块为 Ethernet模块或PCIE模块。

在步骤S314中,中央处理器监测协同验证空间,以获得第二协同信号。在一些具体实施例中,在步骤S314中,协同验证空间包括验证地址空间和信号地址空间,中央处理器监测信号地址空间,以获得第二协同信号。

在一些具体实施例中,中央处理器执行待验证功能模块时需要执行准备,此时利用中央处理器进行功能准备耗时长、效率低,因此利用验证环境完成功能准备,并在功能准备完成后在协同验证空间内写入第二协同信号。

例如,中央处理器执行待验证功能模块时需要用到特定的内存,并且特定内存的使用需要进行内存训练。例如,中央处理器验证待验证功能模块时需要用到DDR。在一些具体实施例中,利用验证环境完成内存的训练,并在训练完成后,生成内存训练完成信号作为第二协同信号。验证环境在协同验证空间内写入内存训练完成信号,中央处理器能够监测协同验证空间来获得内存训练完成信号。

在步骤S315中,响应于第二协同信号,中央处理器根据待验证信息初始化并执行待验证功能模块,以获得执行结果。其中,执行结果即对待验证功能模块的功能进行执行后得到的一组输出数据。

图5为图2中方法1000中所包括的步骤S104的流程示意图。如图5所示,步骤S104包括步骤S1041-步骤S1042。

在一些具体实施例中,在步骤S104中,协同验证空间包括验证地址空间和信号地址空间。在步骤S1041中,中央处理器将协同验证信息写入验证地址空间。在步骤S1042中,中央处理器生成第一协同信号,并将第一协同信号写入信号地址空间。

在一些具体实施例中,在步骤S1041中,中央处理器将协同验证信息写入验证地址空间,从而使验证环境能够从验证地址空间中获取到协同验证信息。

在一些具体实施例中,在步骤S1041中,协同验证信息为对内存或功能模块进行验证的执行结果或验证结果,协同验证信息的内容较长,即使将其存入验证地址空间内,验证环境轮询读取验证地址空间也将耗费较多时间和资源。因此,设置信号地址空间用于在步骤S1042中存储信息写入信号,使得验证环境可以轮询监视信号地址空间,方便的得知协同验证信息已经写入,从而验证环境能够读取协同验证信息。

图6为本发明的片上系统的验证装置2000的结构示意图。如图6所示,片上系统的验证装置2000包括接收模块201、初始化模块202、空间分配模块203、信息生成模块204、写入模块205。

在一些具体实施例中,接收模块201接收验证环境发送的芯片复位释放信号和待验证信息。可选地,芯片复位释放信号表示当前的中央处理器处在能够进行验证的工作状态。在一些具体实施例中,待验证信息中包括要进行验证的中央处理器的功能信息、要进行验证的片上系统的内存或其他功能模块的功能信息、要验证的内存或其他功能模块的预设结果。

在一些具体实施例中,响应于芯片复位释放信号,初始化模块202根据待验证信息完成初始化配置。在一些具体实施例中,初始化模块202根据待验证信息完成上电启动,并执行中央处理器的main函数,以完成片上系统的基本配置。

在一些具体实施例中,空间分配模块203根据待验证信息在片上系统的内存中分配协同验证空间。在一些具体实施例中,待验证信息中包括要验证的内存或功能模块的预设结果,空间分配模块203根据预设结果的大小和数据格式,基于片上系统的地址规划在内存中划分协同验证空间。可选地,划分出的协同验证空间满足预设结果的大小并符合预设结果的数据格式。其中,划分出的协同验证空间能够被中央处理器和验证环境读取、写入。

可选地,片上系统的内存包括寄存器、SRAM、SDRAM、DDRAM中的任意一种或多种。在一些具体实施例中,协同验证空间包括信号地址空间和验证地址空间。可选地,信号地址空间为空间分配模块203根据片上系统的地址规划进行分配的内存中大小为8或16或32比特的存储空间。可选地,空间分配模块203将大小为8或16或32比特的一个或多个寄存器作为信号地址空间。可选地,空间分配模块203将SRAM或SDRAM中的一段地址作为验证地址空间。

在一些具体实施例中,信号地址空间存储CPU写入的第一协同信号。例如,在一些具体实施例中,第一协同信号包括功能模块执行完成信号,表示要验证的功能模块执行完成,并且执行结果写入了验证地址空间。可选地,中央处理器向作为信号地址空间的寄存器写入的第一协同信号为第一标识值。

在一些具体实施例中,信号地址空间存储验证环境写入的第二协同信号。第二协同信号表示验证环境进行的功能执行准备完成。在一些具体实施例中,第二协同信号包括内存训练完成信号,表示验证环境进行的内存训练完成。可选地,验证环境向作为信号地址空间的寄存器写入的第二协同信号为第二标识值。

在一些具体实施例中,信息生成模块204根据验证需求和待验证信息生成协同验证信息。在一些具体实施例中,信息生成模块204根据验证需求和待验证信息获得执行结果,将执行结果作为协同验证信息。

可选地,验证需求包括验证内存或验证功能模块。在一些具体实施例中,验证需求包括验证内存,信息生成模块204根据待验证信息确定待验证内存,并读取待验证内存的默认内存值,作为执行结果。

在一些具体实施例中,验证需求包括验证功能模块,信息生成模块204根据待验证信息确定待验证功能模块。在一些具体实施例中,信息生成模块204在确定待验证功能模块后,监测协同验证空间,以获得第二协同信号。

在一些具体实施例中,响应于第二协同信号,信息生成模块204根据待验证信息初始化并执行待验证功能模块,以获得执行结果。在一些具体实施例中,待验证功能模块包括芯片中实现某一具体功能的IP(IntellectualProperty,知识产权)模块。可选地,待验证功能模块为 Ethernet(以太网)模块或PCIE(Peripheral Component InterconnectExpress,高速串行计算机扩展总线标准)模块。

在一些具体实施例中,信息生成模块204根据执行结果和预设结果生成验证结果,将验证结果作为协同验证信息。在一些具体实施例中,在执行结果和预设结果满足验证条件的情况下,信息生成模块204确定验证结果为功能正常。在一些具体实施例中,在执行结果和预设结果不满足验证条件的情况下,信息生成模块204确定验证结果为功能异常。

在一些具体实施例中,写入模块205将协同验证信息以及用于触发验证环境进行协同验证的第一协同信号写入协同验证空间,以触发验证环境进行协同验证。

在一些具体实施例中,协同验证空间包括验证地址空间和信号地址空间。在一些具体实施例中,写入模块205将协同验证信息写入验证地址空间,然后生成第一协同信号,并将第一协同信号写入信号地址空间,以触发验证环境进行协同验证。

在一些具体实施例中,协同验证信息为对内存或功能模块进行验证的执行结果或验证结果,协同验证信息的内容较长,即使写入模块205将其存入验证地址空间内,验证环境轮询读取验证地址空间也将耗费较多时间和资源。因此,设置信号地址空间用于写入模块205存储信息写入信号,使得验证环境可以轮询监视信号地址空间,方便的得知协同验证信息已经写入,从而验证环境能够读取协同验证信息。

图7为本发明的片上系统的验证系统3000的结构示意图。如图7所示,片上系统的验证系统3000包括片上系统301和验证环境302。

参见图7,片上系统301和验证环境302之间能够进行数据通信。其中,片上系统301中包括CPU、功能模块、内存,CPU和功能模块、内存均能够进行数据通信,内存能够被CPU及验证环境302读取、写入数据。在图7中,验证环境302发送芯片复位释放信号和待验证信息到片上系统301。片上系统301中的CPU接收验证环境302发送的芯片复位释放信号和待验证信息,根据待验证信息完成片上系统301的初始化配置。

片上系统301中的CPU根据待验证信息在内存中分配协同验证地址。在一些具体实施例中,协同验证地址包括信号地址空间和验证地址空间。可选地,信号地址空间可以为寄存器或SRAM、SDRAM中的一段特定地址区间。可选地,验证地址空间可以为SRAM、SDRAM中的一段特定地址区间。片上系统301中的CPU根据验证需求和待验证信息生成协同验证信息,并将协同验证信息写入验证地址空间。在写入协同验证信息后,CPU生成第一协同信号,并将第一协同信号写入信号地址空间。其中,第一协同信号表示协同验证信息已经写入验证地址空间,验证环境302能够进行读取。

在验证需求为验证功能模块的情况下,验证环境302在发送芯片复位释放信号和待验证信息之后,进行功能执行准备。可选地,功能执行准备包括内存训练,并在内存训练完成后将第二协同信号写入信号地址空间。在完成初始化配置之后,CPU监测信号地址空间,根据是否存在第二协同信号来确定验证环境302的内存训练是否完成。

片上系统301中的CPU监测到第二协同信号之后,根据待验证信息初始化并执行待验证功能模块,并在待验证信息中包括的所有待验证的功能均执行完成后,生成执行结果。在一些具体实施例中,片上系统301中的CPU将执行结果作为协同验证信息,写入验证地址空间。在一些具体实施例中,片上系统301中的CPU根据执行结果和预设结果生成验证结果,将验证结果作为协同验证信息,写入验证地址空间。

验证环境302读取验证地址空间中的协同验证信息。在一些具体实施例中,协同验证信息为执行结果,验证环境302根据执行结果和预设结果生成验证结果。在一些具体实施例中,协同验证信息为验证结果。验证环境302打印验证结果,以表示所验证的内存或功能模块的状态。

图8为本发明的片上系统的验证方法的具体实施例4000的示意图。参见图8,实施例4000中的验证环境为UVM验证环境,片上系统的功能需求为验证功能模块,待验证功能模块为Ethernet模块,验证环境中要进行的功能执行准备为内存训练,所训练的内存为DDR。

在图8中,在UVM验证环境中确定芯片复位释放信号以及要进行验证的待验证信息,并发送给CPU。CPU在接收到芯片复位释放信号以及要进行验证的待验证信息后,上电完成基础配置。CPU在片上系统的内存中分配一个寄存器作为信号地址空间,分配SRAM的一段固定地址区间作为验证地址空间。

在图8中,验证需求为验证功能模块,待验证信息中包括要进行验证的功能模块为Ethernet模块。CPU根据待验证信息确定Ethernet模块,然后监测作为信号地址空间的寄存器,等待DDR training(DDR训练)的完成。

UVM验证环境在发送芯片复位释放信号以及要进行验证的功能验证信息之后,开始通过UVM中的VIP进行DDR training。UVM验证环境在完成DDR training后,向片上系统中作为信号地址空间的寄存器中写入值A。

CPU在等待DDR training完成的过程中,轮询等待寄存器中的值变为A后,开始初始化配置SoC(System on Chip,片上系统)中的Ethernet模块,并启动执行Ethernet模块。CPU在执行Ethernet模块后得到Ethernet结果,并将该结果写入验证地址空间。UVM验证环境读取验证地址空间内的Ethernet结果,将Ethernet结果和预设结果进行比较,从而得到最终的模块功能的验证结果。UVM验证环境打印验证结果,以表示SoC中Ethernet模块的状态。

图9为本发明的片上系统的验证方法的具体实施例5000的示意图。参见图9,实施例5000中的验证环境为UVM验证环境,片上系统的功能需求为验证内存,待验证内存为寄存器1。

在图9中,在UVM验证环境中确定芯片复位释放信号以及要进行验证的待验证信息,并发送给CPU。CPU在接收到芯片复位释放信号以及要进行验证的待验证信息后,上电完成基础配置。CPU在片上系统的内存中分配寄存器2作为信号地址空间,分配SRAM的一段固定地址区间作为验证地址空间。

在图9中,验证需求为验证内存,待验证信息中包括要进行验证的内存为寄存器1。CPU根据待验证信息确定寄存器1,读取寄存器1的值作为执行结果。CPU将执行结果和寄存器1预设内存值进行对比,以生成验证结果,并将验证结果写入验证地址空间。UVM验证环境打印验证结果,以表示SoC中寄存器1的状态。

图10为本发明提供的一种电子设备的结构示意图。

参阅图10,图10提供一种电子设备,包括处理器以及存储器。存储器存储有计算机指令,当计算机指令被处理器执行时,使得处理器执行所述计算机指令从而实现如图1所示的方法以及细化方案。

应该理解,上述的装置实施例仅是示意性的,本发明披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。

另外,若无特别说明,在本发明各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述处理器或芯片可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述片上缓存、片外内存、存储器可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-AccessMemory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方 HMC(Hybrid Memory Cube)等等。

所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本发明实施例还提供一种非瞬时性计算机存储介质,存储有计算机程序,当所述计算机程序被多个处理器执行时,使得所述处理器执行如图1所示的方法以及细化方案。

以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本发明的方法及其核心思想。同时,本领域技术人员依据本发明的思想,基于本发明的具体实施方式及应用范围上做出的改变或变形之处,都属于本发明保护的范围。综上所述,本说明书内容不应理解为对本发明的限制。

技术分类

06120116523504