CN114444422A - 芯片验证系统、方法及存储介质 - Google Patents
芯片验证系统、方法及存储介质 Download PDFInfo
- Publication number
- CN114444422A CN114444422A CN202210113110.3A CN202210113110A CN114444422A CN 114444422 A CN114444422 A CN 114444422A CN 202210113110 A CN202210113110 A CN 202210113110A CN 114444422 A CN114444422 A CN 114444422A
- Authority
- CN
- China
- Prior art keywords
- module
- excitation
- component
- verification
- signal
- 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.)
- Pending
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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本公开提供了一种芯片验证系统、方法及存储介质,该系统包括:测试模块包含的至少一个第一组件,用于产生控制待验模块访问存储器的第一激励信号,将第一激励信号发送给待验模块;具有直接存储器访问DMA功能的待验模块,用于生成第一激励信号对应的访问请求;并将访问请求发送给测试模块包含的第二组件;测试模块包含的至少一个第二组件,用于在接收到访问请求后,将访问请求发送给存储模块;以及接收存储模块根据访问请求进行目标操作后返回的操作信息,并将操作信息发送给验证模块;验证模块,用于根据接收到的操作信息,对待验模块进行读写结果校验,得到读写校验结果。
Description
技术领域
本公开涉及集成电路技术领域,具体而言,涉及一种芯片验证系统、方法及存储介质。
背景技术
随着芯片的集成度越来越高,多核、多级内存、多外设的片上系统(System onChip SoC,)的设计也变得越来越复杂。其中,直接存储器访问(Direct Memory Access,DMA)是SoC中经常使用的知识产权核(intellectual property core,IP),DMA的主要功能是批量搬运大规模的数据,具有独立的读写数据通路。
一般的,在芯片研发过程中,需要有IP验证工程师在IP设计工程师设计IP核时,对设计的IP核进行功能验证。因此,对DMA进行验证变得越来越重要。
发明内容
有鉴于此,本公开至少提供一种芯片验证系统、方法及存储介质。
第一方面,本公开提供了一种芯片验证系统,包括:
测试模块包含的至少一个第一组件,用于产生控制待验模块访问存储器的第一激励信号,将所述第一激励信号发送给所述待验模块;
具有直接存储器访问DMA功能的待验模块,用于生成所述第一激励信号对应的访问请求;并将所述访问请求发送给所述测试模块包含的第二组件;
所述测试模块包含的至少一个第二组件,用于在接收到所述访问请求后,将所述访问请求发送给存储模块;以及接收所述存储模块根据所述访问请求进行目标操作后返回的操作信息,并将所述操作信息发送给所述验证模块;
验证模块,用于根据接收到的所述操作信息,对所述待验模块进行读写结果校验,得到读写校验结果。
上述实施方式中,通过设置测试模块,该测试模块中包括用于模拟待验模块对应的上游设备的第一组件和模拟待验模块对应的下游设备的第二组件,通过第一组件生成第一激励信号,该第一激励信号可以用于控制待验模块访问存储模块,再待验模块通过第二组件与存储模块进行交互,使得测试模块能够获取待验模块访问存储模块后的操作信息,进而将该操作信息发送给验证模块,验证模块能够基于操作信息对待验模块进行读写结果校验,得到读写校验结果,实现了对具有DMA功能的待验模块的校验。
一种可能的实施方式中,所述系统还包括:至少一个接口模块;
所述第一组件,用于通过所述接口模块将所述第一激励信号发送给所述待验模块;
所述待验模块,用于通过所述接口模块将所述访问请求发送给所述第二组件。
一种可能的实施方式中,第一组件包括第一激励单元、第一监测单元和第一驱动单元;每个第一组件对应一个接口模块;
所述第一激励单元,用于产生第一激励信号,并将所述第一激励信号发送给所述第一驱动单元;
所述第一驱动单元,用于将所述第一激励信号通过所述第一组件对应的接口模块发送给所述待验模块;
所述待验模块,还用于生成所述第一激励信号对应的第一反馈信号;并将所述第一反馈信号通过所述第一组件对应的接口模块发送给所述第一监测单元;
所述第一监测单元,用于接收所述第一反馈信号;并基于所述第一激励信号和所述第一反馈信号进行协议校验,得到协议校验结果。
上述实施方式中,第一组件中包括第一激励单元、第一监测单元和第一驱动单元,通过第一激励单元产生第一激励信号,第一驱动单元将第一激励信号发送给待验模块,以便可以利用该第一激励信号对待验模块进行控制,实现待验模块与上游设备之间的交互模拟;同时还可以利用第一监测单元基于第一激励信号和接收到的第一反馈信号进行协议校验,得到协议校验结果,实现对上游设备与待验模块之间的交互的校验,丰富了待验模块的校验内容,提高了校验效果。
一种可能的实施方式中,第一组件中的第一激励单元,用于产生用于配置所述待验模块属性的第二激励信号,并将所述第二激励信号发送给所述第一组件中的第一驱动单元;
所述第一驱动单元,用于将所述第二激励信号通过所述第一组件对应的接口模块发送给所述待验模块;
所述待验模块,还用于基于所述第二激励信号,生成所述第二激励信号对应的第二反馈信号;并将所述第二反馈信号通过所述第一组件对应的接口模块发送给所述第一组件中的第一监测单元;
所述第一监测单元,用于基于接收到的所述第二激励信号和所述第二反馈信号进行协议校验,得到协议校验结果。
上述实施方式中,第一组件中的第一激励单元可以产生第二激励信号,该第二激励信号能够配置待验模块的属性,比如配置待验模块的内部寄存器等,将第二激励信号通过该第一组件中的第一驱动单元发送给待验模块,实现了对待验模块的属性配置,通过第一组件模拟上游设备的功能,完成与待验模块之间的多种交互。并通过第一监测单元接收待验模块生成的第二反馈信号,基于第二激励信号和第二反馈信号进行协议校验,得到协议校验结果,丰富了待验模块的校验内容,实现了利用第一组件对待验模块进行较详细的校验,提高校验效果。
一种可能的实施方式中,所述待验模块,还用于响应于所述第二激励信号进行属性调整操作,生成属性调整结果;并将所述属性调整结果通过所述第一组件对应的接口模块发送给所述第一监测单元;
所述第一监测单元,用于将接收到的所述属性调整结果发送给所述验证模块;
所述验证模块,用于根据接收到的所述属性调整结果,对所述待验模块进行属性配置校验,得到配置校验结果。
上述实施方式中,第一监测单元将接收到的属性调整结果发送给验证模块,验证模块能够根据接收到的属性调整结果,对待验模块进行属性配置校验,得到配置校验结果,即检测待验模块是否能够根据上游设备下发的信号进行相应的属性配置,实现对待验模块与上游设备交互的验证。
一种可能的实施方式中,第二组件包括第二激励单元、第二监测单元和第二驱动单元;每个第二组件对应一个接口模块;
所述待验模块,用于通过所述接口模块将所述访问请求发送给第二组件的第二监测单元;
所述第二激励单元,用于产生第三激励信号,将所述第三激励信号发送给所述第二驱动单元;
所述第二驱动单元,用于接收所述第三激励信号、和所述第二监测单元发送的所述访问请求,并响应于第三激励信号,将所述访问请求发送给所述存储模块;以及接收所述存储模块返回的所述操作信息,将所述操作信息发送给所述第二监测单元;
所述第二监测单元,用于将接收到的所述访问请求发送给所述第二驱动单元;并将接收到的所述操作信息发送给所述验证模块;以及基于所述访问请求和所述操作信息进行协议校验,得到协议校验结果。
上述实施方式中,第二组件中包括第二激励单元、第二监测单元和第二驱动单元,通过第二激励单元产生第三激励信号,并将第三激励信号发送给第二驱动单元以控制第二驱动单元工作;在待验模块通过接口模块将访问请求发送给第二监测单元之后,第二监测单元可以将访问请求发送给第二驱动单元,第二驱动单元响应于第三激励信号,将访问请求发送给存储模块,实现待验模块对存储模块的访问。第二监测单元还可以基于接收到的访问请求和操作信息进行协议校验,得到协议校验结果,实现对下游设备与待验模块之间的交互的校验,丰富了待验模块的校验内容,提高了校验效果。
一种可能的实施方式中,所述系统还包括:虚拟序列模块;所述虚拟序列模块包括第一组件对应的第一获取单元、和第二组件对应的第二获取单元;
所述虚拟序列模块,用于通过所述第一获取单元,获取所述第一组件中第一激励单元所需的第一激励指令;通过所述第二获取单元,获取所述第二组件中第二激励单元所需的第二激励指令;
所述第一组件中的第一激励单元,用于调用所述虚拟序列模块,确定与所述第一激励单元匹配的第一激励指令,并基于所述第一激励指令,产生第一激励信号或第二激励信号;
所述第二组件中的第二激励单元,用于调用所述虚拟序列模块,确定与所述第二激励单元匹配的第二激励指令,并基于所述第二激励指令,产生第三激励信号。
上述实施方式中,通过设置虚拟序列模块,利用虚拟序列模块中的第一获取单元获取第一激励单元所需的第一激励指令、和利用第二获取单元获取第二激励单元所需的第二激励指令,通过虚拟序列模块便于对各个激励指令进行配置,以便为后续生成第一激励信号、第二激励信号、第三激励信号提供数据支持。
一种可能的实施方式中,所述系统还包括:信号检测模块;所述信号检测模块与所述验证模块相连、以及通过所述接口模块与所述待验模块相连;
所述信号检测模块,用于通过所述接口模块从所述待验模块中获取所述待验模块产生的至少一个内部信号;并将所述至少一个内部信号发送给所述验证模块;其中,所述内部信号包括:在对所述待验模块进行验证的过程中,所述待验模块内部的子模块产生的、用于在所述子模块上进行传输的信号;
所述验证模块,用于基于接收到的所述至少一个内部信号,对所述待验模块进行运行机制校验,得到机制校验结果。
上述实施方式中,由于待验模块的内部信号是在对待验模块进行验证的过程中,待验模块内部的子模块产生的、用于在子模块上进行传输的信号,该内部信号是无法被上游设备或下游设备获取到,进而无法对内部信号进行检验。因此,可以设置信号检测模块,利用信号检测模块获取待验模块产生的内部信号,并将该内部信号发送给验证模块,使得验证模块能够基于接收到的至少一个内部信号对待验模块进行运行机制校验,得到机制校验结果,待验模块的校验内容较为丰富,校验结果更详细,校验效果较好。
一种可能的实施方式中,所述存储模块的数量与所述第二组件的数量相匹配,每个第二组件对应一个存储模块;
所述第二组件,用于将所述访问请求发送给所述第二组件对应的所述存储模块。
上述实施方式中,存储模块的数量可以为一个,也可以为多个,在存储模块的数量为多个时,可以使用第二组件将访问请求发送给第二组件对应的存储模块,使得对应存储模块进行目标操作,存储模块的设置和访问较为灵活。
以下方法等的效果描述参见上述系统的说明,这里不再赘述。
第二方面,本公开提供了一种芯片验证方法,用于对芯片中的待验模块进行校验,包括:
产生控制所述待验模块访问存储器的第一激励信号;
将所述第一激励信号发送至所述待验模块,通过所述待验模块生成所述第一激励信号对应的访问请求;
接收所述访问请求,将所述访问请求发送给存储模块,通过所述存储模块在根据接收到的所述访问请求进行目标操作后,生成操作信息;
接收所述操作信息,并将所述操作信息发送给验证模块;通过所述验证模块根据接收到的所述操作信息,对所述待验模块进行读写结果校验,得到读写校验结果。
第三方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第二方面所述的芯片验证方法的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种芯片验证系统的架构示意图;
图2示出了本公开实施例所提供的另一种芯片验证系统的架构示意图;
图3示出了本公开实施例所提供的另一种芯片验证系统的架构示意图;
图4示出了本公开实施例所提供的一种芯片验证方法的流程示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
随着芯片的集成度越来越高,多核、多级内存、多外设的片上系统(System onChip SoC,)的设计也变得越来越复杂。其中,直接存储器访问(Direct Memory Access,DMA)是SoC中经常使用的知识产权核(intellectual property core,IP),DMA的主要功能是批量搬运大规模的数据,具有独立的读写数据通路。
在芯片研发过程中,需要有IP验证工程师在IP设计工程师设计IP核时,对设计的IP核进行功能验证。
基于此,本公开实施例提供了一种芯片验证系统、方法及存储介质;通过设置测试模块,该测试模块中包括用于模拟待验模块对应的上游设备的第一组件和模拟待验模块对应的下游设备的第二组件,通过第一组件生成第一激励信号,该第一激励信号可以用于控制待验模块访问存储模块,再待验模块通过第二组件与存储模块进行交互,使得测试模块能够获取待验模块访问存储模块后的操作信息,进而将该操作信息发送给验证模块,验证模块能够基于操作信息对待验模块进行读写结果校验,得到读写校验结果,实现了对具有DMA功能的待验模块的校验。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
参见图1所示,为本公开实施例所提供的芯片验证系统的架构示意图,该系统包括:具有直接存储器访问DMA功能的待验模块101、测试模块102、存储模块103、验证模块104;其中,所述测试模块102分别与所述验证模块104和所述存储模块103、所述待验模块101相连;所述测试模块102包括第一组件121、和第二组件122。
其中,第一组件121能够实现待验模块对应的上游设备所具有的功能;第二组件122能够实现待验模块对应的下游设备所具有的功能。
第一组件121,用于产生控制待验模块访问存储器的第一激励信号,将第一激励信号发送给待验模块101。
待验模块101,用于生成第一激励信号对应的访问请求;并将访问请求发送给第二组件122。
第二组件122,用于在接收到访问请求后,将访问请求发送给存储模块103;以及接收存储模块103返回的操作信息,并将操作信息发送给验证模块104;
存储模块103,用于根据接收到的访问请求进行目标操作,在操作完成后生成操作信息,并将操作信息发送给第二组件122。其中,目标操作包括读操作和/或写操作;
验证模块104,用于根据接收到的操作信息,对待验模块101进行读写结果校验,得到读写校验结果。
待验模块101可以为具有DMA功能的模块,即通过该芯片验证系统可以对DMA的至少一种功能进行核验,确定设计的DMA是否能够实现预设功能。比如可以对DMA的搬运数据的功能进行验证等。
存储模块103可以为具有存储数据功能的模块,用于模拟真正的存储器,通过设置存储模块,以便测试模块能够将待验模块的访问请求发送给存储模块,以验证待验模块是否能够对存储模块进行读写操作、以及读写操作的结果是否正确等。
示例性的,存储模块的存储空间容量、地址位宽、数据位宽等信息,可以根据待验模块的需要进行设置。其中,在创建了存储模块之后,可以按照设置的初始化模式对存储模块进行初始化操作,使得存储模块中的每个存储地址处对应一个初始值。其中,初始化模式可以根据需要进行设置,比如初始化模式可以包括:存储地址与存储数据一致的第一初始化模式,比如,在存储地址为01时,对应的存储数据(初始值)也为01;赋0的第二初始化模式,比如将各个存储地址的存储数据(初始值)均设置为0;赋1的第三初始化模式,比如将各个存储地址的存储数据均设置为1等等。
验证模块104可以将待验模块对存储模块的读操作和/或写操作的操作结果进行验证。比如,比对读操作后读取到的数据与预设存储地址存储的预设数据是否匹配、比对写操作后预设存储地址处写入的数据与预设数据是否匹配等。
测试模块102为用于对待验模块的功能进行测试的模块。比如,测试模块可以模拟待验模块的上游设备,在上游设备将信号输入至待验模块之后,测试待验模块的响应是否与预设响应相匹配;以及测试模块还可以模拟待验模块的下游设备,待验模块将输出信号给到测试模块,通过测试模块和验证模块确定该输出信号是否能够实现预设功能。在待验模块为DMA时,DMA对应的上游设备比如可以为中央处理器(Central Processing Unit,CPU);DMA对应的下游设备比如可以为内部存储器Memory。
其中,测试模块102包括至少一个用于模拟待验模块对应的上游设备的第一组件121、和至少一个用于模拟待验模块对应的下游设备的第二组件122。
具体实施时,第一组件121可以产生控制待验模块访问存储器的第一激励信号。该第一激励信号用于模拟上游设备输出的、控制待验模块访问存储器的输出信号。比如,在上游设备要控制待验模块进行数据读取操作时,该第一激励信号可以为控制待验模块进行读取操作的信号。
第一组件121将第一激励信号通过接口模块发送给待验模块。待验模块101在接收到第一激励信号后,响应于第一激励信号,生成第一激励信号对应的访问请求。该访问请求可以指示执行的操作类型、访问地址、或写入的预设数据等,比如该访问请求可以指示读取第一地址、指示将预设数据写入第二地址等。再通过接口模块将访问请求发送给第二组件122。
同时,待验模块101还可以生成第一激励信号对应的第一反馈信号,该第一反馈信号可以表征待验模块成功接收到的第一激励信号,并将该第一反馈信号返回给第一组件121。
第二组件122在接收到访问请求后,可以将访问请求发送给存储模块103。存储模块103在接收到访问请求后,根据接收到的访问请求进行目标操作。比如,在访问请求指示读取第一地址时,存储模块执行读取第一地址的操作,得到第一存储地址的存储数据。并可以根据存储数据生成操作信息。该操作信息中可以包括读取到的存储数据、和读取成功的反馈信号。再比如,在访问请求指示将预设数据写入第二地址时,存储模块执行写入操作;在写入操作完成之后,生成指示写入操作成功的反馈信号;并基于指示写入成功的反馈信号,生成操作信息,即该操作信息中包括写入成功的反馈信号。进而存储模块将生成的操作信息发送给第二组件122。
第二组件122在接收到操作信息之后,可以将操作信息发送给验证模块104。同时还可以将操作信息发送给待验模块101,以便通知待验模块101访问请求执行完成。
验证模块在接收到操作信息之后,可以根据接收到的操作信息,对待验模块进行读写结果校验。比如,在存储模块执行读操作成功,并生成操作信息之后,验证模块可以确定接收到的操作信息中读取到的存储数据是否与要读取的真实数据一致,若一致,则读写校验结果为读功能通过。比如,第一激励信号指示待验模块读取存储模块中第一地址上的存储数据,该存储模块中第一地址上的存储数据为01,若操作信息中读取到的数据为01,则确定读取到的存储数据与要读取的真实数据一致。
一般的,验证模块可以预先将验证的写入数据和写入地址记录至目标位置(比如记录至虚拟的数据结构中),在存储模块执行写操作成功,并生成操作信息后,验证模块在接收到操作信息之后,根据预先存储的写入地址,从存储模块中读取写入地址对应的存储数据,若读取到的存储数据与预先存储的写入数据相匹配,则确定读写校验结果为写功能通过。
一种可选实施方式中,参见图2所示,所述系统还包括:至少一个接口模块105。第一组件121用于通过接口模块105将第一激励信号发送给待验模块101;待验模块101用于通过接口模块105将访问请求发送给第二组件122。
实施时,第一组件可以通过接口模块与待验模块向量,第二组件可以通过接口模块与待验模块相连。第一组件在产生第一激励信号之后,可以通过接口模块将第一激励信号发送给待验模块。待验模块在生成第一激励信号对应的访问请求之后,通过接口模块将访问请求发送给第二组件。
一种可选实施方式中,所述存储模块的数量与所述第二组件的数量相匹配,每个第二组件122对应一个存储模块;比如,若存在n个第二组件,则可以设置n个存储模块。所述第二组件122,用于将所述访问请求发送给所述第二组件对应的所述存储模块103。
实施时,在第二组件为多个时,存储模块的数量可以为一个或多个。在存储模块的数量为一个时,多个第二组件可以共享一个存储模块的存储空间,即多个第二组件可以将访问请求发送给同一个存储模块,以便该存储模块基于访问请求进行读写操作。在存储模块的数量可以为多个,存储模块的数量可以与第二组件的数量相匹配,即使得每个第二组件对应一个存储模块,不同的第二组件对应不同的存储模块。每个第二组件可以将接收到的访问请求发送给该第二组件对应的存储模块,以便该第二组件对应的存储模块基于访问请求进行目标操作。
上述实施方式中,存储模块的数量可以为一个,也可以为多个,在存储模块的数量为多个时,可以使用第二组件将访问请求发送给第二组件对应的存储模块,使得对应存储模块进行目标操作,存储模块的设置和访问较为灵活。
一种可选实施方式中,参见图2所示,所述系统还包括:虚拟序列模块106;其中,所述虚拟序列模块106包括第一组件对应的第一获取单元161、和第二组件对应的第二获取单元162。
所述虚拟序列模块106,用于通过所述第一获取单元161,获取所述第一组件中第一激励单元所需的第一激励指令;通过所述第二获取单元162,获取所述第二组件中第二激励单元所需的第二激励指令。
实施时,第一获取单元的数量可以与第一组件的数量相匹配、以及第二获取单元的数量可以与第二组件的数量相匹配。每个第一组件对应一个第一获取单元、和每个第二组件对应一个第二获取单元。比如在第一组件为m个、第二组件为n个时,虚拟序列模块中可以包括m个第一获取单元、n个第二获取单元,第一组件与第一获取单元一一对应、第二组件与第二获取单元一一对应。即针对任一个第一组件的第一激励单元,虚拟序列模块106通过该第一组件对应的第一获取单元161,获取该第一激励单元所需的第一激励指令。
其中,第一激励指令和第二激励指令不同,不同的激励指令,用于生成不同功能的激励信号。比如,第一激励单元1可以根据第一激励指令1生成第一激励信号,第一激励单元2可以根据第一激励指令2生成第二激励信号等。第二激励单元可以根据第二激励指令生成第三激励信号等。
上述实施方式中,通过设置虚拟序列模块,利用虚拟序列模块中的第一获取单元获取第一激励单元所需的第一激励指令、和利用第二获取单元获取第二激励单元所需的第二激励指令,通过虚拟序列模块便于对各个激励指令进行配置,以便为后续生成第一激励信号、第二激励信号、第三激励信号提供数据支持。
一种可选实施方式中,第一组件121包括第一激励单元1211、第一监测单元1212和第一驱动单元1213;每个第一组件121对应一个接口模块105。
所述第一激励单元1211,用于产生第一激励信号,并将所述第一激励信号发送给所述第一驱动单元1213;
所述第一驱动单元1213,用于将所述第一激励信号通过所述第一组件对应的接口模块发送给所述待验模块;
所述待验模块101,还用于生成所述第一激励信号对应的第一反馈信号;并将所述第一反馈信号通过所述第一组件对应的接口模块发送给所述第一监测单元;
所述第一监测单元1212,用于接收所述第一反馈信号;并基于所述第一激励信号和所述第一反馈信号进行协议校验,得到协议校验结果。
实施时,第一激励单元1211可以产生第一激励信号。该第一激励单元1211可以调用虚拟序列模块106;通过虚拟序列模块106,确定与该第一激励单元1211匹配的第一激励指令。并基于该第一激励指令,产生第一激励信号。再将第一激励信号发送给第一驱动单元1213。
第一驱动单元1213一般进行数据传输,即将接收到的数据传输给待验模块101。比如,第一驱动单元1213可以将第一激励信号通过第一组件121对应的接口模块105发送给待验模块101。
待验模块101在接收到第一激励信号后,可以响应于第一激励信号,生成第一激励信号对应的访问请求,以及还可以响应于第一激励信号,生成第一激励信号对应的第一反馈信号。将访问请求通过第二组件对应的接口模块发送给第二组件对应的第二监测单元,以及将第一反馈信号通过第一组件121对应的接口模块发送给第一监测单元1212。
第一监测单元1212,在接收到第一反馈信号之后,可以基于第一激励信号和第一反馈信号进行协议校验,得到协议校验结果。比如可以确定第一激励信号与第一反馈信号之间是否符合待验模块对应的接口协议。在待验模块使用总线协议(Advanced eXtensibleInterface,AXI)作为接口时,可以确定第一激励信号与第一反馈信号之间是否符合AXI的协议规范要求,比如,可以根据AXI的协议规范要求,确定待验模块应生成的第一激励信号对应的基准信号,若第一反馈信号与该基准信号相匹配,则确定符合协议规范要求;若符合,则确定协议校验结果为协议校验通过。
上述实施方式中,第一组件中包括第一激励单元、第一监测单元和第一驱动单元,通过第一激励单元产生第一激励信号,第一驱动单元将第一激励信号发送给待验模块,以便可以利用该第一激励信号对待验模块进行控制,实现待验模块与上游设备之间的交互模拟;同时还可以利用第一监测单元基于第一激励信号和接收到的第一反馈信号进行协议校验,得到协议校验结果,实现对上游设备与待验模块之间的交互的校验,丰富了待验模块的校验内容,提高了校验效果。
一种可选实施方式中,第一组件中的第一激励单元1211,用于产生用于配置所述待验模块属性的第二激励信号,并将所述第二激励信号发送给所述第一组件中的第一驱动单元1213;
所述第一驱动单元1213,用于将所述第二激励信号通过所述第一组件对应的接口模块发送给所述待验模块;
所述待验模块101,还用于基于所述第二激励信号,生成所述第二激励信号对应的第二反馈信号;并将所述第二反馈信号通过所述第一组件对应的接口模块发送给所述第一组件中的第一监测单元1212;
所述第一监测单元1212,用于基于接收到的所述第二激励信号和所述第二反馈信号进行协议校验,得到协议校验结果。
具体的,不同的激励信号为不同的组件生成的,即第一组件的数量可以为多个,实施时,多个第一组件中的第一组件1中的第一激励单元1产生第一激励信号、第一组件2中的第一激励单元2产生第二激励信号等。
实施时,第一组件121中的第一激励单元1211可以产生用于配置待验模块属性的第二激励信号,以便利用第二激励信号对待验模块进行属性配置,验证待验模块是否能够响应于第二激励信号进行属性更新。
其中,第一组件中的第一激励单元通过调用该第一组件对应的虚拟序列模块,利用虚拟序列模块确定与第一激励单元匹配的第一激励指令,并基于第一激励指令,生成第二激励信号。
不同的激励指令生成不同的激励信号,比如第一组件1中的第一激励单元1通过基于对应的第一激励指令1产生第一激励信号,第一组件2中的第一激励单元2通过基于对应的第一激励指令2产生第二激励信号。即在第一激励指令1为访问存储器的指令时,基于该第一激励指令1,产生第一激励信号;在第一激励指令2为配置待验模块属性的指令时,基于该第一激励指令2,产生第二激励信号。
第一激励单元在产生第二激励信号后,将第二激励信号发送给该第一组件中的第一驱动单元。第一驱动单元将接收到的第二激励信号通过第一组件对应的接口模块发送给待验模块。
待验模块基于第二激励信号,生成第二激励信号对应的第二反馈信号,并将第二反馈信号通过第一组件对应的接口模块发送给第一组件中的第一监测单元。第一监测单元根据接收到的第二反馈信号和第二激励信号,确定信号变化是否符合协议规范要求,若符合,确定待验模块的属性配置通过,即协议校验结果为校验通过。
上述实施方式中,第一组件中的第一激励单元可以产生第二激励信号,该第二激励信号能够配置待验模块的属性,比如配置待验模块的内部寄存器等,将第二激励信号通过该第一组件中的第一驱动单元发送给待验模块,实现了对待验模块的属性配置,通过第一组件模拟上游设备的功能,完成与待验模块之间的多种交互。并通过第一监测单元接收待验模块生成的第二反馈信号,基于第二激励信号和第二反馈信号进行协议校验,得到协议校验结果,丰富了待验模块的校验内容,实现了利用第一组件对待验模块进行较详细的校验,提高校验效果。
一种可能的实施方式中,所述待验模块,还用于响应于所述第二激励信号进行属性调整操作,生成属性调整结果;并将所述属性调整结果通过所述第一组件对应的接口模块发送给所述第一监测单元;
所述第一监测单元,用于将接收到的所述属性调整结果发送给所述验证模块;
所述验证模块,用于根据接收到的所述属性调整结果,对所述待验模块进行属性配置校验,得到配置校验结果。
上述实施方式中,第一监测单元将接收到的属性调整结果发送给验证模块,验证模块能够根据接收到的属性调整结果,对待验模块进行属性配置校验,得到配置校验结果,即检测待验模块是否能够根据上游设备下发的信号进行相应的属性配置,实现对待验模块与上游设备交互的验证。
实施时,待验模块在接收到第二激励信号之后,还可以响应于该第二激励信号进行属性调整操作,生成属性调整结果。再可以将该属性调整结果通过第一组件对应的接口模块发送给第一监测单元。进而第一监测单元可以将属性调整结果发送给验证模块。验证模块根据接收到的属性调整结果,对待验模块进行属性配置校验,得到配置校验结果。
比如,所第二激励信号用于对待验模块的寄存器进行配置,验证模块可以根据接收到的属性调整结果,和预先存储的第二激励信号,确定待验模块的寄存器是否进行了配置,若是,则确定配置校验结果为校验通过;若否,则确定配置校验结果为校验未通过。
一种可选实施方式中,第二组件122包括第二激励单元1221、第二监测单元1222和第二驱动单元1223;每个第二组件122对应一个接口模块105;
所述待验模块101,用于通过所述接口模块105将所述访问请求发送给第二组件的第二监测单元1222;
所述第二激励单元1221,用于产生所述第三激励信号,并将所述第三激励信号发送给所述第二驱动单元1223;
所述第二驱动单元1223,用于接收所述第三激励信号、和所述第二监测单元发送的所述访问请求,并响应于第三激励信号,将所述访问请求发送给所述存储模块;以及接收所述存储模块返回的所述操作信息,将所述操作信息发送给所述第二监测单元;
所述第二监测单元1222,用于将接收到的所述访问请求发送给所述第二驱动单元1223;并将接收到的所述操作信息发送给所述验证模块;以及基于所述访问请求和所述操作信息进行协议校验,得到协议校验结果。
待验模块101在响应于第一激励信号生成访问请求之后,可以将访问请求通过接口模块105发送给第二组件的第二监测单元1222。第二监测单元1222将访问请求发送给第二驱动单元1223。以及第二激励单元1221可以产生第三激励信号,并将第三激励信号发送给第二驱动单元1223。
一般的,第二激励单元通过调用虚拟序列模块106,利用虚拟序列模块106确定第二激励单元1221匹配的第二激励指令;进而该第二激励单元能够基于匹配的第二激励指令产生第三激励信号。
第二驱动单元1223响应于接收到的第三激励信号,将访问请求发送给存储模块。存储模块根据访问请求进行目标操作,并在目标操作后生成操作信息。存储模块可以将操作信息发送给第二驱动单元1223。第二驱动单元1223将接收到的操作信息发送给第二监测单元1222,第二监测单元1222可以基于访问请求和操作信息进行协议校验,得到协议校验结果。即第二监测单元可以基于访问请求、和操作信息中的指示目标操作成功的反馈信号,确定信号变化是否符合协议规范要求,若符合,则确定协议校验结果为协议校验通过。
上述实施方式中,第二组件中包括第二激励单元、第二监测单元和第二驱动单元,通过第二激励单元产生第三激励信号,并将第三激励信号发送给第二驱动单元以控制第二驱动单元工作;在待验模块通过接口模块将访问请求发送给第二监测单元之后,第二监测单元可以将访问请求发送给第二驱动单元,第二驱动单元响应于第三激励信号,将访问请求发送给存储模块,实现待验模块对存储模块的访问。第二监测单元还可以基于接收到的访问请求和操作信息进行协议校验,得到协议校验结果,实现对下游设备与待验模块之间的交互的校验,丰富了待验模块的校验内容,提高了校验效果。
一种可选实施方式中,所述系统还包括:信号检测模块107;所述信号检测模块107与所述验证模块104相连、以及通过所述接口模块与所述待验模块101相连;
所述信号检测模块107,用于通过接口模块从所述待验模块101中获取所述待验模块101产生的至少一个内部信号;并将所述至少一个内部信号发送给所述验证模块104;其中,所述内部信号包括:在对所述待验模块进行验证的过程中,所述待验模块内部的子模块产生的、用于在所述子模块上进行传输的信号;
所述验证模块104,用于基于接收到的所述至少一个内部信号,对所述待验模块104进行运行机制校验,得到机制校验结果。
实施时,信号检测模块107能够通过接口模块从待验模块101中获取待验模块产生的至少一个内部信号;并将至少一个内部信号发送给验证模块104。其中,内部信号包括:在对待验模块进行验证的过程中,待验模块内部的子模块产生的、用于在子模块上进行传输的信号。该内部信号一般无法被接口模块捕捉到。
验证模块104可以根据接收到的至少一个内部信号,对待验模块进行运行机制校验,得到机制校验结果。示例性的,DMA(待验模块)除了搬运数据以外,还可以支持多用户仲裁机制,比如在待验模块101存在m个上游设备时,可以通过配置寄存器的方式,对m个上游设备进行优先级的配置。该内部信号可以表征待验模块当前处理的第一激励信号所属的上游设备。验证模块在接收到多个内部信号之后,可以根据多个内部信号确定待验模块的仲裁机制,若确定的仲裁机制与预设仲裁机制一致,则确定机制校验结果为校验通过。
上述实施方式中,由于待验模块的内部信号是在对待验模块进行验证的过程中,待验模块内部的子模块产生的、用于在子模块上进行传输的信号,该内部信号是无法被上游设备或下游设备获取到,进而无法对内部信号进行检验。因此,可以设置信号检测模块,利用信号检测模块获取待验模块产生的内部信号,并将该内部信号发送给验证模块,使得验证模块能够基于接收到的至少一个内部信号对待验模块进行运行机制校验,得到机制校验结果,待验模块的校验内容较为丰富,校验结果更详细,校验效果较好。
以待验模块使用总线协议AXI为例对芯片验证系统进行说明。参见图3所示,该芯片验证系统可以为具有阶层hierarchy的层次结构,通过设计为层级结构便于对该芯片验证系统进行管理和调试,使得芯片验证系统的性能较佳。在待验模块使用AXI作为接口时,可以使用通用验证方法学(Universal Verification Methodology,UVM)和AXI的验证知识产权核(Verification IP,VIP)生成芯片验证系统。其中,芯片验证系统中包括AXI-VIP提供的测试平台testbench环境和用于作为testbench环境的输入激励指令的测试案例testcase。比如,该testcase可以包括:例化AXI-VIP提供的采样序列sample sequence得到的激励指令、自定义的激励指令等。
首先,芯片验证系统中可以包括顶层环境(top environment,top-env),其中,该顶层环境为芯片验证系统的主要组成部分。该top-env需要通过接口模块与待验模块(Device Under Test,DUT)进行信号交互。在DUT的对外接口为AXI标准接口时,可以在AXI-VIP的配置组件中对所有AXI接口直接进行主从模式配置,按照接口模块与DUT的关系,可以将接口模块区分为主设备接口master_if和从设备接口slave_if。即第一组件与DUT之间的接口模块为主设备接口master_if、第二组件与DUT之间的接口模块为从设备接口slave_if。
一般主设备接口master_if可以作为DUT指令的来源,负责分配给DUT工作;第二组件通过从设备接口slave_if与DUT进行交互,对DMA这个模块来说,第二组件通过从设备接口slave_if获取访问请求后,负责与存储模块通信,以便存储模块基于访问请求进行读写操作。
图3中的顶层环境中可以包括:子环境axi_system_env,该子环境可以通过AXI-VIP产生。但在产生该子环境之前,需要基于待验模块DUT的功能确定环境配置组件,环境配置组件内部需要指定第一组件和第二组件的数量,以及还需要配置存储模块的数据位宽data_width、地址位宽addr_width、接口类型axi_interface_type等等。
比如在确定了第一组件的数量为m、和第二组件的数量为n时,AXI-VIP会自动生成n组从设备接口slave_if、n组第二组件slave_agt,以及m组主设备接口master_if、m组第一组件master_agt;使得芯片验证系统能够支持m个第一组件对DMA发起读写请求,也支持n个输出接口对存储模块进行读写操作。
第二组件slave_agt是uvm中常用的组件,其中agt为主体agent的简写,agent是验证环境的一个常用组件。由图3可知,第二组件可以包括:slave_agt[0]、slave_agt[1]、…、slave_agt[n-1]。这里,每个第二组件中可以包含:一个第二驱动单元drv(驱动driver的简写)、一个第二监测单元mon(监测monitor的简写)、一个第二激励单元sqr(激励sequencer的简写)。agent将上述三个单元封装在一起,通过将三个单元封装在一个组件中,便于对每个组件中的三个单元进行管理和调试,提高了芯片验证系统的性能。
实施时,agent的工作过程可以为:由sequencer产生激励,通过driver将激励传输到从设备接口slave_if上,DUT接收传输的激励,monitor负责监控slave_if上的信号变化,比如该信号变化可以为:DUT输出访问请求之后,接收到该访问请求对应的反馈信号和该访问请求之间的信号变化,或者还可以为接收到的激励和DUT根据该激励产生的反馈信号之间的信号变化等等。其中,在DUT对存储模块进行读写操作时,monitor可以将操作信息发送给验证模块dma_scb(scb为计分板scoreboard的简写)。
第一组件master_agt中包括:一个第一驱动单元、一个第一监测单元、一个第一激励单元。具体的,第一组件中各个单元的工作流程可以参考第二组件的描述,此处不在赘述。第一组件为负责模拟主设备与DMA通信的组件,比如用于配置DMA内部的寄存器,或者用于接收来自上一级模块的AXI信号等,故第一组件能够实现主设备的行为。
顶层环境中可以包括:存储模块axi_slave_mem,该组件负责模拟真正的存储单元,也就是DMA(待验模块)的下游设备。如果有多个slave_agt时,存储模块axi_slave_mem的数量可以为一个或多个,在存储模块为一个时,多个slave_agt可以共享同一块axi_slave_mem,即对同一个存储模块进行读写操作;在存储模块为多个时,每个slave_agt可以对应一个存储模块,即每个slave_agt对与之匹配的存储模块进行读写操作。
实施时,slave_agt中的driver会把访问请求传输到axi_slave_mem中,使得存储模块根据访问请求进行读写操作。
一般的,创建存储模块axi_slave_mem时需要指定存储空间的大小、地址位宽、数据位宽等。在创建完成之后,可以使用AXI-VIP内的初始化模式对这个组件进行初始化操作,使得存储模块axi_slave_mem中的每个存储地址会有一个初始值。比如初始化模式可以包括:ADDR(存储地址与存储数据一致的第一初始化模式)、ZEROS(即赋0的第二初始化模式)、ONES(即赋1的第三初始化模式)等等。
顶层环境中还可以包括:验证模块dma_scb。由于DMA负责数据的搬运,也就是对存储空间进行写入和读出,并不会改变搬运的数据的值,因此验证模块dma_scb中的dma_rm(rm为参考模型reference model的简写)只需要负责将DUT的输入数据与输出数据进行比对,对DUT的读写结果进行校验,得到读写校验结果。或者,验证模块dma_scb还可以对待验模块的配置结果进行校验,即校验待验模块是否能够根据接收到的激励信号进行属性配置。具体的,验证模块的工作过程可参考上述描述,此处不在详述。
一般的,该验证模块dma_scb中的dma_rm还可以在接收到至少一个内部信号后;基于至少一个内部信号进行运行机制校验,实现对DUT进行更加详细的校验。
顶层环境中还可以包括:信号检测模块user_env。该组件与DUT之间的接口是user_intf,该接口user_intf可以是一个自定义的扩展组件,该接口user_intf所使用的接口类型可以根据需要进行设置,比如,可以为用户自定义的非标准协议等。实施时,用户可以根据项目需要采样内部信号,即通过接口user_intf自定义需要监测的内部信号。
user_agt为信号检测模块user_env的组件,信号检测模块user_env的功能可以通过组件user_agt完成。user_agt中包括monitor(简写mon)单元。通过使用mon单元获取待验模块的内部信号,并将该内部信号发送给dma_scb中的dma_rm进行预测和结果比对。其中,monitor获取的内部信号的类型可以根据需要自定义。
芯片验证系统中还可以包括虚拟序列模块dma_vsqr(虚拟化序列virtualsequencer的简写)。该虚拟序列模块中包括每个第一组件的第一激励单元对应的第一获取单元和每个第二组件的第二激励单元对应的第二获取单元。即第一获取单元axi_master_sqr[0]、…、axi_master_sqr[m-1];第二获取单元axi_slave_sqr[0]、…、axi_slave_sqr[n-1]。
dma_vseq(虚拟化序列virtual sequence的简写)中包括每个第一激励单元所需的第一激励指令、和每个第二激励单元所需的第二激励指令;和/或,还可以包括根据需要自定义生成的激励指令user_seq。该第一激励指令和第二激励指令可以包括:AXI-VIP中的基础指令、根据需要自定义的激励指令、根据需要对AXI-VIP中的基础指令进行修改后的指令等等。
实施时,第一激励单元、第一获取单元以及第一激励指令之间是一一映射、以及第二激励单元、第二获取单元以及第二激励指令之间是一一映射。其中,在存在m个第一组件时,则存在m个第一激励单元、m个第一获取单元、m个第一激励指令,比如第0个第一组件中的第一激励单元0、与第0个第一获取单元0和第0个第一激励指令0相匹配。在存在n个第二组件时,则存在n个第二激励单元、n个第二获取单元、n个第二激励指令,比如第0个第二组件中的第二激励单元0、与第0个第二获取单元0和第0个第二激励指令0相匹配。
比如,在需要验证DUT的基础读写功能时,可以使用AXI-VIP中的axi_master_wr_rd_sequence作为第一激励指令master_seq,使用AXI-VIP中的axi_slave_mem_response_sequence作为第二激励指令slave_seq。
在需要验证地址在非对齐情况下DUT的读写功能,可以使用AXI-VIP中的axi_unaligned_write_read_sequence作为第一激励指令master_seq;使用AXI-VIP中的axi_slave_mem_response_sequence作为第二激励指令slave_seq。
在需要验证4K边界地址的DUT的读写功能时,可以使用AXI-VIP中的axi_master_directed_4kboundary_sequence作为第一激励指令master_seq;使用AXI-VIP中的axi_slave_mem_response_sequence作为第二激励指令slave_seq。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于相同的构思,本公开实施例还提供了一种芯片验证方法,参见图4所示,为本公开实施例提供的芯片验证方法的流程示意图,该方法用于对芯片中的待验模块进行校验,包括S401-S404,具体的:
S401,产生控制所述待验模块访问存储器的第一激励信号;
S402,将所述第一激励信号发送至所述待验模块,通过所述待验模块生成所述第一激励信号对应的访问请求;
S403,接收所述访问请求,将所述访问请求发送给存储模块,通过所述存储模块在根据接收到的所述访问请求进行目标操作后,生成操作信息;
S404,接收所述操作信息,并将所述操作信息发送给验证模块;通过所述验证模块根据接收到的所述操作信息,对所述待验模块进行读写结果校验,得到读写校验结果。
一种可能的实施方式中,所述将所述第一激励信号发送至所述待验模块,包括:
通过所述接口模块将所述第一激励信号发送给所述待验模块,通过所述待验模块生成所述第一激励信号对应的访问请求;通过所述接口模块将所述访问请求发送给所述第二组件。
一种可能的实施方式中,所述方法还包括:
产生第一激励信号,并将所述第一激励信号发送给第一驱动单元;
将所述第一激励信号通过所述第一组件对应的接口模块发送给所述待验模块;通过所述待验模块生成所述第一激励信号对应的第一反馈信号;并将所述第一反馈信号通过所述第一组件对应的接口模块发送给所述第一监测单元;
接收所述第一反馈信号;并基于所述第一激励信号和所述第一反馈信号进行协议校验,得到协议校验结果。
一种可能的实施方式中,所述方法还包括:
产生用于配置所述待验模块属性的第二激励信号,并将所述第二激励信号发送给第一组件中的第一驱动单元;
将所述第二激励信号通过所述第一组件对应的接口模块发送给所述待验模块;通过所述待验模块基于所述第二激励信号,生成所述第二激励信号对应的第二反馈信号;并将所述第二反馈信号通过所述第一组件对应的接口模块发送给所述第一组件中的第一监测单元;
基于接收到的所述第二激励信号和所述第二反馈信号进行协议校验,得到协议校验结果。
一种可能的实施方式中,所述方法还包括:
通过所述待验模块响应于所述第二激励信号进行属性调整操作,生成属性调整结果;并将所述属性调整结果通过所述第一组件对应的接口模块发送给所述第一监测单元;
将接收到的所述属性调整结果发送给所述验证模块;通过所述验证模块根据接收到的所述属性调整结果,对所述待验模块进行属性配置校验,得到配置校验结果。
一种可能的实施方式中,所述方法还包括:
利用所述待验模块通过所述接口模块将所述访问请求发送给第二组件的第二监测单元;
产生第三激励信号,将所述第三激励信号发送给所述第二驱动单元;
接收所述第三激励信号、和所述第二监测单元发送的所述访问请求,并响应于第三激励信号,将所述访问请求发送给所述存储模块;以及接收所述存储模块返回的所述操作信息,将所述操作信息发送给所述第二监测单元;
将接收到的所述访问请求发送给所述第二驱动单元;并将接收到的所述操作信息发送给所述验证模块;以及基于所述访问请求和所述操作信息进行协议校验,得到协议校验结果。
一种可能的实施方式中,所述方法还包括:
通过所述虚拟序列模块中的第一获取单元,获取所述第一组件中第一激励单元所需的第一激励指令;通过第二获取单元,获取所述第二组件中第二激励单元所需的第二激励指令;
调用所述虚拟序列模块,确定与所述第一激励单元匹配的第一激励指令,并基于所述第一激励指令,产生第一激励信号或第二激励信号;
调用所述虚拟序列模块,确定与所述第二激励单元匹配的第二激励指令,并基于所述第二激励指令,产生第三激励信号。
一种可能的实施方式中,所述方法还包括:
利用所述信号检测模块、通过所述接口模块从所述待验模块中获取所述待验模块产生的至少一个内部信号;并将所述至少一个内部信号发送给所述验证模块;其中,所述内部信号包括:在对所述待验模块进行验证的过程中,所述待验模块内部的子模块产生的、用于在所述子模块上进行传输的信号;
通过所述验证模块基于接收到的所述至少一个内部信号,对所述待验模块进行运行机制校验,得到机制校验结果。
一种可能的实施方式中,在存储模块的数量与所述第二组件的数量相匹配,且每个第二组件对应一个存储模块的情况下,所述将所述访问请求发送给存储模块,包括:
将所述访问请求发送给所述第二组件对应的所述存储模块。
在一些实施例中,本公开实施例提供的方法的执行过程可以参考上文系统实施例的描述内容,为了简洁,这里不再赘述。
此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的芯片验证方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的芯片验证方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种芯片验证系统,其特征在于,包括:
测试模块包含的至少一个第一组件,用于产生控制待验模块访问存储器的第一激励信号,将所述第一激励信号发送给所述待验模块;
具有直接存储器访问DMA功能的待验模块,用于生成所述第一激励信号对应的访问请求;并将所述访问请求发送给所述测试模块包含的第二组件;
所述测试模块包含的至少一个第二组件,用于在接收到所述访问请求后,将所述访问请求发送给存储模块;以及接收所述存储模块根据所述访问请求进行目标操作后返回的操作信息,并将所述操作信息发送给所述验证模块;
验证模块,用于根据接收到的所述操作信息,对所述待验模块进行读写结果校验,得到读写校验结果。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括:至少一个接口模块;
所述第一组件,用于通过所述接口模块将所述第一激励信号发送给所述待验模块;
所述待验模块,用于通过所述接口模块将所述访问请求发送给所述第二组件。
3.根据权利要求2所述的系统,其特征在于,第一组件包括第一激励单元、第一监测单元和第一驱动单元;每个第一组件对应一个接口模块;
所述第一激励单元,用于产生第一激励信号,并将所述第一激励信号发送给所述第一驱动单元;
所述第一驱动单元,用于将所述第一激励信号通过所述第一组件对应的接口模块发送给所述待验模块;
所述待验模块,还用于生成所述第一激励信号对应的第一反馈信号;并将所述第一反馈信号通过所述第一组件对应的接口模块发送给所述第一监测单元;
所述第一监测单元,用于接收所述第一反馈信号;并基于所述第一激励信号和所述第一反馈信号进行协议校验,得到协议校验结果。
4.根据权利要求3所述的系统,其特征在于,第一组件中的第一激励单元,用于产生用于配置所述待验模块属性的第二激励信号,并将所述第二激励信号发送给第一组件中的第一驱动单元;
所述第一驱动单元,用于将所述第二激励信号通过所述第一组件对应的接口模块发送给所述待验模块;
所述待验模块,还用于基于所述第二激励信号,生成所述第二激励信号对应的第二反馈信号;并将所述第二反馈信号通过所述第一组件对应的接口模块发送给所述第一组件中的第一监测单元;
所述第一监测单元,用于基于接收到的所述第二激励信号和所述第二反馈信号进行协议校验,得到协议校验结果。
5.根据权利要求4所述的系统,其特征在于,所述待验模块,还用于响应于所述第二激励信号进行属性调整操作,生成属性调整结果;并将所述属性调整结果通过所述第一组件对应的接口模块发送给所述第一监测单元;
所述第一监测单元,用于将接收到的所述属性调整结果发送给所述验证模块;
所述验证模块,用于根据接收到的所述属性调整结果,对所述待验模块进行属性配置校验,得到配置校验结果。
6.根据权利要求2~5任一所述的系统,其特征在于,第二组件包括第二激励单元、第二监测单元和第二驱动单元;每个第二组件对应一个接口模块;
所述待验模块,用于通过所述接口模块将所述访问请求发送给第二组件的第二监测单元;
所述第二激励单元,用于产生第三激励信号,将所述第三激励信号发送给所述第二驱动单元;
所述第二驱动单元,用于接收所述第三激励信号、和所述第二监测单元发送的所述访问请求,并响应于第三激励信号,将所述访问请求发送给所述存储模块;以及接收所述存储模块返回的所述操作信息,将所述操作信息发送给所述第二监测单元;
所述第二监测单元,用于将接收到的所述访问请求发送给所述第二驱动单元;并将接收到的所述操作信息发送给所述验证模块;以及基于所述访问请求和所述操作信息进行协议校验,得到协议校验结果。
7.根据权利要求1~6任一所述的系统,其特征在于,所述系统还包括:虚拟序列模块;所述虚拟序列模块包括第一组件对应的第一获取单元、和第二组件对应的第二获取单元;
所述虚拟序列模块,用于通过所述第一获取单元,获取所述第一组件中第一激励单元所需的第一激励指令;通过所述第二获取单元,获取所述第二组件中第二激励单元所需的第二激励指令;
所述第一组件中的第一激励单元,用于调用所述虚拟序列模块,确定与所述第一激励单元匹配的第一激励指令,并基于所述第一激励指令,产生第一激励信号或第二激励信号;
所述第二组件中的第二激励单元,用于调用所述虚拟序列模块,确定与所述第二激励单元匹配的第二激励指令,并基于所述第二激励指令,产生第三激励信号。
8.根据权利要求2~6任一所述的系统,其特征在于,所述系统还包括:信号检测模块;所述信号检测模块与所述验证模块相连、以及通过所述接口模块与所述待验模块相连;
所述信号检测模块,用于通过所述接口模块从所述待验模块中获取所述待验模块产生的至少一个内部信号;并将所述至少一个内部信号发送给所述验证模块;其中,所述内部信号包括:在对所述待验模块进行验证的过程中,所述待验模块内部的子模块产生的、用于在所述子模块上进行传输的信号;
所述验证模块,用于基于接收到的所述至少一个内部信号,对所述待验模块进行运行机制校验,得到机制校验结果。
9.根据权利要求1~8任一所述的系统,其特征在于,所述存储模块的数量与所述第二组件的数量相匹配,每个第二组件对应一个存储模块;
所述第二组件,用于将所述访问请求发送给所述第二组件对应的所述存储模块。
10.一种芯片验证方法,其特征在于,用于对芯片中的待验模块进行校验,包括:
产生控制所述待验模块访问存储器的第一激励信号;
将所述第一激励信号发送至所述待验模块,通过所述待验模块生成所述第一激励信号对应的访问请求;
接收所述访问请求,将所述访问请求发送给存储模块,通过所述存储模块在根据接收到的所述访问请求进行目标操作后,生成操作信息;
接收所述操作信息,并将所述操作信息发送给验证模块;通过所述验证模块根据接收到的所述操作信息,对所述待验模块进行读写结果校验,得到读写校验结果。
11.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求10所述的芯片验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210113110.3A CN114444422A (zh) | 2022-01-29 | 2022-01-29 | 芯片验证系统、方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210113110.3A CN114444422A (zh) | 2022-01-29 | 2022-01-29 | 芯片验证系统、方法及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114444422A true CN114444422A (zh) | 2022-05-06 |
Family
ID=81372625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210113110.3A Pending CN114444422A (zh) | 2022-01-29 | 2022-01-29 | 芯片验证系统、方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114444422A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115684897A (zh) * | 2022-12-29 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 芯片测试的方法和装置 |
CN115691651A (zh) * | 2022-12-29 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 一种用于测试芯片的方法和装置 |
CN116167309A (zh) * | 2022-12-28 | 2023-05-26 | 芯动微电子科技(武汉)有限公司 | 一种芯片性能验证方法和系统 |
-
2022
- 2022-01-29 CN CN202210113110.3A patent/CN114444422A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116167309A (zh) * | 2022-12-28 | 2023-05-26 | 芯动微电子科技(武汉)有限公司 | 一种芯片性能验证方法和系统 |
CN116167309B (zh) * | 2022-12-28 | 2023-10-31 | 芯动微电子科技(武汉)有限公司 | 一种芯片性能验证方法和系统 |
CN115684897A (zh) * | 2022-12-29 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 芯片测试的方法和装置 |
CN115691651A (zh) * | 2022-12-29 | 2023-02-03 | 摩尔线程智能科技(北京)有限责任公司 | 一种用于测试芯片的方法和装置 |
CN115684897B (zh) * | 2022-12-29 | 2024-01-26 | 摩尔线程智能科技(北京)有限责任公司 | 芯片测试的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114444422A (zh) | 芯片验证系统、方法及存储介质 | |
US6678625B1 (en) | Method and apparatus for a multipurpose configurable bus independent simulation bus functional model | |
US9384108B2 (en) | Functional built-in self test for a chip | |
US8042086B2 (en) | Method and apparatus for verifying integrated circuit design using a constrained random test bench | |
CN100476837C (zh) | 一种支持随机指令测试的微处理器fpga验证装置 | |
CN107491061A (zh) | 一种商用车obd诊断设备的网络自动化测试系统及其方法 | |
US20180300431A1 (en) | Universal verification methodology (uvm) register abstraction layer (ral) traffic predictor | |
CN102542110B (zh) | 一种应用于移动存储soc芯片的仿真验证方法 | |
CN113076227A (zh) | Mcu验证方法、系统和终端设备 | |
US11302412B2 (en) | Systems and methods for simulated device testing using a memory-based communication protocol | |
CN115146568B (zh) | 一种基于uvm的芯片验证系统及验证方法 | |
CN113486625B (zh) | 芯片的验证方法与验证系统 | |
US11237832B2 (en) | Module with a serialization unit and improved compatibility with deserialization units of different series | |
CN102147831A (zh) | 逻辑验证方法和装置 | |
US20060212768A1 (en) | Verification circuitry for master-slave system | |
CN114548027A (zh) | 在验证系统中追踪信号的方法、电子设备及存储介质 | |
CN114153674A (zh) | 验证方法、验证装置、电子设备和计算机可读存储介质 | |
CN111176926B (zh) | 一种基于双口sram的ip核仿真系统及仿真方法 | |
US7168029B2 (en) | Method for testing a universal serial bus host controller | |
CN113177388B (zh) | 用于ip核测试与验证的装置、系统及方法 | |
CN116340150A (zh) | 一种基于uvm的可重用的寄存器性能交互验证系统及其应用 | |
CN116070564A (zh) | 基于芯片待测设计的仿真通信方法及装置 | |
CN117597669A (zh) | 一种测试方法、系统及装置 | |
CN113204929A (zh) | 基于sv和uvm实现ahb vip的方法、电子装置及存储介质 | |
CN117785756B (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 |