CN106980597B - 片上***验证方法及验证*** - Google Patents
片上***验证方法及验证*** Download PDFInfo
- Publication number
- CN106980597B CN106980597B CN201710210462.XA CN201710210462A CN106980597B CN 106980597 B CN106980597 B CN 106980597B CN 201710210462 A CN201710210462 A CN 201710210462A CN 106980597 B CN106980597 B CN 106980597B
- Authority
- CN
- China
- Prior art keywords
- chip
- verification platform
- function
- verification
- storage area
- 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.)
- Active
Links
Images
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)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (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 CN106980597A (zh) | 2017-07-25 |
CN106980597B true 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) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002416B (zh) * | 2018-06-26 | 2022-03-22 | 北京中电华大电子设计有限责任公司 | 一种支持芯片低功耗调试的仿真器及方法 |
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原型验证方法、***、设备及介质 |
CN112069756B (zh) * | 2020-09-02 | 2024-06-18 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种可编程逻辑验证架构及其实现方法 |
CN113766216A (zh) * | 2021-09-08 | 2021-12-07 | 北京爱芯科技有限公司 | 一种视频模块的验证方法及验证*** |
CN117033003B (zh) * | 2023-10-10 | 2024-01-19 | 沐曦集成电路(上海)有限公司 | 基于SystemVerilog的内存管理方法、电子设备和介质 |
Citations (3)
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验证平台的方法及*** |
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318486A1 (en) * | 2012-05-23 | 2013-11-28 | Lawrence SASAKI | Method and system for generating verification environments |
-
2017
- 2017-03-31 CN CN201710210462.XA patent/CN106980597B/zh active Active
Patent Citations (3)
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验证平台的方法及*** |
CN103530216A (zh) * | 2013-10-12 | 2014-01-22 | 江苏华丽网络工程有限公司 | 一种基于uvm验证方法学的pcie验证方法 |
Non-Patent Citations (2)
Title |
---|
基于UVM的UART***级验证平台设计;韩雪;《中国优秀硕士学位论文全文数据库信息科技辑2017年》;20170215(第02期);第4章第4.1-4.5节,图4.41-4.44 * |
通用SOC虚拟原型验证平台研究与设计;刘松;《中国优秀硕士学位论文全文数据库信息科技辑2012年》;20120415(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106980597A (zh) | 2017-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106980597B (zh) | 片上***验证方法及验证*** | |
CN102902556B (zh) | 一种嵌入式设备的多级引导加载方法 | |
CN107480327B (zh) | 一种仿真验证方法、装置和电子设备 | |
WO2011035663A1 (zh) | 一种构建编译***的方法及装置 | |
EP4390673A1 (en) | Ecu upgrade method and device, and readable storage medium | |
CN112965794A (zh) | 算法调用方法、电子设备及存储介质 | |
WO2020017264A1 (ja) | シミュレーション装置、及びその方法、並びにecu装置 | |
CN115390809A (zh) | 一种仿真调度方法及*** | |
KR20110100070A (ko) | 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법 | |
US6643800B1 (en) | Method and apparatus for testing microarchitectural features by using tests written in microcode | |
CN117521568A (zh) | 一种参考模型生成方法、装置、设备及存储介质 | |
CN108121842B (zh) | 多处理器***芯片的低功耗工作方式的验证方法和装置 | |
CN112389506A (zh) | 列车信号***及其联动方法 | |
CN111142954B (zh) | 一种开机控制方法、装置及计算机可读存储介质 | |
JP2828590B2 (ja) | マイクロプログラム検証方法 | |
Posch | Hands-On Embedded Programming with C++ 17: Create versatile and robust embedded solutions for MCUs and RTOSes with modern C++ | |
CN113590166B (zh) | 应用程序的更新方法、装置以及计算机可读存储介质 | |
CN113407243B (zh) | 一种配置和调度虚拟i/o模块的方法和装置 | |
EP1372065A2 (en) | System large scale integrated circuit (LSI), method of designing the same, and program therefor | |
US9830174B2 (en) | Dynamic host code generation from architecture description for fast simulation | |
US20240061984A1 (en) | A method for an automatic design and verification of a processor's programming and verification tools | |
CN115291953A (zh) | 中央处理器的控制方法、装置、设备及存储介质 | |
Kedalagudde | Adding extensions to UML dynamic models for better embedded system design | |
CN117194209A (zh) | 嵌入式软件的调试方法以及调试装置 | |
CN118093173A (zh) | 一种基于作业调度***的ai处理器调度方法、装置、设备和存储介质 |
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 |