CN114330177A - 芯片寄存器的系统级验证方法、系统、设备及存储介质 - Google Patents
芯片寄存器的系统级验证方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN114330177A CN114330177A CN202111594096.5A CN202111594096A CN114330177A CN 114330177 A CN114330177 A CN 114330177A CN 202111594096 A CN202111594096 A CN 202111594096A CN 114330177 A CN114330177 A CN 114330177A
- Authority
- CN
- China
- Prior art keywords
- register
- target
- target register
- chip
- read
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种芯片寄存器的系统级验证方法,包括:建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,以使得在进行待测芯片的寄存器的系统级验证的过程中,通过验证平台发送的接口信号替换CPU的总线信号;生成测试用例,并为待测芯片的各个寄存器分别建立对应的寄存器模型,并且根据预设的地址映射表确定出各个寄存器的实际地址;针对待测芯片的目标寄存器,基于对应于目标寄存器的寄存器模型执行测试用例,得到目标寄存器的系统级验证结果。应用本申请的方案,可以方便有效地进行芯片寄存器的系统级验证。本申请还公开了一种芯片寄存器的系统级验证系统,设备及存储介质,具有相应技术效果。
Description
技术领域
本发明涉及芯片技术领域,特别是涉及一种芯片寄存器的系统级验证方法、系统、设备及存储介质。
背景技术
在芯片开发的过程中,验证起着至关重要的作用,也是保证芯片质量的关键步骤。目前常用的验证方法是采用UVM(Universal Verification Methodology,通用验证方法)对待测芯片进行验证。寄存器的验证是验证过程中的重要部分,只有保证寄存器的配置和功能是正确的,才能使得硬件之间的“交互”正确。在验证寄存器是否正确的过程中,需要频繁地对待测芯片内部的寄存器进行读写操作。一般在TB(Test Beach,测试平台)中获取待测芯片内部寄存器的方式主要有两种:前门访问(front door)和后门访问(back door)。但是前门访问需要消耗仿真时间,后门访会导致验证环境臃肿复杂,容易出错。因此,寄存器模型应运而生,寄存器模型对应待测芯片中的寄存器,是真实硬件寄存器在软件环境中的行为模型。利用该模型可以方便地对待测芯片中的寄存器进行读写。
在对待测芯片中的各个寄存器进行了测试之后,即待测芯片的寄存器经过了模块级的验证之后,可以保障寄存器自身的功能正常。之后便会继续测试待测芯片的寄存器在待测芯片中的功能是否正常,即进行待测芯片的寄存器的系统级的验证。而在实际芯片中,对寄存器的各种读写操作是由CPU来控制的,并且,在验证平台中对待测芯片的寄存器进行系统级的验证时,需要对寄存器进行随机读写操作,而部分场合中,CPU可能无法支持对所有寄存器进行各种随机操作,也就为待测芯片的寄存器的系统级验证带来困难,需要验证人员通过其他方式进行验证,费时费力。
综上所述,如何方便有效地进行芯片寄存器的系统级验证,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种芯片寄存器的系统级验证方法、系统、设备及存储介质,以方便有效地进行芯片寄存器的系统级验证。
为解决上述技术问题,本发明提供如下技术方案:
一种芯片寄存器的系统级验证方法,包括:
建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,以使得在进行所述待测芯片的寄存器的系统级验证的过程中,通过所述验证平台发送的接口信号替换所述CPU的总线信号;
生成测试用例,并为所述待测芯片的各个寄存器分别建立对应的寄存器模型,并且根据预设的地址映射表确定出各个寄存器的实际地址;
针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型执行所述测试用例,得到所述目标寄存器的系统级验证结果。
优选的,生成的所述测试用例包括:寄存器默认值测试用例,寄存器读写测试用例,以及寄存器比特位测试用例;
所述针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型执行所述测试用例,得到所述目标寄存器的系统级验证结果,包括:
针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型依次执行所述寄存器默认值测试用例、所述寄存器读写测试用例、以及所述寄存器比特位测试用例,依次得到所述目标寄存器的默认值测试结果、所述目标寄存器的读写测试结果、以及所述目标寄存器的比特位测试结果。
优选的,基于对应于所述目标寄存器的寄存器模型执行所述寄存器默认值测试用例,得到所述目标寄存器的默认值测试结果,包括:
当所述目标寄存器为只写寄存器时,基于对应于所述目标寄存器的寄存器模型执行所述寄存器默认值测试用例,以后门读的方式得到所述目标寄存器的实际默认值,并且仅当所述实际默认值与通过对应于所述目标寄存器的寄存器模型得到的镜像值一致时,确定所述目标寄存器的默认值测试结果为通过;
当所述目标寄存器不为只写寄存器时,基于对应于所述目标寄存器的寄存器模型执行所述寄存器默认值测试用例,以前门读的方式得到所述目标寄存器的实际默认值,并且仅当所述实际默认值与通过对应于所述目标寄存器的寄存器模型得到的镜像值一致时,确定所述目标寄存器的默认值测试结果为通过。
优选的,基于对应于所述目标寄存器的寄存器模型执行所述寄存器读写测试用例,得到所述目标寄存器的读写测试结果,包括:
基于对应于所述目标寄存器的寄存器模型执行所述寄存器读写测试用例,以后门读的方式得到所述目标寄存器的实际默认值,并且产生第一写数据;
当所述目标寄存器为只读寄存器时,以后门写的方式写所述第一写数据,并在写入之后以前门读的方式读取,并且仅当读取的数值与所述第一写数据一致时,确定所述目标寄存器的寄存器读写测试结果为通过;
当所述目标寄存器为只写寄存器时,以前门写的方式写所述第一写数据,并在写入之后以后门读的方式读取,并且仅当读取的数值为0时,确定所述目标寄存器的寄存器读写测试结果为通过;
当所述目标寄存器为读写寄存器时,以前门写的方式写所述第一写数据,并在写入之后以前门读的方式读取,并且仅当读取的数值与所述第一写数据一致时,确定所述目标寄存器的寄存器读写测试结果为通过。
优选的,还包括:
在确定出所述目标寄存器的寄存器读写测试结果之后,判断针对所述目标寄存器进行的寄存器读写测试的操作,是否对所述目标寄存器之外的其他任一寄存器中的数值造成了改变;
如果是,则输出第一告警提示。
优选的,基于对应于所述目标寄存器的寄存器模型执行所述寄存器比特位测试用例,得到所述目标寄存器的比特位测试结果,包括:
当所述目标寄存器为读写寄存器时,针对所述目标寄存器的任意1个bit位,以前门写的方式写入对应于该bit的数值的第一取反数,并将所述目标寄存器的寄存器模型中的期望值更新为所述第一取反数;
通过get函数得到更新之后的所述期望值;
以前门读的方式读取写入了所述第一取反数的该bit位的数值,并判断以前门读的方式读取的该bit位的数值与通过get函数得到的所述期望值是否一致;
如果否,则确定所述目标寄存器的寄存器比特位测试结果为不通过;
如果是,则以前门写的方式写入对应于所述第一取反数的第二取反数,并将所述目标寄存器的寄存器模型中的期望值更新为所述第二取反数;
通过get函数得到更新之后的所述期望值;
以前门读的方式读取写入了所述第二取反数的该bit位的数值,并判断以前门读的方式读取的该bit位的数值与通过get函数得到的所述期望值是否一致;
如果否,则确定所述目标寄存器的寄存器比特位测试结果为不通过;
如果是,则确定所述目标寄存器的寄存器比特位测试结果为通过;
其中,0对应的取反数为1,1对应的取反数为0。
优选的,预设的地址映射表中包括预留区域的基地址信息。
一种芯片寄存器的系统级验证系统,包括:
总线信号替换单元,用于建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,以使得在进行所述待测芯片的寄存器的系统级验证的过程中,通过所述验证平台发送的接口信号替换所述CPU的总线信号;
配置单元,用于生成测试用例,并为所述待测芯片的各个寄存器分别建立对应的寄存器模型,并且根据预设的地址映射表确定出各个寄存器的实际地址;
执行单元,用于针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型执行所述测试用例,得到所述目标寄存器的系统级验证结果。
一种芯片寄存器的系统级验证设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述任一项所述的芯片寄存器的系统级验证方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的芯片寄存器的系统级验证方法的步骤。
应用本发明实施例所提供的技术方案,会建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,从而使得在进行待测芯片的寄存器的系统级验证的过程中,通过验证平台发送的目标接口信号替换CPU的总线信号,也就不会出现传统方案中由于CPU无法支持对所有模块寄存器进行各种随机操作所带来的问题。并且,在进行待测芯片的寄存器的系统级验证的过程中,本申请为待测芯片的各个寄存器模块分别建立对应的寄存器模型来实现寄存器的系统级验证,可以有效地提高验证的便捷性以及验证效率,但是,与模块级的验证不同,在真实的SoC环境下,每个寄存器所使用的地址空间完全不同,即实际物理地址为基地址加上偏移地址,为待测芯片的各个寄存器分别建立对应的寄存器模型时,只能得到各个寄存器的偏移地址,因此,本申请的方案中,会根据预设的地址映射表确定出各个寄存器的实际地址,使得进行寄存器的系统级验证时,能够有效的实现对于各个寄存器的访问。综上所述,本申请的方案可以方便有效地进行芯片寄存器的系统级验证。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明中一种芯片寄存器的系统级验证方法的实施流程图;
图2为本发明一种具体实施方式中通过地址映射表反映各个寄存器的实际地址的示意图;
图3为本发明中一种芯片寄存器的系统级验证系统的结构示意图。
具体实施方式
本发明的核心是提供一种芯片寄存器的系统级验证方法,可以方便有效地进行芯片寄存器的系统级验证。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明中一种芯片寄存器的系统级验证方法的实施流程图,该芯片寄存器的系统级验证方法可以包括以下步骤:
步骤S101:建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,以使得在进行待测芯片的寄存器的系统级验证的过程中,通过验证平台发送的接口信号替换CPU的总线信号。
具体的,可以将待测芯片的CPU挖空,即移除CPU,再替换为验证平台的接口信号,并且可以理解的是,在进行替换时,要建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,从而使得通过验证平台发送的接口信号,能够有效地替换CPU的总线信号。例如表一为本发明的一种具体实施方式中的CPU的总线信号与验证平台的接口信号之间的对应关系表。
表1:
在表一的实施方式中,CPU的总线信号具体为AHB总线信号,而验证平台的接口信号采用的是VIP(验证IP)接口信号,在其他实施方式中,可以采用其他方式,能够通过验证平台发送的接口信号有效地替换CPU的总线信号即可。
步骤S102:生成测试用例,并为待测芯片的各个寄存器分别建立对应的寄存器模型,并且根据预设的地址映射表确定出各个寄存器的实际地址。
在实际应用中,生成测试用例,以及为待测芯片的各个寄存器分别建立对应的寄存器模型的操作,均可以利用寄存器模型自动生成工具来实现。生成的测试用例的具体内容可以根据实际需要进行设定和调整。
寄存器模型对应待测芯片中的寄存器,它是真实硬件寄存器在软件环境中的行为模型。利用该模型可以方便地对待测芯片中的寄存器进行读写。寄存器模型主要用来对待测芯片中具有地址映射的寄存器和存储器进行建模。可以产生激励作用于待测芯片并进行寄存器功能检查。通过寄存器模型,可以简单高效的实现对待测芯片的寄存器进行前门或后门操作。在UVM平台中,寄存器模型是高度抽象化的,可以使用一个中间变量uvm_reg_bus_op描述寄存器的访问信息,因此需要创建一个继承自uvm_reg_adapter的类,实现uvm_reg_bus_op与真正作用到具体待测芯片上的transaction的互相转换。
此外,在实际应用中,为待测芯片的各个寄存器分别建立对应的寄存器模型之后,可以将这些寄存器模型放入至一个总的寄存器模型中,从逻辑关系上看是两层的寄存器模型。
在真实的SoC(System on Chip,片上系统)的环境下,每个寄存器所使用的地址空间完全不同,即实际物理地址为基地址加上偏移地址,这是与寄存器的模块级验证最大的区别。而在本申请的方案中,需要进行待测芯片的寄存器的系统级验证,需要能够确定出各个寄存器的实际物理地址来保障系统级验证的正确执行。
具体的,本申请的方案可以根据预设的地址映射表确定出各个寄存器的实际地址,使得进行寄存器的系统级验证时,能够有效地实现对于各个寄存器的访问。
可参阅图2,为一种具体实施方式中通过地址映射表反映各个寄存器的实际地址的示意图。图2中的Uart0_reg_block,Uart1_reg_block以及I2C_reg_block表示的是不同的寄存器模型,以Uart0_reg_block为例,通过预设的地址映射表。可以确定出该寄存器模型对应的寄存器的基地址为32’h1000_0000,而该寄存器的偏移地址可以通过默认地址映射deault_map得知,因此,通过基地址和偏移地址,便可以确定出该寄存器的实际地址。
进一步的,在本发明的一种具体实施方式中,预设的地址映射表中包括预留区域的基地址信息。例如图2的实施方式中,Reserved 32’h3000_0000便表示的是预留区域的基地址信息,使得对于预留区域,也可以利用寄存器的前门或者后门读写操作对预留区域进行测试,提高了方案的灵活性和扩展性。
步骤S103:针对待测芯片的目标寄存器,基于对应于目标寄存器的寄存器模型执行测试用例,得到目标寄存器的系统级验证结果。
目标寄存器可以是待测芯片中的任意1个寄存器,基于对应于目标寄存器的寄存器模型可以执行测试用例,具体的,基于对应于目标寄存器的寄存器模型可以将测试用例的sequence进行实例化,再将其挂载到验证平台的接口信号上,例如利用start函数将其挂载到验证平台的VIP接口信号上,从而进行目标寄存器的系统级验证,并且得到目标寄存器的系统级验证结果。
在本发明的一种具体实施方式中,生成的测试用例包括:寄存器默认值测试用例,寄存器读写测试用例,以及寄存器比特位测试用例;
针对待测芯片的目标寄存器,基于对应于目标寄存器的寄存器模型执行测试用例,得到目标寄存器的系统级验证结果,包括:
针对待测芯片的目标寄存器,基于对应于目标寄存器的寄存器模型依次执行寄存器默认值测试用例、寄存器读写测试用例、以及寄存器比特位测试用例,依次得到目标寄存器的默认值测试结果、目标寄存器的读写测试结果、以及目标寄存器的比特位测试结果。
该种实施方式中,生成的测试用例包括3个,即寄存器默认值测试用例,寄存器读写测试用例,以及寄存器比特位测试用例,通过执行这3个测试用例,能够较为全面地反映出目标寄存器的系统级验证结果。
进一步的,在本发明的一种具体实施方式中,基于对应于目标寄存器的寄存器模型执行寄存器默认值测试用例,得到目标寄存器的默认值测试结果,可以具体包括:
当目标寄存器为只写寄存器时,基于对应于目标寄存器的寄存器模型执行寄存器默认值测试用例,以后门读的方式得到目标寄存器的实际默认值,并且仅当实际默认值与通过对应于目标寄存器的寄存器模型得到的镜像值一致时,确定目标寄存器的默认值测试结果为通过;
当目标寄存器不为只写寄存器时,基于对应于目标寄存器的寄存器模型执行寄存器默认值测试用例,以前门读的方式得到目标寄存器的实际默认值,并且仅当实际默认值与通过对应于目标寄存器的寄存器模型得到的镜像值一致时,确定目标寄存器的默认值测试结果为通过。
该种实施方式中,按照目标寄存器的类型不同,确定目标寄存器的默认值测试结果的方式不同。
具体的,当目标寄存器为只写寄存器时,由于无法直接通过总线读取,便以后门读的方式得到目标寄存器的实际默认值,例如可以利用mirror函数以后门读的方式得到目标寄存器的实际默认值。当实际默认值与通过对应于目标寄存器的寄存器模型得到的镜像值一致时,可以确定目标寄存器的默认值测试结果为通过。反之,则可以确定目标寄存器的默认值测试结果为不通过,这可能是由于目标寄存器在待测芯片中的连接关系错误,读写异常等原因导致的。
而当目标寄存器不为只写寄存器时,便可以以前门读的方式得到目标寄存器的实际默认值,进而与通过对应于目标寄存器的寄存器模型得到的镜像值比较,当二者一致时,可以确定目标寄存器的默认值测试结果为通过。目标寄存器的默认值指的是在目标寄存器未存储数据的初始状态下的数值。
在本发明的一种具体实施方式中,基于对应于目标寄存器的寄存器模型执行寄存器读写测试用例,得到目标寄存器的读写测试结果,可以包括:
基于对应于目标寄存器的寄存器模型执行寄存器读写测试用例,以后门读的方式得到目标寄存器的实际默认值,并且产生第一写数据;
当目标寄存器为只读寄存器时,以后门写的方式写第一写数据,并在写入之后以前门读的方式读取,并且仅当读取的数值与第一写数据一致时,确定目标寄存器的寄存器读写测试结果为通过;
当目标寄存器为只写寄存器时,以前门写的方式写第一写数据,并在写入之后以后门读的方式读取,并且仅当读取的数值为0时,确定目标寄存器的寄存器读写测试结果为通过;
当目标寄存器为读写寄存器时,以前门写的方式写第一写数据,并在写入之后以前门读的方式读取,并且仅当读取的数值与第一写数据一致时,确定目标寄存器的寄存器读写测试结果为通过。
该种实施方式中,按照目标寄存器的类型不同,确定目标寄存器的读写测试结果的方式不同。
具体的,首先会以后门读的方式得到目标寄存器的实际默认值,并且产生第一写数据,例如随机产生第一写数据。
如果目标寄存器是只读寄存器,由于无法通过总线写入,便需要以后门写的方式将第一写数据写入至目标寄存器,并在写入之后以前门读的方式读取,并且当读取的数值与第一写数据一致时,便可以确定目标寄存器的寄存器读写测试结果为通过,否则便不通过。
如果目标寄存器是只写寄存器,在写入第一写数据之后,由于无法通过总线读取,因此,以后门读的方式读取的数值理论上应当为0,否则便可以确定目标寄存器的寄存器读写测试结果为不通过。
如果目标寄存器为读写寄存器时,可以以前门写的方式写入第一写数据,并以前门读的方式读取第一写数据,当读取的数据与写入的数据一致时,便可以确定目标寄存器的寄存器读写测试结果为通过,否则为不通过。
进一步的,在本发明的一种具体实施方式中,还可以包括:
在确定出目标寄存器的寄存器读写测试结果之后,判断针对目标寄存器进行的寄存器读写测试的操作,是否对目标寄存器之外的其他任一寄存器中的数值造成了改变;
如果是,则输出第一告警提示。
该种实施方式中,考虑到本申请的方案是进行寄存器的系统级验证,由于连线错误等原因,可能导致对于单个寄存器操作时,影响其他的寄存器的情况。因此,该种实施方式中,在确定出目标寄存器的寄存器读写测试结果之后,可以进一步地判断针对目标寄存器进行的寄存器读写测试的操作,是否会影响目标寄存器之外的任意1个寄存器中的数值,如果会影响,便可以输出第一告警提示以提醒工作人员注意到该情况。在实际应用中,每当确定出了1个寄存器的寄存器读写测试结果,便可以执行一次该种实施方式的操作,以保障本申请进行寄存器的系统级验证的全面性。
在本发明的一种具体实施方式中,基于对应于目标寄存器的寄存器模型执行寄存器比特位测试用例,得到目标寄存器的比特位测试结果,可以具体包括:
当目标寄存器为读写寄存器时,针对目标寄存器的任意1个bit位,以前门写的方式写入对应于该bit的数值的第一取反数,并将目标寄存器的寄存器模型中的期望值更新为第一取反数;
通过get函数得到更新之后的期望值;
以前门读的方式读取写入了第一取反数的该bit位的数值,并判断以前门读的方式读取的该bit位的数值与通过get函数得到的期望值是否一致;
如果否,则确定目标寄存器的寄存器比特位测试结果为不通过;
如果是,则以前门写的方式写入对应于第一取反数的第二取反数,并将目标寄存器的寄存器模型中的期望值更新为第二取反数;
通过get函数得到更新之后的期望值;
以前门读的方式读取写入了第二取反数的该bit位的数值,并判断以前门读的方式读取的该bit位的数值与通过get函数得到的期望值是否一致;
如果否,则确定目标寄存器的寄存器比特位测试结果为不通过;
如果是,则确定目标寄存器的寄存器比特位测试结果为通过;
其中,0对应的取反数为1,1对应的取反数为0。
该种实施方式中,通过两次取反操作使得进行了目标寄存器的比特位测试之后,不会改变目标寄存器中的数值。
具体的,只有目标寄存器为读写寄存器时才需要进行目标寄存器的比特位测试。针对目标寄存器的任意1个bit位,以前门写的方式写第一取反数,例如该bit位的默认值为1,则第一取反数为0,并且以前门写的方式写入0,同时,会将目标寄存器的寄存器模型中的期望值更新为0。然后通过get函数得到更新之后的期望值,并且,以前门读的方式读取写入了第一取反数0的该bit位的数值,在正常情况下,以前门读的方式读取的该bit位的数值与通过get函数得到的数值均为0,当然,如果二者不一致,便可以确定目标寄存器的寄存器比特位测试结果为不通过。
如果二者一致,便继续以前门写的方式写入对应于第一取反数的第二取反数,该例子中则是写入对应于第一取反数0的第二取反数1,并将目标寄存器的寄存器模型中的期望值更新为第二取反数1。然后通过get函数得到更新之后的期望值,并且,以前门读的方式读取写入了第二取反数1的该bit位的数值,在正常情况下,以前门读的方式读取的该bit位的数值与通过get函数得到的数值均为1,当然,如果二者不一致,便可以确定目标寄存器的寄存器比特位测试结果为不通过。
可以看出,通过写入两次取反数,使得进行了目标寄存器的寄存器比特位测试之后,目标寄存器的各个bit位的数值均保持为原先的数值。
应用本发明实施例所提供的技术方案,会建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,从而使得在进行待测芯片的寄存器的系统级验证的过程中,通过验证平台发送的目标接口信号替换CPU的总线信号,也就不会出现传统方案中由于CPU无法支持对所有模块寄存器进行各种随机操作所带来的问题。并且,在进行待测芯片的寄存器的系统级验证的过程中,本申请为待测芯片的各个寄存器模块分别建立对应的寄存器模型来实现寄存器的系统级验证,可以有效地提高验证的便捷性以及验证效率,但是,与模块级的验证不同,在真实的SoC环境下,每个寄存器所使用的地址空间完全不同,即实际物理地址为基地址加上偏移地址,为待测芯片的各个寄存器分别建立对应的寄存器模型时,只能得到各个寄存器的偏移地址,因此,本申请的方案中,会根据预设的地址映射表确定出各个寄存器的实际地址,使得进行寄存器的系统级验证时,能够有效的实现对于各个寄存器的访问。综上所述,本申请的方案可以方便有效地进行芯片寄存器的系统级验证。
相应于上面的方法实施例,本发明实施例还提供了一种芯片寄存器的系统级验证系统,可与上文相互对应参照。
参见图3所示,为本发明中一种芯片寄存器的系统级验证系统的结构示意图包括:
总线信号替换单元301,用于建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,以使得在进行所述待测芯片的寄存器的系统级验证的过程中,通过所述验证平台发送的接口信号替换所述CPU的总线信号;
配置单元302,用于生成测试用例,并为所述待测芯片的各个寄存器分别建立对应的寄存器模型,并且根据预设的地址映射表确定出各个寄存器的实际地址;
执行单元303,用于针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型执行所述测试用例,得到所述目标寄存器的系统级验证结果。
在本发明的一种具体实施方式中,生成的所述测试用例包括:寄存器默认值测试用例,寄存器读写测试用例,以及寄存器比特位测试用例;
执行单元303,具体用于:
针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型依次执行所述寄存器默认值测试用例、所述寄存器读写测试用例、以及所述寄存器比特位测试用例,依次得到所述目标寄存器的默认值测试结果、所述目标寄存器的读写测试结果、以及所述目标寄存器的比特位测试结果。
在本发明的一种具体实施方式中,执行单元303基于对应于所述目标寄存器的寄存器模型执行所述寄存器默认值测试用例,得到所述目标寄存器的默认值测试结果,具体包括:
当所述目标寄存器为只写寄存器时,基于对应于所述目标寄存器的寄存器模型执行所述寄存器默认值测试用例,以后门读的方式得到所述目标寄存器的实际默认值,并且仅当所述实际默认值与通过对应于所述目标寄存器的寄存器模型得到的镜像值一致时,确定所述目标寄存器的默认值测试结果为通过;
当所述目标寄存器不为只写寄存器时,基于对应于所述目标寄存器的寄存器模型执行所述寄存器默认值测试用例,以前门读的方式得到所述目标寄存器的实际默认值,并且仅当所述实际默认值与通过对应于所述目标寄存器的寄存器模型得到的镜像值一致时,确定所述目标寄存器的默认值测试结果为通过。
在本发明的一种具体实施方式中,执行单元303基于对应于所述目标寄存器的寄存器模型执行所述寄存器读写测试用例,得到所述目标寄存器的读写测试结果,包括:
基于对应于所述目标寄存器的寄存器模型执行所述寄存器读写测试用例,以后门读的方式得到所述目标寄存器的实际默认值,并且产生第一写数据;
当所述目标寄存器为只读寄存器时,以后门写的方式写所述第一写数据,并在写入之后以前门读的方式读取,并且仅当读取的数值与所述第一写数据一致时,确定所述目标寄存器的寄存器读写测试结果为通过;
当所述目标寄存器为只写寄存器时,以前门写的方式写所述第一写数据,并在写入之后以后门读的方式读取,并且仅当读取的数值为0时,确定所述目标寄存器的寄存器读写测试结果为通过;
当所述目标寄存器为读写寄存器时,以前门写的方式写所述第一写数据,并在写入之后以前门读的方式读取,并且仅当读取的数值与所述第一写数据一致时,确定所述目标寄存器的寄存器读写测试结果为通过。
在本发明的一种具体实施方式中,执行单元303还用于:
在确定出所述目标寄存器的寄存器读写测试结果之后,判断针对所述目标寄存器进行的寄存器读写测试的操作,是否对所述目标寄存器之外的其他任一寄存器中的数值造成了改变;
如果是,则输出第一告警提示。
在本发明的一种具体实施方式中,执行单元303基于对应于所述目标寄存器的寄存器模型执行所述寄存器比特位测试用例,得到所述目标寄存器的比特位测试结果,包括:
当所述目标寄存器为读写寄存器时,针对所述目标寄存器的任意1个bit位,以前门写的方式写入对应于该bit的数值的第一取反数,并将所述目标寄存器的寄存器模型中的期望值更新为所述第一取反数;
通过get函数得到更新之后的所述期望值;
以前门读的方式读取写入了所述第一取反数的该bit位的数值,并判断以前门读的方式读取的该bit位的数值与通过get函数得到的所述期望值是否一致;
如果否,则确定所述目标寄存器的寄存器比特位测试结果为不通过;
如果是,则以前门写的方式写入对应于所述第一取反数的第二取反数,并将所述目标寄存器的寄存器模型中的期望值更新为所述第二取反数;
通过get函数得到更新之后的所述期望值;
以前门读的方式读取写入了所述第二取反数的该bit位的数值,并判断以前门读的方式读取的该bit位的数值与通过get函数得到的所述期望值是否一致;
如果否,则确定所述目标寄存器的寄存器比特位测试结果为不通过;
如果是,则确定所述目标寄存器的寄存器比特位测试结果为通过;
其中,0对应的取反数为1,1对应的取反数为0。
在本发明的一种具体实施方式中,预设的地址映射表中包括预留区域的基地址信息。
相应于上面的方法和系统实施例,本发明实施例还提供了一种芯片寄存器的系统级验证设备以及一种计算机可读存储介质,可与上文相互对应参照。
该芯片寄存器的系统级验证设备可以包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如上述任一实施例中所述的芯片寄存器的系统级验证方法的步骤。
该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一实施例中所述的芯片寄存器的系统级验证方法的步骤。这里所说的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种芯片寄存器的系统级验证方法,其特征在于,包括:
建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,以使得在进行所述待测芯片的寄存器的系统级验证的过程中,通过所述验证平台发送的接口信号替换所述CPU的总线信号;
生成测试用例,并为所述待测芯片的各个寄存器分别建立对应的寄存器模型,并且根据预设的地址映射表确定出各个寄存器的实际地址;
针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型执行所述测试用例,得到所述目标寄存器的系统级验证结果。
2.根据权利要求1所述的芯片寄存器的系统级验证方法,其特征在于,生成的所述测试用例包括:寄存器默认值测试用例,寄存器读写测试用例,以及寄存器比特位测试用例;
所述针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型执行所述测试用例,得到所述目标寄存器的系统级验证结果,包括:
针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型依次执行所述寄存器默认值测试用例、所述寄存器读写测试用例、以及所述寄存器比特位测试用例,依次得到所述目标寄存器的默认值测试结果、所述目标寄存器的读写测试结果、以及所述目标寄存器的比特位测试结果。
3.根据权利要求2所述的芯片寄存器的系统级验证方法,其特征在于,基于对应于所述目标寄存器的寄存器模型执行所述寄存器默认值测试用例,得到所述目标寄存器的默认值测试结果,包括:
当所述目标寄存器为只写寄存器时,基于对应于所述目标寄存器的寄存器模型执行所述寄存器默认值测试用例,以后门读的方式得到所述目标寄存器的实际默认值,并且仅当所述实际默认值与通过对应于所述目标寄存器的寄存器模型得到的镜像值一致时,确定所述目标寄存器的默认值测试结果为通过;
当所述目标寄存器不为只写寄存器时,基于对应于所述目标寄存器的寄存器模型执行所述寄存器默认值测试用例,以前门读的方式得到所述目标寄存器的实际默认值,并且仅当所述实际默认值与通过对应于所述目标寄存器的寄存器模型得到的镜像值一致时,确定所述目标寄存器的默认值测试结果为通过。
4.根据权利要求2所述的芯片寄存器的系统级验证方法,其特征在于,基于对应于所述目标寄存器的寄存器模型执行所述寄存器读写测试用例,得到所述目标寄存器的读写测试结果,包括:
基于对应于所述目标寄存器的寄存器模型执行所述寄存器读写测试用例,以后门读的方式得到所述目标寄存器的实际默认值,并且产生第一写数据;
当所述目标寄存器为只读寄存器时,以后门写的方式写所述第一写数据,并在写入之后以前门读的方式读取,并且仅当读取的数值与所述第一写数据一致时,确定所述目标寄存器的寄存器读写测试结果为通过;
当所述目标寄存器为只写寄存器时,以前门写的方式写所述第一写数据,并在写入之后以后门读的方式读取,并且仅当读取的数值为0时,确定所述目标寄存器的寄存器读写测试结果为通过;
当所述目标寄存器为读写寄存器时,以前门写的方式写所述第一写数据,并在写入之后以前门读的方式读取,并且仅当读取的数值与所述第一写数据一致时,确定所述目标寄存器的寄存器读写测试结果为通过。
5.根据权利要求4所述的芯片寄存器的系统级验证方法,其特征在于,还包括:
在确定出所述目标寄存器的寄存器读写测试结果之后,判断针对所述目标寄存器进行的寄存器读写测试的操作,是否对所述目标寄存器之外的其他任一寄存器中的数值造成了改变;
如果是,则输出第一告警提示。
6.根据权利要求2所述的芯片寄存器的系统级验证方法,其特征在于,基于对应于所述目标寄存器的寄存器模型执行所述寄存器比特位测试用例,得到所述目标寄存器的比特位测试结果,包括:
当所述目标寄存器为读写寄存器时,针对所述目标寄存器的任意1个bit位,以前门写的方式写入对应于该bit的数值的第一取反数,并将所述目标寄存器的寄存器模型中的期望值更新为所述第一取反数;
通过get函数得到更新之后的所述期望值;
以前门读的方式读取写入了所述第一取反数的该bit位的数值,并判断以前门读的方式读取的该bit位的数值与通过get函数得到的所述期望值是否一致;
如果否,则确定所述目标寄存器的寄存器比特位测试结果为不通过;
如果是,则以前门写的方式写入对应于所述第一取反数的第二取反数,并将所述目标寄存器的寄存器模型中的期望值更新为所述第二取反数;
通过get函数得到更新之后的所述期望值;
以前门读的方式读取写入了所述第二取反数的该bit位的数值,并判断以前门读的方式读取的该bit位的数值与通过get函数得到的所述期望值是否一致;
如果否,则确定所述目标寄存器的寄存器比特位测试结果为不通过;
如果是,则确定所述目标寄存器的寄存器比特位测试结果为通过;
其中,0对应的取反数为1,1对应的取反数为0。
7.根据权利要求1所述的芯片寄存器的系统级验证方法,其特征在于,预设的地址映射表中包括预留区域的基地址信息。
8.一种芯片寄存器的系统级验证系统,其特征在于,包括:
总线信号替换单元,用于建立待测芯片的CPU的各个总线信号与验证平台的各个接口信号之间的一一对应关系,以使得在进行所述待测芯片的寄存器的系统级验证的过程中,通过所述验证平台发送的接口信号替换所述CPU的总线信号;
配置单元,用于生成测试用例,并为所述待测芯片的各个寄存器分别建立对应的寄存器模型,并且根据预设的地址映射表确定出各个寄存器的实际地址;
执行单元,用于针对所述待测芯片的目标寄存器,基于对应于所述目标寄存器的寄存器模型执行所述测试用例,得到所述目标寄存器的系统级验证结果。
9.一种芯片寄存器的系统级验证设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至7任一项所述的芯片寄存器的系统级验证方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的芯片寄存器的系统级验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111594096.5A CN114330177A (zh) | 2021-12-23 | 2021-12-23 | 芯片寄存器的系统级验证方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111594096.5A CN114330177A (zh) | 2021-12-23 | 2021-12-23 | 芯片寄存器的系统级验证方法、系统、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114330177A true CN114330177A (zh) | 2022-04-12 |
Family
ID=81013642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111594096.5A Pending CN114330177A (zh) | 2021-12-23 | 2021-12-23 | 芯片寄存器的系统级验证方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114330177A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116108782A (zh) * | 2023-04-14 | 2023-05-12 | 此芯科技(上海)有限公司 | 一种mcu外设控制寄存器行为模拟方法与相关装置 |
CN116127886A (zh) * | 2023-04-12 | 2023-05-16 | 北京燧原智能科技有限公司 | 一种存储器电路的验证方法和装置 |
CN117056157A (zh) * | 2023-10-11 | 2023-11-14 | 沐曦集成电路(上海)有限公司 | 一种寄存器层次化验证方法、存储介质和电子设备 |
CN117709255A (zh) * | 2024-02-04 | 2024-03-15 | 北京燧原智能科技有限公司 | 间接访问寄存器的测试方法、装置、设备及介质 |
-
2021
- 2021-12-23 CN CN202111594096.5A patent/CN114330177A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116127886A (zh) * | 2023-04-12 | 2023-05-16 | 北京燧原智能科技有限公司 | 一种存储器电路的验证方法和装置 |
CN116108782A (zh) * | 2023-04-14 | 2023-05-12 | 此芯科技(上海)有限公司 | 一种mcu外设控制寄存器行为模拟方法与相关装置 |
CN117056157A (zh) * | 2023-10-11 | 2023-11-14 | 沐曦集成电路(上海)有限公司 | 一种寄存器层次化验证方法、存储介质和电子设备 |
CN117056157B (zh) * | 2023-10-11 | 2024-01-23 | 沐曦集成电路(上海)有限公司 | 一种寄存器层次化验证方法、存储介质和电子设备 |
CN117709255A (zh) * | 2024-02-04 | 2024-03-15 | 北京燧原智能科技有限公司 | 间接访问寄存器的测试方法、装置、设备及介质 |
CN117709255B (zh) * | 2024-02-04 | 2024-04-30 | 北京燧原智能科技有限公司 | 间接访问寄存器的测试方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114330177A (zh) | 芯片寄存器的系统级验证方法、系统、设备及存储介质 | |
CN106371954B (zh) | 基于10位从机地址的i2c总线验证的方法及系统 | |
CN109117518B (zh) | 一种寄存器读写访问验证系统及方法 | |
CN108763743B (zh) | 验证平台、方法及电子设备 | |
CN112199291A (zh) | 一种多核处理器Cache一致性模拟验证方法及验证装置 | |
US7921337B2 (en) | Systems and methods for diagnosing faults in electronic systems | |
CN112131827B (zh) | 一种芯片测试方法、系统、设备及存储介质 | |
CN115130402A (zh) | 一种缓存验证方法、系统、电子设备及可读存储介质 | |
CN111832237A (zh) | 一种知识产权核验证方法及系统 | |
CN112286750A (zh) | 一种gpio验证方法、装置、电子设备和介质 | |
CN106024066A (zh) | 一种sram的检测方法及系统 | |
CN107272441B (zh) | 用于监控错误的方法和用于监控错误的数据处理装置 | |
JP4180757B2 (ja) | シミュレーション装置 | |
CN114218882A (zh) | 一种SoC芯片检验方法、装置及相关设备 | |
CN112560372B (zh) | 一种芯片原型验证方法、装置、设备及介质 | |
CN111624475B (zh) | 大规模集成电路的测试方法及系统 | |
US20230055523A1 (en) | Method, apparatus, and storage medium for generating test cases | |
CN112463633B (zh) | 一种片上存储器的地址译码校验方法、装置、设备及介质 | |
Gavrilov et al. | Method of mathematical description for digital system blocks logical models | |
CN112885403B (zh) | 一种Flash控制器的功能测试方法、装置及设备 | |
CN115017869A (zh) | 一种uvm寄存器模型快速生成方法及系统 | |
JP2007058450A (ja) | 半導体集積回路 | |
CN116644703B (zh) | 一种位图文件的生成方法及装置 | |
CN116256620B (zh) | Chiplet集成芯片的检测方法、装置、电子设备及存储介质 | |
CN117725881A (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 |