评估3dic的电源供应的方法和装置制造方法

文档序号:6492152阅读:160来源:国知局
评估3d ic的电源供应的方法和装置制造方法
【专利摘要】本发明公开了一种评估3D?IC的电源供应的方法和装置,所述方法包括:获取3D?IC中的特定区域中的电路模块的电流信息和布局信息;将所述特定区域网格化,从而形成至少一个立体网格,所述至少一个立体网格具有沿所述3DIC的芯片堆叠方向的多个侧边;基于所述电流模块的电流信息和布局信息确定至少一个侧边的电流;以及基于所述至少一个侧边的电流,评估所述3D?IC的电源供应。所述装置与方法对应。利用本发明实施例的方法和装置,可以有效地针对3D?IC的特点对其电源供应进行评估和分析。
【专利说明】评估3D IC的电源供应的方法和装置
【技术领域】
[0001]本发明涉及3D芯片的设计,更具体地,涉及评估3D iC芯片的供电的方法和装置。【背景技术】
[0002]随着信息技术的发展,人们对计算设备的处理能力提出了越来越高的要求;于是,用于执行处理和运算的半导体器件速度越来越快,规模也越来越大。然而同时,人们还希望半导体器件能够更加小型化,这就要求半导体器件实现为高密度的集成电路1C。为此,近年来提出了三维集成电路,即3D IC技术,用以实现高速度、高密度的集成电路。在3D IC中,集成电路由彼此堆叠的多个芯片构成,芯片之间利用穿透娃通孔TSV(through siliconvia)技术彼此连接。
[0003]为了降低IC器件的能耗,与单一芯片IC类似地,3D IC中也采用电源门控技术对芯片的逻辑电路中的各个部件进行电源开关控制。具体地,在芯片中提供有电源门控电路,其中包括多个电源开关,用于在逻辑电路中的部件不需要工作时关断其电源供应,以此达至IJ降低能耗的目的。然而,取决于具体的电路设计,电源门控电路有可能在其两端引起较大的欧姆压降,或称IR压降。过大的IR压降会影响芯片部件的功能和工作。同时,电源门控电路对芯片中各个部件的电源开关操作也会导致电源供应的噪声。过大的噪声有可能损坏所控制的逻辑电路,或者劣化其性能。因此,在设计芯片的过程中,通常需要考虑门控电路的影响来评估芯片的电源的稳定性或鲁棒性(robustness)。
[0004]在常规的单一芯片IC中,电源门控电路的布置通常有两个方式,即环形设计和纵列设计。图1示出单一芯片IC中电源门控电路的布置。图1A示出上述环形设计,其中围绕电源域的周围布置电源门控电路。图1B示出纵列设计,其中电源开关以纵列的形式插入在电源域中。然而,对于3D IC来说,电源门控电路具有完全不同的布置方式。图2示出3DIC的示意图,其中图2A示出一个示例性的3D IC的截面图,图2B示出3D IC的电源连接的立体图。图2A所示的示例性3D IC包括堆叠在一起的4个芯片。每个芯片包括Si基底,在Si基底上布置有各种电路部件(由SI,S2,S3,S4示出)。在芯片内部,通过内部硅通孔(Tl,T2,T3,T4)和相应的金属连线(Rl,R2,R3,R4)实现芯片内部的电路连接。在芯片之间,利用穿透硅通孔的连接柱(例如,Q2,Q3,Q4)实现芯片之间的电路连接和电源供应。通常,在顶层或底层芯片上布置电源门控电路,在其他芯片上布置逻辑电路。然而,理论上来说,电源门控电路可以布置在3D IC的任一芯片上或其中的多个芯片上。可以理解,图2A的图示仅仅是一种示例。3D IC可以由其他数目的多个芯片堆叠而成。在图2B的示意图中,电源门控电路布置在底层芯片中,并且,该芯片通过焊球或焊盘21连接到外部供电网,然后通过连接柱22将受控电源提供到其他芯片。因此,在3D IC中,除直接与外部供电网相连的芯片之外,其他芯片均通过连接柱获得电源供应。如图2B所示,连接柱不仅可以设置在芯片四周,还可以设置在芯片内部。可以理解,根据芯片中各个有源部件的需要,连接柱可以提供为任何二维布局的形式。
[0005]对比图1和图2的示意图可以看到,3D IC中电源门控电路的布置以及供电连接方式与常规单一芯片IC完全不同。相应地,现有技术中对单一芯片IC的电源供应进行评估和分析的方法无法适用于3D IC的情况。因此,希望针对3D IC的特点提出适用的评估方法,以期辅助和改进3D IC中电源供应的设计。

【发明内容】

[0006]考虑到以上提出的问题,提出本发明,旨在针对3D IC提供一种适用的电源供应评估方案,从而弥补现有技术在这方面的不足。
[0007]根据本发明的一个方面,提供了评估3D IC的电源供应的方法,包括:获取所述3D IC的特定区域中包含的电路模块的电流信息和布局信息;将所述特定区域网格化,从而形成至少一个立体网格,所述至少一个立体网格具有沿所述3D IC的芯片堆叠方向的多个侧边;基于所述电流模块的电流信息和布局信息确定所述多个侧边中的至少一个侧边的电流;以及基于所述至少一个侧边的电流,评估所述3D IC的电源供应。
[0008]根据本发明的另一个方面,提供了一种评估3D IC的电源供应的装置,包括:信息获取单元,配置为获取所述3D IC的特定区域中的电路模块的电流信息和布局信息;网格化单元,配置为将所述特定区域网格化,从而形成至少一个立体网格,所述至少一个立体网格具有沿所述3D IC的芯片堆叠方向的多个侧边;电流确定单元,配置为基于所述电流模块的电流信息和布局信息确定所述多个侧边中的至少一个侧边的电流;以及评估单元,配置为基于所述至少一个侧边的电流,评估所述3D IC的电源供应。
[0009]利用本发明实施例的方法和装置,可以有效地针对3D IC的特点对其电源供应进行评估和分析。
【专利附图】

【附图说明】
[0010]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0011]图1示出单一芯片IC中电源门控电路的布置的示意图;
[0012]图2示出3D IC的示意图;
[0013]图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
[0014]图4示出根据本发明一个实施例的评估3D IC的电源供应的方法的流程图;
[0015]图5示出确定侧边电流的一个示意图;
[0016]图6示出根据一个实施例的确定侧边电流的子步骤;
[0017]图7示出一个立体网格的例子;
[0018]图8示出根据一个实施例基于立体网格电流计算侧边电流的子步骤;
[0019]图9示出一个电流分配的示意图;
[0020]图10示出一个侧边电流分配的示意图;
[0021]图11示出一个模拟电路和模拟结构的示例;以及
[0022]图12示出根据一个实施例的评估装置的框图。【具体实施方式】
[0023]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0024]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0025]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0026]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0027]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限于一无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0028]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0029]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。[0030]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
[0031]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0032]图3示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图3显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0033]如图3所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0034]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0035]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0036]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0037]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0038]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0039]以下结合附图和具体例子描述本发明的实施方式。根据本发明的实施例,提出分布电流模型,其中将3D IC中有待分析的区域划分为多个子区域,从而形成多个立体网格,所述多个立体网格具有沿3D IC的芯片堆叠方向的多个侧边。接着,根据3D IC的芯片上的各个电路模块的电流信息和布局信息,确定侧边处的电流。基于计算得到的各个侧边处的电流,可以获得3D IC中的电流分布情况。这样的电流分布情况可以辅助用于设计芯片间的连接柱的布置或在设计连接柱的布置之后进行电流的后验证和后仿真。并且,通过对侧边处的电流进行分析,可以对芯片的电源供应进行噪声、鲁棒性等评估。
[0040]现在参看图4,其示出根据本发明一个实施例的评估3D IC的电源供应的方法的流程图,其中所述3D IC包括堆叠的多个芯片。如图4所示,所述方法包括如下步骤:步骤41,获取3D IC的特定区域中的电路模块的电流信息和布局信息;步骤42,将上述特定区域网格化,从而形成至少一个立体网格,所述至少一个立体网格具有沿所述3D IC的芯片堆叠方向的多个侧边;步骤43,根据所述电流模块的电流信息和布局信息确定所述多个侧边中至少一个侧边的电流;步骤44,基于所述至少一个侧边的电流,评估所述3D IC的供电。下面结合具体例子描述上述各个步骤的执行方式。
[0041]一般地,在3D IC设计过程中,设计人员首先确定实现芯片逻辑功能的各个电路模块及其布局。上述的电路模块可以是实现特定功能的各种定制模块,尤其是各种预先设计好的功能模块,例如eDRAM,SDRAM,寄存器等等。在芯片设计领域中,也将这样的电路模块称为IP (intellectual property)模块或IP核。在确定了构成3D IC的各个芯片上的电路模块及其布局的基础上,设计人员就可以针对3D IC的电源供应进行评估。
[0042]在一个实施例中,评估3D IC的电源供应的方法包括步骤41,获取3D IC的特定区域中的电路模块的电流信息和布局信息。可以理解,上述特定区域是有待对其电源供应进行分析的区域,该区域可以由用户根据需要来指定。并且,针对3D IC的分析需求,该特定区域可以是3维立体区域。在一个例子中,上述特定区域包含3D IC中的所有需要供电的逻辑芯片。
[0043]为了获取上述特定区域中的电路模块的电流信息,在一个实施例中,首先获得上述特定区域中的各个电路模块的种类。根据一个实施例,种类的信息可以通过接收用户(设计人员)的输入来获得。如前所述,在评估电源供应之前,3D IC的各个芯片上的电路模块已经确定,因此,设计人员可以通过一个接口来输入有待分析的区域中所包含的各个电路模块的种类。根据另一个实施例,设计人员在设计芯片的逻辑电路过程中,利用特定文件(例如,网表)来记录所采用的电路模块及其连接关系。通过扫描并识别上述文件,也可以获得特定区域中的电路模块的种类。在获得上述种类信息的基础上,可以通过搜索和查询电路模块信息库来获得各个电路模块的电流信息。本领域技术人员可以理解,现有技术中已经提供有电路模块信息库,用于记录各种电路模块的信息,包括其种类、大小、引脚信息、工作电压、电流信息等。根据获得的种类信息,就可以在所述电路模块信息库中查询得到该种类的电路模块的电流信息。在一个实施例中,所述电流信息包括电路模块工作期间的平均电流值或标准工作电流值。更一般地,所述电流信息记录为I (t)函数形式,该函数记录在电路模块上电、工作和掉电期间,电流I随时间t的变化。在一个例子中,上述I (t)函数被绘制为时域电流波形图的形式。在一个实施例中,有些电路模块可以工作于不同的工作频率,并在不同的工作频率下具有不同的I (t)函数。在这样的情况下,用户还需要指定电路模块的工作频率,并进一步地基于该工作频率查询电路模块信息库,从而准确获得电路模块的电流信息。
[0044]此外,由于设计人员已经确定了各个电路模块的布局,因此,可以通过接收设计人员的输入来获得电路模块的布局信息。这样的布局信息可以包括,各个电路模块的中心位置、大小、形状等信息。
[0045]另一方面,根据本发明实施例提出的分布电流模型,将3D IC划分为子区域进行电流分析。为此,在步骤42,将上述特定区域网格化,从而形成至少一个立体网格。立体网格的划分可以是均匀的或者是非均匀的。为了分析的简单和方便,在一个实施例中,所述立体网格为立方体或直平行六面体。除此之外,根据分析的需要,立体网格还可以设定为三棱柱、六边棱柱或其他更加复杂的形状中的一种或多种的组合。但是,为了模拟3D IC中连接柱的供电情形,立体网格需具有沿3D IC的芯片堆叠方向的平行侧边。在该说明书的上下文中,立体网格的侧边均指代平行于芯片堆叠方向的侧边,而不考虑其他方向的边。可以理解,立体网格划分的粒度,或者立体网格的大小,可以根据分析需要而进行调整。在一个例子中,可能对于特定区域仅形成一个立体网格。而在对分析的精度要求较高的例子中,可以形成较为细密的立体网格。此外,立体网格的划分也与有待设计或已经设计的连接柱的分布有关。如前所述,除了直接连接到外部供电网的芯片之外,3D IC中的其他芯片均通过连接柱获得电源供应。在前仿真的情况下,也就是,在确定连接柱的位置之前进行电源评估的情况下,可以根据连接柱的典型间距(pitch)进行立体网格化,使得立体网格的特征尺度与上述典型间距形成特定比例或关系。在确定连接柱的位置之后进行电源评估的后仿真的情况下,则要使得立体网格化形成的侧边至少部分地与所确定的连接柱的位置相对应。此夕卜,可以理解,本领域技术人员在阅读本说明书的教导的情况下,能够根据分析的需要采用适当的方式来对3D IC进行网格化,从而形成各种形式的立体网格,并相应地获得立体网格的多个侧边。
[0046]尽管在图4中将步骤42示出为在步骤41之后执行,但是可以理解,步骤42也可以在步骤41之前执行或与其并行地执行。
[0047]在步骤41获得电路模块的信息以及步骤42对3D IC进行网格化的基础上,在步骤43,根据电流模块的电流信息和布局信息确定至少一个侧边的电流。
[0048]在一个实施例中,步骤43中确定至少一个侧边的电流包括,基于所述电路模块的布局信息确定该电路模块与至少一个侧边的距离,从而确定该电路模块对该至少一个侧边的电流分配权重;将至少一部分电路模块的电流进行加权求和,将求和结果作为该至少一个侧边的电流。具体地,对于某一侧边i,基于电路模块j与该侧边i之间的距离确定电路模块j的权重,根据所述权重对各个电路模块的电流进行加权求和作为侧边i的电流。
[0049]在一个例子中,假定电路模块j对应的电流为MIp并且该电路模块j距离侧边i的距离为,那么侧边i的电流NIi可以确定为NIi= Σ MIjArij)2,即,电路模块j对应的权重为l/(rij)2。可以理解,根据步骤41获得的电流信息,以上所述的电路模块的电流可以是电流值或者是I (t)函数的形式。在下面的描述中,电路模块的电流均包括I (t)函数形式的电流。
[0050]图5示出确定侧边电流的一个示意图。在该示意图中,要分析的特定区域包含三个不例性电路模块A,B,C,电路模块A和B位于同一层芯片中,电路模块C位于较低一层的芯片中,示例性的侧边i沿芯片堆叠方向。假定上述三个电路模块分别具有电流IA,IB,Ic,且这三个电路模块距离要分析的侧边i的距离分别为rA,rB,rc。在这个例子中,电路模块与侧边i的距离被计算为电路模块的几何中心与侧边i的距离。根据上述实施例,侧边i的电流可以确定为尽管此处将权重设定为l/(ru)2,但是其他权重因子的设定也是可能的,只要使得电路模块距离侧边的距离越大,权重越小。例如,在另一例子中,还可以将权重设定为l/rijt) 一般地,在进行网格化时,使得形成的侧边避开电路模块的位置,从而避免Aj=O的情况。上述的确定侧边电流的方法可以适用于任何形状的立体网格。
[0051]在另一个实施例中,将该侧边i的电流NIi确定为,对所述特定区域中包含的部分电路模块的电流进行加权求和,所述部分电路模块是与侧边i的距离小于一预定阈值的电路模块。也就是说,如果电路模块j和侧边i之间的距离大于一预定阈值,则认为,电路模块j对于侧边i的电流没有影响,从而在计算侧边i的电流时不考虑该电路模块j的电流
-Tj.士 [>贝献。
[0052]在以上具体描述的实施例的基础上,本领域技术人员还可以进行进一步的修改,例如修改加权求和的权重因子,修改距离的计算方式,修改对进行求和的电路模块的选择等等。这样的修改也应包含在本发明的构思之内。
[0053]以上考虑电路模块的布局直接将电路模块的电流分配到各个侧边,从而获得侧边的电流。作为另一选择,还可以利用步骤42形成的立体网格,分步骤地获得侧边的电流。
[0054]图6示出根据一个实施例的确定侧边电流的子步骤,即图4中步骤43的子步骤。如图6所示,首先在步骤431,根据电路模块的电流信息为形成的至少一个立体网格分配电流,然后,在步骤432,基于所述至少一个立体网格分配到的电流计算侧边的电流,或者说,将立体网格分配到的电流进一步分配到侧边,从而确定至少一个侧边的电流。下面结合例子描述上述子步骤的执行。
[0055]步骤431中立体网格电流的分配可以通过多种方式来执行。在一个实施例中,将上述特定区域中的电路模块的电流平均分配给形成的η个立体网格。具体地,首先将获得的各个电路模块的电流叠加在一起,形成该特定区域的总电流Ιτ,然后将该总电流分配给形成的η个立体网格。由此每个立体网格分配得到的电流为Ιτ/η。
[0056]在一个实施例中,考虑立体网格的体积进行电流的分配。具体地,首先如前所述获得该特定区域的总电流It,然后获得该特定区域的总体积VT。对于立体网格k,获得该立体网格的体积Vk。相应地,将该立体网格k分配的电流设定为ITVk/VT。在步骤42形成均匀立体网格的情况下,该实施例的结果与之前的实施例相同;但是对于非均匀的立体网格,将会获得不同结果。
[0057]在一个实施例中,考虑各个立体网格中包含的电路模块为立体网格分配电流。具体地,对于立体网格k,基于电路模块的布局信息获得该立体网格所涉及的电路模块,并将该立体网格k分配得到的电流定义为,立体网格k所包含或部分包含的电路模块的电流的总和。图7示出一个立体网格的例子。在图7中,示例性示出了两个相邻的立体网格I和2,以及相关的两个电路模块A和B,其中电路模块A —部分位于立体网格I中,另一部分位于立体网格2中,而电路模块B完全包含在立体网格2中。根据本实施例,立体网格I分配得到的电流可以确定为Ia,立体网格2分配得到的电流定义为其涉及的电路模块A和B的电流总和,即IA+IB。
[0058]在另一实施例中,进一步考虑电路模块在不同立体网格间的分布进行电流的分配。具体地,对于立体网格k,进一步考虑其涉及的电路模块j落在立体网格k中的体积相对于其总体积的比例W」。以该体积比例Wj作为权重,对立体网格k中所涉及的各个电路模块j的电流进行求和,从而获得立体网格k分配到的电流Ik,即,Ik= Σ Ifwjtj仍然参照图7的例子,考虑电路模块的体积比例进行电流分配。对于立体网格1,其仅涉及电路模块A,并且电路模块A有2/3体积落在立体网格I中。因此,对于立体网格1,电路模块A的权重wA为2/3,相应地,立体网格I的电流为2Ia/3。对于立体网格2,其涉及的电路模块包括A和B,其中电路模块A仅有1/3体积落在立体网格2中,因此,对于立体网格2来说,电路模块A的权重wA为1/3。此外,电路模块B完全位于立体网格2中,因此其体积比例wB=l。因此,立体网格2分配到的电流为Ia/3+Ib。
[0059]尽管以上列举了几种具体的立体网格电流分配方法,但是本领域技术人员在本说明书的教导下有可能对立体网格电流分配方法进行组合或者扩展。这样的组合或扩展也应包含在本发明构思范围之内。此外,可以理解,图7示出的立方形立体网格仅仅是一种示例。以上的各种立体网格电流分配方法适用于各种形状的立体网格。
[0060]基于以上通过各种方式为立体网格分配的电流,可以执行步骤432,通过将立体网格电流分配到侧边来计算侧边的电流。图8示出根据一个实施例基于立体网格电流计算侧边电流的子步骤,即步骤432的子步骤。如图8所示,基于立体网格电流计算侧边电流的过程可以进一步包括,步骤4321,将步骤431中为立体网格分配的电流进一步分配给与立体网格相关的侧边;步骤4322,对于某一侧边i,确定与该侧边i相关联的立体网格;步骤4323,将所确定的相关联的立体网格分别分配到该侧边i的电流进行叠加,从而获得该侧边i的电流。
[0061]在一个实施例中,在步骤4321,将立体网格的电流平均分配给相关的侧边。然后,在步骤4322-4323,将不同立体网格分配到同一侧边的电流叠加在一起,从而获得该侧边的电流。图9示出一个电流分配的示意图。在图9的示意图中,示出了 2*2排列的4个立体网格,假定通过之前的步骤431,这4个立体网格分配到的电流分别为I1, 12,".Ι4。根据本实施例,将立体网格I的电流I1平均分配给其相关的四个侧边Sn,S12, S21,S22。由此,上述四个侧边分别从立体网格I获得电流L/4。类似地,其他的各个立体网格也将其电流平均分配给相关的四个侧边。下面考虑几个典型的侧边Sn,S21和S22。对于侧边S11,在步骤4322可以确定,S11仅与立体网格I相关。因此,在步骤4323,侧边S11的电流可以计算为立体网格I分配给该侧边的电流,即L/4。对于侧边S21,在步骤4322可以确定,S21是立体网格I和立体网格4共同的侧边,因此,S21与立体网格I和立体网格4相关。相应地,在步骤4323,侧边S21的电流可以计算为立体网格I分配给该侧边的电流I1A与立体网格4分配给该侧边的电流14/4的叠加,即SI21=I1Z^I4A15类似地,对于侧边S22,在步骤4322可以确定,该侧边S22与立体网格I,立体网格2,立体网格3和立体网格4均相关。接着,在步骤4323,可以将侧边S22的电流计算为上述4个立体网格分别分配给该侧边的电流的叠加,即SI;^=Ii/4+]V4+I3/4+I4/4。类似地,可以理解,图9示出的立体网格仅仅是一种示例。以上的侧边电流分配方法适用于各种形状的立体网格。
[0062]在一个实施例中,在步骤4321,根据立体网格中包含的电路模块的位置分布将立体网格电流分配给相关的侧边。具体地,对于立体网格k中包含的电路模块j,计算电路模块j到立体网格k的各个侧边的距离,基于计算的距离确定各个侧边的电流分配权重,从而根据确定的权重将立体网格k的电流中与电路模块j对应的部分分配给各个侧边。上述电路模块j可以是立体网格k中包含的一个完整的电路模块,也可以是落入立体网格k中的电路模块部分。将这样的电路模块部分也视为单独的电路模块进行处理。
[0063]图10示出一个侧边电流分配的示意图,该示意图中的立体网格分布和电路模块的分布与图7相同。具体地,立体网格I包含电路模块A的一部分(体积的2/3)。如前所述,将该电路模块部分作为一个单独的电路模块Al。相应地,立体网格2包含电路模块A2(对应于1/3的电路模块A)和电路模块B。如之前参照图7所述,在考虑电路模块的体积比例进行电流分配的情况下,立体网格I分配到的电流为2IA/3,立体网格2分配到的电流为Ia/3+Ib。为了将立体网格I的电流分配给相关的侧边SI,S2, S3, S4,计算立体网格I中包含的电路模块Al距离各个侧边的距离dl,d2,d3,d4。在一个例子中,以上距离是电路模块部分Al的几何中心距离各个侧边的距离。基于计算出的各个距离,确定侧边的电流分配权重。例如,在一个例子中,将侧边SI的权重定义为wl=dl/ (dl+d2+d3+d4),侧边S2的权重定义为w2=d2/(dl+d2+d3+d4),侧边S3的权重定义为w3=d3/(dl+d2+d3+d4),侧边S4的权重定义为w4=d4/ (dl+d2+d3+d4)。由此,侧边SI从立体网格I分配到的电流为wl*2IA/3。类似地,其他侧边i从立体网格I分配到的电流为立体网格I的电流乘以侧边i的权重wi。下面考虑立体网格2。立体网格2包含电路模块A2和电路模块B。在一个实施例中,对于电路模块A2和B的每一个,如前所述地计算其中心到各个侧边S3,S4, S5, S6的距离,基于这些距离计算各个侧边从电路模块分配到的电流,然后对两个电路模块A2和B分配到同一侧边的电流进行叠加作为该·侧边从立体网格分配到的电流。例如,对于侧边N3,假定该侧边相对于电路模块A2的电流分配权重为wA,相对于电路模块B的电流分配权重为wB,那么侧边3从立体网格2分配到的电流可以表示为wa*Ia/3+wb*Ib。在另一实施例中,对于立体网格中包含的多个电路模块,首先将该多个电路模块聚集成一个总电路模块并确定该总电路模块的中心。在一个例子中,可以计算所述多个电路模块总体的几何中心作为总电路模块的中心。或者,在另一例子中,综合考虑所述多个电路模块的电流和位置,计算该多个电路模块的“重心”作为总电路模块的中心。然后如前所述地计算立体网格的各个侧边相对于该总电路模块的电流分配权重,最后按照计算的权重将立体网格的总电流分配到各个侧边。例如,对于图10的立体网格2,可以将电路模块A2和电路模块B聚集成一个总电路模±夹,并基于电路模块A2和电路模块B的位置和电流计算其“重心”作为总电路模块的中心。接着,计算该总电路模块的中心距离侧边N3,N4, N5, N6的距离,由此计算各个侧边的综合电流分配权重。最后,将侧边i分配的电流确定为立体网格的总电流乘以该侧边的综合电流分配权重。
[0064]以上结合具体例子描述了根据立体网格中电路模块的位置分布将立体网格电流分配给侧边的步骤4321。接着,如前所述地执行步骤4322和4323,确定某一侧边的相关立体网格,并对各个相关立体网格分配的电流进行叠加,从而获得该侧边的电流。
[0065]尽管以上具体描述了先将电路模块的电流分配到立体网格,再基于立体网格的电流确定侧边电流的例子,但是这些例子仅仅为了更清楚地描述侧边电流计算过程,而不具有任何限制性。本领域技术人员在阅读以上具体描述的实施例的基础上还可以进行进一步的修改,这样的修改也应包含在本发明的构思之内。
[0066]在步骤43中确定了至少一个侧边的电流的基础上,就可以执行步骤44,其中基于所确定的侧边的电流,评估3D IC的供电。在一个实施例中,基于侧边电流评估3D IC的供电包括,将所计算的侧边电流输入到与3D IC对应的模拟电路中,基于模拟电路的输出结果来评估3D IC的电源供应。该模拟电路可以是基于3D IC的物理特性和以上获取的侧边电流来模拟3D IC实际电流情况的虚拟电路。图1lA示出一个模拟电路的示例。如图所示,模拟电路中包括有电阻RP,Re以及电容C,其中电阻Rp代表电源端电阻,与上述3D IC中与外部供电网直接相连的焊球的分布和物理特性以及3D IC芯片间的连接柱的物理特性有关;Re代表地端电阻,可以根据需要进行设定;C代表3D IC中芯片的电容,与芯片本身的属性相关。对于这样的模拟电路,假定在箭头处输入步骤42中确定的某侧边的电流,在A处测量模拟电路的结果,可以得到图1lB所示的电压波形图。在图1lB中,从电压初始值到稳定状态的电压之间的高度差Hl对应于IR压降,稳定状态下电压的振幅H2称为稳态摆幅,电压初始值到电压最低点之间的高度差H3称为阶跃响应幅度。IR压降、稳态摆幅和阶跃响应幅度是评估电源供应特性的常用特征量。通过分析模拟电路的输出结果,可以对3D IC的电源供应的特点,例如其稳定性、鲁棒性、信噪比等,进行各种分析。可以理解,以上的模拟电路仅仅是一种示例。在现有技术中,本领域技术人员已经能够采用多种模拟电路来进行输出信号的分析和模拟。相应地,在步骤44中可以采用与现有技术类似的适当模拟电路。不过,不同的是,在本发明实施例中,将通过步骤41-43计算的侧边电流用于模拟电路来获得模拟结果,从而对3D IC的电源供应进行分析和评估。
[0067]在一个实施例中,基于侧边电流评估3D IC的供电包括,记录多个侧边的电流,由此评估3D IC中的电流分布。这样的电流分布信息可以用于在前仿真中设计芯片间连接柱的分布,或者改进已经设计的分布。在后仿真的情况下,可以在步骤44基于侧边电流对3DIC连接柱的电流进行仿真和验证。
[0068]可以理解,除了以上列举的应用之外,步骤43获得的侧边电流可以用于在其他方面评估和分析3D IC的电源供应。因此,本发明实施例根据3D IC的电源设计特点将3D IC网格化,确定出立体网格侧边的电流作为3D IC的特征电流。基于所确定的特征电流,就可以对3D IC的电源供应进行多方面的分析和评估,例如稳定性、噪声、鲁棒性等。由此,本发明实施例使得专门针对3D IC进行电源分析成为可能。
[0069]基于同一发明构思,本发明实施例还提供了评估3D IC的电源供应的装置。图12示出根据一个实施例的评估装置的框图。如图12所示,本实施例的评估3D IC电源供应的装置总体上由120表示,并且装置120包括:信息获取单元121,配置为获取所述3D IC的特定区域中的电路模块的电流信息和布局信息;网格化单元122,配置为将所述特定区域网格化,从而形成至少一个立体网格,所述至少一个立体网格具有沿所述3D IC的芯片堆叠方向的多个侧边;电流确定单元123,配置为基于所述电流模块的电流信息和布局信息确定所述多个侧边中的至少一个侧边的电流;以及评估单元124,配置为基于所述至少一个侧边的电流,评估所述3D IC的电源供应。
[0070]在一个实施例中,上述信息获取单元121配置为:获取所述电路模块的种类;以及基于所述电路模块的种类,查询电路模块信息库,从而获得所述电路模块的电流信息。
[0071]在一个实施例中,所述电流确定单元123配置为,基于所述电路模块的布局信息确定该电路模块与所述至少一个侧边的距离,从而确定该电路模块对该至少一个侧边的电流分配权重;将至少一部分电路模块的电流进行加权求和,将求和结果作为该至少一个侧边的电流。
[0072]在一个实施例中,所述电流确定单元123包括:网格电流分配子单元(未示出),配置为根据所述电路模块的电流信息和布局信息为所述至少一个立体网格分配电流;侧边电流计算子单元(未示出),配置为基于所述至少一个立体网格分配到的电流计算所述至少一个侧边的电流。
[0073]根据一个实施例,所述电流确定单元123中的网格电流分配子单元配置为:根据所述至少一个立体网格中的立体网格k所涉及的某一电路模块j的布局信息确定该电路模块j落在立体网格k中的体积相对于该电路模块j的总体积的体积比例;以所述体积比例为权重,对立体网格k中所涉及的各个电路模块j的电流进行求和,从而确定立体网格k分配到的电流。
[0074]根据一个实施例,所述电流确定单元123中的侧边电流计算子单元配置为:将各个立体网格分配到的电流分配给相关的侧边;对于所述至少一个侧边中的侧边i,确定与该侧边i相关联的立体网格;将所确定的相关联的立体网格分别分配到该侧边i的电流进行叠加,从而确定该侧边i的电流。
[0075]根据一个实施例,上述侧边电流计算子单元配置为,将各个立体网格分配到的电流平均分配给相关的侧边。
[0076]根据一个实施例,侧边电流计算子单元配置为,对于立体网格k中包含的电路模块j,根据电路模块的布局信息计算电路模块j到立体网格k的各个侧边的距离,基于计算的距离确定各个侧边的电流分配权重,根据确定的电流分配权重将立体网格k的电流中与电路模块j对应的部分分配给各个侧边。
[0077]在一个实施例中,所述侧边电流计算子单元配置为,对于立体网格k中包含的多个电路模块,根据电路模块的布局信息计算该多个电路模块共同的重心,并计算该重心到立体网格k的各个侧边的距离,基于计算的距离确定各个侧边的电流分配权重,根据确定的电流分配权重将立体网格k的总电流分配给各个侧边。
[0078]根据一个实施例,上述评估单元124配置为,将所述至少一个侧边的电流输入到与3D IC对应的模拟电路中,基于模拟电路的输出结果来评估3D IC的电源供应。
[0079]以上评估装置120的具体执行方式可以参照之前结合具体例子对图4的方法的描述,在此不再赘述。在一个实施例中,上述评估装置120可以实现为现有芯片设计工具的附加功能模块或插件,以增强现有设计工具的功能。在一个实施例中,上述评估装置120可以实现为独立的评估工具。
[0080]利用本发明实施例的方法和装置,可以有效地针对3D IC的特点对其电源供应进行评估和分析。
[0081]可以理解,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0082] 以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本【技术领域】的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本【技术领域】的其它普通技术人员能理解本文披露的各实施例。
【权利要求】
1.一种评估3D IC的电源供应的方法,包括: 获取所述3D IC的特定区域中包含的电路模块的电流信息和布局信息; 将所述特定区域网格化,从而形成至少一个立体网格,所述至少一个立体网格具有沿所述3D IC的芯片堆叠方向的多个侧边; 基于所述电路模块的电流信息和布局信息确定所述多个侧边中的至少一个侧边的电流;以及 基于所述至少一个侧边的电流,评估所述3D IC的电源供应。
2.根据权利要求1所述的方法,其中获取所述电路模块的电流信息包括: 获取所述电路模块的种类;以及 基于所述电路模块的种类,查询电路模块信息库,从而获得所述电路模块的电流信息。
3.根据权利要求1的方法,其中确定至少一个侧边的电流包括: 基于所述电路模块的布局信息确定该电路模块与所述至少一个侧边的距离,从而确定该电路模块对该至少一个侧边的电流分配权重; 将至少一部分电路模块的电流进行加权求和,将求和结果作为该至少一个侧边的电流。
4.根据权利要求1的方法,其中确定至少一个侧边的电流包括:· 根据所述电路模块的电流信息和布局信息为所述至少一个立体网格分配电流; 基于所述至少一个立体网格分配到的电流计算所述至少一个侧边的电流。
5.根据权利要求4的方法,其中为所述至少一个立体网格分配电流包括: 根据所述至少一个立体网格中的立体网格k所涉及的某一电路模块j的布局信息确定该电路模块j落在立体网格k中的体积相对于该电路模块j的总体积的体积比例; 以所述体积比例为权重,对立体网格k中所涉及的各个电路模块的电流进行求和,从而确定立体网格k分配到的电流。
6.根据权利要求4或5的方法,其中所述基于至少一个立体网格分配到的电流计算所述至少一个侧边的电流包括: 将各个立体网格分配到的电流分配给相关的侧边; 对于所述至少一个侧边中的侧边i,确定与该侧边i相关联的立体网格; 将所述与侧边i相关联的立体网格分别分配到该侧边i的电流进行叠加,从而确定该侧边i的电流。
7.根据权利要求6的方法,其中所述将各个立体网格分配到的电流分配给相关的侧边包括,将各个立体网格分配到的电流平均分配给相关的侧边。
8.根据权利要求6的方法,其中所述将各个立体网格分配到的电流分配给相关的侧边包括,对于立体网格k中包含的电路模块j,根据该电路模块j的布局信息计算电路模块j到立体网格k的各个侧边的距离,基于计算的距离确定各个侧边的电流分配权重,根据确定的电流分配权重将立体网格k的电流中与电路模块j对应的部分分配给各个侧边。
9.根据权利要求6的方法,其中所述将各个立体网格分配到的电流分配给相关的侧边包括,对于立体网格k中包含的多个电路模块,根据电路模块的布局信息计算该多个电路模块共同的重心,并计算该重心到立体网格k的各个侧边的距离,基于计算的距离确定各个侧边的电流分配权重,根据确定的电流分配权重将立体网格k的总电流分配给各个侧边。
10.一种评估3D IC的电源供应的装置,包括: 信息获取单元,配置为获取所述3D IC的特定区域中的电路模块的电流信息和布局信息; 网格化单元,配置为将所述特定区域网格化,从而形成至少一个立体网格,所述至少一个立体网格具有沿所述3D IC的芯片堆叠方向的多个侧边; 电流确定单元,配置为基于所述电路模块的电流信息和布局信息确定所述多个侧边中的至少一个侧边的电流;以及 评估单元,配置为基于所述至少一个侧边的电流,评估所述3D IC的电源供应。
11.根据权利要求11所述的装置,其中所述信息获取单元配置为: 获取所述电路模块的种类;以及 基于所述电路模块的种类,查询电路模块信息库,从而获得所述电路模块的电流信息。
12.根据权利要求11的装置,其中所述电流确定单元配置为,基于所述电路模块的布局信息确定该电路模块与所述至少一个侧边的距离,从而确定该电路模块对该至少一个侧边的电流分配权重;将至少一部分电路模块的电流进行加权求和,将求和结果作为该至少一个侧边的电流。
13.根据权利要求11的装置,其中所述电流确定单元包括:· 网格电流分配子单元,配置为根据所述电路模块的电流信息和布局信息为所述至少一个立体网格分配电流; 侧边电流计算子单元,配置为基于所述至少一个立体网格分配到的电流计算所述至少一个侧边的电流。
14.根据权利要求14的装置,其中所述网格电流分配子单元配置为: 根据所述至少一个立体网格中的立体网格k所涉及的某一电路模块j的布局信息确定该电路模块j落在立体网格k中的体积相对于该电路模块j的总体积的体积比例; 以所述体积比例为权重,对立体网格k中所涉及的各个电路模块的电流进行求和,从而确定立体网格k分配到的电流。
15.根据权利要求14或15的装置,其中所述侧边电流计算子单元配置为: 将各个立体网格分配到的电流分配给相关的侧边; 对于所述至少一个侧边中的侧边i,确定与该侧边i相关联的立体网格; 将所述与侧边i相关联的立体网格分别分配到该侧边i的电流进行叠加,从而确定该侧边i的电流。
16.根据权利要求16的装置,其中所述侧边电流计算子单元配置为,将各个立体网格分配到的电流平均分配给相关的侧边。
17.根据权利要求16的装置,其中所述侧边电流计算子单元配置为,对于立体网格k中包含的电路模块j,根据该电路模块j的布局信息计算电路模块j到立体网格k的各个侧边的距离,基于计算的距离确定各个侧边的电流分配权重,根据确定的电流分配权重将立体网格k的电流中与电路模块j对应的部分分配给各个侧边。
18.根据权利要求16的装置,其中所述侧边电流计算子单元配置为,对于立体网格k中包含的多个电路模块,根据电路模块的布局信息计算该多个电路模块共同的重心,并计算该重心到立体网格k的各个侧边的距离,基于计算的距离确定各个侧边的电流分配权重,根据确定的电流分配权重将立体网格k 的总电流分配给各个侧边。
【文档编号】G06F17/50GK103853861SQ201210506993
【公开日】2014年6月11日 申请日期:2012年11月30日 优先权日:2012年11月30日
【发明者】尹文 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1