芯片内部功能模块的电源压降检测方法、装置及芯片
技术领域
本发明涉及集成电路领域,尤其涉及一种芯片内部功能模块的电源压降检测方法、装置及芯片。
背景技术
IR压降(IR-Drop,电源压降)是指出现在集成电路中电源和地网络上电压下降或升高的一种现象。
随着半导体工艺向着高度集成化方向的演进,集成电路中金属互连线的宽度越来越窄,这就导致了金属互连线的电阻值上升,所以在整个集成电路范围内将存在一定的电源压降。目前的技术和工艺水平无法完全消除集成电路内的电源压降,因此,所有芯片中均会出现一定程度的电源压降现象。
然而,如果整个集成电路范围内的电源压降过高,则集成电路中的逻辑门就可能出现功能故障,进而导致整个集成电路的功能失效、甚至损坏。
由于导致集成电路(如芯片)功能失效或损坏的原因有很多,例如由于外围电路负载过大或短路造成的芯片损坏,或芯片内部逻辑设计存在缺陷造成的功能缺失,以及由于电源压降造成的芯片功能失效或损坏等等;一旦发现芯片某些功能失效或损坏,目前,测试人员可以通过对芯片以及外围电路进行逻辑仿真的方式检测芯片内部逻辑电路是否正确或检测外围电路是否正确。但在实际应用中,由于电源压降无法通过逻辑仿真的方式检测出来,因此,一旦出现由于电源压降造成的芯片功能失效或损坏的情况,测试人员无法准确的确定故障原因。
可见,现有技术中缺乏一种检测芯片内部的电源压降的方法。
发明内容
本发明实施例提供一种芯片内部功能模块的电源压降检测方法、装置及芯片,用以实时检测芯片内部的各功能模块的电源压降。
本发明实施例提供了一种芯片内部的各功能模块的电源压降的检测装置,该装置包括:
伪随机序列生成单元,与芯片内部的待检测功能模块共用同一供电电源和时钟信号,用于根据所述供电电源在不同时钟周期内所提供的供电能力,按照预设规则,生成伪随机序列;将已生成的伪随机序列输出至伪随机序列检测单元;
所述伪随机序列检测单元,用于接收由所述伪随机序列生成单元输出的伪随机序列,并按照所述预设规则,对接收到的伪随机序列进行解析,根据解析结果,确定所述待检测功能模块的电源压降的检测结果,并输出。
本发明实施例提供了一种芯片,该芯片包括:
若干个功能模块以及芯片内部的各功能模块的电源压降的检测装置。
本发明实施例提供了一种芯片内部的各功能模块的电源压降的检测方法,该方法包括:
对于芯片内部的待检测功能模块,根据所述供电电源在不同时钟周期内所提供的供电能力,按照预设规则,生成伪随机序列;
按照所述预设规则,对已生成的伪随机序列进行解析,根据解析结果,确定所述待检测功能模块的电源压降的检测结果,并输出。
从上述技术方案可以看出,本发明实施例可以通过伪随机序列(PRBS,Pseudo-Random Binary Sequence,也可称为伪随机二进制序列)的生成和检测功能来判断芯片内部是否出现IR drop的问题。本发明实施例中可以包含两个实现单元,分别是伪随机序列生成单元和伪随机序列检测单元,该方法的思路是将伪随机序列生成单元分布到芯片设计中的各个位置,让其和实际功能电路一起工作,如果后端设计中出现IR drop问题,伪随机序列生成单元也会出现问题,而出现的问题可以通过伪随机序列生成单元检查到,据此就可以判断芯片内部IR drop问题。由于实际功能电路功能复杂,并且不可能在实际功能电路中增加足够多的检测功能模块,用于判断是否出现问题,所以本方法中的PRBS码检测功能混在实际功能电路中,可以方便的检测到IR drop问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种芯片内部的各功能模块的电源压降的检测方法的流程示意图;
图2为本发明实施例提供的芯片的综合实现过程和布局布线过程的流程示意图;
图3为本发明实施例提供的伪随机序列生成单元的结构示意图;
图4为本发明实施例提供的一种PRBS编码过程的流程示意图;
图5为本发明实施例提供的一种伪随机序列检测模块的结构示意图;
图6为本发明实施例提供的一种芯片内部的各功能模块的电源压降的检测装置的结构示意图;
图7为本发明实施例提供的一种芯片的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例可以应用于各种类型的芯片中,尤其可以在芯片工作时,用于检测芯片内部的全局电源压降。
本发明实施例提供了一种芯片内部的各功能模块的电源压降的检测方法,图1示出了本发明实施例提供的一种芯片内部的各功能模块的电源压降的检测方法的流程示意图,如图1所示,该流程可以包括:
步骤11:对于芯片内部的待检测功能模块,根据上述供电电源在不同时钟周期内所提供的供电能力,按照预设规则,生成伪随机序列。
步骤12:按照上述预设规则,对已生成的伪随机序列进行解析,根据解析结果,确定上述待检测功能模块的电源压降的检测结果,并输出。
可选的,在上述步骤11中,在上述时钟信号中的第一个时钟周期内,当上述供电电源的电压值达到额定工作电压时,将预先设置的伪随机序列生成规则所规定的初始码值,作为伪随机序列中的与上述第一个时钟周期对应的码值;当上述供电电源的电压值未达到上述伪随机序列生成单元的额定工作电压时,随机的生成上述伪随机序列中的与上述第一个时钟周期对应的码值;对于除上述第一个时钟周期之外的其余时钟周期,当上述供电电源的电压值达到额定工作电压时,按照上述伪随机序列生成规则,利用上述伪随机序列中的与当前时钟周期的上一个时钟周期所对应的码值,生成上述伪随机序列中的与当前时钟周期对应的码值;当上述供电电源的电压值未达到额定工作电压时,随机的生成上述伪随机序列中的与当前时钟周期对应的码值。
可选的,在上述步骤12中,对于已生成的伪随机序列,根据上述伪随机序列生成规则,依次计算每个时钟周期所对应的标准码值;依次判断计算出的每个时钟周期对应的标准码值与已生成的伪随机序列中对应时钟周期的码值的取值是否相同,如果是,则确定上述待检测功能模块在该时钟周期内未发生电源压降;否则,确定上述待检测功能模块在该时钟周期内发生电源压降。
可选的,在上述步骤中,如果上述芯片内部包含多个待检测功能模块,则上述确定上述待检测功能模块的电源压降的检测结果,具体包括:
按照预设分时复用规则,识别出与各待检测功能模块对应的伪随机序列,并按照预设规则,分别对识别出的伪随机序列进行解析,根据解析结果,确定各待检测功能模块的电源压降的检测结果。
可选的,在上述步骤中,在上述确定各个待检测功能模块的电源压降的检测结果之后,该方法进一步包括:根据上述检测结果,对上述芯片内部的电压进行调节。
下面对本发明实施例进行详细描述。
目前,一般的芯片内部电路工作的时钟频率很高,因此,IR drop导致的问题芯片功能缺失的问题可能只会瞬间出现,通过现有技术中的AD/C技术将电源电压进行转换,并通过接口将芯片内部电压读取出来的这种方式,对AD/C本身精度要求很高,这就会占用额外的芯片面积。
为了在不增加芯片面积的基础上,还能进一步实时的检测出芯片内部的电源压降,本发明实施例可以在芯片的硬件代码阶段增加一种关于电源压降的检测装置用以执行对芯片内部的全局电源压降的检测功能,其中,电源压降的检测装置可以分为伪随机序列生成单元(为了描述方便,可以简称为PG单元,即PRBS Generator)和伪随机序列检测单元(为了描述方便,可以简称为PC单元,即PRBS Checker)。图2示出了本发明实施例提供的芯片的综合实现过程和布局布线过程的流程示意图,如图2所示,在实际设计中,在硬件代码阶段加入PG单元,PG单元的代码经过综合实现过程和后端布局布线过程之后,已经和正常功能电路印制在一起。
可见,在本发明实施例中,为了能检测到芯片内部的功能模块的IR-DROP现象,将PRBS Generator和待检测的功能模块的电路放置在一起,两者距离较近,且PRBSGenerator使用来自电源层的电压。
一般来说,芯片内部具有不止一个功能模块,为了能实时的检测到各个功能模块的IR-DROP现象,本发明实施例还可以为每个待检测的功能模块设置一个PRBS Generator,并且,两者共用同一供电电源。
下面对本发明实施例提供的电源压降的检测装置进行详细说明。
首先,本发明实施例仅以举例的方式对电源压降的检测装置中的伪随机序列生成单元(PRBS Generation)进行说明。
图3示出了本发明实施例提供的伪随机序列生成单元的结构示意图,如图3所示,其中,伪随机序列生成单元(PRBS_GEN)功能独立于芯片内部的功能模块,在PRBS_GEN内部包括生成模块(Generator)和存储模块(Memory)、以及串行输入总线(pg_serial_bus_i)和串行输出总线(pg_serial_bus_o)。在PRBS_GEN其内部分为两个时钟域,其中work_clk为芯片内部的待检测的功能模块的时钟信号,Generator利用work_clk生成PRBS(伪随机序列),将已生成的PRBS(伪随机序列)存入一块指定容量的Memory(存储模块,为了描述简便,也可以简称为Mem)中;另外一个时钟域为串行操作时钟域,通过控制逻辑进行Generator的行为控制;进一步的,可以通过串行总线(pg_serial_bus_o)将Mem中的PRBS数据输出到伪随机序列检测模块(PRBS Check)。
具体实现时,PRBS是Pseudo Random Binary Sequence的缩写,即“伪随机二进制序列”的意思。PRBS码具有随机特性,是因为在PRBS码流中,二进制数“0”和“1”是随机出现的,但在码流生成函数与初始码值确定后,码流的顺序也是固定的。而PRBS的周期长度与其编码深度(也可称为阶数)有关。
PRBS的编码原则是:当前码值是上拍码值进行PRBS编码得到的,因此还可以利用上述原则,对PRBS进行校验或验证。
举例来说,图4示出了本发明实施例提供的一种PRBS编码过程的流程示意图,如图4所示,对于n阶PRBS,每个周期的序列长度为2n-1,在每个周期内,“0”和“1”是随机分布的,并且“0”和“1”的个数相等,连续为“1”的最大数目为n,连续为“1”的最大数目为n-1(反转后就是n-1个连续为“1”和n个连续为“0”)。
在本发明实施例中,可以由PRBS Check预先设置一个默认的初始码值和PRBS编码深度,并将预设的初始码值和编码深度发送给PRBS Generation。由PRBS Generation使用芯片内部的功能模块的时钟信号生成PRBS(利用预设的固定公式)。
在前端设计时,PRBS Generation就嵌入到芯片内部的功能模块中,在经过综合实现和后端设计之后,PRBS Generation已经分布到芯片内部各个底层模块中。在一个芯片设计中会有多个PRBS Generation,例如对于规模庞大的数字设计,可以在每个底层模块中分别嵌入PRBS Generation,也就是在版图布局时,将PRBS Generation和底层模块共用电压,检测IR Drop问题。其中,典型的底层模块可以包括CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、画质处理模块、内存控制器、多格式解码器等等。
其次,本发明实施例仅以举例的方式对电源压降的检测装置中的伪随机序列检测单元(PRBS Check)进行说明。
图5示出了本发明实施例提供的一种伪随机序列检测单元的结构示意图,如图5所示,其中,伪随机序列检测单元(PRBS Check)中包括检验模块(Checker)、控制逻辑模块(CTRL)和存储模块(Memory)、以及串行输入总线(pc_serial_bus_i)、串行输出总线(pc_serial_bus_o)和检测结果输出总线(Result),其中控制逻辑模块用于控制分布在芯片内部的PRBS Generation的行为,即控制PRBS Generation生成PRBS时所需要的初始码值和PRBS编码深度;Checker模块用于进行PRBS的验证并通过Result输出结果。
PRBS Check可以通过串行总线与各个PRBS Generation连接,并对由PRBSGeneration中读取到的PRBS进行校验或验证,并将验证结果通过Result接口输出。
进一步的,如果检测到有PRBS出现问题,本发明实施例还可以通过配合芯片电压调节等实验,可以判断是否在芯片内部出现了IR drop问题。
其中,芯片电压调节的具体方式可以包括通过芯片管脚上的电压拉升来进行调节。
具体实现时,PRBS Check对PRBS的验证过程可以利用PRBS编码的逆过程实现。由于PRBS Check预先设置了PRBS的初始码值和编码深度,因此可以利用初始码值和编码深度,与由PRBS Generation输出的PRBS序列,进行比对,根据比对结果判读PRBS Generator生成的数据是否有错。
需要说明的是,在本发明实施例中,采用串行总线的方式实现PRBS Check与PRBSGenerator的互联,这样,可以保证在预设时序控制下,一个PRBS Check可以控制芯片内部的多个PRBS Generator(PRBS Generator模块的数量可以根据需要检测的芯片内部的功能模块的数量确定),从而芯片内部布线和逻辑资源。然而,采用串行总线的方式实现PRBSCheck与PRBS Generator的互联并不是本发明实施例的唯一方式,还可以采用并行总线的方式实现PRBS Check与PRBS Generator的互联通信,也可以采用其他方式实现PRBS Check与PRBS Generator的互联通信,这里不再一一赘述。而凡是利用本发明实施例所提供的利用PRBS检测芯片内部的IR-DROP的方案,均在本发明的保护范围内。
进一步的,在本发明实施例中,PRBS Check的检测结果还可以通过CPU进行读取,即将报告给软件,通过软件告知开发者或是用户,这里曾经出现过错误。
从上述技术方案可以看出,本发明实施例可以通过伪随机序列的生成和检测功能来判断芯片内部是否出现IR drop的问题。本发明实施例中可以包含两个实现单元,分别是伪随机序列生成单元和伪随机序列检测单元,该方法的思路是将伪随机序列生成单元分布到芯片设计中的各个位置,让其和实际功能电路一起工作,如果后端设计中出现IR drop问题,伪随机序列生成单元也会出现问题,而出现的问题可以通过伪随机序列生成单元检查到,据此就可以判断芯片内部IR drop问题。由于实际功能电路功能复杂,并且不可能在实际功能电路中增加足够多的检测功能模块,用于判断是否出现问题,所以本方法中的PRBS码检测功能混在实际功能电路中,可以方便的检测到IR drop问题。
基于相同的技术构思,本发明实施例还提供一种芯片内部的各功能模块的电源压降的检测装置,图6示出了本发明实施例提供的一种芯片内部的各功能模块的电源压降的检测装置的结构示意图,如图6所示,该装置包括:
伪随机序列生成单元61,与芯片内部的待检测功能模块共用同一供电电源和时钟信号,用于根据所述供电电源在不同时钟周期内所提供的供电能力,按照预设规则,生成伪随机序列;将已生成的伪随机序列输出至伪随机序列检测单元62;
所述伪随机序列检测单元62,用于接收由所述伪随机序列生成单元61输出的伪随机序列,并按照所述预设规则,对接收到的伪随机序列进行解析,根据解析结果,确定所述待检测功能模块的电源压降的检测结果,并输出。
可选的,所述伪随机序列生成单元61具体用于:
在所述时钟信号中的第一个时钟周期内,当所述供电电源的电压值达到所述伪随机序列生成单元61的额定工作电压时,将预先设置的伪随机序列生成规则所规定的初始码值,作为伪随机序列中的与所述第一个时钟周期对应的码值;当所述供电电源的电压值未达到所述伪随机序列生成单元61的额定工作电压时,随机的生成所述伪随机序列中的与所述第一个时钟周期对应的码值;
对于除所述第一个时钟周期之外的其余时钟周期,当所述供电电源的电压值达到所述伪随机序列生成单元61的额定工作电压时,按照所述伪随机序列生成规则,利用所述伪随机序列中的与当前时钟周期的上一个时钟周期所对应的码值,生成所述伪随机序列中的与当前时钟周期对应的码值;当所述供电电源的电压值未达到所述伪随机序列生成单元61的额定工作电压时,随机的生成所述伪随机序列中的与当前时钟周期对应的码值。
可选的,所述伪随机序列检测单元62具体用于:
对于接收到的伪随机序列,根据所述伪随机序列生成规则,依次计算每个时钟周期所对应的标准码值;
依次判断计算出的每个时钟周期对应的标准码值与接收到的伪随机序列中对应时钟周期的码值的取值是否相同,如果是,则确定所述待检测功能模块在该时钟周期内未发生电源压降;否则,确定所述待检测功能模块在该时钟周期内发生电源压降。
可选的,如果所述芯片内部包含多个待检测功能模块,则:
对于每个待检测功能模块,在所述芯片的集成电路版图布局结构中,设置一个所述伪随机序列生成单元61,并且所述伪随机序列生成单元61与对应的待检测功能模块使用同一电源层提供的供电电源;
所述伪随机序列检测单元62具体用于:按照预设分时复用规则,接收由各个伪随机序列生成单元61输出的伪随机序列,并按照所述伪随机序列生成规则,分别对接收到的伪随机序列进行解析,根据解析结果,确定各个待检测功能模块的电源压降的检测结果,并输出;
其中,所述伪随机序列生成单元61与伪随机序列检测单元62通过串行总线连接。
可选的,该装置还包括:
电压调节单元,用于根据所述伪随机序列检测单元62输出的检测结果,对所述芯片内部的电压进行调节。
基于相同的技术构思,本发明实施例还提供一种芯片,图7示出了本发明实施例提供的一种芯片的结构示意图,如图7所示,该芯片包括:
若干个功能模块71以及芯片内部的各功能模块的电源压降的检测装置72。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器,使得通过该计算机或其他可编程数据处理设备的处理器执行的指令可实现流程图中的一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。