本发明属于集成电路辅助设计领域,尤其涉及一种基于物理模型的片上供电网络电迁移可靠性分析方法。
背景技术:
超大规模集成电路的可靠性对于许多关键系统至关重要,例如医疗电子设备、航空电子设备、列车控制系统等等。然而,随着集成电路的制造工艺发展到7nm-10nm,芯片的复杂性日益增加,造成了保证集成电路的可靠性越来越困难。在集成电路面临的可靠性问题中,芯片上金属互连线上的电迁移(electromigration,em)所导致的芯片失效问题成为制约集成电路可靠性的关键因素之一。芯片金属互连线上的电迁移是由电子流动时和导线中金属原子发生碰撞,将动量传递给金属原子造成原子的迁移,持续不断的原子迁移将形成金属线上的空洞(void)或者小丘(hilllock),如图1所示,从而造成互连线的断开或短路。电迁移是金属线上电流密度(即单位横截面积流过的电流)长期作用的结果,电流密度越大越容易形成电迁移。
纳米工艺下芯片互连线上的电迁移问题是最为突出的可靠性问题之一。由于芯片互连线的尺寸的迅速减小,导致芯片电迁移失效时间的迅速减小。随着每一次工艺节点的进展,电迁移造成的平均失效时间约减少一半。在10nm以下的工艺节点中,电迁移问题将更为显著。造成严重电迁移可靠性问题的原因除了互连线尺寸的减小外,还有工艺特征尺寸缩小带来的电流密度增加。根据itrs(internationaltechnologyroadmapforsemiconductors)的预测,电迁移可靠性所能容许的电流密度随着金属线横截面积持续减小,而驱动晶体管所需金属线传导的电流密度则随着工艺尺寸的减小不断增大,这不仅仅因为互连线截面积的减少,也是由于先进的半导体器件为了达到更高的性能需要更大的驱动电流,并且,三维芯片的出现也导致所需的电流显著增加,这也使得互连线需要承载的电流密度大大提高。总而言之,不断减少的互连线尺寸和不断增大的电流密度需求将会带来严重的电迁移问题,在7nm-10nm工艺节点下,电迁移问题会更为严重。电迁移可靠性已经成为制约芯片设计制造的关键问题。
在芯片上所有的金属互连线网中,供电网络上的电迁移问题最为严峻[6]。这是因为信号线网、时钟线网等互连线网中的电流方向和电流强度在芯片工作时发生变化,反向移动的电子可以在一定程度上缓解电迁移,使金属线具有一定的恢复能力。而在供电网络中金属导线上的电流方向和电流强度基本保持不变,造成供电网络上的电迁移现象最为严重。因此,集成电路芯片中供电网络是电迁移问题的首要研究对象。
高效、精确的供电网络电迁移可靠性分析方法,对面向电迁移可靠性的集成电路辅助设计具有重要的科学意义和实用价值。为了应对电迁移带来的可靠性问题,需要从制造工艺、芯片设计、系统设计集成三个层面采取措施。目前的工艺流程中已经采取了诸如cowp加固减少铜表面扩散,金属掺杂等众多对抗电迁移的措施,但是,仅仅依靠制造工艺中采取措施无法令人满意地解决电迁移问题。工艺流程中采取的这些措施只能部分地缓解电迁移,更重要的还是在芯片设计时就考虑对电迁移限制。这就要求芯片辅助设计工具必须以电迁移的形成机制和物理模型为基础,向芯片设计人员提供电迁移分析验证及设计优化工具,协助其完成满足电迁移可靠性要求的芯片设计。
传统的供电网络电迁移分析算法主要是基于black经验公式,与此同时考虑短金属线的blech效应(blecheffect)。在传统的电迁移验证分析验证中,首先根据电路方程计算出金属导线上的电流密度,然后找出线长小于blech长度的金属线,认为这些金属线对电迁移免疫(不发生电迁移),最后根据black公式计算出平均失效时间(meantimetofailure,mttf)。然而,基于black经验公式的传统电迁移分析算法具有以下缺点:1)传统电迁移分析方法采用了串行的失效模型,即认为任意金属导线的电迁移失效都会造成供电网络的失效,而现代芯片的供电网络往往采取具有较高冗余度的网格结构,因此造成传统电迁移验证分析算法对供电网络电迁移可靠性的分析过于悲观。2)在black公式或计算blench长度时,将金属导线看做独立的电迁移对象是不合理的,这是由于电流密度带来的原子迁移会跨越不同的金属导线段边界,而不是仅仅局限在一段导线上。实际上,电迁移会在由同层互连金属导线构成的互连树上发生,因此必须考虑互连树上不同金属导线上电迁移的互相影响。具体到供电网络上,供电金属线上存在多个通孔作为电流流入流出的端口,对各个供电导线段割裂地应用black公式或者计算blench长度忽略了应力在整个金属供电线上的累积和分布,造成不准确的电迁移分析结果。
为了克服上述问题,首先需要在供电网络电迁移可靠性分析时考虑供电网络冗余度,以电迁移造成的供电网络电压降超过阈值作为电迁移失效的评判标准。其次,需要采用更为准确的电迁移物理模型来进行电迁移可靠性的分析。具体来说,以互连树作为电迁移研究对象,使用korhonen方程对互连线上的电流密度与应力进行建模。根据korhonen模型,供电网络上电迁移是一个电流与应力相互作用的过程:电子的流动造成金属线上应力的累积,当张应力达到临界值时,金属线上形成空洞,而空洞导致了供电导线电阻的增加,从而改变了供电网络上的电流密度,又进一步影响应力分布。因此从电流应力的korhonen物理模型出发,将供电网络建模为时变的电阻网络,通过仿真时间的推进计算电流应力与电流密度的相互作用,最后同样以供电节点上电压降超过一定阈值作为失效评判标准,计算供电网络的平均电迁移失效时间。与此同时,还需要考虑由工艺过程中造成的残留热应力对电迁移的影响。
然而,由于集成电路供电网络规模巨大,造成采用基于上述物理模型的电迁移分析方法在仿真求解时计算量巨大。已有的算法采取使用使用计算稳态电迁移应力从而估算电迁移空洞成核时间的方法,对大规模供电网络的电迁移分析进行加速。但是采用稳态应力估算会造成对供电网络上电迁移空洞成核的位置和时间的确定带来较大的误差。因此,工业界急需基于基于电迁移物理模型,考虑供电网络结构冗余性,并能够准确、高效分析供电网络上电迁移可靠性的辅助工具。
技术实现要素:
本发明的目的在于提出一种更精确、高效的基于物理模型的片上供电网络电迁移可靠性分析方法,通过供电网络的spice网表解析器导入并构建供电网络结构,并提取出供电网络上供电线的参数。结合工艺参数,建立供电网络电迁移的物理模型。采用基于积分变换的方法求解供电网络互连线上瞬态应力,从而准确地确定供电网络上空洞成核的时间和位置,最后通过将供电网络建模为时变电阻网络,并通过进行静态电压分析,将供电网络上最大电压降超过阈值作为供电网络失效的评判标准,来得到供电网络电迁移失效时间。
为实现上述目的,本发明采用如下的技术方案:
一种基于电迁移物理模型的供电网络电迁移可靠性分析方法,包括以下步骤:
步骤1、读入spice网表,构建供电网络;
步骤2、对供电网络上每个金属走线层查找互相连接的供电导线段,同时使用并查集快速构建导线段组成的互连树结构;
步骤3、采用基于积分变换的方法求解供电网络互连线上瞬态应力,准确地确定供电网络上空洞成核的时间和位置,最后通过将供电网络建模为时变电阻网络,并通过进行静态电压分析,将供电网络上最大电压降超过阈值作为供电网络失效的评判标准,来得到供电网络电迁移失效时间。
作为优选,还包括:构建供电网络电压分析的拓扑图,根据所述拓扑图建立供电网络电路的矩阵方程。
作为优选,步骤3具体包括以下步骤:
步骤3.1、计算供电网络电迁移瞬态应力;
步骤3.2、基于瞬态应力值,采用二分查找法寻找首个空洞成核时间;
步骤3.3、按时间步长推进,计算空洞增长;
步骤3.4、更新供电网络矩阵方程;
步骤3.5、进行供电网络静态分析,判断供电网络是否失效,进而得到供电网络失效时间。
作为优选,步骤3还包括:步骤3.6、计算有空洞增长段供电网络瞬态应力分布,具体包括:
步骤3.6.1、更新电流密度
在进行当前时刻的全网瞬态应力分析前,根据上一个时刻末的供电网络矩阵方程进行求解,更新电流密度分布,作为这个时刻的初始条件进行带入,
对供电网络是否失效进行了判断,如果供电网络没有失效,则可以进行下一步计算,通过供电网络静态分析可以知道互连树上每一处的节点电压,假设相邻两节点的电压为vi和vj,那么当前时刻的电流密度为
步骤3.6.2、计算瞬态应力
根据公式
步骤3.6.3、确认新空洞成核位置
当计算出当前时刻的瞬态应力后,获得了无空洞互连树的瞬态应力值σt,通过与提前设置好的阈值σcritical进行比较,任何大于σcritical的瞬态应力点都被视为产生空洞的节点。
附图说明
图1为本发明的片上供电网络电迁移可靠性分析方法的流程图。
具体实施方式
如图1所示,本发明实施例提供一种基于电迁移物理模型的供电网络电迁移可靠性分析方法,包括以下步骤:
步骤1、读入spice网表,构建供电网络,建立供电金属线电迁移模型
spice格式是一种工业界应用于描述电路元器件及其拓扑关系的标准格式,网表中的电路模型包含金属走线的电阻,供电pad的标准电压源,以及作为供电网络负载的吸纳电流源。
本发明所使用测试用例为标准spice格式网表描述,这些网表来自美国ibm公司的power系列处理器芯片供电网络电路设计。通过解析spice网表文件,提取供电网络上的金属走线层,供电金属线电阻,负载电流源,供电电压等信息。并建立起供电网络上几何节点和电路节点之间的连接关系。其中几何节点是指供电网络上位置坐标不同的点,而电路节点是指电路中不等价的点。注意不同的几何节点如果彼此之间相互短路,则对应相同的电路节点。在分析供电网络上电压降时,需要以电气节点为研究对象。在分析供电金属线上电迁移时,需要以几何节点为研究对象。本发明中的供电网络的网表解析器可以同时提取供电网络上几何节点和电气节点,并保存二者之间的对应关系。
步骤2、构建供电网络电迁移分析的互连树
步骤2.1、对供电网络上每个金属走线层查找互相连接的供电导线段
电迁移发生的原因是金属原子与电子之间的动量交换导致的金属原子迁移,但是由于铜金属线的制造工艺,不同层互连线之间存在钽化物形成的阻挡层,可以有效的阻止铜原子在不同层互连线之间的迁移。因此,电迁移主要发生在同一金属层的、互相连接的铜金属线组成的互连树结构上。互连树上的叶子节点是原子迁移的边界。
因此,我们通过spice网表提取的供电网络信息找到同一金属布线层上互相相连的供电金属导线段,这些导线段上的电迁移会互相影响。
步骤2.2、使用并查集快速构建互连树
在找到供电网络上同一金属层上互相链接的供电金属导线段之后,需要构建这些导线段组成的互连树结构。由于金属导线段之间的互连关系是传递的,即导线段a与b相连,b与c相连,那么a与c也简介地相连。这说明构成互连树的关系是具有传递性的金属导线段相连关系。为了快速的构建供电网络上所有的互连树,采用并查集数据结构来对找到所有互相相连的导线段构成的互连树。
算法如下:
对于所有的同一金属层的导线段
如果导线的端点为几何节点<i,j>,则将几何节点i,j记录到一个等价集中所有的导线段处理完成,所有的等价集构建完成之后。
对于所有的同一金属层的导线段
如果导线的端点为几何节点<i,j>,查找节点i的等价集,该等价集即为导线所属的互连树。
步骤3、供电网络静态分析
步骤3.1、构建供电网络电压分析的拓扑图
首先处理供电网络上几何节点之间短路或者是电阻过小的情况,并为每个几何节点建立对应的电气节点。然后将每个电气节点所代表的原始节点上挂载的吸纳电流源进行合并,再将电气节点与未被忽略的电阻建立成连接拓扑图,最后识别出该图中的所有连通分支并将此子图作为独立子电路的连接拓扑图。
步骤3.2、建立供电网络电路的矩阵方程
根据基尔霍夫电压定律和电流定律可将该供电网络对应的电路系统描述为一个线性系统,即根据修正的节点分析方法将其形式化为一个矩阵方程,其系数矩阵g是一个稀疏、对称、正定的矩阵。如果定义了节点i与节点j之间的电导值,也即gij=gji,因此系数矩阵a具有对称性,而其对角元素
步骤3.3、求解供电网络矩阵方程
本发明的供电网络静态电压分析器采用大规模稀疏矩阵方程的直接求解算法求解电压向量v。由于电导矩阵是g是对称正定的矩阵,因此使用cholesky直接求解算法。
步骤4、计算供电网络首个空洞成核时间
本发明的主要内容是多段供电金属线上的电迁移瞬态应力分析算法,是一种基于积分变换技术的偏微分方程求解算法。
步骤4、1.供电网络电迁移瞬态应力计算
供电网络上多段供电金属线上电迁移瞬态应力计算是本发明的主要内容。本发明对korhonen'sequation进行积分变换,从而获得供电网络的瞬态应力值的解。
korhonens'sequation如下:
这里,
以korhonen'sequation为基础,对其进行积分变换,即可求得互连树的瞬态应力分布。
首先,供电网络上多段金属线长度为l,由b+1段组成,我们将这些分支命名为0,1,2...b.这些分支所对应的电流密度函数设定为γ0,γ1...γb,除去两端的节点x0和xb+1,还有b个中间结点x1,x2...xb。这些中间节点按照递增顺序在金属线段上排列,并且满足0<xi<l,x0=0,xb+1=l。
依据电流密度函数在节点处跳变的特点,可以将其列为:
无空洞条件下,根据korhonen'sequation,我们知道边界条件是
特征值为
于是可以求出
根据
以及
算法名称:成核前互连树的瞬态应力求解算法
输入:
当前时刻t。这是一组向量来计算不同时刻的互连树上的瞬态应力值,时间的间隔应取一个恰当的值以保证算法的精确度。
节点相对位置x。我们将之按照递增顺序排序。
节点电压v。按照节点相对位置x进行排序。
积分变换后的初始应力分布f(λm)。在无空洞条件下的初始应力分布为0。
直线上应该计算瞬态应力的节点的相对位置xq。即将具有相同电势的两个点x(短路的两点)视为一个需要计算瞬态应力值的点。
直线上所有节点的稳态应力σ(x,∞)。如果σ(x,∞)没有初始值,那么将会在这个算法里计算一次稳态应力,稳态应力算法步骤见3.4.2。
输出:
直线上所有节点的瞬态应力值σt。
直线上所有节点的稳态应力值σ(x,∞)。
算法流程:
1.对x做差分得到直线上相邻两个点间距的集合l
2.对σ(x,∞)做插值得到稳态应力的线性分布diff(σ(x,∞))
3.对于成核前情况,用1、2两步所得可以求出γ向量:
4.求特征值λm=(π/l)*m,其中m为特征值所取个数,越大越精确,本实验取200
5.求每个节点上的特征方程ψm=cos(x*λm)
6.求
7.σ0(x)已知,所以
8.求得
9.最后
end。
步骤4.2、无空洞条件下电迁移稳态应力计算
由于计算瞬态应力时需要使用稳态应力来计算电迁移的驱动函数,所以需要首先计算互连树的稳态应力值。
稳态应力求解算法如下:
算法名称:互连树的稳态应力求解算法
输入:
互连树上节点编号x
每个节点x所对应的节点电压值v
常量ezω
输出:
互连树上每个节点的稳态应力值σ(x,∞)
算法流程:
1.根据常量得到
2.用差分得到互连树长度l
3.端点设权重w为1,中间结点w设为2
4.求得vd=sum(w.v)
5.所以
end。
步骤4.3、二分查找法寻找首个空洞成核时间
在寻找首个空洞成核时间时,我们采用二分查找法来快速获取结果。
二分查找法可以分为两步:第一步是获得二分查找的上界。
首先,将二分查找的下界tl设定为0,上界tu设定为一个合适的值,比如5e8。
然后对tu=5e8时的供电网络进行一次全网的瞬态应力分析,判断在5e8时刻是否有大于阈值的瞬态应力值出现。
如果没有,则将tu*2,继续进行瞬态应力计算,直到某次计算后,捕捉到至少一个大于阈值的瞬态应力值。
固定这时的tu,我们可以确定首个空洞成核的时间在0到tu之间。
在获得了上界tu的同时,我们也知道了此时有哪些互连树上出现了超过阈值的瞬态应力。因此,首个空洞成核点也只可能在这些树中产生。所以为了提高算法效率,我们通过丢弃那些确定没有可能产生首个空洞的树来对二分查找进行加速。
设置t=(tu+tl)/2,计算t时刻的全网络瞬态应力,如果此时有大于阈值的瞬态应力值,则将tu=t,tl不变,t=(tu+tl),继续进行计算。直到tl和tu之间只有一个点的瞬态应力值大于阈值,切tu-tl在一定范围要求内,则视此时的t=(tu+tl)/2为首个空洞成核的时间点。
计算供电网络失效时间
在首个空洞成核之前为空洞成核阶段。这个阶段,整个电网的供电网络矩阵方程是保持不变的。一旦出现了第一个空洞成核点,那么在后续的仿真过程中,旧的空洞会不断增长,新的空洞也会不断产生,因此整个供电网络的电阻会不断的增加,需要逐个时间步长地更新供电网络矩阵方程,并且逐个时间点上对供电网络进行电迁移仿真,直到供电网络失效。
步骤4.4、按时间步长推进,计算空洞增长
空洞成核后的金属线段处于空洞增长状态,也就是说,由于电流密度引起的原子流失将导致空洞尺寸的逐渐增加。在空洞增长段,线段电阻随时间而增加。空洞边缘的漂移速度θ实际上正比于电流密度,即
根据电阻的性质,并联电路电流会选择电阻小的线段传输,当空洞未形成时,电流从铜线上流过,当空洞形成时则从包裹铜线的阻挡层钽上流过。
因此,线段电阻的变化可以近似地由此式得到:
空洞增长时,除了会导致导线的电阻发生变化,还会导致线段上的稳态应力发生显著的变化。空洞处的拉伸应力将被有效地释放掉。此外,空洞饱和也会进一步影响新空洞的增长,所以在后续的时间步长推进过程中,一般不会再产生大于阈值的瞬态应力值点。
根据这一特性,我们将产生过空洞的互联树从需要计算瞬态应力的互联树集合中移除,使得后续的仿真计算中不再计算这些互连树,从而可以达到提升算法效率的目的。
步骤4.5、更新供电网络矩阵方程
因为v=g-1i,所以若要获得当前时间的供电网络的电压分布,则需要更新g矩阵,并且依据上一步计算空洞增长得到的电阻变化,计算出当前时刻的供电网络电流分布情况。
g矩阵的行和列均依次是互连树节点编号,对角线元素为与此节点相连的线段的负电导之和。
假设一根产生空洞的金属线段两端的节点编号分别为i、j。那么在g矩阵中元素aij上的电导值为gij。可以求得此根金属线段的电阻变化
所以当前g矩阵aij处的电导值就会变化为
步骤4.6、进行供电网络静态分析,判断供电网络是否失效
对g矩阵进行了更新,i作为恒流源不发生改变,所以通过供电网络静态分析器可以计算出当前供电网络的电压分布情况。
依据供电网络失效准则,我们寻找供电网络中电压降最大的节点,并判断它的电压降是否到达10%·vdd。
如果最大的电压降未达到10%·vdd伏特,则继续进行下一个时间步长的供电网络瞬态分析。
如果大于10%·vdd伏特,则认为供电网络难以维持标准的电压输出,从而判定供电网络失效。此时的时间则被视为供电网络失效时间。
步骤4.7、计算有空洞增长段供电网络瞬态应力分布
步骤4.7.1、更新电流密度
因为此时的供电网络已经有至少一个空洞成核点,所以随着时间的推移,每一个时间步长的推进,空洞都在增长,导线的电阻都在增加,所以同时电网的电流密度分布也无时无刻不在变化。
与此同时,因为时间步长设置的足够小,所以我们可以认为每个时间步长内,空洞是不会增长的。所以在进行当前时刻的全网瞬态应力分析前,需要根据上一个时刻末的供电网络矩阵方程进行求解,更新电流密度分布,作为这个时刻的初始条件进行带入。
对供电网络是否失效进行了判断。如果供电网络没有失效,则可以进行下一步计算。通过供电网络静态分析可以知道互连树上每一处的节点电压,假设相邻两节点的电压为vi和vj,那么当前时刻的电流密度为
步骤4.7.2、计算瞬态应力
已知产生过空洞的互连树的拉伸应力在空洞处被有效地释放掉了,所以这些互连树的稳态应力值趋于平稳。通过实验也证明了产生过空洞的互连树在后续的仿真步骤中不会再次产生空洞。所以在空洞增长阶段计算供电网络的互连树稳态应力时,我们可以只计算那些未产生过空洞的互连树的稳态应力分布,从这些互连树中寻找新的空洞成核点。而那些已经产生空洞的互连树,我们只对其的空洞增长进行计算,并以此在每一个时间步长开始前更新供电网络的矩阵方程。
因此,计算瞬态应力时的边界之条件是不变的。根据公式
步骤4.7.3、确认新空洞成核位置
当计算出当前时刻的瞬态应力后,我们获得了无空洞互连树的瞬态应力值σt(因为有空洞可以不再进行瞬态应力仿真)。通过与提前设置好的阈值σcritical进行比较,任何大于σcritical的瞬态应力点都被视为产生空洞的节点。
本实验用matlab实现,在一台双核cpu3.6ghz和8gb内存的linux服务器上进行测试,测试实例采用美国ibm公司提供的实际设计中的供电网络ibmpg1~ibmpg6以及ibmpgnew1~ibmpgnew2。对上述实例,在保证0.01mv的求解精度下,可以快速求解得到供电网络的应力分布,对电网网络做出相对精确地失效时间分析,并且运行时间较以往方法大幅缩减。
本发明采取工业界给出的片上供电网络设计实例对提出的供电网络电迁移失效时间仿真分析器进行了测试。测试结果表明了本发明的有效性,本发明具有较高的准确性,并且在运行时间显著小于既有的其他方法。
本发明的精确、高效的基于电迁移物理模型的供电网络电迁移可靠性分析方法,能够通过积分变换方法精确、快速地分析供电网络金属线上的电迁移瞬态应力,从而能够准确的确认导线上空洞成核时间及电迁移失效时间。与此同时,本发明在电迁移可靠性分析中,也将供电网络建模为时变网络,以供电节点上电压降超过一定阈值作为失效评判标准,避免了串行失效模型过于保守的问题。本发明将供电网络的spice网表格式导入构建为供电网络的结构,并提取出供电网络上供电线的参数,结合工艺参数,建立供电网络电迁移的物理模型,通过对供电网络互连线上瞬态应力的高效求解,可以准确地确定供电网络上空洞成核的时间和位置,最后供电网络电迁移失效时间仿真分析器基于供电网络瞬态应力求解器和静态电压分析器,可以输出供电网络的电迁移失效时间。