CN115328720A - SoC验证方法、装置、设备及存储介质 - Google Patents
SoC验证方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115328720A CN115328720A CN202211254616.2A CN202211254616A CN115328720A CN 115328720 A CN115328720 A CN 115328720A CN 202211254616 A CN202211254616 A CN 202211254616A CN 115328720 A CN115328720 A CN 115328720A
- Authority
- CN
- China
- Prior art keywords
- verification
- thread
- data
- command
- address
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了SoC验证方法、装置、设备及存储介质,所述方法包括:调用验证命令,从数据总线上获取验证数据;将验证命令发送至代理线程,使代理线程通过交互地址读取所述验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果;其中,所述交互地址为控制线程和代理线程之间交互时,占用的与数据总线宽度对齐的地址,所述控制线程和所述代理线程组成至少一个线程对数据总线。代理程序只需要编译一次,且测试程序的规模和复杂度也不再受限于ROM大小,使测试流程简洁,应用方便,且复杂控制逻辑和运算转移到验证平台进行,减少了仿真时间;同时,受益于验证平台的强大随机性能,可以方便的做功能覆盖和覆盖率收集。
Description
技术领域
本发明属于芯片验证技术领域,特别是涉及SoC验证方法、装置、设备及存储介质。
背景技术
SoC(System on Chip)平台集成测试中,常常需要编译程序在SoC DUT(designunder test)中运行,达到测试外设的目的。这种方法需要编写C程序并编译成二进制文件,再导入到ROM(Read-Only Memory)中,在厂家提供的加密ROM IP模型或后仿不适用;部分芯片中,ROM存储空间较小,限制了测试程序的规模和复杂度;程序运行时,流程节点和仿真时间强相关,无法只依赖DUT内部信息在每次仿真中都可以随机出不同的种子,需要依赖验证平台提供随机种子;在涉及大量随机和复杂逻辑运算的场景时,需要大量消耗仿真时间。
发明内容
基于此,本发明提供了一种SoC验证方法、装置、设备及存储介质,解决了SoC平台集成测试中,测试流程复杂、测试程序的规模和复杂度受限于ROM大小和复杂测试仿真时间长的问题。
本发明提供的一种SoC验证方法,所述方法包括:
调用验证命令,从数据总线上获取验证数据;
将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取所述验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果;其中,所述交互地址为控制线程和所述代理线程之间交互时,占用的与数据总线宽度对齐的地址,所述控制线程和所述代理线程组成至少一个线程对数据总线。
进一步地,所述从数据总线上获取验证数据包括:根据所述验证命令,从所述数据总线上获取所述验证数据及所述验证数据在所述数据总线上的预设存储地址;
获取所述验证数据的所述预设存储地址为:将所述验证数据与所述数据总线上的存储地址进行匹配,获取所述验证数据在所述数据总线上的预设存储地址。
进一步地,所述使所述代理线程通过交互地址读取所述验证数据包括:
使所述代理线程从所述验证数据在所述数据总线上的所述预设存储地址对应的所述控制线程的接口中,读取所述验证数据及所述验证数据在所述数据总线上的所述预设存储地址。
进一步地,在所述调用验证命令,从数据总线上获取验证数据之前还包括:
将所述控制线程、所述代理线程的接口与所述数据总线的所述存储地址进行关联,使所述控制线程、所述代理线程的接口与所述数据总线中的所述存储地址相对应。
进一步地,所述将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取所述验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果,之后还包括:
接收所述验证结果,将所述验证结果存储于数据总线上的目标地址;其中,所述目标地址与所述验证数据在所述数据总线上的所述预设存储地址相同数据总线。
进一步地,所述方法还包括:
接收线程对优先处理信号,所述线程对优先处理信号触发正在执行的第一线程对中断,所述第一线程对暂停,进入阻塞状态;
根据所述线程对优先处理信号激活所述线程对优先处理信号对应的第二线程对,并执行处理所述第二线程对中的验证命令;
所述第二线程对中的所述验证命令执行完毕之后,所述第二线程对退出,切换回被中断的所述第一线程对继续执行所述验证命令。
进一步地,所述验证命令为一种命令或多种命令的组合。
本发明还提供了一种SoC验证装置,所述装置包括:
验证数据获取模块,用于调用验证命令,从数据总线上获取验证数据;
验证结果获取模块,用于将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果;其中,所述交互地址为控制线程和所述代理线程之间交互时,占用的与所述数据总线宽度对齐的地址,所述控制线程和所述代理线程组成至少一个线程对数据总线。
本发明还提供了一种计算机设备,所述计算机设备包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现上述任一项所述的SoC验证方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的SoC验证方法。
本发明提供的一种SoC验证方法,通过调用验证命令,从数据总线上获取验证数据;将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果;SoC平台集成测试中,将需要验证平台处理的验证数据发送至代理线程进行处理,且代理程序只需要编译一次,且测试程序的规模和复杂度也不再受限于ROM大小,使测试流程简洁,应用方便,且复杂控制逻辑和运算转移到验证平台进行,减少了仿真时间;同时,受益于验证平台的强大随机性能,可以方便的做功能覆盖和覆盖率收集。本发明还提供了一种SoC验证装置、设备和存储介质,也可实现上述效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本实施例提供一种SoC验证方法的实现架构示意图;
图2为本发明实施例提供一种SoC验证方法的流程示意图;
图3为本发明实施例提供的中断处理流程示意图;
图4为SoC验证方法中写命令的实现过程示意图;
图5为本发明实施例提供的一种SoC验证装置的结构框图;
图6为本发明实施例提供的另一种SoC验证装置的结构框图;
图7为本发明实施例提供的又一种SoC验证装置的结构框图;
图8为本发明实施例提供的再一种SoC验证装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
在EDA仿真中,对SoC类型的数字芯片的外设功能做功能验证时,需要对SoC外设功能验证并精细检查功能覆盖情况;原始程序逻辑存在复杂运算消耗过多仿真时间,拖累验证进度。如图1所示为本实施例提供一种SoC验证方法的实现架构示意图,包括控制线程组,代理线程组,命令接口组件,数据总线劫持接口组件,命令执行函数。其中(1)代理线程,用命令执行函数并传递这个代理线程关联的交互地址,命令执行函数循环执行来自对应控制线程的命令,直到收到退出的命令才会返回。命令执行函数返回后,代理线程也会自然结束并返回。其中,线程是与主程序以及所有的中断处理程序关联的程序上下文状态,简单理解为主程序和所有的中断处理程序都对应一个线程,此处所有的线程都用于代理执行来自验证平台的命令,所以称为代理线程。交互地址是每对控制线程和代理线程之间交互都需要占用一个与数据总线宽度对齐的地址,这个地址称为“线程对”的交互地址。(2)命令执行函数,在SoC程序中实现的一个函数,内容为执行来自验证平台的命令,代理线程调用时需要传入线程对对应的交互地址。从交互地址读取命令,支持WRITE,READ,NOP,EXIT四个命令。收到命令后根据命令内容执行下一步操作,命令执行完后继续循环读取下一个命令,除非收到EXIT命令,收到EXIT命令则立刻结束并返回。(3)控制线程,控制线程在验证平台代码中实现,是与代理线程一一对应的控制逻辑,在仿真时间上并行执行。每个控制线程内要实现其对应主程序或中断程序的控制逻辑:通过运算并通过发送WRITE/READ/NOP/EXIT命令到代理线程的方式实现对原本控制逻辑模仿,调用命令接口时传入交互地址。因为控制运算不消耗仿真时间,所以总是阻塞在调用命令来消耗仿真时间,在仿真时间上被动执行。(4)数据总线劫持组件:数据总线劫持组件提供WAIT_BUS_READ(Thread_Addr_X,Raw_Data)和WAIT_BUS_WRITE(Thread_Addr_X,Raw_Data)两个数据总线劫持调用接口task。WAIT_BUS_READ(Thread_Addr_X,Raw_Data):Thread_Addr_X是传入的交互地址,Raw_Data是等待数据总线读取的原始数据。WAIT_BUS_WRITE(Thread_Addr_X,Raw_Data):Thread_Addr_X是传入的交互地址,Raw_Data是采样到的数据总线写数据。对于读操作,使用后门监控和force数据总线的方式使CPU在特定地址上读取到的数据为环境指定的值。对于写操作,监视并采样数据总线的写数据。(5)命令组件:命令组件提供WRITE(Thread_Addr_X,Length,Addr,Raw_Data),READ(Thread_Addr_X,Length,Addr,Raw_Data),NOP(delay),EXIT()命令调用接口task。WRITE(Thread_Addr_X,Length,Addr,Raw_Data):Thread_Addr_X是传入的交互地址,Raw_Data传入的写入数据,Length是本次写命令写入数据长度,Addr是目标写地址。READ(Thread_Addr_X,Length,Addr,Raw_Data):Thread_Addr_X是传入的交互地址,Raw_Data传出的读取数据,Length是本次读命令读取数据长度,Addr是目标读地址。NOP(Delay):Delay下一次代理线程再次读取命令需要延迟的时钟周期数。EXIT():立刻退出当前代理线程。控制线程使用命令组件提供的命令调用接口来和代理线程交互。命令的调用接口的下层实现是数据总线劫持调用接口,所以一个命令调用实际上由一个数据总线劫持调用序列构成。
如图2所示,为本发明实施例提供一种SoC验证方法的流程示意图,包括:
步骤S1:调用验证命令,从数据总线上获取验证数据;
步骤S2:将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果;其中,所述交互地址为控制线程和所述代理线程之间交互时,占用的与所述数据总线宽度对齐的地址,所述控制线程和所述代理线程组成至少一个线程对。
具体地,在验证平台接收到验证请求时,根据验证请求调用验证命令,其中,验证命令可以通过设置测试程序实现,在验证开始之前,可以将设置好的测试程序存储于验证平台上,在测试需求不同时,对测试程序进行调整。然后根据验证命令从数据总线上劫持验证数据,其中,在验证数据中包含验证数据的类型、验证数据的长度等数据信息;接着将验证命令传输至SoC程序端的代理线程,代理线程接收到验证命令之后,通过交互地址从验证平台端读取验证数据,代理线程读完数据后,根据验证命令调用验证命令对应的处理函数对验证数据进行处理,得到验证结果,交互地址为控制线程和代理线程之间交互时,占用的与数据总线宽度对齐的地址,所述控制线程和所述代理线程组成至少一个线程对,即在验证平台的数据发送接口中和SoC程序端接收验证数据的接口中,设置接口对应的接口地址,不同的接口地址中,对应宽度不同的地址,在发送和接收验证数据时,将验证数据从包含该验证数据地址宽度的接口发送,由SoC程序端包含该验证数据地址宽度的接口接收。
在一些实施例中,所述从数据总线上获取验证数据包括:根据所述验证命令,从所述数据总线上获取所述验证数据及所述验证数据在所述数据总线上的预设存储地址;
所述验证数据的所述预设存储地址为:将所述验证数据与所述数据总线上的存储地址进行匹配,获取所述验证数据在所述数据总线上的预设存储地址。
具体地,在对验证数据进行验证之前,可以将验证数据与数据总线上的存储地址进行匹配,即先预设在数据总线中该验证数据的存储地址。
在一些实施例中,所述使所述代理线程通过交互地址读取所述验证数据包括:使所述代理线程从所述验证数据在数据总线上的预设存储地址对应的控制线程接口中,读取所述验证数据及所述验证数据在所述数据总线上的预设存储地址。
具体地,在验证平台和SoC程序端之间形成多对线程对,且通过多线程对同时对验证数据进行处理时,为保证验证顺利进行和提升验证效率,获取验证数据及所述验证数据在数据总线上的预设存储地址,可以将所述验证数据在数据总线上的预设存储地址同时发送至代理线程,并且代理线程在读取所述验证数据时,使所述代理线程从所述验证数据在数据总线上的预设存储地址对应的控制线程接口中,读取所述验证数据及所述验证数据在所述数据总线上的预设存储地址。在代理线程处理完验证数据之后,SoC程序端将验证结果从验证数据在数据总线上的预设存储地址相同的SoC程序端的接口发送至验证平台,使多线程同时处理验证数据时可以顺利完成,且不会发生错乱。
在一些实施例中,在调用验证命令,从数据总线上获取验证数据之前还包括:将所述控制线程、所述代理线程的接口与所述数据总线地址中存储地址进行关联,使所述控制线程、所述代理线程的接口中的地址与所述数据总线地址中存储地址相对应。
具体地,将所述控制线程、所述代理线程的接口与所述数据总线地址中存储地址进行关联,即将验证平台和SoC程序端的接口与数据总线地址中不同存储地址宽度对应起来,验证平台将验证命令发送至SoC程序端,SoC程序端读取验证数据时,先查找验证平台中与SoC程序端接收验证命令接口地址宽度相同的接口,查找完成后,读取此接口中的验证数据。
在一些实施例中,所述将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取所述验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果,之后还包括:接收所述验证结果,将所述验证结果存储于地址数据总线上的目标地址;其中,所述目标地址所述目标地址与所述验证数据在数据总线上的所述预设存储地址相同。
在一些实施例中,所述方法还包括:接收线程对优先处理信号,所述线程对优先处理信号触发正在执行的第一线程对中断,所述第一线程对暂停,进入阻塞状态;根据所述线程对优先处理信号激活所述线程对优先处理信号对应的第二线程对,并执行所述第二线程对中的验证命令;所述第二线程对中的所述验证命令执行完毕之后,所述第二线程对退出,切换回被中断的所述第一线程对执行所述验证命令。
具体地,如图3所示为本发明实施例提供的中断处理流程示意图,在验证平台与SoC程序端可以建立多个线程对,在进行验证过程中, SoC程序端正在执行线程对A中的验证命令,此时,接收到对线程对B优先处理信号,则所述对线程对B优先处理信号会触发当前正在执行的线程对A中的验证命令,当前线程对A当前线程对暂停,进入阻塞状态,激活所述线程对优先处理信号对应的线程对B,并执行处理所述优先处理信号对应的线程对B中的验证命令;线程对B中的验证命令执行完毕之后,线程对B退出,切换回被中断的所述当前线程对A继续执行所述验证命令,通过上述中断处理可以加快验证处理过程,同时使保障验证过程顺利进行。
在一些实施例中,所述验证命令为一种命令或多种命令的组合。
如图4所示,以验证命令为WRITE 写命令说明上述方法的具体实现过程:
验证平台接收到验证请求后,调用写命令task WRITE,调用等待读task WAIT_BUS_READ@1,发送WRITE命令至SoC程序端,等待代理线程在交互地址读取到WRITE命令,代理线程从交互地址读取到读命令。WAIT_BUS_READ@1结束,然后产生一组调用等待读taskWAIT_BUS_READ@2,发送WRITE命令附加信息:写入地址,写入长度,写入数据,等待代理线程在交互地址读取WRITE命令附加信息,执行WRITE命令子流程,从交互地址读取WRITE命令附加信息:写入地址,写入长度,写入数据, WAIT_BUS_READ@2结束,调用WRITE命令结束,控制线程收到WRITE命令结果,将WRITE命令结果写入指定长度的WRITE命令数据到指定地址。
本发明实施例提供的一种SoC验证方法,通过调用验证命令,从数据总线上获取验证数据;将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果;SoC平台集成测试中,将需要验证平台处理的验证数据发送至代理线程进行处理,且代理程序只需要编译一次,且测试程序的规模和复杂度也不再受限于ROM大小,使测试流程简洁,应用方便,且复杂控制逻辑和运算转移到验证平台进行,减少了仿真时间;同时,受益于验证平台的强大随机性能,可以方便的做功能覆盖和覆盖率收集。
如图5所示,为本发明实施例提供的一种SoC验证装置400的结构框图,所述装置400包括:
验证数据获取模块401,用于调用验证命令,从数据总线上获取验证数据;
验证结果获取模块402,用于将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果;其中,所述交互地址为控制线程和代理线程之间交互时,占用的与数据总线宽度对齐的地址,所述控制线程和所述代理线程组成至少一个线程对。
在一些实施例中,所述验证数据获取模块401中所述从数据总线上获取验证数据包括:根据所述验证命令,从数据总线上获取所述验证数据及所述验证数据在数据总线上的预设存储地址;
所述验证结果获取模块402中所述使所述代理线程通过交互地址读取所述验证数据包括:使所述代理线程从所述验证数据在数据总线上的预设存储地址对应的控制线程接口中,读取所述验证数据及所述验证数据在所述数据总线上的预设存储地址。
在一些实施例中,如图6所示,为本发明实施例提供的另一种SoC验证装置400的结构框图,所述装置400还包括:
匹配模块403,用于将所述验证数据与数据总线上的存储地址进行匹配,获取所述验证数据在所述数据总线上的预设存储地址。
在一些实施例中,如图6所示,所述装置400还包括:
关联模块404,用于将所述控制线程、所述代理线程的接口与所述数据总线的所述存储地址进行关联,使所述控制线程、所述代理线程的接口与所述数据总线的所述存储地址相对应。
在一些实施例中,如图7所示,所述装置400还包括:
存储模块405,用于接收所述验证结果,将所述验证结果存储于地址数据总线上的目标地址;其中,所述目标地址与所述验证数据在数据总线上的所述预设存储地址相同。
在一些实施例中,如图8所示,所述装置400还包括:
中断处理模块406,用于接收线程对优先处理信号,所述线程对优先处理信号触发当前正在执行的线程对中断,当前线程对暂停,进入阻塞状态;
激活所述线程对优先处理信号对应的线程对,并执行处理所述优先处理信号对应的线程对中的验证命令;
所述优先处理信号对应的线程对中的所述验证命令执行完毕之后,所述优先处理信号对应的所述线程对退出,切换回被中断的所述当前线程对继续执行所述验证命令。
所述验证命令为一种命令或多种命令的组合。
关于SoC验证装置的具体限定可以参见上文中对于SoC验证方法的限定,在此不再赘述。上述SoC验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
具体的,本申请一实施例中还提供一种计算机设备,该计算机设备可以包括:
存储有可执行程序代码的存储器;与存储器连接的处理器;处理器调用存储器中存储的可执行程序代码,执行本申请实施例提供的方法。
具体的,本申请一实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本申请实施例提供的方法。
本申请一实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本申请实施例提供的方法。
本申请中的实施例描述是参照根据本申请实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示单独存在A、同时存在A和B、单独存在B的情况。其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项”及其类似表达,是指的这些项中的任意组合,包括单项或复数项的任意组合。例如,a,b和c中的至少一项可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a,b,c可以是单个,也可以是多个。
本申请实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以意识到,本申请实施例中描述的各单元及算法步骤,能够以电子硬件、计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本申请的具体实施方式,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种SoC验证方法,其特征在于,所述方法包括:
调用验证命令,从数据总线上获取验证数据;
将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取所述验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果;其中,所述交互地址为控制线程和所述代理线程之间交互时,占用的与所述数据总线宽度对齐的地址,所述控制线程和所述代理线程组成至少一个线程对。
2.根据权利要求1所述的一种SoC验证方法,其特征在于,所述从数据总线上获取验证数据包括:根据所述验证命令,从所述数据总线上获取所述验证数据及所述验证数据在所述数据总线上的预设存储地址;
获取所述验证数据的所述预设存储地址为:将所述验证数据与所述数据总线上的存储地址进行匹配,获取所述验证数据在所述数据总线上的预设存储地址。
3.根据权利要求2所述的一种SoC验证方法,其特征在于,所述使所述代理线程通过交互地址读取所述验证数据包括:
使所述代理线程从所述验证数据在所述数据总线上的预设存储地址对应的所述控制线程的接口中,读取所述验证数据及所述验证数据在所述数据总线上的所述预设存储地址。
4.根据权利要求3所述的一种SoC验证方法,其特征在于,在所述调用验证命令,从数据总线上获取验证数据之前还包括:
将所述控制线程、所述代理线程的接口与所述数据总线的所述存储地址进行关联,使所述控制线程、所述代理线程的所述接口与所述数据总线的所述存储地址相对应。
5.根据权利要求4所述的一种SoC验证方法,其特征在于,所述将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取所述验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果,之后还包括:
接收所述验证结果,将所述验证结果存储于数据总线上的目标地址;其中,所述目标地址与所述验证数据在所述数据总线上的所述预设存储地址相同数据总线。
6.根据权利要求5所述的一种SoC验证方法,其特征在于,所述方法还包括:
接收线程对优先处理信号,所述线程对优先处理信号触发正在执行的第一线程对中断,所述第一线程对暂停,进入阻塞状态;
根据所述线程对优先处理信号激活所述线程对优先处理信号对应的第二线程对,并执行处理所述第二线程对中的验证命令;
所述第二线程对中的所述验证命令执行完毕之后,所述第二线程对退出,切换回被中断的所述第一线程对继续执行所述验证命令。
7.根据权利要求1-6任一项所述的一种SoC验证方法,其特征在于,所述验证命令为一种命令或多种命令的组合。
8.一种SoC验证装置,其特征在于,所述装置包括:
验证数据获取模块,用于调用验证命令,从数据总线上获取验证数据;
验证结果获取模块,用于将所述验证命令发送至代理线程,使所述代理线程通过交互地址读取所述验证数据,并调用所述验证命令对应的处理函数对所述验证数据执行处理,得到验证结果;其中,所述交互地址为控制线程和所述代理线程之间交互时,占用的与所述数据总线宽度对齐的地址,所述控制线程和所述代理线程组成至少一个线程对数据总线。
9.一种计算机设备,所述计算机设备包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现如权利要求1-7任一项所述的SoC验证方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的SoC验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211254616.2A CN115328720B (zh) | 2022-10-13 | 2022-10-13 | SoC验证方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211254616.2A CN115328720B (zh) | 2022-10-13 | 2022-10-13 | SoC验证方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115328720A true CN115328720A (zh) | 2022-11-11 |
CN115328720B CN115328720B (zh) | 2023-01-17 |
Family
ID=83914135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211254616.2A Active CN115328720B (zh) | 2022-10-13 | 2022-10-13 | SoC验证方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115328720B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116306407A (zh) * | 2023-05-19 | 2023-06-23 | 太初(无锡)电子科技有限公司 | 片上网络noc的验证方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120036509A1 (en) * | 2010-08-06 | 2012-02-09 | Sonics, Inc | Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads |
US20150317182A1 (en) * | 2014-05-05 | 2015-11-05 | Google Inc. | Thread waiting in a multithreaded processor architecture |
CN114281632A (zh) * | 2021-11-17 | 2022-04-05 | 北京智芯微电子科技有限公司 | 用于在SoC验证中初始化Romcode的方法及装置 |
CN114780422A (zh) * | 2022-04-29 | 2022-07-22 | 深圳云豹智能有限公司 | 代码验证系统和代码验证方法 |
CN115146568A (zh) * | 2022-09-01 | 2022-10-04 | 南京芯驰半导体科技有限公司 | 一种基于uvm的芯片验证系统及验证方法 |
-
2022
- 2022-10-13 CN CN202211254616.2A patent/CN115328720B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120036509A1 (en) * | 2010-08-06 | 2012-02-09 | Sonics, Inc | Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads |
US20150317182A1 (en) * | 2014-05-05 | 2015-11-05 | Google Inc. | Thread waiting in a multithreaded processor architecture |
CN114281632A (zh) * | 2021-11-17 | 2022-04-05 | 北京智芯微电子科技有限公司 | 用于在SoC验证中初始化Romcode的方法及装置 |
CN114780422A (zh) * | 2022-04-29 | 2022-07-22 | 深圳云豹智能有限公司 | 代码验证系统和代码验证方法 |
CN115146568A (zh) * | 2022-09-01 | 2022-10-04 | 南京芯驰半导体科技有限公司 | 一种基于uvm的芯片验证系统及验证方法 |
Non-Patent Citations (1)
Title |
---|
ZHOU KAIDI: "SoC 验证是个啥?", 《HTTPS://WWW.ZHIHU.COM/QUESTION/26071598》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116306407A (zh) * | 2023-05-19 | 2023-06-23 | 太初(无锡)电子科技有限公司 | 片上网络noc的验证方法、装置、设备和存储介质 |
CN116306407B (zh) * | 2023-05-19 | 2023-08-18 | 太初(无锡)电子科技有限公司 | 片上网络noc的验证方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115328720B (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Basu et al. | Choreography conformance via synchronizability | |
US9015667B2 (en) | Fuzz testing of asynchronous program code | |
CN106776280B (zh) | 可配置性能测试装置 | |
CN115328720B (zh) | SoC验证方法、装置、设备及存储介质 | |
CN103995778A (zh) | 一种基于事件和动作的脚本文件生成方法及其装置 | |
CN109739700B (zh) | 一种接口测试方法和装置 | |
CN109117201A (zh) | 一种程序退出的方法及相关设备 | |
Pathak et al. | Enabling automatic offloading of resource-intensive smartphone applications | |
Braberman et al. | Verification of real-time designs: Combining scheduling theory with automatic formal verification | |
Zhang et al. | A spin-based approach for checking OSEK/VDX applications | |
CN110347735A (zh) | 配置化的数据转发异常补处理方法、装置及可读存储介质 | |
CN109783837A (zh) | 仿真设备、仿真系统、仿真方法和仿真程序 | |
Zhang et al. | Verifying OSEK/VDX automotive applications: A Spin‐based model checking approach | |
CN107783817A (zh) | 处理器的模拟方法、功能模拟器、性能模拟器和模拟系统 | |
CN114024871B (zh) | 一种芯片验证方法、系统、计算机设备及可读存储介质 | |
CN116204289A (zh) | 进程数据处理方法、终端设备及存储介质 | |
Graillat et al. | Response time analysis of dataflow applications on a many-core processor with shared-memory and network-on-chip | |
CN112559336B (zh) | 自适应调试异构计算芯片的方法、装置、系统及主板芯片 | |
Aoki | Model checking multi-task software on real-time operating systems | |
US9405658B1 (en) | Method and apparatus for debugging applications in development environments | |
Miśkowicz | Latency characteristics of event-driven task scheduler embedded in Neuron Chip | |
Artho et al. | Model-based testing of the Java network API | |
Miyauchi et al. | An Adaptive Approach for Implementing RTOS in Hardware | |
Pettersson et al. | Testing of multi-tasking real-time systems with critical sections | |
CN110187979B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |