消除由耦合电感引起串扰的标准单元总体布线方法

文档序号:6386176阅读:275来源:国知局
专利名称:消除由耦合电感引起串扰的标准单元总体布线方法
技术领域
消除由耦合电感引起串扰的标准单元总体布线方法属于集成电路计算机辅助设计即ICCAD技术领域,尤其涉及标准单元(SC)总体布线设计领域。
背景技术
在集成电路(IC)设计中,物理设计是IC设计过程中主要的一环,也是其中最耗时的一步。与物理设计相关的计算机辅助设计技术称为布图设计。在布图设计中,总体布线是一个极为重要的环节,它的结果对最后详细布线的成功与否和芯片的性能影响极大。
集成电路的制造工艺目前正从超深亚微米(VDSM)进入到纳米(nanometer)阶段;集成电路的设计规模也正由超大规模(VLSI)、甚大规模(ULSI)向G大规模(GSI)方向发展;芯片的工作主频也已经达到1GHz乃至更高。在这种情况下,互连线之间的串扰、尤其是由耦合电感引起的串扰不可忽略。串扰将使电路不能正常工作,已经成为影响芯片性能的重要因素。目前技术发展的情况下,在总体布线时很有必要考虑布线结果中由耦合电感引起的串扰是否达到了影响电路功能和性能的程度,要研究消除这种串扰的总体布线方法。
在已报导和所能查阅到的国内外相关研究中,我们列举、分析、总结如下在消除串扰研究的早期,采用的方法一般都是在总体布线过程之后(1)文献[K.Chaudhary,A.Oniozawa,E.S.Kuh.“A spacing algorithm for performance enhancementand crosstalk reduction”,inProc IEEE/ACM ICCAD,1993,pp.697.]中使用了加大相邻线网之间距离的简单方式来减小串扰;(2)第二类方法采用改变线网之间的相邻关系或者相对位置来减小串扰,文献[T.Gao,C.L.Liu.“Minimum crosstalk channel routing”,IEEETrans CAD,1996,15(5)pp.465.]中的“通道交换”方法适用于有网格的详细布线,它通过调换线网的顺序,使原本相邻的线网不再相邻来减少串扰;文献[P.Saxena,C.L.Liu.“Crosstalk minimization using wire perturbations”,inProc ACM/IEEE DAC,NewOrleans,USA,1999,pp.100.]中的“线段扰动”方法适用于无网格的详细布线,它根据某个线段周围的布线情况计算出该线段的串扰最小位置,从而达到减小串扰的目的。以上这些方法在计算串扰时仅仅考虑了耦合电容,没有考虑耦合电感,且只能应用在详细布线之中。但在详细布线时线网的大致走线方式已经基本确定,优化范围有限,因此优化的效果受到影响。
后来,研究者们认为有必要在总体布线时就力求减小串扰,因此又提出了以下方法(1)采用在总体布线后进行单独的串扰消除的方法。这类方法首先在不考虑串扰的情况下得出一个初始的总体布线解,然后对初始解进行单独的优化,从而减小串扰。文献[T.X.Xue,E.S.Kuh,D.S.Wang.“Post global routing crosstalk synthesis”,IEEE Trans CAD,1997,16(12)pp.1418.](未考虑耦合电感)和文献[J.J.Xiong,J.Chen,J.Ma,L.He.“Postglobal routing RLC crosstalk budgeting”,inProc IEEE/ACM ICCAD,San Jose,USA,2002,pp.-.](考虑了耦合电感)均采用了这类方法。这类方法相对简单,容易实现,但是在优化不易满足要求的时候,会出现反复的迭代。(2)采用在构造总体布线树的时候将串扰加入布线树费用函数中的方法。这类方法可以将减小串扰作为多个优化目标中的一个,在总体布线时进行统一考虑。文献[H.Zhou,D.F.Wong.“Global Routing with crosstalk constraints”,IEEE Trans CAD,1999,18(11)pp.1683.](未考虑耦合电感)和文献[J.Ma,L.He.“TowardsGlobal routing with RLC crosstalk constraints”,inProc ACM/IEEE DAC,New Orleans,USA,2002,pp.669.](考虑了耦合电感)均采用了这类方法。这类方法比(1)具有更小的盲目性,但是对于总体布线应用来说,时间复杂度过大。
除了上述各类减小串扰的方法以外,计算串扰的模型可以分为两种(1)Sakurai模型。该模型在文献[T.Sakurai,C.Kobayashi,M.Node.“Simple expressions forinterconnecting delay,coupling and crosstalk in VLSI’s”,IEEE Trans Electron Devices,1993,40(1)pp.118.]和文献[T.Sakurai,K.Tanaru.“Simple formulas for two and threedimensional capacitance”,IEEE Trans Electron Devices,1983,pp.183.]中被提出。该模型计算简单,但是没有考虑耦合电感,所以在目前技术发展的情况下不再适用。(2)LSK模型。该模型在文献[L.He,K.M.Lepak.“Simultaneous shield insertion and net orderingfor capacitive and inductive coupling minimization”,inProc ACM ISPD,San Diego,USA,2000,pp.56.]中提出。该模型适合估算连线之间的耦合电感,计算简单。
还有文献[已申请的国家发明专利洪先龙,经彤,许静字,张凌,胡昱.发明名称标准单元总体布线过程中用的减少串扰的方法.申请日期2003/05/01.申请号为03124095.X.已于2004/02/04被公开。],是我们以前提出的消除串扰的方法。这种方法是在总体布线阶段以消除由耦合电容引起的串扰为目标,采用增加线间距的技术策略,与本发明的目的、方法不同。该文献和我们在2001年的综述性文献[经彤,洪先龙,蔡懿慈,鲍海云,许静宇.性能驱动总体布线的关键技术及研究进展。软件学报.2001,12(5)677-688.]对于与串扰相关的研究工作进行了非常详细的分析、介绍。所有那些被提到的相关工作或者是基于印刷线路板(PCB)而不是基于IC芯片的、或者是研究串扰计算模型的、或者是串扰优化工作分别进行在详细布线之后或详细布线之中或总体布线之后等的布图阶段。而少数在总体布线过程之中进行串扰优化工作的也全部是在计算串扰时仅仅考虑了耦合电容,没有考虑耦合电感。并且它们不能同时实现消除串扰、减少电路时延、布线拥挤等优化工作。
本发明的串扰消除工作是在总体布线过程之中进行的,是以耦合电感引起的串扰为目标,采用插入屏蔽线(即shield)的技术策略,同时实现了消除串扰、减少电路时延、布线拥挤等优化工作。所进行的优化工作比上述文献中的新颖、广泛、全面,采用的技术策略和优化方法也与它们不同,优化速度很快。
已进行过“新颖性检索”,检索报告见附件1。

发明内容
本发明的目的在于提出一种消除由耦合电感引起串扰的标准单元总体布线方法。本发明的总体思路是首先利用现有技术产生总体布线的初始解,并对布线拥挤、电路时延进行优化;然后依照用户设定的串扰约束,根据本发明提出的方法对布线初始解进行串扰消除;再对新的布线解检查布线拥挤、电路时延等指标,进行迭代调整。
本发明的特征在于它是一种在已经经过布线拥挤、电路时延优化而得到的总体布线初始解的基础上,根据用户设定的串扰约束来进行串扰消除的方法,它通过计算机依次按以下步骤实现(1).把总体布线的初始解和用户设定的在所有线网漏点处允许的最大互感系数值输入计算机中;(2).分配串扰约束,即把用户给出的漏点处的约束转化为相应线网在所经过的每个GRG,即总体布线图边上的最大互感系数的约束,可以从以下两种已知的方法中任选一种(2.1).把漏点处的约束值平均地分配到这个源漏对所经过的每个GRG边上;(2.2).利用线性规划分配串扰约束,即考虑不同的GRG边上拥挤度不同会影响互感系数,给拥挤的GRG边上的约束值宽松一些,不拥挤的GRG边上约束值严格一些,在约束总值不变的情况下更有利于整体的优化;所述的拥挤度是指GRG边上被线网占用的通道数与通道总数的比值,即拥挤度越大,说明该边上所经过的线网越多;(3).应用禁忌搜索方法在GRG的各条边上消除串扰,即寻找一个串扰在约束范围内的线网排列顺序,它次按含有以下步骤;(3.1).设定xcur当前解,即当前GRG边上的线网顺序;xnew当前解邻域中的一个合法候选解,即处于邻域中的未被禁忌的可以作为新解的解的集合,称为合法候选解集,所述邻域是指当前解经过一次移动后所能达到的解的集合;xtmp禁忌搜索方法从合法候选解集中挑出的最好的解,即在当前合法候选解集中所能找到的费用函数最小的解;xmin禁忌搜索方法在整个搜索过程中曾经到达过的最优解,即曾经到达过的费用函数最小的解;cost(xnew)xnew的费用函数;tmpcostxtmp的费用函数;Na在最优解无改进的条件下,上述方法的迭代次数,系设定值,为正整数,100≤Na≤500;Nb在当前邻域的合法候选解集中随机移动地挑选的合法候选解的个数,系设定值,为正整数,10≤Nb≤200;Nc为找到一个合法候选解而搜索的最大次数,系设定值,为正整数,5≤Nc≤50;所述的禁忌是指把满足一定条件的解记录在一个表,即禁忌表H内,使它们在搜索即迭代的过程中不能作为新解而被选中;禁忌长度T,系正整数,它表示一个解遭到禁忌后,在T轮迭代次数内不能被选中,超过禁忌长度T后,原本遭到禁忌的解可以重新参与挑选过程,T=1~60;所述费用函数,即评价某个解优劣的定量标准,它的表达式为cost(x)=w1c1+w2c2+w3c3+w4c4,同时设定被禁忌的费用值,其中,w1、w2、w3、w4为权重,系设定值,均为0到5之间的实数;c1为该GRG边中与敏感线网相邻的线网总数,c2为该GRG边上屏蔽线的数目,所述屏蔽线是指能起到屏蔽相互敏感线网之间耦合电感和耦合电容作用的电源线或地线,c3的表达式如下Σi(Keff-Kth),]]>i,满足Keff>KthKeff为某个线网i在该GRG边上实际的互感系数,即所有对线网i敏感的线网j在线网i的互感系数的总和,可用下式表示 其中,kij=12(lLilLj+lRjlRi),]]>lLi为线网i到左侧屏蔽线L的距离,lLj为线网j到左侧屏蔽线L的距离,lRi为线网i到右侧屏蔽线R的距离,lRj为线网j到右侧屏蔽线R的距离;Kth为该线网i在该GRG边上所分配到的互感系数的约束值,c4是该GRG边中满足Keff>Kth的线网的总的个数;所述的随机移动是指从当前解的邻域中找到一个新解xnew的方法,它包括以下四种情况随机调换两个线网的位置,权重为w5,随机移动一个线网的位置,权重为w6,随机插入一条屏蔽线,权重为w7,随机删除一条屏蔽线,权重为w8,
每一次随机移动操作都会从这四种移动中随机选择一种,并各用一个权重表示其被选几率,而w5+w6+w7+w8=1;(3.2).取当前GRG边上的线网顺序xcur为当前解,且初始化xmin=xcur;同时,初始化禁忌表H,清空搜索次数计数器a和统计Nc次数的计数器c;(3.3).判断计数器a的值是否小于设定的Na若a的值不小于参数Na,则搜索结束;否则转入下一步(3.4);(3.4).把tmpcost变量置为无穷大,清空统计Nb值的计数器b;(3.5).判断计数器b的值是否小于Nb若b的值不小于参数Nb,则转入步骤(3.10);否则,转入步骤(3.6);(3.6).随机移动产生新解xnew,判断其费用函数是否遭到禁忌,即费用函数计算出的费用是否等于被禁忌的费用若没有遭到禁忌,转步骤(3.8);否则,转步骤(3.7);(3.7).统计Nc次数的计数器c加1,判断c的值是否小于Nc若c的值不小于Nc,则停止搜索,清空计数器c,转步骤(3.8);否则,转入步骤(3.6),重新搜索一个合法候选解;(3.8).判断新解xnew的费用函数cost(xnew)的值是否小于变量tmpcost若是,则把xnew记录为xtmp,并把它的费用记录为tmpcost;否则,不做记录;(3.9).把计数器b的值加1,转步骤(3.5),重新寻找一个合法候选解;(3.10).判断步骤(3.9)得到的新解xnew的费用函数的值是否小于新的变量tmpcost,若是,则把xtmp选用为xcur,并比较xcur的费用函数cost(xcur)和最优解xmin的费用函数cost(xmin)若cost(xcur)小于费用函数cost(xmin),则找到新的最优解,把xcur记为xmin,同时清空计数器a;否则,不作记录,a的值加1;(3.11).更新禁忌表,即对所有被禁忌的费用函数,禁忌长度减1,再转步骤(3.3),重复以上过程,一直到禁忌长度减为零,则解除禁忌;(4).结果优化检查每个GRG边是否存在残余串扰,再尽可能减少屏蔽线数量。
具体而言,它依次包含如下步骤(1)利用现有技术产生总体布线的初始解这个步骤以总线长最小为目标,同时进行布线拥挤和时延优化,产生总体布线的初始解。
(2)消除布线初始解中的串扰,具体分为如下几步A.读入总体布线的初始解和用户设定的串扰约束
初始解中包含如下信息总体布线图(GRG)网格的行数和列数;线网数;源漏对数(一个线网有一个源点和多个漏点,这个源点和每个漏点分别构成源漏对);每个源漏对在GRG网格上所经过的边的集合;每条GRG边上所经过的线网的集合。
用户设定的串扰约束规定了在所有线网漏点处允许的最大互感系数值。一旦最终结果中,漏点处的互感系数值超过这个约束,就认为该线网存在串扰。
B.分配串扰约束分配串扰约束的目的在于将用户给出的漏点处的约束转化为相应线网在所经过的每个GRG边上的最大互感系数的约束,从而进行下一步串扰的消除。具体的分配方案有以下两种a)平均分配串扰约束的方案该方案采用一种最为自然直接的想法,将漏点处的约束值平均地分配到这个源漏对所经过的每个GRG边上。
b)利用线性规划分配串扰约束的方案该方案考虑到不同的GRG边上拥挤度不同会影响互感系数,越拥挤的GRG边上线网的间距越小,那么互感系数就会越大;相反,不拥挤的边上线网稀疏,互感系数会比较小。如果给拥挤的GRG边上的约束值宽松一些,不拥挤的GRG边上约束值严格一些,那么约束总值不变的情况下,会更有利于整体的优化。这个基本思路可以用列写一个线性规划问题来实现,具体如下最小化目标hmax(最拥挤的GRG边的拥挤度)约束条件该边的线网数+屏蔽线数+障碍数≤hmax,任取一个GRG边;该源漏对在所有所经过GRG边上的串扰约束的和≤该漏点处的串扰约束,任取一个漏点;该边上的屏蔽线数≥0,任取一个GRG边;该线网在该GRG边上的串扰约束≤某一个上界,任取一个GRG边上的任何一个线网。
在上面的线性规划方法中,拥挤度是指GRG边上被线网占用的通道数与通道总数的比值,即拥挤度越大,说明该边上所经过的线网越多;屏蔽线是指能够起到屏蔽相互敏感线网之间耦合电感和耦合电容作用的电源线或地线,屏蔽线的位置一般位于普通信号线之间,宽度和普通信号线相等;障碍是指布线区域中禁止走线的区域,映射到GRG边上,这些区域会占用一定的通道,也就是障碍数;上界可以根据每个GRG边上敏感线网全部达到最近距离时的互感系数来确定。
在这个步骤结束后,每个线网在每个GRG边上都会得到一个串扰约束值Kit,其中下标i为线网编号,t为GRG边的编号。
C.在每个GRG边上消除串扰在消除过程中,我们认为线网之间的互感系数直接决定了串扰的大小,并采用LSK模型来计算线网之间的互感系数。假设在一个左右分别为屏蔽线L和R的区域内,计算两个互相敏感的线网i,j(i在j的左边)之间的互感系数kij,具体的计算公式如下kij=12(lLilLj+lRjlRi)]]>其中lLi为线网i到左侧屏蔽线L的距离,lLj为线网j到左侧屏蔽线L的距离,lRi为线网i到右侧屏蔽线R的距离,lRj为线网j到右侧屏蔽线R的距离。其示意图如图1所示。
每一个GRG边实际上都是一个左右为屏蔽线的区域,其中的两两敏感线网间都存在互感系数,对于线网i,其实际的互感系数Keff为 另外,我们主要采用公知的禁忌搜索技术(技术的详细描述请参见文献[F.Glover.“Future paths for integer programming and links to artificial intelligence”,Computers and Operations research,Vol.13,pp.533,1986.]),通过加入屏蔽线的方式来寻找一个能够满足约束,并且面积最小的线网排列方案。
禁忌搜索技术的几个核心要素包括(1)解空间,即优化问题所有可能解的集合;(2)费用函数,即评价某个解优劣的定量标准,费用函数值越大,解的质量也越差;(3)解的移动方式,即如何从一个当前解得到一个新解;(4)邻域,即当前解经过一次移动后所能达到的解的集合;(5)禁忌,即将满足一定条件的解记录在一个表(禁忌表)内,使它们在搜索的过程中不能作为新解被选中;(5)禁忌长度T,它是一个正整数,表示一个解遭到禁忌后,在T轮搜索过程(即T次迭代)内不能被选中,超过禁忌长度后,原本遭到禁忌的解可以重新参与挑选过程;(6)禁忌表H,即记录被禁忌的解及其相应禁忌长度的列表,禁忌表内容是随搜索过程动态变化的,在搜索过程中,禁忌表中随时有可能添加新的被禁忌的解,另外,每轮搜索(即迭代一次)结束后,表中所有被禁忌的解的禁忌长度都会减1,新的禁忌长度为零的被禁忌的解会被从禁忌表中删除,也就是解除禁忌,这个过程称为禁忌表的更新。禁忌搜索的基本思想就是不断地从当前的解出发,在其邻域中挑选一定数目的候选解,并在这些候选解中选一个未被禁忌的最佳解,即费用函数最小的解作为新解,重复这个过程,以期望得到一个问题的满意解。
在本发明中,解空间为当前GRG边中线网集合可能构成的所有排列,某一种排列则对应一个解x。每个解都对应一个费用函数,其计算公式为cost(x)=w1c1+w2c2+w3c3+w4c4;其中c1为该GRG边中与敏感线网相邻的线网总数;c2为该GRG边上的屏蔽线数目;c3的表达式如下Σi(Keff-Kth),]]>i,满足Keff>Kth其中Keff为某个线网i在该GRG边上实际的互感系数,由LSK模型根据当前的线网排列状况算出;Kth为该线网i在该GRG边上所分配到的互感系数约束值,上式对该GRG边中所有Keff大于Kth的线网求(Keff-Kth)的值并取总和;c4是该GRG边中满足Keff>Kth的线网的总的个数;w1,w2,w3,w4为权重因子,都是0到5的小实数。可以看出,这个费用函数综合考虑了耦合电感、耦合电容和面积的因素。禁忌对象为该费用函数值,即凡是费用与被禁忌的费用相等的解,都会遭到禁忌。
本发明中,在每个GRG边上应用禁忌搜索方法来消除串扰,也就是寻找一个串扰在约束范围内的线网排列顺序,具体流程如图2所示,其中涉及到的变量和术语具有如下含义●xcur当前GRG边上的线网顺序,即当前解;●xnew当前解邻域中的一个合法候选解,即处于邻域中的未被禁忌的可以作为新解的解,这样的解的集合称为合法候选解集;●xtmp方法从合法候选解集中挑出的最好的解,也就是在当前合法候选解集中所能找到的费用函数最小的解;●xmin方法在整个搜索过程中曾经到达过的最优解,也就是曾经达到的费用函数最小的解;●cost(xnew)xnew的费用函数;●tmpcostxtmp的费用函数;●Na在最优解xmin无改进情况下方法的迭代次数;●Nb在当前邻域的合法候选解集中挑选候选解的个数。根据我们的定义,当前解是GRG边上线网的排列顺序,其邻域中包含的解的个数是相当庞大的,合法候选解集,即邻域中未被禁忌的解的集合,也是相当庞大的,不可能对合法候选解集中所有的解计算费用函数然后挑选最小的,而只能从中随机选取若干个解,挑选费用函数最小的。参数Nb就代表了方法从合法候选解集中挑选多少个解;●Nc为了找到一个合法候选解而搜索的最大次数。在禁忌搜索中,被禁忌的解是不能被选中作为新解的,如果当前邻域中大部分的解都被禁忌了,那么方法应当选择适当的搜索深度,以确保在较短时间内取得较好的效果,参数Nc就是用来控制这个搜索深度的。
●禁忌长度被禁忌的对象经过多少次迭代后可以解除禁忌。
●禁忌表H记录被禁忌的费用函数及其禁忌长度的表。凡是费用函数与在禁忌表中的费用函数相等的解,均不能被选中。
●随机移动即从当前解xcur的邻域中找到一个新解xnew的方法,包括(1)随机调换两个线网的位置;(2)随机移动一个线网的位置;(3)随机插入一个屏蔽线;(4)随机删除一个屏蔽线。每一次随机移动操作都会从这四种移动中随机选择一种,这四种移动都被赋予了一定的权重,用来控制某种移动被选中的几率,其中(1)的权重为w5,(2)的权重为w6,(3)的权重为w7,(4)的权重为w8,满足w5+w6+w7+w8=1。
在每个GRG边上应用禁忌搜索方法来消除串扰,即寻找一个串扰在约束范围内的线网排列顺序,基本思路是以当前的解xcur为出发点,在其邻域内寻找一定个数(Nb)的合法候选解xnew,从中选择费用函数最小的解作为新解替代当前解,然后继续迭代。每次找到一个新解,都将它的费用函数值与整个迭代过程中曾经达到过的最优解xmin的费用函数值相比较,若比xmin的费用函数值更小,则更新xmin。这样,当整个迭代过程结束的时候,xmin就是最后得到的优化结果。我们设定,经过Na次迭代后,若xmin没有改善,则迭代过程结束;另外,在寻找一个合法候选解时,若经过Nc次移动仍没有找到合法的候选解,则直接接受最近一个被禁忌的解作为新解xnew。
整个禁忌搜索过程的具体步骤如下a)取当前GRG边上的线网顺序xcur为当前解,设定参数Na,Nb,Nc,w1,w2,w3,w4,w5,w6,w7,w8,以及禁忌长度;同时初始化禁忌表H(即清空为Null),清空计数器a和c,初始化xmin=xcur。
b)判断计数器a的值是否小于参数Na,参数Na为正整数,若数值越大,则迭代的次数也越多,发现更好的解的可能性也越大,但是消耗时间也越多。参数Na的合理取值范围为100到500之间。若a的值不小于参数Na,则已经达到了迭代次数的上界,搜索结束;否则转步骤c)。
c)将tmpcost变量置为无穷大,清空计数器b。
d)判断计数器b的值是否小于参数Nb,参数Nb为正整数,Nb越大,挑选的解越多,越有可能找到更好的解,但是时间复杂度也会越大,Nb的合理取值范围在10到200之间。若b的值不小于参数Nb,则说明已经挑选过足够多的候选解,转步骤i),否则转步骤e)。
e)通过随机移动产生新解xnew,并判断其费用函数是否遭到禁忌,若没有遭禁忌,转步骤g),若遭到禁忌,转步骤f)。
f)计数器c的值加1,并判断c的值是否小于参数Nc,参数Nc为正整数,Nc越大,为找到一个合法候选解方法迭代的次数越多,越有可能找到合法候选解,同时时间复杂度也越大,Nc的合理取值范围是5到50之间。若c的值不小于Nc,说明已经达到了预定的搜索深度,不要再继续搜索,则将计数器c清空,并转步骤g),否则说明应当重新搜索一个合法候选解,则转步骤e)。
g)判断新解xnew的费用函数cost(xnew)是否小于变量tmpcost,若是,则将xnew记录为xtmp,并将其费用记录为tmpcost,否则不做记录。
h)计数器b的值加1,并转步骤d),重新寻找一个合法候选解。
i)禁忌xnew的费用函数cost(xnew),并选取xtmp为当前解xcur,并比较xcur的费用函数cost(xcur)和最优解xmin的费用函数cost(xmin)。若cost(xcur)小于cost(xmin),说明找到了新的最优解,则将xcur记录为xmin,同时清空计数器a;否则不作记录,计数器a的值加1。
j)更新禁忌表H,即对所有被禁忌的费用函数,禁忌长度减1,禁忌长度减为零的则解除禁忌。禁忌长度的选取同样会影响到方法的结果和时间复杂度,其合理取值范围为1到60,同时转步骤b)。
D.结果优化检查每个GRG边是否存在残余的串扰,并且尽可能减少屏蔽线的数量。
(3)根据上面的结果再次进行总体布线对于在步骤(2)中插入了屏蔽线的那些GRG边,根据屏蔽线的个数减小GRG边的容量,然后仍采用步骤(1)中的技术进行总体布线,以进一步减少拥挤。
实验证明,该方法可以在较短的时间内,消除原有总体布线结果中由耦合电感引起的串扰,同时对布线结果的拥挤度和总线长没有明显影响,布线结果的时延也能够满足约束要求。具体的实验数据在本发明的实验结果部分给出。
本发明的实验结果我们采用表1中的测试电路,将本发明中的方法和最新的文献[L.He and K.M.Lepak.“Simultaneous shield insertion and net ordering for capacitive and inductive couplingminimization”,inProc.ACM ISPD,San Diego,CA,USA,2000,pp.56-61.]以及文献[J.Ma and L.He.“Towards Global routing with RLC crosstalk constraints”,inProcACM/IEEE DAC,New Orleans,Louisiana,USA,2002,pp.669-672.]中的方法分别实验并加以比较,可得到表二到表四的数据表格表一测试电路的基本参数

表二术语说明

表三本发明方法(采用禁忌搜索方法)和原有方法(采用模拟退火方法)的时间比较

表四本发明方法(采用禁忌搜索方法)和原有方法(采用模拟退火方法)的结果比较

表五P1和P0-GR的结果比较

从表三第四行中可以看出,XSINO步骤中,禁忌搜索的速度是模拟退火速度的大约20倍;从表三第十行也可能看到,运算的总时间有很大缩短。结果优化,即前文中的(3)步骤,虽然没有改变,但是运算时间也稍有缩短,这可以从表三的第七行看到,也就是说禁忌搜索方法并未对后续的优化步骤产生不良影响。
从表四中可以看出,禁忌搜索方法可以得到和模拟退火方法相近的结果,即屏蔽线的数目几乎没有增加。
表五的第四行显示,与串扰消除之前相比,采用禁忌搜索方法消除串扰的布线结果,其总线长增量不超过4.65%,对布线长度没有重大的影响;同时,采用模拟退火方法消除串扰的布线结果,其总线长增量为10%,(参见文献[J.Ma and L.He.“Towards Global routingwith RLC crosstalk constraints”,inProc ACM/IEEE DAC,New Orleans,Louisiana,USA,2002,pp.669-672.],因此,与串扰消除之前的线长情况相比,禁忌搜索方法比原有的模拟退火方法减少了一半左右的线长增加。


图1LSK模型的示意图。
图2本发明中使用的禁忌搜索方法的示意图。
图3总体布线的示意图。
图4考虑耦合电感并进行串扰消除的总体布线方法框图。
图534号线网在消除串扰前后的拓扑形状对比示意图5apair34在步骤(3)优化前的形状;5bpair34在步骤(3)优化后的形状。
具体实施例方式
为了实现,或者说是具体实施本项发明,我们给出以下关于发明实施的描述。
实施本发明的计算机系统本发明所设计的总体布线软件要在一个具体的计算机系统上得以实施,该计算机系统具体描述如下。
一台Sun公司的V880型工作站;Unix操作系统;标准C编程语言;Vi编辑器、gcc编译器、gdb调试工具等。
对于目前IC设计中的多层布线技术,可布线区域不再是单元间的一条条的布线通道,而是一个完整的芯片平面。可采用网格方式,把整个芯片平面按行和列划分为若干个称为总体布线单元GRC的区域,然后生成GRC的对偶图,即如图3所示的总体布线图GRG。GRG由Nnr×Nnc个节点和连接这些节点的边构成。与GRCnr,nc对应的节点vnr,nc的坐标为GRCnr,nc的中心点。连接两节点vnr1,nc1和vnr1,nc2的边称为ek,这个边实际上代表了相邻两个GRC布线区域之间可以用来布线的一系列布线通道;1k表示两节点vnr1,nc1和vnr1,nc2之间的距离,称为ek的长度;Ck表示两节点vnr1,nc1和vnr1,nc2对应的两个GRC相邻的边能够通过的线网的连线数,称为ek的容量。于是,线网中要连通的引脚点Pin就映射成为其所在的GRG中对应的一系列节点。这样,GRG中的一个线网就可以用节点的集合表示,而对一个线网的布线问题则对应于求解GRG中节点集{vnr,nc}的Steiner树问题。
本布线方法的流程框图如图4所示。
现在采用一个MCNC电路实例c2作为本发明的一个实施例,结合图4的程序流程用本发明的总体布线方法进行布线。它依次有如下步骤(1)利用现有技术产生总体布线的初始解采用已公开的“基于搜索空间遍历技术(SSTT)技术的布线拥挤优化算法”来消除拥挤边。该方法已公开发表于2003年的英文刊物J.of Computer Science and Technology(JCST)Tong Jing,Xian-Long Hong,Hai-Yun Bao,Jing-Yu Xu,Jun Gu.SSTTEfficient LocalSearch for GSI Global Rout ing.J.of Computer Science and Technology(JCST),2003,18(5)632-639.
在时延的分析和优化方面,采用已公开的“基于关键线网的时延优化算法”,该技术已公开发表于2002年的国际学术会议“T.Jing,X.L.Hong,H.Y.Bao,Y.C.Cai,J.Y.Xuet al.“A Novel and Efficient Timing-Driven Global Router for Standard Cell LayoutDesign Based on Critical Network Concept”,InProceedings of IEEE ISCAS,Scottsdale,Arizona,USA,pp.I165-I168,2002.”(2)消除这个初始布线解中存在的串扰A.读入总体布线的初始解和用户设定的串扰约束对于c2这个实施例,经过步骤(1)的总体布线之后,得到初始布线解的信息为GRG的规模为9×11,即Nnr=9,Nnc=11;一共有588个线网,即netnum=588;一共有854个源漏对,即srcsinkpair=854;每个源漏对在GRG网格上所经过的边的集合,其具体的表示方法如下pair 34 9 8 10 3 1 5hbd 9 3 274.000000vbd 9 3 176.000000vbd 9 4 168.000000vbd 9 5 168.000000vbd 9 6 164.000000vbd 9 7 156.000000以上表示34号线网中的一个源漏对(pair),其源点坐标为(9,8),漏点坐标为(10,3),所有经过的GRG边中有1条水平边,5条垂直边。第一条水平边的坐标为(9,3),长度为274.000000,第一条垂直边的坐标为(9,3),长度为176.000000,依此类推。这个源漏对的图示如图5中的左图5a所示。这里的坐标是基于GRG网格的,水平边的坐标指示的是GRG边的左边顶点,垂直边的坐标指示的是GRG边的下边顶点。上述表示方法的通用格式可以写为pair线网编号源点横坐标源点纵坐标漏点横坐标漏点纵坐标水平边数垂直边数hbd水平边横坐标水平边纵坐标边长.......
vbd垂直边横坐标垂直边纵坐标边长每条GRG边上所经过的线网的集合,其具体的表示方法如下bd 5 9 H 0 18 274.00000010 2 13 25 26 31 45 100 137 185 244以上表示坐标为(5,9)的水平边,边上的障碍个数为0,通道容量为18,边长为274.000000(um),该边上通过的线网编号分别为10,2,13,25,26,31,45,100,137,185,244。上述表示方法的通用格式可以写为bd边的横坐标边的纵坐标水平/垂直障碍个数边的容量边长线网号线网号......线网号在c2实施例中,我们根据源漏对的长度来人工设定串扰的约束值 比如,长度小于1000的源漏对, 设为1000,长度在(1000,2000)的, 设为2000,依此类推。
B.分配串扰约束若在c2实施例中采用平均分配串扰约束的方案,则会将漏点处的约束值平均地分配到这个源漏对所经过的每个GRG边上。具体的计算方法是水平边上分配到的串扰约束,Kth‾=Kij‾LH(NH+NV)]]>其中NH为该源漏对中水平边的总数,Nv为垂直边的总数,LH为水平边的平均长度;相应地,垂直边上分配到的串扰约束。例如对于Kth‾=Kij‾LV(NH+NV)]]>下面的源漏对pair 34 9 8 10 3 1 5hbd 9 3 274.000000vbd 9 3 176.000000vbd 9 4 168.000000vbd 9 5 168.000000vbd 9 6 164.000000vbd 9 7 156.000000平均分配串扰约束的方案会得出如下的结果Kth(9,6)‾=2000274*(1+5)=1.216545]]>
Kth(9,3)‾=Kth(9,4)‾=Kth(9,5)‾=Kth(9,6)‾=Kth(9,7)‾=2000166.4*(1+5)=2.003205]]>对该源漏对的这些边,线性规划分配串扰约束的方案得出的结果则全是0,这是因为考虑到其他边上的拥挤情况和线网敏感程度,线性规划将这些约束资源分配给了可能产生更大串扰的区域。
C.在每个GRG边上消除串扰在C和后面的D步骤中,我们都采用LSK模型来计算线网之间实际的互感系数值Keff。
仍旧以上面的源漏对为例,在进行串扰消除之前,pair 34源漏对在其经过的很多边上都存在超过约束的串扰,例如在边bd_V(9,4)上,一共有20个线网,它们的串扰信息如下bd_V(9,4),segnum,20netid(kth,keff)33(1.472754,1.943228),34(2.003205,3.384242),37(1.472754,5.856291),74(1.288660,4.645071),78(1.288660,3.585473),98(1.288660,5.436918),101(1.030928,3.709323),122(1.030928,4.504981),130(2.577320,4.265444),179(1.718213,5.619171),181(2.577320,5.153641),186(1.718213,3.848466),188(1.288660,6.087175),193(1.718213,3.593720),196(1.718213,5.000307),289(1.718213,6.291788),652(1.718213,6.005395),653(1.718213,3.190311),677(1.718213,1.921127),678(1.718213,2.615915)其中bd_V的“V”表示该边为垂直边,坐标为(9,4),segnum为边中的线网数,netid为线网的序号,kth为该线网在该边上的串扰约束,keff为该线网在该边上的实际串扰值。第三行的线网序列表示了当前这些线网在bd_V(9,4)这条边上的排列顺序,最左边是33号线网,其串扰约束为1.472754,实际的串扰值为1.943228,然后是34号线网,以此类推,最右边是678号线网。上述表示方法的通用格式可以写为bd_边的方向(横坐标,纵坐标),边中的线网数,xx线网序号(串扰约束,实际串扰值)可以看到,pair 34的实际串扰值为3.384242,大于约束值2.003205。
本实施例中,费用函数的四个权重取值分别为w1=0.5,w2=0.5,w3=1.5,w4=1.5。也就是对互感系数的有关项赋予更大的权重。
本实施例中,bd_V(9,4)中各线网的敏感信息如下所示,每个括号内的一对线网都是互相敏感的(33,37),(33,74),(33,122),(33,196),(33,652),(33,677);(34,74),(34,78),(34,101),(34,122),(34,130),(34,193),(34,289),(34,653),(34,678);(37,74),(37,78),(37,101),(37,122),(37,130),(37,181),(37,186),(37,188),(37,193),(37,196),(37,653),(37,677);(74,98),(74,130),(74,181),(74,186),(74,677),(74,678);
(78,98),(78,179),(78,289),(78,652),(78,678);(98,101),(98,188),(98,193),(98,196),(98,289),(98,652);(101,179),(101,289),(101,652),(101,678);(122,179),(122,181),(122,188),(122,678);(130,181),(130,186),(130,289),(130,652),(130,678);(179,188),(179,193),(179,196),(179,289),(179,652),(179,653);(181,188),(181,196),(181,289);(186,188),(186,196),(186,289);(188,196),(188,289),(188,652);(193,289),(193,652),(193,678);(196,652),(196,677);(289,653);(652,653),(652,677);(653,678)。
利用前文给出的费用函数公式cost(x)=w1c1+w2c2+w3c3+w4c4和本实施例中权重的取值,我们可以计算bd_V(9,4)在串扰消除前的费用函数cost=0.5*7+0.5*0+1.5*53.87422+1.5*20=87.37422;其中c1的值为7,即有7个线网和它们的敏感线网相邻;c2的值为0,即屏蔽线个数为零,c3的值为53.87422,即对所有Keff大于Kit的线网求(Keff-Kit)的值并取总和。c4的值为20,即有20个线网的Keff大于Kit。
采用禁忌搜索技术对bd_V(9,4)边进行串扰消除时,搜索过程中四种随机移动的权重w5,w6,w7,w8均取为0.25,也就是四种移动方式被用到的几率完全相等,移动的总次数是一个很大的数目,根据前文的叙述以及图2的示意流程,移动总次数的一个下界是Nb*Na,在至少这么多次的移动中,每一次移动采用的都是四种移动方式中的某一种,而具体采用哪一种,则是随机选取的。例如第一次选取了随机插入一根屏蔽线的移动方式,则在bd_V(9,4)中随机选择一个合理的位置,在74号线网和78号线网之间,插入一根屏蔽线,编号为-3;第二次选取了随机移动一个线网位置的移动方式,则在bd_V(9,4)中随机选择一个线网,是37号线网,将它随机移动到另外的位置,在179号线网右侧,以此类推。
本实施例中,取Na=350,Nb=40,Nc=10,T=4。
经过很多次的移动进行串扰消除后,同一个边的线网串扰信息变为bd_V(9,4),segnum,20,shldnum,333(1.472754,0.666667),34(2.003205,0.416667),652(1.718213,0.416667),74(1.288660,0.666667),-3(0.000000,0.000000),101(1.030928,0.166667),122(1.030928,0.000000),130(2.577320,0.550000),78(1.288660,0.500000),186(1.718213,0.550000),98(1.288660,0.666667),-3(0.000000,0.000000),188(1.288660,0.991667),193(1.718213,0.825000),181(2.577320,0.933333),179(1.718213,0.825000),37(1.472754,0.991667),-3(0.000000,0.000000),289(1.718213,0.666667),196(1.718213,0.500000),653(1.718213,0.933333),677(1.718213,0.500000),678(1.718213,0.666667)上面的shldnum表示经过串扰消除后,在该边插入的屏蔽线数目。
可以看到,经过串扰消除步骤,bd_V(9,4)这条边上的线网排列顺序发生了改变,34号线网右边不再是37号线网,而变成了652号线网,pair34的实际串扰值也减小为0.416667,已经在约束的范围之内了,同时,在该GRG边上插入了3个屏蔽线(其线网编号设为-3),同时,该变对应的费用函数值也发生了变化。新解的费用函数为cost=0.5*0+0.5*3+1.5*0+1.5*0=1.5D.结果优化结果优化步骤对上面得到的结果进行检查和面积优化,仍以上面这个GRG边为例bd_V(9,4),segnum,20,shldnum,2188(1.288660,0.200000),677(1.718213,0.500000),653(1.718213,0.466667),33(1.472754,0.500000),289(1.718213,0.666667),-3(0.000000,0.000000),196(1.718213,0.000000),122(1.030928,0.000000),78(1.288660,0.000000),101(1.030928,0.000000),74(1.288660,0.523810),193(1.718213,0.000000),130(2.577320,0.523810),-3(0.000000,0.000000),98(1.288660,0.321429),678(1.718213,0.380952),37(1.472754,0.904167),179(1.718213,0.485714),186(1.718213,0.633333),34(2.003205,0.380952),652(1.718213,0.682143),181(2.577320,0.395833)可以看到,屏蔽线数目减小为2个,线网的排列顺序也随之改变,34号线网左边变成了186号线网,右边仍是652号线网,仍然满足串扰约束。费用函数cost=0.5*0+0.5*2+1.5*0+1.5*0=1。
(3)根据上面的结果再次进行总体布线将屏蔽线占用的布线资源统计在内之后再进行布线,会有相当的线网改变其原来的拓扑走线,还以上面的pair34为例,经过步骤(3)后,其拓扑变为pair 34 9 8 10 3 1 5hbd 9 6 274.000000vbd 10 3 176.000000vbd 10 4 168.000000vbd 10 5 168.000000vbd 9 6 164.000000vbd 9 7 156.000000pair34所经过的边中,bd_V(9,4)中经过了20个线网和2个屏蔽线,拥挤度很大,因此,步骤(3)中进行优化后,pair34避开了bd_V(9,4)而选择了其他的边,如图5中的右图5b所示。边Bd_V(9,4)也在图5中标出。
权利要求
1.消除由耦合电感引起串扰的标准单元总体布线方法,其特征在于它是一种在已经经过布线拥挤、电路时延优化而得到的总体布线初始解的基础上,根据用户设定的串扰约束来进行串扰消除的方法,它通过计算机依次按以下步骤实现(1).把总体布线的初始解和用户设定的在所有线网漏点处允许的最大互感系数值输入计算机中;(2).分配串扰约束,即把用户给出的漏点处的约束转化为相应线网在所经过的每个GRG,即总体布线图边上的最大互感系数的约束,可以从以下两种已知的方法中任选一种(2.1).把漏点处的约束值平均地分配到这个源漏对所经过的每个GRG边上;(2.2).利用线性规划分配串扰约束,即考虑不同的GRG边上拥挤度不同会影响互感系数,给拥挤的GRG边上的约束值宽松一些,不拥挤的GRG边上约束值严格一些,在约束总值不变的情况下更有利于整体的优化;所述的拥挤度是指GRG边上被线网占用的通道数与通道总数的比值,即拥挤度越大,说明该边上所经过的线网越多;(3).应用禁忌搜索方法在GRG的各条边上消除串扰,即寻找一个串扰在约束范围内的线网排列顺序,它次按含有以下步骤;(3.1).设定xcur当前解,即当前GRG边上的线网顺序;xnew当前解邻域中的一个合法候选解,即处于邻域中的未被禁忌的可以作为新解的解的集合,称为合法候选解集,所述邻域是指当前解经过一次移动后所能达到的解的集合;xtmp禁忌搜索方法从合法候选解集中挑出的最好的解,即在当前合法候选解集中所能找到的费用函数最小的解;xmin禁忌搜索方法在整个搜索过程中曾经到达过的最优解,即曾经到达过的费用函数最小的解;cost(xnew)xnew的费用函数;tmpcostxtmp的费用函数;Na在最优解无改进的条件下,上述方法的迭代次数,系设定值,为正整数,100≤Na≤500;Nb在当前邻域的合法候选解集中随机移动地挑选的合法候选解的个数,系设定值,为正整数,10≤Nb≤200;Nc为找到一个合法候选解而搜索的最大次数,系设定值,为正整数,5≤Nc≤50;所述的禁忌是指把满足一定条件的解记录在一个表,即禁忌表H内,使它们在搜索即迭代的过程中不能作为新解而被选中;禁忌长度T,系正整数,它表示一个解遭到禁忌后,在T轮迭代次数内不能被选中,超过禁忌长度T后,原本遭到禁忌的解可以重新参与挑选过程,T=1~60;所述费用函数,即评价某个解优劣的定量标准,它的表达式为cost(x)=w1c1+w2c2+w3c3+w4c4,同时设定被禁忌的费用值,其中,w1、w2、w3、w4为权重,系设定值,均为0到5之间的实数;c1为该GRG边中与敏感线网相邻的线网总数,c2为该GRG边上屏蔽线的数目,所述屏蔽线是指能起到屏蔽相互敏感线网之间耦合电感和耦合电容作用的电源线或地线,c3的表达式如下Σi(Keff-Kth),∀i,]]>满足Keff>KthKeff为某个线网i在该GRG边上实际的互感系数,即所有对线网i敏感的线网j在线网i的互感系数的总和,可用下式表示 其中,kij=12(lLilLj+lRjlRi),]]>lLi为线网i到左侧屏蔽线L的距离,lLj为线网j到左侧屏蔽线L的距离,lRi为线网i到右侧屏蔽线R的距离,lRj为线网j到右侧屏蔽线R的距离;Kth为该线网i在该GRG边上所分配到的互感系数的约束值,c4是该GRG边中满足Keff>Kth的线网的总的个数;所述的随机移动是指从当前解的邻域中找到一个新解xnew的方法,它包括以下四种情况随机调换两个线网的位置,权重为w5,随机移动一个线网的位置,权重为w6,随机插入一条屏蔽线,权重为w7,随机删除一条屏蔽线,权重为w8,每一次随机移动操作都会从这四种移动中随机选择一种,并各用一个权重表示其被选几率,而w5+w6+w7+w8=1;(3.2).取当前GRG边上的线网顺序xcur为当前解,且初始化xmin=xcur;同时,初始化禁忌表H,清空搜索次数计数器a和统计Nc次数的计数器c;(3.3).判断计数器a的值是否小于设定的Na若a的值不小于参数Na,则搜索结束;否则转入下一步(3.4);(3.4).把tmpcost变量置为无穷大,清空统计Nb值的计数器b;(3.5).判断计数器b的值是否小于Nb若b的值不小于参数Nb,则转入步骤(3.10);否则,转入步骤(3.6);(3.6).随机移动产生新解xnew,判断其费用函数是否遭到禁忌,即费用函数计算出的费用是否等于被禁忌的费用若没有遭到禁忌,转步骤(3.8);否则,转步骤(3.7);(3.7).统计Nc次数的计数器c加1,判断c的值是否小于Nc若c的值不小于Nc,则停止搜索,清空计数器c,转步骤(3.8);否则,转入步骤(3.6),重新搜索一个合法候选解;(3.8).判断新解xnew的费用函数cost(xnew)的值是否小于变量tmpcost若是,则把xnew记录为xtmp,并把它的费用记录为tmpcost;否则,不做记录;(3.9).把计数器b的值加1,转步骤(3.5),重新寻找一个合法候选解;(3.10).判断步骤(3.9)得到的新解xnew的费用函数的值是否小于新的变量tmpcost,若是,则把xtmp选用为xcur,并比较xcur的费用函数cost(xcur)和最优解xmin的费用函数cost(xmin)若cost(xcur)小于费用函数cost(xmin),则找到新的最优解,把xcur记为xmin,同时清空计数器a;否则,不作记录,a的值加1;(3.11).更新禁忌表,即对所有被禁忌的费用函数,禁忌长度减1,再转步骤(3.3),重复以上过程,一直到禁忌长度减为零,则解除禁忌;(4).结果优化检查每个GRG边是否存在残余串扰,再尽可能减少屏蔽线数量。
全文摘要
消除由耦合电感引起串扰的标准单元总体布线方法属于标准单元集成电路计算机辅助设计技术领域,其特征在于它是一种在已经经过布线拥挤、电路时延优化而得到的总体布线初始解的基础上,根据用户设定的串扰约束来进行串扰消除的方法。在消除串扰时,它经过常规的分配串扰约束后,应用禁忌搜索方法在GRG的各条边上消除串扰,具体而言,它以构造的费用函数作为判断准则,以当前解为出发点,不断地从其邻域的合法候选解集中进行搜索,一直地迭代,直到规定的迭代次数为止,再在此基础上进行优化。它能够得到和模拟退火方法相近的屏蔽线插入数目的结果,但执行时间大大缩短,线长的增加减少了一半。
文档编号G06F17/50GK1564164SQ200410009030
公开日2005年1月12日 申请日期2004年4月20日 优先权日2004年4月20日
发明者洪先龙, 经彤, 张凌, 许静宇, 梁敬弘 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1