发明内容
本发明的目的是提供一种芯片中硬件模块的测试方法,该方法当不需要进行硬件模块测试时,不存在信号跳变,降低了芯片功耗;本发明的另一目的是提供一种芯片中硬件模块的测试装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供如下技术方案:
一种芯片中硬件模块的测试方法,包括:
对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位;
将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为所述芯片测试请求所选中各所述目标信号位;
利用各所述目标信号位对所述目标硬件模块进行测试操作。
在本发明的一种具体实施方式中,将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为所述芯片测试请求所选中各所述目标信号位,包括:
将所述控制寄存器原默认选取的所述目标硬件模块对应的各多路选择器中的接地信号位,切换为所述芯片测试请求所选中各所述目标信号位。
在本发明的一种具体实施方式中,在利用各所述目标信号位对所述目标硬件模块进行测试操作之后,还包括:
当达到硬件模块断电触发条件时,控制所述目标硬件模块的供电电路断开,以使预置于所述目标硬件模块的电源域内的各多路选择器进行断电操作。
在本发明的一种具体实施方式中,在利用各所述目标信号位对所述目标硬件模块进行测试操作之后,还包括:
当达到子系统断电触发条件时,控制所述目标硬件模块所属的目标子系统的供电电路断开,以使预置于所述目标子系统的电源域内的各多路选择器进行断电操作。
在本发明的一种具体实施方式中,在得到待测试的目标硬件模块和目标信号位之后,将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为所述芯片测试请求所选中各所述目标信号位之前,还包括:
统计各所述目标信号位的目标个数;
分别获取所述目标硬件模块与各所述多路选择器之间的信号连接个数;
判断是否存在小于所述目标个数的信号连接个数;
若是,则将与所述目标硬件模块的信号连接个数小于所述目标个数的多路选择器确定为目标多路选择器;
对所述目标多路选择器与所述目标硬件模块之间的连接总线进行扩展操作。
一种芯片中硬件模块的测试装置,包括:
请求解析单元,用于对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位;
信号位选取单元,用于将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为所述芯片测试请求所选中各所述目标信号位;
模块测试单元,用于利用各所述目标信号位对所述目标硬件模块进行测试操作。
在本发明的一种具体实施方式中,所述信号位选取单元具体为将控制寄存器原默认选取的所述目标硬件模块对应的各多路选择器中的接地信号位,切换为所述芯片测试请求所选中各所述目标信号位的单元。
在本发明的一种具体实施方式中,还包括:
第一供电控制单元,用于在利用各所述目标信号位对所述目标硬件模块进行测试操作之后,当达到硬件模块断电触发条件时,控制所述目标硬件模块的供电电路断开,以使预置于所述目标硬件模块的电源域内的各多路选择器进行断电操作。
一种芯片中硬件模块的测试设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前所述芯片中硬件模块的测试方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述芯片中硬件模块的测试方法的步骤。
本发明所提供的芯片中硬件模块的测试方法,对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位;将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位;利用各目标信号位对目标硬件模块进行测试操作。通过预先设置当不需芯片测试时控制寄存器默认选取的各多路选择器中的接地信号位,从而当不需要进行硬件模块测试时,不存在信号跳变,无信号跳变引起的充放电,降低了芯片功耗。
相应的,本发明还提供了与上述芯片中硬件模块的测试方法相对应的芯片中硬件模块的测试装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
具体实施方式
在现有的芯片中硬件模块测试方案中,由于待测信号中存在类似时钟、状态机等频繁跳变的信号,当这类信号为控制寄存器默认选中的信号时,该信号会经过很长的路径,即通过模块级MUX和子系统级MUX,连通至芯片顶层MUX。
参见图1,图1为一种芯片中硬件模块的测试系统的结构框图。如图1中粗实线所示。信号跳变在芯片内部是一个“充电、放电”的动作,信号路径越长、跳变越频繁,则其消耗的能量也越大。因而现有的芯片中硬件模块测试方案,不论是否需要进行硬件模块测试,均存在信号跳变,增加了芯片的功耗。
为此,本申请中提供的芯片中硬件模块的测试方法中,当不需要进行硬件模块测试时,不存在信号跳变,降低了芯片功耗。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图2,图2为本发明实施例中芯片中硬件模块的测试方法的一种实施流程图,该方法可以包括以下步骤:
S201:对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位。
当需要对芯片中硬件模块进行测试时,向测试管理中心发送芯片测试请求,芯片测试请求中包含待测试的目标硬件模块和目标信号位。测试管理中心接收芯片测试请求,并对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位。
S202:将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位。
预先设置控制寄存器选取的各多路选择器中的默认信号位为接地信号位。当测试管理中心接收到芯片测试请求,并解析得到待测试的目标硬件模块和目标信号位之后,将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位。通过预先设置各多路选择器中的默认信号位为接地信号位,将控制寄存器默认选中的监测信号始终接地,如可以设置与待测硬件模块相连的各最底层多路选择器(模块级多路选择器)的最低位(比特0)始终接地,其余位置连接待测硬件模块,各最底层多路选择器默认选中最低位(比特0),因此在不需要进行信号调试的场景下,比如芯片冷启动后正常工作时,控制寄存器的值设置为默认值,整个信号监测系统的各级多路选择器上,不存在额外的信号反转,可以有效降低系统功耗。
S203:利用各目标信号位对目标硬件模块进行测试操作。
在将控制寄存器默认选取的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位之后,利用各目标信号位对目标硬件模块进行测试操作。从而实现仅当需要对目标硬件模块进行测试操作时,根据测试需求,改写控制寄存器的值,选中各目标信号位,当不需芯片测试时控制寄存器默认选取的各多路选择器中的接地信号位,不存在信号跳变,降低了芯片功耗。
本发明所提供的芯片中硬件模块的测试方法,对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位;将控制寄存器默认选取的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位;利用各目标信号位对目标硬件模块进行测试操作。通过预先设置当不需芯片测试时控制寄存器默认选取的各多路选择器中的接地信号位,从而当不需要进行硬件模块测试时,不存在信号跳变,无信号跳变引起的充放电,降低了芯片功耗。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
参见图3,图3为本发明实施例中芯片中硬件模块的测试方法的另一种实施流程图,该方法可以包括以下步骤:
S301:对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位。
S302:统计各目标信号位的目标个数。
在解析得到目标信号位之后,统计各目标信号位的目标个数,从而得到需进行测试的信号位总数。
S303:分别获取目标硬件模块与各多路选择器之间的信号连接个数。
目标硬件模块与各多路选择器分别存在信号连接,分别获取目标硬件模块与各多路选择器之间的信号连接个数。如可以预先设置多路选择器与待测试硬件模块之间信号连接数为32、64、128、256等。
S304:判断是否存在小于目标个数的信号连接个数,若是,则执行步骤S305,若否,则不做处理。
在统计得到各目标信号位的目标个数,并分别获取到目标硬件模块与各多路选择器之间的信号连接个数之后,判断是否存在小于目标个数的信号连接个数,若是,则说明当前存在多路选择器与目标硬件模块之间的信号连接数不够用,执行步骤S305,若否,则说明各多路选择器与目标硬件模块之间的信号连接数均够用,不需要做处理。
S305:将与目标硬件模块的信号连接个数小于目标个数的多路选择器确定为目标多路选择器。
当确定存在小于目标个数的信号连接个数时,说明当前存在多路选择器与目标硬件模块之间的信号连接数不够用,将与目标硬件模块的信号连接个数小于目标个数的多路选择器确定为目标多路选择器,即目标多路选择器与目标硬件模块之间的信号连接数不够用。
S306:对目标多路选择器与目标硬件模块之间的连接总线进行扩展操作。
在确定出与目标硬件模块的信号连接个数小于目标个数的目标多路选择器之后,对目标多路选择器与目标硬件模块之间的连接总线进行扩展操作,从而扩展得到目标多路选择器与目标硬件模块之间足够的信号连接,为后续对目标硬件模块做好有效的铺垫。
S307:将控制寄存器原默认选取的目标硬件模块对应的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位。
预先设置每个待测试硬件模块各自对应的各特定多路选择器,在解析得到待测试的目标硬件模块和目标信号位,并确定目标硬件模块与各多路选择器之间均存在足够的信号连接之后,将控制寄存器原默认选取的目标硬件模块对应的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位。通过为每个待测试硬件模块分别设置各自特定的各多路选择器,从而实现了对以待测试硬件模块为单位对各待测试硬件模块对应的各多路选择器进行单独控制。
参见图4,图4为本发明实施例中一种模块级多路选择器的输入输出示意图。模块级MUX负责从待测硬件模块内的256比特(Bit)检测信号中,选出任意16比特,其内部设计为16个独立的256选1的MUX,即需要将输入的256比特信号全连接到内部的MUX上。可以设置将最低位的信号(比特0)始终接地,其余255个接口连接待测硬件模块。
如表1所示,控制这16个MUX的32位控制寄存器,其默认值(复位值)也全部选中最低位信号。
S308:利用各目标信号位对目标硬件模块进行测试操作。
S309:当达到硬件模块断电触发条件时,控制目标硬件模块的供电电路断开,以使预置于目标硬件模块的电源域内的各多路选择器进行断电操作。
预先设置硬件模块断电触发条件,如预先设置硬件模块正常运行到相应阶段时进行断电操作,或者预先设置当硬件模块正常运行预设时间间隔时进行断电操作。当达到硬件模块断电触发条件时,控制目标硬件模块的供电电路断开,从而使得预置于目标硬件模块的电源域内的各多路选择器进行断电操作。从而实现各多路选择器跟随对应的待测硬件模块进行通断电控制。
参见图5,图5为本发明实施例中一种芯片中硬件模块的测试系统的结构框图。当模块x、模块y处于电源关断状态时,无必要对其进行信号级调试,在片上系统(System onChip,SoC)集成设计时,将模块x的MUX置于模块x电源域内,模块y的MUX置于模块y电源域内,则两个模块级MUX的供电可以跟随待测模块被完全切断。类似的,模块m、模块n均处于子系统B内,在片上系统集成设计时,将模块m、模块n的MUX置于子系统B的电源域内,则这两个模块级MUX的供电也可以跟随待测子系统被完全切断。
在本发明的一种具体实施方式中,在步骤S308之后,该方法还可以包括以下步骤:
当达到子系统断电触发条件时,控制目标硬件模块所属的目标子系统的供电电路断开,以使预置于目标子系统的电源域内的各多路选择器进行断电操作。
预先设置子系统断电触发条件,如预先设置子系统正常运行到相应阶段时进行断电操作,或者预先设置当子系统正常运行预设时间间隔时进行断电操作。当达到子系统断电触发条件时,当前可以对整个目标子系统进行断电操作,因此控制目标子系统的供电电路断开,从而使得预置于目标子系统的电源域内的各多路选择器进行断电操作。
相应于上面的方法实施例,本发明还提供了一种芯片中硬件模块的测试装置,下文描述的芯片中硬件模块的测试装置与上文描述的芯片中硬件模块的测试方法可相互对应参照。
参见图6,图6为本发明实施例中一种芯片中硬件模块的测试装置的结构框图,该装置可以包括:
请求解析单元61,用于对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位;
信号位选取单元62,用于将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位;
模块测试单元63,用于利用各目标信号位对目标硬件模块进行测试操作。
本发明所提供的芯片中硬件模块的测试装置,对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位;将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位;利用各目标信号位对目标硬件模块进行测试操作。通过预先设置当不需芯片测试时控制寄存器默认选取的各多路选择器中的接地信号位,从而当不需要进行硬件模块测试时,不存在信号跳变,无信号跳变引起的充放电,降低了芯片功耗。
在本发明的一种具体实施方式中,信号位选取单元62具体为将控制寄存器原默认选取的目标硬件模块对应的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位的单元。
在本发明的一种具体实施方式中,该装置还可以包括:
第一供电控制单元,用于在利用各目标信号位对目标硬件模块进行测试操作之后,当达到硬件模块断电触发条件时,控制目标硬件模块的供电电路断开,以使预置于目标硬件模块的电源域内的各多路选择器进行断电操作。
在本发明的一种具体实施方式中,还包括:
第二供电控制单元,用于在利用各目标信号位对目标硬件模块进行测试操作之后,当达到子系统断电触发条件时,控制目标硬件模块所属的目标子系统的供电电路断开,以使预置于目标子系统的电源域内的各多路选择器进行断电操作。
在本发明的一种具体实施方式中,该装置还可以包括:
信号位个数统计单元,用于在得到待测试的目标硬件模块和目标信号位之后,将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为所述芯片测试请求所选中各所述目标信号位之前,统计各目标信号位的目标个数;
信号连接个数统计单元,用于分别获取目标硬件模块与各多路选择器之间的信号连接个数;
第二判断单元,用于判断是否存在小于目标个数的信号连接个数;
目标多路选择器确定单元,用于当确定存在小于目标个数的信号连接个数时,将与目标硬件模块的信号连接个数小于目标个数的多路选择器确定为目标多路选择器;
连接总线扩展单元,用于对目标多路选择器与目标硬件模块之间的连接总线进行扩展操作。
相应于上面的方法实施例,参见图7,图7为本发明所提供的芯片中硬件模块的测试设备的示意图,该设备可以包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的芯片中硬件模块的测试方法的步骤。
具体的,请参考图8,图8为本实施例提供的一种芯片中硬件模块的测试设备的具体结构示意图,该芯片中硬件模块的测试设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在芯片中硬件模块的测试设备301上执行存储器332中的一系列指令操作。
芯片中硬件模块的测试设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的芯片中硬件模块的测试方法中的步骤可以由芯片中硬件模块的测试设备的结构实现。
相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
对接收到的芯片测试请求进行解析,得到待测试的目标硬件模块和目标信号位;将控制寄存器原默认选取的各多路选择器中的接地信号位,切换为芯片测试请求所选中各目标信号位;利用各目标信号位对目标硬件模块进行测试操作。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。