一种超大规模集成电路p/g布线网快速分析方法

文档序号:6824594阅读:241来源:国知局
专利名称:一种超大规模集成电路p/g布线网快速分析方法
技术领域
本发明涉及布线网快速分析方法,尤其是一种超大规模集成电路P/G布线网快速分析方法。
背景技术
随着超大规模集成电路技术和工艺发展,芯片特征金属线宽发展到深亚微米阶段,同时由于芯片功能的不断扩大和复杂化,导致片上元件间金属连线的长度不断膨胀;芯片工作频率不断加快,使芯片供电整体电流加大;另外,由于低功耗设计的要求,电路工作供电系统不断利用低电压技术,以上多种因素的组合,使得芯片工作可靠性要求中P/G网设计成为关键的因素。超大规模集成电路电源/地(P/G)网布线采用网孔(Mesh)结构,避免供电不足导致电路工作不可靠甚至不能工作的隐患。但对这种结构的P/G布线网络进行分析验证有两个主要的困难一是网络规模巨大,有数百万到上亿个节点规模;二是由于网络存在多个非线性开关器件。因此,通用的电路模拟工具如Spice根本不可能完成。而已有的一些专门用于Mesh结构P/G布线网络验证的模拟器,则需要花费很长的运行时间和很大的内存空间。
对第二个问题,一般采用先对需要供电的单个电路模块(含开关器件)进行非线性模拟,得到单个电路模块的时变电流模型(随时间变化的模块吸收/释放电流);再将金属连线和通孔等效为由电阻和电容组成的线性无源网络,供电电源模拟为恒定电压源,各电路模块等效为时变电流源,P/G布线网络就成为一个含稳定电压源和时变电流源的RC线性网络。
因此,对第一个问题,实际是要解决超大型稀疏线性方程组的快速求解问题。一般采用Cholesky法及共轭梯度法来求解P/G布线网络的稀疏线性方程组,但空间及时间复杂度都很大,一步模拟就需要小时级的时间和T级的内存空间。为解决超大型Mesh结构P/G布线网络分析的超大型稀疏线性方程组的快速求解问题,国内外进行了很多研究。如将网络按层次划分成若干子网络来计算,由于网络规模的巨大和Mesh结构网络的特点,即使是子网络(仍然是Mesh结构)的规模也是很大的,有至少上万个节点的规模,直接用Cholesky分解法求解,不采用加速子网络运算的策略,直接用Cholesky法对子网络进行求解仍导致,时间复杂度还是比较大的。另外,也有使用类似标准多网格(SMG)简化法的算法将电源/地网简化为足够小的粗网络,然后再用代数多网格法(AMG)求解,即先用约束操作将待求解方程组映射到粗网格,并用Cholesky分解法求解,再用插值操作符把结果映射回原网络。

发明内容
本发明要解决上述所述的不足,提供一种超大规模集成电路P/G布线网快速分析方法。
本发明解决其技术问题所采用的技术方案。这种超大规模集成电路P/G布线网快速分析方法,其主要步骤如下首先是通过划分得到各局部子网,在用Cholesky分解法求得各子网的等效网络后,即可形成只有子网端口组成的局部子网等效网络和其它全局节点组成的全局网;再对全局网应用Cholesky分解法求解。所述的网络划分方法是通过XY扫描线技术,根据坐标信息,统计扫描线切割Mesh行列数,在切割数突变或稀疏处分割网络。基于Cholesky分解法图模型的加速子网分析运算方法使对应列-非零元图的顶点孤立排序,在顶点孤立过程中能保持各顶点有较小的邻接顶点数,使对称正定阵在Cholesky分解中产生的填入元减少,从而加快三角化对称正定阵运行时间,同时减少运算所需内存。
本发明有益的效果是本发明提出了一个基于网络划分的P/G布线网络层次化快速分析方法。其中,对于子网运算,通过对Cholesky分解法三角化对称正定阵的图模型分析,并基于Mesh结构网络的自身特点,提出了一个基于图顶点排序的加速子网分析运算策略;并用基于MPI的并行结构实现了P/G布线网络分析的并行运算。实验证明,该层次化快速分析方法在运算时间和内存占用上效果十分良好。


图1是本发明的加速子网运算的P/G网并行分析算法流程图;图2是本发明顶点孤立操作产生新增边的示意图;图3是本发明Mesh结构P/G布线网络系数矩阵对应图的邻接顶点数增长趋势图a;图4是本发明Mesh结构P/G布线网络系数矩阵对应图的邻接顶点数增长趋势图b;图5是本发明Mesh结构网络对应列—非零元图的顶点孤立排序示意图a;图6是本发明Mesh结构网络对应列—非零元图的顶点孤立排序示意图b;图7是本发明Mesh结构网络对应列—非零元图的顶点孤立排序示意图c;图8是本发明Mesh结构网络对应列—非零元图的顶点孤立排序示意图d;具体实施方式
下面结合实施例和附图对本发明作进一步描述。
1、P/G布线网络分析模型对于一个含稳定电压源和时变电流源的RC线性网络(P/G网的等效网络),其有以下MNA(ModifiedNodal Analysis)形式的线性方程组(节点电压方程组)G*V(t)+C*V′(t)=I(t),其中G是导纳矩阵,C是电容及电感矩阵, (1)由后向欧拉方法可得一阶差分方程组(G+C/h)*V(t)=I(t)+C/h*V(t-h) (2)采用固定时间步h,方程式2构成可以进行网络瞬态分析的线性方程组,由于系数矩阵(G+C/h)为时不变的稀疏对称正定阵,该矩阵唯一标识P/G网,只要对系数矩阵(G+C/h)进行一次三角化矩阵运算,就可用同一个三角化矩阵按多个时间步迭代,可得到一定时间段内的P/G网分析验证结果。若直接用Cholesky法及共轭梯度法等对超大型P/G网的系数矩阵进行三角化,存在空间和时间复杂度问题。因此,Mesh结构P/G网快速分析验证的关键问题就是如何对系数矩阵(G+C/h)进行快速三角化。
2、基于网络划分的Mesh结构P/G布线网络层次化分析方法根据“分治”思想,将P/G布线网络划分为一个全局网和k个局部子网,局部子网中只与子网内的节点相连的节点称为内部节点,与子网外的节点相连的节点称为端口,全局网中只包含端口和除子网端口外的节点(称为全局节点)。从全局网的观点来看,任一局部子网可等效为只有端口组成的网络。只要划分时使得端口数大大小于子网内的内部节点数,全局网对应矩阵的规模就可大大小于原P/G布线网络对应的矩阵;而局部子网的规模相对讲也比较小。因此,基于网络划分的层次化分析方法大大降低了稀疏线性方程组的阶数,使计算的时间和空间复杂性大大降低。
该方法首先是通过划分得到各局部子网。在用Cholesky分解法求得各子网的等效网络后,即可形成由子网的等效网络(网络节点只有子网端口)和其它全局节点组成的全局网;再对全局网应用Cholesky分解法求解。
只有子网端口组成的局部子网等效网络可由以下式3表征I=A*V,I∈Rm,A∈Rm×m,V∈Rm(3)式中,m是子网端口数,A为子网等效网络的导纳矩阵,V为端口电压向量,I为流经端口的电流向量。等效子网导纳矩阵A可由该局部子网的节点电压方程组(式4)求得。
G11G12G12TG22UV=0I---(4)]]>式中,U代表子网内部节点的电压向量;G11代表子网无源内部节点间的导纳矩阵;G22代表子网端口间的导纳矩阵;G12代表子网无源内部节点与端口间的关联导纳矩阵。
A=G22-G12TG11-1G12=(L21L21T+L22L22T)-(L21L11T)(L11L11T)-1(L11L21T)=L22L22T---(5)]]>A实际上就是子网节点电压方程组系数矩阵作不完全三角化的右下角块矩阵,对局部子网的不完全三角化Cholesky分解实际是将矩阵从n×n(n为子网节点总数)降阶到m×m。
全局网可以等效为由这些子网等效网络及其它全局节点互联而成的网络。设A1、A2、...、An、是各子网等效网络的导纳矩阵,则全局网可由下式(式6)表示
式中,G00表示子网外其它全局节点互联构成的矩阵,G01、G02、…、G0n、…是子网外其它全局节点与子网等效网络及子网等效网络间的关联矩阵,阶数大大小于原始系数矩阵。
基于网络划分的Mesh结构P/G布线网络层次化分析理论与方法,存在以下几个方面的问题(1)网络划分。由于网络划分本质上是一个NP问题,所以一般文献都没有提出较好的解决方案;(2)子网运算。由于每个子网有至少上万个节点的规模,直接用Cholesky法的时间复杂度还是比较大的。为进一步提高运算速度,降低算法的空间复杂度,必须有加速子网分析运算的策略;(3)并行运算。由于各个子网络的分析运算是相互独立的,所以对子网分析运算可以分布式并行进行,更进一步加快层次式快速分析方法的运算速度。
3、Mesh结构P/G布线网络层次化快速分析算法针对以上问题,本发明提出以下Mesh结构P/G布线网络层次化分析算法流程(图1)。
3.1划分方法对于网络划分,一般常用的方法存在时间复杂度过大的问题。针对Mesh结构P/G布线网络较为规则的结构特点,我们通过XY扫描线技术,根据坐标信息,统计扫描线切割Mesh行列数,在切割数突变或稀疏处分割网络。另外,本算法中也适当引入人工干预的办法,接受预先对网络作粗略的人工划分,算法再根据这个粗略划分进行精确的网络划分,从实用的角度来讲,有时人工适当干预不失为一个好的解决策略。
3.2基于Cholesky分解法图模型的加速子网分析运算方法对于对称正定阵来说,用迭代法进行Cholesky分解的算法流程可表述为for(i=1 to n)doaii=aii---(7)]]>for(j=i+1 to n)doaji=aji/aii(8)for(j=i+1 to n)dofor(k=j to n)doakj=akj-ajiaki(9)
end定义1给定一个对称正定阵,定义图G=(V,E)为它的列—非零元图,其中顶点集V中每个顶点代表矩阵的一列,即V={vi|1≤i≤n,vi为矩阵中的第i列},并设vi的属性值|vi|=aii,边集E={eij=(vi,vj)|aij≠0,i>j},eij的权wij=aij。
推论1对称正定阵的列—非零元图唯一表征该对称正定阵。
定义2对列—非零元图的顶点vi,定义如下操作序列为该顶点的顶点孤立操作(1)对vi的属性值,作|vi|=|vi|;]]>(2)对所有与vi连接的边eij,作wij=wij/|vi|;(3)对vi的任意两个邻接顶点vj和vk,如果存在边ejk,则wjk=wjk-wij·wik;如果不存在边ejk,则增加边ejk且wjk=-wij·wik;(4)删除所有与vi连接的边eij。
推论2顶点vi的顶点孤立操作在消去vi的所有邻接边的同时,如果vi的任意两个邻接顶点vj和vk间不存在边,则会产生新增边ejk连接顶点vj和vk。最坏情况下,产生新增边的数量为Cm2,m为vi的邻接顶点数。
顶点孤立操作的新增边产生可用图2来示意。图中黑粗边表示新增边,但如果该边原已存在,则只改变该边的权值。
定义3对列—非零元图,按某一顺序对所有顶点依次进行顶点消去操作,直至最后一个顶点,称为列—非零元图的顶点孤立过程,该顺序相应称为列—非零元图的顶点孤立排序。并且顶点孤立排序与顶点孤立过程的最终结果无关推论3顶点孤立过程中新增边产生的数量与顶点孤立排序相关,顶点孤立过程中能保持每一节点有较小的邻接顶点数的顶点孤立排序可产生较少的新增边。
定理1用Cholesky分解法对对称正定阵进行三角化的过程中,对一列的分解处理等效于矩阵相应列—非零元图的中该列对应顶点的顶点孤立操作,对一列的分解处理产生的填入元数目等于该列对应顶点的顶点孤立操作产生的新增边数目。
证明在用迭代法进行Cholesky分解的算法流程中,i从1到n的大循环实际就是从第1列直到第n列的分解过程。任一i列的分解处理有赋值操作(7)、一重循环(8)和二重循环(9)组成,分别与i列在矩阵对应列—非零元图中的对应顶点vi顶点孤立操作的(1)、(2)、(3)步等价,同时两者执行顺序一致;迭代算法在执行一列分解处理后,该列元素的数值已传递到后续列元素的数值中,不再参与后续列的分解处理,在迭代算法中该列元素可在分解处理后作删除处理,相当于对应顶点vi顶点孤立操作的第(4)步。因此,Cholesky分解对矩阵中任一列的分解处理等效于矩阵对应列—非零元图中的该列对应顶点的顶点孤立操作。同时,一列分解处理中填入元(新产生的非零元)是由列分解处理中的二重循环(9)产生,对应顶点vi顶点孤立操作的第(3)步,根据定义2及推论2,填入元数目等于对应顶点的顶点孤立操作产生的新增边数目。
定理2用Cholesky分解法对对称正定阵进行三角化的过程,等效于相应列—非零元图的顶点孤立过程。
根据定理1,同时由于对称正定阵中列与列之间交换位置是一种等效变换,对列进行分解处理的顺序不影响最终的解,与列—非零元图的顶点孤立过程结果与顶点孤立排序的无关性等价,可以得证。
由于Cholesky分解法求解对称正定阵的计算复杂度取决于在三角化过程中产生填入元的数量,因此根据定理1及定理2,可得出以下推论。
推论4Cholesky分解法三角化对称正定阵的计算复杂度,取决于对应列—非零元图在顶点孤立过程中产生新增边的数量。
根据推论3及推论4,并可得出以下推论。
推论5加快Cholesky分解法三角化对称正定阵运算速度的关键,是使对应列—非零元图的顶点孤立排序,在顶点孤立过程中能保持各顶点有较小的邻接顶点数。
由此可见,对列—非零元图顶点进行适当的排序,可使对称正定阵在Cholesky分解中产生的填入元减少,从而加快三角化运行时间,同时减少运算所需内存。
Mesh结构P/G布线等效网络线性方程组系数矩阵对应的列—非零元图如图3,垂直和水平Mesh列相交点为列—非零元图的顶点,如图3。假设以宽度优先的顺序进行顶点孤立操作,则按图3所示的顶点孤立排序,显然在顶点孤立过程中各顶点的邻接顶点数有较快的增长趋势;而按图4所示,从网络边界点S开始的宽度优先顶点孤立排序,各顶点的邻接顶点数呈现增长较慢方向。
故对图5-图8所示的规则Mesh结构网络系数矩阵对应的列—非零元图,采用先垂直再水平(即从左到右逐个处理垂直Mesh列,对同一则按从上到下的次序)的顶点孤立排序,可在顶点孤立过程中保持每一顶点有较小的邻接顶点数。
这可用图5-图8进行说明,图中,圆圈所圈为当前进行孤立操作的顶点,虚线为该顶点邻接边,邻接边两两运算产生新增边或改变已存在边的权值。进行完第一列垂直Mesh列的所有顶点的顶点孤立操作后,第二列垂直Mesh列中同列顶点的任意两个顶点间已存在邻接边,并在之后的第三列、第四列、…第n列保持这种关系。假设Mesh结构高度(每个顶点邻接边数量)为H,Mesh结构长度为L,不失一般性设L>H,每一顶点孤立操作时计算乘法次数为CH2,则总计算次数为L*H*CH2=L*H2*(H-1)/2≈L*H3/2.]]>同理依照先水平再垂直方向的排序,也可在顶点消去过程中保持每一顶点有较小的邻接顶点数,但其计算次数约为H*L3/2,]]>显然L*H3/2<H*L3/2.]]>因此,对于Mesh结构子网先短边方向再长边方向的顶点孤立排序,可以得到快的运算速度。
3.3基于MPI的并行实现P/G布线网络快速分析的并行实现采用以下结构进程间关系采用主从模式,主进程负责读取数据、对网络进行预处理、划分成子网,对划分后的子网运算任务进行分配,最后在所有子网结果返回之后,进行各求解点的运算;子进程执行主进程分配给它的子网计算任务,计算完成之后,将结果返回给主进程,直到主进程发送结束进程。
并行算法采用MPI(Multi-Process Interface)并行编程规范。MPI是目前比较成熟的分布式并行运算实现技术,用消息传递编程模型即进程间可靠通信的方式来实现并行运算。从编程实现的角度来看,MPI就是一个库,可看作是一种在原来串行语言基础上扩展后得到的并行语言,被具体的串行语言如C/C++调用。
权利要求
1.一种超大规模集成电路P/G布线网快速分析方法,其主要步骤如下首先是通过划分得到各局部子网,在用Cholesky分解法求得各子网的等效网络后,即可形成只有子网端口组成的局部子网等效网络和其它全局节点组成的全局网;再对全局网应用Cholesky分解法求解;其特征在于1)、所述的网络划分方法是通过XY扫描线技术,根据坐标信息,统计扫描线切割Mesh行列数,在切割数突变或稀疏处分割网络;2)、基于Cholesky分解法图模型的加速子网分析运算方法使对应列—非零元图的顶点孤立排序,在顶点孤立过程中能保持各顶点有较小的邻接顶点数,使对称正定阵在Cholesky分解中产生的填入元较少,从而加快三角化对称正定阵运行时间,同时减少运算所需内存。
2.根据权利要求1所述的超大规模集成电路P/G布线网快速分析方法,其特征在于给定一个对称正定阵,定义图G=(V,E)为它的列—非零元图,其中顶点集V中每个顶点代表矩阵的一列,即V={vi|1≤i≤n,vi为矩阵中的第i列},并设vi的属性值|vi|=aii,边集E={eij=(vi,vj)|aij≠0,i>j},eij的权wij=aij。
3.根据权利要求1所述的超大规模集成电路P/G布线网快速分析方法,其特征在于对列—非零元图,按某一顺序对顶点依次进行顶点消去操作,称为列—非零元图的顶点孤立过程,该顺序相应称为列—非零元图的顶点孤立排序。
4.根据权利要求1或2或3所述的超大规模集成电路P/G布线网快速分析方法,其特征在于P/G布线网络快速分析的并行实现采用以下结构进程间关系采用主从模式,主进程负责读取数据、对网络进行预处理、划分成子网,对划分后的子网运算任务进行分配,最后在所有子网结果返回之后,进行各求解点的运算;子进程执行主进程分配给它的子网计算任务,计算完成之后,将结果返回给主进程,直到主进程发送结束进程。
全文摘要
本发明涉及一种超大规模集成电路P/G布线网快速分析方法,其主要步骤如下首先是通过划分得到各局部子网,在用Cholesky分解法求得各子网的等效网络后,即可形成只有子网端口组成的局部子网等效网络和其它全局节点组成的全局网;再对全局网应用Cholesky分解法求解。所述的网络划分方法是通过XY扫描线技术,根据坐标信息,统计扫描线切割Mesh行列数,在切割数突变或稀疏处分割网络。基于Cholesky分解法图模型的加速子网分析运算方法使对应列-非零元图的顶点孤立排序,在顶点孤立过程中能保持各顶点有较小的邻接顶点数,使对称正定阵在Cholesky分解中产生的填入元减少,从而加快三角化对称正定阵运行时间,同时减少运算所需内存。
文档编号H01L21/66GK1564319SQ200410017278
公开日2005年1月12日 申请日期2004年3月25日 优先权日2004年3月25日
发明者竺红卫, 孙玲玲, 马骐, 李春强, 蔡妙花, 林菲 申请人:杭州电子工业学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1