CN106980597A - 片上系统验证方法及验证系统 - Google Patents
片上系统验证方法及验证系统 Download PDFInfo
- Publication number
- CN106980597A CN106980597A CN201710210462.XA CN201710210462A CN106980597A CN 106980597 A CN106980597 A CN 106980597A CN 201710210462 A CN201710210462 A CN 201710210462A CN 106980597 A CN106980597 A CN 106980597A
- Authority
- CN
- China
- Prior art keywords
- chip system
- chip
- verification platform
- function
- verification
- 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.)
- Granted
Links
Classifications
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例公开了一种片上系统验证方法及验证系统,预先生成了可执行文件模板,在运行可执行文件模板的过程中,通过数据交互函数获取不同测试用例的激励信息,基于激励信息对可执行文件模板进行配置,生成不同的测试用例对应的可执行文件。通过数据交互函数和进程同步函数实现片上系统与验证平台之间的数据交互和控制指令的交互。这样,在对片上系统进行验证的过程中,应用场景的变化可以只在验证台进行修改,由验证平台将场景变化后的激励信息和控制指令发送给片上系统,片上系统接收到验证平台发送的激励信息后,直接配置生成对应的可执行文件即可,从而不必每次更换测试用例后重新编译生成可执行文件,提高片上系统的验证效率。
Description
技术领域
本发明涉及芯片设计技术领域,更具体地说,涉及一种片上系统验证方法及验证系统。
背景技术
伴随着芯片集成度的增加,片上系统(System on Chip,SOC)验证的测试用例和应用场景越来越复杂,在对片上系统进行验证的过程中,每更换一个应用场景或者测试用例有一点点变化,都需要对程序代码进行更新,由编译器对更新后的程序代码编译生成一个新可执行文件(即dat文件),基于该新的可执行文件对片上系统进行验证,使得片上系统的验证效率较低。
发明内容
本发明的目的是提供一种片上系统验证方法及验证系统,以提高片上系统的验证效率。
为实现上述目的,本发明提供了如下技术方案:
一种片上系统验证方法,包括:
所述片上系统运行可执行文件模板,具体运行过程包括:
所述片上系统获取验证平台通过预先定义的数据交互函数发送的激励信息;所述数据交互函数存储在所述片上系统的程序存储区域内;激励信息与测试用例一一对应;测试用例信息与应用场景一一对应;
所述片上系统基于所述激励信息,确定所述可执行文件模板中的待配置参数,并对所述待配置参数进行配置,以生成与所述激励信息对应的测试用例的可执行文件;
所述片上系统通过所述程序存储区域内预先定义的进程同步函数与所述验证平台交互控制指令,实现所述片上系统与所述验证平台的进程间的相互控制;
所述验证平台通过所述程序存储区域内的数据交互函数获取所述片上系统的实际输出结果,并基于所述激励信息计算所述片上系统的理想输出,基于所述实际输出结果和所述理想输出结果对所述片上系统进行验证。
上述方法,优选的,所述片上系统通过所述程序存储区域内预先定义的进程同步函数与所述验证平台交互控制指令,实现所述片上系统与所述验证平台的进程间的互相控制包括:
所述片上系统处于暂停状态时,通过所述程序存储区域内预先定义的第一进程同步函数接收所述验证平台发送的第一执行指令,响应于所述第一执行指令而继续运行;
所述验证平台处于暂停状态时,通过所述程序存储区域内预先定义的第二进程同步函数接收所述片上系统发送的第二执行指令,响应于所述第二执行指令而继续运行。
上述方法,优选的,所述片上系统对所述待配置参数进行配置包括:
所述片上系统通过配置数据存储区域内的寄存器实现对所述待配置参数的配置,所述寄存器至少包括特殊功能寄存器。
上述方法,优选的,所述程序存储区域内还包括:
中断函数,以及与所述片上系统的各个低功耗状态对应的低功耗状态进入函数和退出函数。
上述方法,优选的,所述验证平台为通用验证方法学验证平台。
一种片上系统的验证系统,包括:片上系统芯片和验证平台;其中,
所述片上系统芯片用于运行可执行文件模板,具体包括:获取验证平台通过预先定义的数据交互函数发送的激励信息;所述数据交互函数存储在所述片上系统的程序存储区域内;激励信息与测试用例一一对应;测试用例信息与应用场景一一对应;基于所述激励信息,确定所述可执行文件模板中的待配置参数,并对所述待配置参数进行配置,以生成与所述激励信息对应的测试用例的可执行文件;通过所述程序存储区域内预先定义的进程同步函数与所述验证平台交互控制指令,实现所述片上系统与所述验证平台的进程间的相互控制;
所述验证平台还用于,通过所述程序存储区域内的数据交互函数获取所述片上系统芯片的实际输出结果,并基于所述激励信息计算所述片上系统芯片的理想输出,基于所述实际输出结果和所述理想输出结果对所述片上系统芯片进行验证。
上述系统,优选的,所述片上系统芯片与所述验证平台通过所述程序存储区域内预先定义的进程同步函数交互控制指令,实现所述片上系统芯片与所述验证平台的进程间的相互控制包括:
所述片上系统芯片用于,所述片上系统芯片处于暂停状态时,通过所述数据存储区域内预先定义的第一进程同步函数接收所述验证平台发送的第一执行指令,响应于所述第一执行指令而继续运行;
所述验证平台用于,所述验证平台处于暂停状态时,通过所述数据存储区域内预先定义的第二进程同步函数接收所述片上系统芯片发送的第二执行指令,响应于所述第二执行指令而继续运行。
上述系统,优选的,所述片上系统用于对所述待配置参数进行配置包括:
所述片上系统用于,通过配置数据存储区域内的寄存器实现对所述待配置参数的配置,所述寄存器至少包括特殊功能寄存器。
上述系统,优选的,所述片上系统的程序存储区域内还包括:
中断函数,以及与所述片上系统芯片的各个低功耗状态对应的低功耗状态进入函数和退出函数。
上述系统,优选的,所述验证平台为通用验证方法学验证平台。
通过以上方案可知,本申请提供的一种片上系统验证方法及验证系统,预先生成了可执行文件模板,在程序存储区域内预先定义数据交互函数和进程同步函数,在运行可执行文件模板的过程中,通过数据交互函数获取不同测试用例的激励信息,基于激励信息对可执行文件模板进行配置,生成不同的测试用例对应的可执行文件,在后续运行过程中,通过数据交互函数和进程同步函数除了可以实现片上系统与验证平台之间的数据交互外,还可以实现片上系统与验证平台之间的控制指令的交互,这样,在对片上系统进行验证的过程中,应用场景的变化可以只在验证台端进行修改,由验证平台通过数据交互函数和进程同步函数将场景变化后的数据(即激励信息)和控制指令发送给片上系统,片上系统接收到验证平台发送的激励信息后,直接配置生成对应的可执行文件即可,从而不必每次更换测试用例后重新编译生成可执行文件,提高片上系统的验证效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的片上系统验证方法的一种实现流程图;
图2为本发明实施例提供的片上系统的验证系统的一种结构示意图。
说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的片上系统验证方法,是一种软硬件协同验证方法。该片上系统可以是基于80251核的片上系统。单片机的型号有很多种,其中80251是其中的一种,80251核是嵌入式系统中要内嵌的一个软件核。
本发明实施例中,预先在片上系统的程序存储区域内指定一部分区域专用于存储用于片上系统和验证平台之间的交互的数据交互函数和进程同步函数,其中,数据交互函数用于片上系统和验证平台之间的数据交互,而进程同步函数用于片上系统和验证平台之间的进程同步控制。在片上系统的数据存储区域内指定一部分区域专用于存储上述进程同步函数需要访问的数据。片上系统可以访问和修改该数据存储区域的内容,验证平台也可以访问和修改该数据存储区域的内容。这样就可以实现片上系统和验证平台之间的数据交互,同时可以控制彼此的进程。
其中,验证平台即仿真平台,可以为UVM(Universal Verification Methodology,通用验证方法学)验证平台,或者,可以为Verilog验证平台,或者,可以为SystemVerilog验证平台。验证平台用于对片上系统进行仿真、验证。
在一优选的实施例中,验证平台可以为UVM验证平台。通过UVM验证平台,可以灵活的配置激励信息,进一步提高片上系统的验证效率。
在上述专用的程序存储区域内,所定义的片上系统与验证平台之间的数据交互函数可以包括:片上系统向验证平台发送数据的函数,例如可以为:PutVData();片上系统从验证平台获取数据的函数,例如可以为:GetVData();验证平台向片上系统发送数据的函数,例如可以为:PutCData();验证平台从片上系统获取数据的函数,例如可以为:GetCData()。
在上述专用的程序存储区域内,所定义的片上系统与验证平台之间的进程同步函数,用于片上系统与验证平台的进程间的相互控制。例如,当片上系统暂停运行时,验证平台可以通过第一进程同步函数向片上系统发送第一执行指令,以指示片上系统继续运行;同理,当验证平台暂停运行时,片上系统可以通过第二进程同步函数向验证平台发送第二执行指令,以指示验证平台继续运行。所定义的进程同步函数可以包括:等待片上系统启动的函数,例如可以为WaitCStart();设置验证平台启动的函数,例如可以为SetVStart();等待验证平台启动的函数,例如可以为WaitVStart();设置片上系统启动的函数,例如可以为SetCStart()等。
在上述专用的数据存储区域内定义了寄存器,除了包括特殊功能寄存器外,还可以包括其它类型的寄存器,用于配置测试用例对应的可执行文件运行所必须的信息,以便生成与测试用例对应的可执行文件。
另外,根据不同的验证场景,归纳出不同的测试用例。具体的,可以针对每个应用场景,归纳出一个测试用例,即应用场景与测试用例一一对应。本发明实施例中,预先编辑一个包括不同测试用例分支的程序代码,不同测试用例分支的子程序代码中的参数可配置,对该包括不同测试用例分支的程序代码,预先通过编译器(如,keil编译器)编译生成可执行文件模板,并将该可执行文件模板保存在片上系统的程序存储区域内。其中,keil是指51系列单片机C语音软件开发系统。上述可执行文件模板还可以与验证平台进行交互。当需要对片上系统进行验证时,只需要运行可执行文件模板,并与验证平台进行交互,通过从验证平台获取的不同测试用例信息(即激励信息)对可执行文件模板进行不同的配置,就可以实现对片上系统的不同测试用例的验证。
片上系统的启动可以通过boot程序启动处理器MCU来实现。boot程序是在操作系统内核运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核(即MCU运行可执行文件)准备好正确的环境。
请参阅图1,图1为本发明实施例提供的片上系统验证方法的一种实现流程图,其通过运行可执行文件模板实现,具体可以包括:
步骤S11:片上系统获取验证平台通过预先定义的数据交互函数发送的激励信息;上述数据交互函数存储在片上系统的程序存储区域内。
片上系统启动后,验证平台通过数据交互函数将激励信息发送给片上系统。
其中,激励信息与测试用例一一对应;测试用例信息与应用场景一一对应。
本发明实施例中,片上系统和验证平台同时运行。
步骤S12:片上系统基于激励信息,确定可执行文件模板中的待配置参数,并对待配置参数进行配置,以生成与激励信息对应的测试用例的可执行文件。
由于激励信息与测试用例一一对应,因此,不同的激励信息,可执行文件中需要配置的参数也不同。片上系统接收到激励信息后,选择与该激励信息对应的参数进行配置,以生成与激励信息对应的测试用例的可执行文件,片上系统配置完参数后继续运行,实现一个完整的测试用例。
在一可选的实施例中,片上系统对待配置参数进行配置可以包括:片上系统通过配置数据存储区域内的寄存器实现对所述待配置参数的配置,上述寄存器至少包括特殊功能寄存器。
步骤S13:片上系统通过上述程序存储区域内预先定义的进程同步函数与验证平台交互控制指令,实现片上系统与验证平台的进程间的相互控制。
在运行可执行的文件的过程中,片上系统和验证平台通过进程同步函数交互控制指令,实现片上系统对验证平台的进程控制,以及验证平台对片上系统的进程控制。
步骤S14:验证平台通过上述程序存储区域内的数据交互函数获取片上系统的实际输出结果,并基于激励信息计算片上系统的理想输出,基于实际输出结果和理想输出结果对片上系统进行验证。
验证平台在向片上系统发送激励信息后,还根据激励信息计算片上系统的输出,即理想输出值。
片上系统输出结果(即实际输出结果)后,验证平台获取该实际输出结果,将实际输出结果和理想输出结果进行对比,根据比对结果确定片上系统在上述测试用例下是否验证通过。具体可以计算实际输出结果与理想输出结果之间的误差,当误差小于预设阈值时,确定片上系统在上述测试用例下验证通过,否则确定片上系统在上述测试用例下未验证通过。
验证平台除了通过数据交互函数获取片上系统的部分实际输出结果外,还通过硬件接口获取片上系统的其它的实际输出结果,例如,进入、退出中断的结果,进入、退出低功耗的结果等。这部分结果可以通过硬件接口输出的信号的值与预设值进行比对,实现对片上系统的验证。
当需要更换应用场景时,只需要验证平台向验证系统发送与更换后的应用场景对应的激励信息即可,而不需要片上系统重新编译可执行文件。
本发明实施例提供的片上系统验证方法,预先生成了可执行文件模板,在程序存储区域内预先定义数据交互函数和进程同步函数,在运行可执行文件模板的过程中,通过数据交互函数获取不同测试用例的激励信息,基于激励信息对可执行文件模板进行配置,生成不同的测试用例对应的可执行文件,在后续运行过程中,通过数据交互函数和进程同步函数除了可以实现片上系统与验证平台之间的数据交互外,还可以实现片上系统与验证平台之间的控制指令的交互,这样,在对片上系统进行验证的过程中,应用场景的变化可以只在验证台端进行修改,由验证平台通过数据交互函数和进程同步函数将场景变化后的数据(即激励信息)和控制指令发送给片上系统,片上系统接收到验证平台发送的激励信息后,直接配置生成对应的可执行文件即可,从而不必每次更换测试用例后重新编译生成可执行文件,提高片上系统的验证效率。
在一可选的实施例中,片上系统通过程序存储区域内预先定义的进程同步函数交互控制指令,实现片上系统与所述验证平台的进程间的互相控制可以包括:
片上系统处于暂停状态时,验证平台通过程序存储区域内预先定义的第一进程同步函数向片上系统发送第一执行指令,片上系统响应于第一执行指令而继续运行;
片上系统暂停时,可以将片上系统的状态写入数据存储区域内的寄存器中,验证平台可以通过读取数据存储区域内寄存器的值来判断片上系统是否处于暂停状态。
另外,片上系统暂停时,可以通过设置验证平台启动的函数SetVStart()告知验证平台,并启动等待验证平台启动的函数WaitVStart(),等待验证平台发送第一执行指令,得到第一指令后才继续执行。片上系统继续执行后,将片上系统的状态写入数据存储区域内的寄存器中。
验证平台处于暂停状态时,片上系统通过数据存储区域内预先定义的第二进程同步函数向验证平台发送第二执行指令,验证平台响应于第二执行指令而继续运行。
验证平台暂停时,可以将验证平台的状态写入上述数据存储区域内的寄存器中,验证平台可以通过读取数据存储区域内寄存器的值来判断验证平台是否处于暂停状态。
另外,验证平台暂停时,可以通过设置片上系统启动的函数SetCStart()告知片上系统,并启动等待片上系统启动的函数WaitCStart()函数,等待片上系统发送第二执行指令,得到第二执行指令后才继续执行。验证平台继续执行后,将验证平台的状态写入上述数据存储区域内的寄存器中。
在一可选的实施例中,上述片上系统的程序存储区域内还可以包括:
中断函数,以及与片上系统的各个低功耗状态对应的低功耗状态进入函数和退出函数。
对于中断函数,片上系统在运行过程中会触发一些中断,片上系统根据不同中断号的中断信息做出一些响应,及时的退出中断。当片上系统进入货退出中断时,片上系统上对应的第一硬件接口的信号状态会有所不同。验证平台可以通过读取片上系统上对应的第一硬件接口的信号状态值来对片上系统的中断状态进行验证。可以将第一硬件接口的信号状态值与当前测试用例对应的第一类预设状态值进行比对,以对片上系统的中断进入、退出功能进行验证。其中,对于同一测试用例,片上系统进入和退出中断时,第一硬件接口的信号状态值不同。对于不同的测试用例,片上系统进入中断时的第一硬件接口的信号状态值不同,片上系统退出中断时的第一硬件接口的信号状态值也不同。具体验证过程可以为:若第一硬件接口的信号状态值与当前测试用例对应的第一类预设状态值相同,则验证通过,否则,验证不通过。
对于低功耗状态进入函数和退出函数,当片上系统进入低功耗状态时,会关闭相应的时钟模块,当退出低功耗状态时,会开启相应的时钟模块,这会导致片上系统上对应的第二硬件接口的信号状态会有所不同。验证平台可以通过读取片上系统上对应的第二硬件接口的信号状态来对片上系统是否能够进入或退出低功耗状态进行验证。可以将第二硬件接口的信号状态值与第二类预设状态值进行比对,以对片上系统的低功耗进入、退出功能进行验证。其中,片上系统进入和退出低功耗时,第二硬件接口的信号状态值不同。具体验证过程可以为:若第一硬件接口的信号状态值与第二类预设状态值相同,则验证通过,否则,验证不通过。
与方法实施例相对应,本发明实施例还提供一种片上系统的验证系统。如图2所示,为本发明实施例提供的片上系统的验证系统的一种结构示意图,包括:
片上系统芯片21和验证平台22;其中,
片上系统芯片21是指承载片上系统的芯片,用于运行可执行文件模板,具体包括:获取验证平台通过预先定义的数据交互函数发送的激励信息;数据交互函数存储在片上系统的程序存储区域内;激励信息与测试用例一一对应;测试用例信息与应用场景一一对应;基于激励信息,确定可执行文件模板中的待配置参数,并对待配置参数进行配置,以生成与激励信息对应的测试用例的可执行文件;通过程序存储区域内预先定义的进程同步函数与验证平台交互控制指令,实现片上系统与所述验证平台的进程间的相互控制。
片上系统启动后,验证平台22通过数据交互函数将激励信息发送给片上系统。其中,激励信息与测试用例一一对应;测试用例信息与应用场景一一对应。
由于激励信息与测试用例一一对应,因此,不同的激励信息,可执行文件中需要配置的参数也不同。片上系统接收到激励信息后,选择与该激励信息对应的参数进行配置,以生成与激励信息对应的测试用例的可执行文件,片上系统配置完参数后继续运行,实现一个完整的测试用例。
在一可选的实施例中,片上系统对待配置参数进行配置可以包括:片上系统通过配置数据存储区域内的寄存器实现对所述待配置参数的配置,上述寄存器至少包括特殊功能寄存器。
在运行可执行的文件的过程中,片上系统和验证平台通过进程同步函数交互控制指令,实现片上系统对验证平台的进程控制,以及验证平台对片上系统的进程控制。
验证平台22还用于,通过程序存储区域内的数据交互函数获取片上系统芯片的实际输出结果,并基于激励信息计算片上系统芯片的理想输出,基于实际输出结果和理想输出结果对片上系统芯片进行验证。
验证平台在向片上系统发送激励信息和测试用例信息后,还根据激励信息计算片上系统的输出,即理想输出值。
片上系统输出结果(即实际输出结果)后,验证平台获取该实际输出结果,将实际输出结果和理想输出结果进行对比,根据比对结果确定片上系统在上述测试用例下是否验证通过。具体可以计算实际输出结果与理想输出结果之间的误差,当误差小于预设阈值时,确定片上系统在上述测试用例下验证通过,否则确定片上系统在上述测试用例下未验证通过。
当需要更换应用场景时,只需要验证平台向验证系统发送与更换后的应用场景对应的激励信息即可,而不需要片上系统重新进行编译。
本发明实施例提供的片上系统的验证系统,预先生成了可执行文件模板,在程序存储区域内预先定义数据交互函数和进程同步函数,在运行可执行文件模板的过程中,通过数据交互函数获取不同测试用例的激励信息,基于激励信息对可执行文件模板进行配置,生成不同的测试用例对应的可执行文件,在后续运行过程中,通过数据交互函数和进程同步函数除了可以实现片上系统与验证平台之间的数据交互外,还可以实现片上系统与验证平台之间的控制指令的交互,这样,在对片上系统进行验证的过程中,应用场景的变化可以只在验证台端进行修改,由验证平台通过数据交互函数和进程同步函数将场景变化后的数据(即激励信息)和控制指令发送给片上系统,片上系统接收到验证平台发送的激励信息后,直接配置生成对应的可执行文件即可,从而不必每次更换测试用例后重新编译生成可执行文件,提高片上系统的验证效率。
在一可选的实施例中,片上系统芯片21与验证平台22通过程序存储区域内预先定义的进程同步函数交互控制指令,实现片上系统芯片21与验证22的进程间的相互控制可以包括:
片上系统芯片21处于暂停状态时,验证平台22通过程序存储区域内预先定义的第一进程同步函数向片上系统芯片21发送的第一执行指令,片上系统芯片21响应于第一执行指令而继续运行;
片上系统暂停时,可以将片上系统的状态写入数据存储区域内的寄存器中,验证平台可以通过读取数据存储区域内寄存器的值来判断片上系统是否处于暂停状态。
另外,片上系统暂停时,可以通过设置验证平台启动的函数SetVStart()告知验证平台,并启动等待验证平台启动的函数WaitVStart(),等待验证平台发送第一执行指令,得到第一指令后才继续执行。片上系统继续执行后,将片上系统的状态写入数据存储区域内的寄存器中。
验证平台22处于暂停状态时,片上系统芯片21通过程序存储区域内预先定义的第二进程同步函数向验证平台22发送第二执行指令,验证平台22响应于第二执行指令而继续运行。
验证平台暂停时,可以将验证平台的状态写入上述数据存储区域内的寄存器中,验证平台可以通过读取数据存储区域内寄存器的值来判断验证平台是否处于暂停状态。
另外,验证平台暂停时,可以通过设置片上系统启动的函数SetCStart()告知片上系统,并启动等待片上系统启动的函数WaitCStart()函数,等待片上系统发送第二执行指令,得到第二执行指令后才继续执行。验证平台继续执行后,将验证平台的状态写入上述数据存储区域内的寄存器中。
在一可选的实施例中,上述片上系统的程序存储区域内还可以包括:
中断函数,以及与片上系统的各个低功耗状态对应的低功耗状态进入函数和退出函数。
对于中断函数,片上系统在运行过程中会触发一些中断,片上系统根据不同中断号的中断信息做出一些响应,及时的退出中断。当片上系统进入货退出中断时,片上系统上对应的第一硬件接口的信号状态会有所不同。验证平台可以通过读取片上系统上对应的第一硬件接口的信号状态来对片上系统的中断状态进行验证。可以将第一硬件接口的信号状态值与当前测试用例对应的第一类预设状态值进行比对,以对片上系统的中断进入、退出功能进行验证。其中,对于同一测试用例,片上系统进入和退出中断时,第一硬件接口的信号状态值不同。对于不同的测试用例,片上系统进入中断时的第一硬件接口的信号状态值不同,片上系统退出中断时的第一硬件接口的信号状态值也不同。具体验证过程可以为:若第一硬件接口的信号状态值与当前测试用例对应的第一类预设状态值相同,则验证通过,否则,验证不通过。
对于低功耗状态进入函数和退出函数,当片上系统进入低功耗状态时,会关闭相应的时钟模块,当退出低功耗状态时,会开启相应的时钟模块,这会导致片上系统上对应的第二硬件接口的信号状态会有所不同。验证平台可以通过读取片上系统上对应的第二硬件接口的信号状态来对片上系统是否能够进入或退出低功耗状态进行验证。可以将第二硬件接口的信号状态值与第二类预设状态值进行比对,以对片上系统的低功耗进入、退出功能进行验证。其中,片上系统进入和退出低功耗时,第二硬件接口的信号状态值不同。具体验证过程可以为:若第一硬件接口的信号状态值与第二类预设状态值相同,则验证通过,否则,验证不通过。
在一可选的实施例中,验证平台22的一种结构示意图如图2所示可以包括:
激励产生器220,用于产生不同应用场景下的激励信息。
驱动组件221,用于将激励信息通过数据交互函数发送给片上系统;并通过进程同步函数与验证平台22交互控制指令。
第一监测组件222,用于通过数据交互函数采集片上系统的输入信息,并将输入信息传递给运算组件223。输入信息包括激励信息等。
运算组件223,用于基于输入信息计算片上系统的理想输出结果。
第二监测组件224,用于通过数采集片上系统的输出结果,即实际输出结果,包括通过数据交互函数输出的结果,以及硬件接口输出的结果。
验证组件225,用于将理想输出结果和实际输出结果进行比对,确定片上系统是否验证通过。其中,理想输出结果除了包括运算组件223计算得到的结果外,还包括与硬件接口对应的预置的理想输出结果。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种片上系统验证方法,其特征在于,包括:
所述片上系统运行可执行文件模板,具体运行过程包括:
所述片上系统获取验证平台通过预先定义的数据交互函数发送的激励信息;所述数据交互函数存储在所述片上系统的程序存储区域内;激励信息与测试用例一一对应;测试用例信息与应用场景一一对应;
所述片上系统基于所述激励信息,确定所述可执行文件模板中的待配置参数,并对所述待配置参数进行配置,以生成与所述激励信息对应的测试用例的可执行文件;
所述片上系统通过所述程序存储区域内预先定义的进程同步函数与所述验证平台交互控制指令,实现所述片上系统与所述验证平台的进程间的相互控制;
所述验证平台通过所述程序存储区域内的数据交互函数获取所述片上系统的实际输出结果,并基于所述激励信息计算所述片上系统的理想输出,基于所述实际输出结果和所述理想输出结果对所述片上系统进行验证。
2.根据权利要求1所述的方法,其特征在于,所述片上系统通过所述程序存储区域内预先定义的进程同步函数与所述验证平台交互控制指令,实现所述片上系统与所述验证平台的进程间的互相控制包括:
所述片上系统处于暂停状态时,通过所述程序存储区域内预先定义的第一进程同步函数接收所述验证平台发送的第一执行指令,响应于所述第一执行指令而继续运行;
所述验证平台处于暂停状态时,通过所述程序存储区域内预先定义的第二进程同步函数接收所述片上系统发送的第二执行指令,响应于所述第二执行指令而继续运行。
3.根据权利要求1所述的方法,其特征在于,所述片上系统对所述待配置参数进行配置包括:
所述片上系统通过配置数据存储区域内的寄存器实现对所述待配置参数的配置,所述寄存器至少包括特殊功能寄存器。
4.根据权利要求1所述的方法,其特征在于,所述程序存储区域内还包括:
中断函数,以及与所述片上系统的各个低功耗状态对应的低功耗状态进入函数和退出函数。
5.根据权利要求1所述的方法,其特征在于,所述验证平台为通用验证方法学验证平台。
6.一种片上系统的验证系统,其特征在于,包括:片上系统芯片和验证平台;其中,
所述片上系统芯片用于运行可执行文件模板,具体包括:获取验证平台通过预先定义的数据交互函数发送的激励信息;所述数据交互函数存储在所述片上系统的程序存储区域内;激励信息与测试用例一一对应;测试用例信息与应用场景一一对应;基于所述激励信息,确定所述可执行文件模板中的待配置参数,并对所述待配置参数进行配置,以生成与所述激励信息对应的测试用例的可执行文件;通过所述程序存储区域内预先定义的进程同步函数与所述验证平台交互控制指令,实现所述片上系统与所述验证平台的进程间的相互控制;
所述验证平台还用于,通过所述程序存储区域内的数据交互函数获取所述片上系统芯片的实际输出结果,并基于所述激励信息计算所述片上系统芯片的理想输出,基于所述实际输出结果和所述理想输出结果对所述片上系统芯片进行验证。
7.根据权利要求6所述的系统,其特征在于,所述片上系统芯片与所述验证平台通过所述程序存储区域内预先定义的进程同步函数交互控制指令,实现所述片上系统芯片与所述验证平台的进程间的相互控制包括:
所述片上系统芯片用于,所述片上系统芯片处于暂停状态时,通过所述数据存储区域内预先定义的第一进程同步函数接收所述验证平台发送的第一执行指令,响应于所述第一执行指令而继续运行;
所述验证平台用于,所述验证平台处于暂停状态时,通过所述数据存储区域内预先定义的第二进程同步函数接收所述片上系统芯片发送的第二执行指令,响应于所述第二执行指令而继续运行。
8.根据权利要求6所述的系统,其特征在于,所述片上系统用于对所述待配置参数进行配置包括:
所述片上系统用于,通过配置数据存储区域内的寄存器实现对所述待配置参数的配置,所述寄存器至少包括特殊功能寄存器。
9.根据权利要求6所述的系统,其特征在于,所述片上系统的程序存储区域内还包括:
中断函数,以及与所述片上系统芯片的各个低功耗状态对应的低功耗状态进入函数和退出函数。
10.根据权利要求6所述的系统,其特征在于,所述验证平台为通用验证方法学验证平台。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710210462.XA CN106980597B (zh) | 2017-03-31 | 2017-03-31 | 片上系统验证方法及验证系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710210462.XA CN106980597B (zh) | 2017-03-31 | 2017-03-31 | 片上系统验证方法及验证系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106980597A true CN106980597A (zh) | 2017-07-25 |
CN106980597B CN106980597B (zh) | 2021-06-01 |
Family
ID=59343545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710210462.XA Active CN106980597B (zh) | 2017-03-31 | 2017-03-31 | 片上系统验证方法及验证系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106980597B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002416A (zh) * | 2018-06-26 | 2018-12-14 | 北京中电华大电子设计有限责任公司 | 一种支持芯片低功耗调试的仿真器及方法 |
CN111579959A (zh) * | 2019-02-15 | 2020-08-25 | 深圳市汇顶科技股份有限公司 | 芯片验证方法、装置及存储介质 |
CN111737933A (zh) * | 2020-06-19 | 2020-10-02 | 浪潮(北京)电子信息产业有限公司 | 一种soc原型验证方法、系统、设备及介质 |
CN112069756A (zh) * | 2020-09-02 | 2020-12-11 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种可编程逻辑验证架构及其实现方法 |
CN113657068A (zh) * | 2020-05-12 | 2021-11-16 | 北京东土科技股份有限公司 | Soc仿真验证及soc的仿真验证设备验证环境搭建方法 |
CN113766216A (zh) * | 2021-09-08 | 2021-12-07 | 北京爱芯科技有限公司 | 一种视频模块的验证方法及验证系统 |
CN117033003A (zh) * | 2023-10-10 | 2023-11-10 | 沐曦集成电路(上海)有限公司 | 基于SystemVerilog的内存管理方法、电子设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102201872A (zh) * | 2010-03-22 | 2011-09-28 | 吴佳欣 | 水声通信低功耗唤醒设备 |
CN102402628A (zh) * | 2010-09-07 | 2012-04-04 | 无锡中星微电子有限公司 | 一种生成SoC验证平台的方法及系统 |
US20130318486A1 (en) * | 2012-05-23 | 2013-11-28 | Lawrence SASAKI | Method and system for generating verification environments |
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
-
2017
- 2017-03-31 CN CN201710210462.XA patent/CN106980597B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102201872A (zh) * | 2010-03-22 | 2011-09-28 | 吴佳欣 | 水声通信低功耗唤醒设备 |
CN102402628A (zh) * | 2010-09-07 | 2012-04-04 | 无锡中星微电子有限公司 | 一种生成SoC验证平台的方法及系统 |
US20130318486A1 (en) * | 2012-05-23 | 2013-11-28 | Lawrence SASAKI | Method and system for generating verification environments |
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
Non-Patent Citations (2)
Title |
---|
刘松: "通用SOC虚拟原型验证平台研究与设计", 《中国优秀硕士学位论文全文数据库信息科技辑2012年》 * |
韩雪: "基于UVM的UART系统级验证平台设计", 《中国优秀硕士学位论文全文数据库信息科技辑2017年》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002416A (zh) * | 2018-06-26 | 2018-12-14 | 北京中电华大电子设计有限责任公司 | 一种支持芯片低功耗调试的仿真器及方法 |
CN111579959A (zh) * | 2019-02-15 | 2020-08-25 | 深圳市汇顶科技股份有限公司 | 芯片验证方法、装置及存储介质 |
CN113657068A (zh) * | 2020-05-12 | 2021-11-16 | 北京东土科技股份有限公司 | Soc仿真验证及soc的仿真验证设备验证环境搭建方法 |
CN111737933A (zh) * | 2020-06-19 | 2020-10-02 | 浪潮(北京)电子信息产业有限公司 | 一种soc原型验证方法、系统、设备及介质 |
CN112069756A (zh) * | 2020-09-02 | 2020-12-11 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种可编程逻辑验证架构及其实现方法 |
CN113766216A (zh) * | 2021-09-08 | 2021-12-07 | 北京爱芯科技有限公司 | 一种视频模块的验证方法及验证系统 |
CN117033003A (zh) * | 2023-10-10 | 2023-11-10 | 沐曦集成电路(上海)有限公司 | 基于SystemVerilog的内存管理方法、电子设备和介质 |
CN117033003B (zh) * | 2023-10-10 | 2024-01-19 | 沐曦集成电路(上海)有限公司 | 基于SystemVerilog的内存管理方法、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106980597B (zh) | 2021-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980597A (zh) | 片上系统验证方法及验证系统 | |
US7644398B2 (en) | System and method for automatic test-case generation for software | |
CN102902834B (zh) | 一种soc芯片的验证方法及系统 | |
US8443336B2 (en) | System and method for applying model-based testing to train control systems | |
CN110865971B (zh) | Soc芯片的验证系统及其方法 | |
CN106599343A (zh) | 一种提高仿真效率的soc系统验证方法和装置 | |
Ryzhyk et al. | {User-Guided} Device Driver Synthesis | |
US10552190B2 (en) | Precise error injection for driver testing | |
CN115828839A (zh) | 一种soc芯片系统级验证系统及方法 | |
Ruchkin et al. | Contract-based integration of cyber-physical analyses | |
CN107346249A (zh) | 一种基于模型的计算机软件开发方法 | |
US20190179988A1 (en) | System and method for emulating hybrid systems | |
CN106155903A (zh) | 用于系统设计验证的装置和方法 | |
US8332202B2 (en) | Hybrid system simulation method and simulation program product | |
KR101704338B1 (ko) | 실시간 시스템을 위한 테스트 케이스 생성 장치 및 방법 | |
CN109144668B (zh) | Rfid仿真用例实现方法及装置 | |
CN113806962A (zh) | 用于轨道交通信号系统的多倍速仿真运行控制方法 | |
CN112559045B (zh) | 一种基于riscv的随机指令生成平台及方法 | |
Gaglio et al. | WSN design and verification using on-board executable specifications | |
CN113032274B (zh) | 一种针对h.265的cabac连续图像验证的方法 | |
CN107329869B (zh) | 一种片上系统的仿真方法及装置 | |
CN111338761B (zh) | 一种51单片机虚拟中断控制器及实现方法 | |
CN113934153A (zh) | 航空发动机控制系统的多通道仿真方法和系统 | |
Dardaillon et al. | A compilation flow for parametric dataflow: Programming model, scheduling, and application to heterogeneous MPSoC | |
JP2003044543A (ja) | ハードウェア設計を検証するための統合テストケース言語 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |