标准单元总体布线时障碍下时延驱动直角斯坦纳树方法

文档序号:6420040阅读:229来源:国知局
专利名称:标准单元总体布线时障碍下时延驱动直角斯坦纳树方法
技术领域
标准单元总体布线时障碍下时延驱动直角斯坦纳树方法属于集成电路计算机辅助设计即IC CAD技术领域,尤其涉及标准单元(SC)总体布线设计领域。
背景技术
在集成电路(IC)设计中,物理设计是IC设计过程中主要的一环,也是其中最耗时的一步。与物理设计相关的计算机辅助设计技术称为布图设计。在布图设计中,总体布线是一个极为重要的环节,它的结果对最后详细布线的成功与否和芯片的性能影响极大。
集成电路的设计规模目前正由超大规模(VLSI)、甚大规模(ULSI)向G大规模(GSI)方向发展,并出现了系统级芯片(SOC)的设计概念。最小直角斯坦纳树(rectilinear Steiner minimaltree,RSMT)构造方法的研究是VLSI/ULSI/GSI/SOC布图设计、尤其是布线研究中的一个重要问题。而在实际布线过程中,由于宏模块、IP模块以及预布线等都将成为障碍,使得考虑障碍的RSMT方法成为一个非常值得研究的问题。然而到目前为止,人们的研究多集中于无障碍的情况,对于带障碍的RSMT方法的研究还相对较少。相比之下,带障碍的时延驱动RSMT方法的研究就更是处于空白,非常有必要进行深入的研究。
在已有的非常有限的带障碍的RSMT方法的研究中,一般都以总线长作为目标。而随着集成电路超深亚微米工艺(VDSM)技术的发展,电路的时延性能成为影响电路总体性能的关键。目前,无论是在芯片级的模块布线还是在标准单元级的总体布线研究中,都对考虑障碍下的时延驱动的直角斯坦纳(Steiner)树方法提出了需求。针对总体布线的实际应用,考虑障碍情况进行时延驱动的Steiner树构造方法的研究是总体布线中的关键问题之一,具有很大的实际意义。
在已报导和所能查阅到的国内外相关研究中,我们列举、分析、总结如下对于“考虑障碍的直角Steiner树构造方法(以总线长作为目标)”的研究工作,在文献[刚刚申请的国家发明专利洪先龙,经彤,杨旸,朱祺,王垠.发明名称标准单元总体布线时障碍下的直角Steiner树方法.申请日期2003/09/26.申请号为03134684.7.]中进行了全面的分析、介绍,简要列举如下。
两个端点线网的情况Lee于1961年提出了迷宫方法([C.Y.Lee,An Algorithm forConnections and Its Applications,IRE Trans.On Electronic Computers,1961,346-365.])。1978年,Soukup提出了一个带有固定意义的非对称搜索方法([J.Soukup,FastMaze Router,Proc.Of 15thDesign Automation Conference,1978,100-102.]),提高了搜索效率。另一个改进的方法是Hadlock于1977年提出的,称为Hadlock最小迂回方法([Hadlock,A Shortest Path Algorithm for Grid Graphs,Networks,1977.7,323-334.])。为了克服迷宫方法的缺点,Hightower于1969年([D.W.Hightower,A solution to the LineRouting Problem on the Continuous Plane,Proc.Of the 6thDesign Automation Workshop,1969,1-24.]),Mikami和Tabuchi于1968年([Mikami K.and Tabuchi K.,A Computer Programfor Optimal Routing of Printed Circuit Connectors,IFIPS Proc.,1968,H47,1475-1478])分别提出了线搜索方法。另外一种比较有代表性方法的是文献[J.M.Ho,M.Sarrafzadeh and A.Suzuki,“An Exact Algorithm For Single-Later Wire-LengthMinimization”,Proceedings of IEEE International Conference of Computer Aided Design,pp.424-427,1990.]提出的单层详细布线中的最小化两端线网的方法。三篇文献[周智,有障碍的Manhattan空间中的最小Steiner树问题(硕士学位论文).合肥中国科学技术大学,1998.]、[周智,陈国良,顾钧.用O(tlogt)的连接图求有障碍时的最短路径.计算机学报,1999,22(5)519-524.]和[周智,蒋承东,黄刘生,顾钧,“用Θ(t)的广义连接图求有障碍时的最短路径”,软件学报,2003,14(2)pp.166-174.]中提出了利用广义连接图GG来构造两端线网的最小Steiner树,另外也提出GG可以用来构造多端线网,但是他们还没有具体实现。
多端点线网的情况文献[Chen Desheng,Sarrafzadeh M.A wire-length minimizationalgorithm for single-layer layout[A].InProceedings of IEEE/ACM InternationalConference of Computer Aided Des ign(ICCAD),Santa Clara,USA,1992.390-393.]对单层对布图中的多端线网进行了研究,提出了基于TPT转换和“线段可见性”概念下的最小化方法。文献[Yukiko KUBO,Yasuhiro TAKASHIMA,Shigetoshi NAKATAKE,Yoji KAJITANI.Self-reforming routing for stochastic search in VLSI interconnection layout[A].InProceedings of IEEE/ACM Asia-Pacific Design Automation Conference(ASP-DAC),Yokohama,Japan,2000.87-92.]提出了使用flip和dual-flip技术来优化原有布线。文献[Zheng S Q,Lim J S,Iyengar S S.Finding obstacle-avoiding shortest paths usingimplicit connection graphs[J].IEEE Transaction on Computer-Aided Design ofIntegrated Circuits and Systems.1996,15(1)103-110.]同时采用A*和基于“detour”值不改向进行启发。还有三项专利[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Toward optimal steiner tree routing in the presence of rectilinear obstacles,5491641,Feb.13,1996],[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Toward optimal steiner tree routing in the presence of rectilinear obstacles,5615128,Mar.25,1997],和[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Towardoptimal steiner tree routing in the presence of rectilinear obstacles,5880970,Mar.9,1999]也都是利用一个相似的强连接图“escape graph”,通过迷宫方法或者是对最小生成树(spanning tree)进行Steiner化的方法来求有障碍下多点线网的Steienr树。文献[LiuJian,Zhao Ying,Shragowitz E,Karypi s G.A polynomial time approximation scheme forrectilinear Steiner minimum tree construction in the presence of obstacles[A].InProceedings of IEEE International Symposium on Circuits and Systems(ISCAS),Scottsdale,USA,2002.781-784.]引入了几何优化方法中的Guillotine-cut技术。文献[Ganley J L,Cohoon J.P.Routing a multi-terminal critical netSteiner treeconstruction in the presence of obstacles[A].InProceedings of IEEE InternationalSymposium on Circuits and Systems(ISCAS).London,UK,1994.113-116.]在多点情况下将它们按一定的要求分成3点组或4点组来实现。文献[黄林,赵文庆,唐璞山.一种含浮动端点的斯坦纳树的构造算法.计算机辅助设计与图形学学报.Vol.10,No.6,1998.11.]在具体分析和方法描述中,没有针对有障碍情况的说明。
上述工作虽然都是考虑障碍情况,但因为它们仅仅是以总线长作为目标,于是就和本专利申请的内容“考虑障碍的时延驱动直角Steiner树构造方法”无关。在已报导和所能查阅到的国内外相关研究中,我们尚未查到关于“考虑障碍的时延驱动直角Steiner树构造方法”的研究情况。在相近领域中,仅查到以下3篇文献涉及到了对障碍和时延性能的同时考虑,列举、分析、总结如下文献[H.Kim and D.Zhou,“An Automatic Clock Tree Design System for High-SpeedVLSI DesignsPlanar Clock Routing with the Treatment of Obstacles”,IEEEInternational Symposium on Circuits and Systems,1999,pp.258-261,vol.6.]提出了一个自动时钟树生成系统,通过改变接入点的位置来绕过障碍。但在该文献中,时钟树的时延性能目标与总体布线的时延性能目标是不同的。前者是使得时钟信号同时到达各个作用单元,而后者一般是要求关键漏点(距离源点的曼哈顿距离最远的漏点)的时延最小化。因此该文献的方法不适合总体布线中时延驱动的直角Steiner树构造方法。
文献[X.Tang,R.Tian,H.Xiang,and D.F.Wong,“A New Algorithm for RoutingTree Construction with Buffer Insertion and Wire Sizing under Obstacle Constraints”,In Proceedings of ICCAD,pp.49-56,2001.]提出了一个同时进行缓冲器插入与wire sizing的考虑障碍约束的布线树构造方法。在该文献中,布线问题被形式化为一系列的图论问题并通过求解图中的最短路径来解决。由于该文献中重点考虑了缓冲器插入与wire sizing的方法,与本发明中所采用的拓扑构造方法从本质上属于不同的范畴。
文献[E.Shragowitz and J.Liu,“Generation of Minimal Delay Routing trees inPresence of Obstructions”,Proceedings of European Conference on Circuit Theory andDesign(ECCTD’99),Stresa,Italy,1999,pp.251-254.]提出了一个两步骤的布线方法。首先在有障碍的粗糙网格平面上构造最短路径Steiner树(Minimal Rectilinear ShortestPath Steiner Tree),之后去掉网格,按照预先给定的设计规则进行详细连线。该方法主要针对无网格的详细布线阶段,与本发明所针对的总体布线阶段不同。
本专利申请所涉及的方法首次在总体布线的斯坦纳树构造阶段同时考虑了障碍与时延目标,直接适应了集成电路设计中对电性能的突出需求。与已有的考虑障碍的多端点线网Steiner树构造方法相比,本发明方法在时延性能上具有较大的优势,同时保证了较好的线长性能。请具体参见后面的“本发明方法效果的实验数据”中给出的实验数据对比及其说明。
已进行过“新颖性检索”,检索报告见附件1。

发明内容
本发明的目的在于提出一种标准单元总体布线时障碍下时延驱动直角斯坦纳树方法。
本发明的总体思路是首先,对公知的“Sakurai时延计算公式”[1983年发表于国际刊物“IEEE Journal of Solid-State Circuits”]进行分析和推导,并对公知的“Dreyfus-Wagner迭代Steiner树构造方法”[1972年发表于国际刊物“Networks”]进行改造和变形,然后将改造后的两者进行适当结合,得到一组新的迭代公式。该组公式具有两个功能首先,提供了根据顶点的子集合划分进行遍历的方法,以求得顶点的连接关系;其次,可以进行时延迭代计算来确定最小时延树。即针对每个线网的顶点集合,进行子集合的划分,然后利用已得到的新迭代公式提供的遍历顺序功能,对顶点进行遍历,得到两两连接关系;继而利用新迭代公式提供的时延迭代计算功能,进行从源点到关键漏点的迭代求解,得到符合时延最小的目标Steiner树的顶点连接关系。
其次,对公知的寻找有障碍的两点间最短距离的“Rubin方法”[1974年发表于国际刊物“IEEE Transactions on Computers”]进行非规则网格的扩展,得到新的扩展的Rubin方法。根据已得到的符合时延最小的目标Steiner树的顶点连接关系,将顶点集合自底向上逐步连接成最后的目标Steiner树。在连接过程中,按照有障碍的两点间最短距离的路径来进行连接,由扩展的Rubin方法完成。
本发明的特征在于它在Steiner树的构造过程中同时考虑到了障碍和时延最小化目标。采用了一个从源点到关键漏点的递归迭代过程,逐步产生最终目标Steiner树的连接关系。具体而言,它依次含有以下步骤(1).初始化,计算机从外部读入以下预先设置数据总体布线单元GRC的行数Nnr,列数Nnc,总体布线图GRG中所有顶点即GRC中心点的坐标Vnr,nc(x,y),其中,nr,nc分别代表行和列,x,y是芯片平面的坐标,连接每相邻两个顶点的边ek的编号;电路中线网的总数Nsum,每条线网的网表NetlistIndex,电路中障碍的总数Osum和障碍列表,即每个障碍在GRG图上对应的顶点位置ObstacleIndex;(2).对每个线网的顶点集合进行子集合的划分;(3).计算得到关键漏点(见前面“背景技术”中的定义距离源点的曼哈顿距离最远的漏点,用符号t表示);(4).按照子集合的划分,利用本发明提出的迭代公式所提供的遍历顺序功能,从顶点开始,向关键漏点进行自上而下的遍历,得到顶点的两两连接关系;(5).对得到的所有连接关系,利用本发明提出的迭代公式的时延计算功能进行时延计算对于每一段连接关系,如果最短曼哈顿连接不存在障碍,则可以进行最短曼哈顿连接并计算时延;若最短曼哈顿连接存在障碍,运用本发明提出的扩展的Rubin方法,按照考虑障碍的两点间最短路径的距离来进行计算时延。比较所得到的所有Steiner树的关键点的时延,确定出最小时延树;(6).按照确定的连接关系,将顶点集合自底向上逐步连接成最后的目标Steiner树。
本发明的方法有如下特点首先,本发明的方法能处理多端点(包括能处理两端点)的线网;能处理复杂障碍(包括能处理矩形或L形的简单障碍)的情况。即本发明方法的适用范围更广。同时,本发明方法并不像有些文献那样只给出了一个设想或思路雏形,而是一个能在具体装置(工作站)上运行的为总体布线过程服务的IC CAD工具,有具体的实施描述。
其次,本发明首次将时延的最小化作为考虑障碍的多端点线网Steiner树构造的目标,直接适应了集成电路设计中对电性能的突出需求。本发明中得到的对顶点集合进行遍历来迭代求解最小时延树的时延公式,对其他时延驱动的Steiner树构造方法具有一定的指导意义。与已有的考虑障碍的多端点线网Steiner树构造方法相比,本发明方法在时延性能上具有较大的优势,同时保证了较好的线长性能。本发明的方法在综合效果上优于已有方法,请具体参见后面的“本发明方法效果的实验数据”中给出的实验数据说明。
此外,本发明将寻找有障碍的两点间最短距离的Rubin方法进行非规则网格的扩展,可应用于其他非规则网格上的考虑障碍的布线问题。


图1本发明核心部分流程图。
图2扩展的Rubin算法流程图。
图3顶点位置的示意图。
图4障碍点位置的示意图。
图5遍历得到的一种连接关系A对应的Steiner树示意图。
图6遍历得到的一种连接关系B对应的Steiner树示意图。
图7遍历得到的一种连接关系C对应的Steiner树示意图。
图8net684最终结果的Steiner树连接示意图。
具体实施例方式
首先具体分析本专利申请涉及的“考虑障碍的时延驱动直角斯坦纳树方法”的核心思想。
第一步通过对公知的“Sakurai时延计算公式”进行分析和推导、对公知的“Dreyfus-Wagner迭代Steiner树构造方法”进行改造和变形,然后将两者进行适当结合,得到一个新的通过对顶点集合的划分进行遍历来迭代求解最小时延树的时延公式。
(1)“Sakurai时延计算公式”简要介绍Sakurai时延计算公式将互连线看作是具有分布电阻和电容的传输线,该计算公式与实际情况基本相同。时延计算公式为TDZ=βRs(ce+Cz)+αrece+βreCz(1)其中TDZ是欲计算点的时延值。re是总的连线电阻(它等于方块电阻 乘以连线的长度),ce是总的连线电容(它等于方块电容 乘以连线的长度),Rs是驱动晶体管的等效电阻,Cz是负载电容,α=1.02,β=2.21,α和β的取值表示计算的是输出电压Vo从0增加到0.9高电平VDD时的时延值。
而对于一个树型的多端点线网,各节点的时延可根据上一级节点的时延来确定。具体公式如下TDZ(s)=βRsCs(2)TDZ(w)=TDZ(v)+αr^c^Lvw2+βr^LvwCw----(3)]]>其中节点s为源点,节点v为节点w的前驱节点,Lvw为节点v到节点w的连线长度,Cw为节点w之后的总电容,Cs为该线网总的负载电容, 是连线的方块电容, 是连线的方块电阻。
(2)“Dreyfus-Wagner迭代Steiner树构造方法”简要介绍令G=(V,E)为总体布线图(GRG),其中V为所有的节点集合,E{{v1,v2}|v1,v2∈V}为边的集合,NV是要连通节点的集合。树S是图G中要连通节点集合N的Steiner树,当且仅当树S中包含N中所有结点,并且树S的所有叶结点均为N中结点。如果用K表示N的一个子集,v表示N中的一个顶点,且v不属于K,p(v,w)表示图中v到w(w表示树的生长过程中的中间点,可在图G的全平面上取到)的最短距离。用Sv(K∪{v})表示K∪{v}集合的Steiner树,且v的度数(图上的一个顶点所连的边的个数称为该顶点的度)小于2;用Pv(K∪{v})表示K∪{v}上v的度数大于等于2的Steiner树(例如,Sw(K)表示K集合上的Steiner树,且w的度数小于2;Pw(K)表示K集合上的Steiner树,且w的度数大于等于2)。则“Dreyfus-Wagner迭代Steiner树构造方法”求解最小Steiner树的两个递归公式为Pv(K∪{v})=min{Sv(K′∪{v})+Sv(K-K′∪{v})|K′K∧K′≠φ} (4)Sv(k∪{v})=min{min{p(v,w)+Sw(K)|w∈K},min{p(v,w)+Pw(K∪{w})|w∉K}}----(5)]]>其中φ表示空集,K’表示K的不为空的子集。如果用k=|K|表示集合K中元素的个数,则上述递归公式将从k=2,3,...计算到|N|-1。
(3)对“Dreyfus-Wagner迭代Steiner树构造方法”进行改造和变形,将其与“Sakurai时延计算公式”进行适当结合,以得到新的能够对顶点集合进行遍历,并进行迭代求解最小时延树的公式。
“Dreyfus-Wagner迭代Steiner树构造方法”以线长最小化作为迭代目标,具有自底向上的构造顺序。我们将该过程进行改造,以适应时延最小化过程中时延从源点向漏点计算的特性。用G=(V,E)表示GRG图,给定线网顶点集合N,障碍点集合O,源点s∈N,关键漏点t∈N。定义三种不同性质的时延,Tc表示在一给定顶点集合中,从某一中间节点到关键漏点的时延,Tt表示在一给定Steiner树中,从某一中间节点到关键漏点的时延,Td表示两个节点之间的时延。
定义Tc(w,K,t)表示在一给定的顶点集合K∪{w}中,从中间节点w到关键漏点t的时延。如果集合K∪{w}不包含t,则Tc(w,K,t)=0。对于源点s,Tc(s,K,t)=TD(t)-βRsCs,其中TD(t)是从源点s到漏点t的时延,K=N-{s}。
首先,我们根据“Dreyfus-Wagner迭代Steiner树构造方法”公式(4)、(5)的集合分解的概念,加入时延公式(4)和(5)的时延递推项,得到下面的两个新公式Tc(v,K,t)=Tc(v,K′,t)+Tc(v,K-K′,t)(6)Tc(v,K,t)=(βr^LvwCw+αr^c^Lvw2)iK+Tc(w,K,t)----(7)]]>其中, 且有K′K∧K′≠φ, 其中,K’表示K的不为空的子集,K-K’表示从K中减去K’后的剩余子集,O是障碍点集合。
将得到的公式(6)和公式(7)与“Dreyfus-Wagner迭代Steiner树构造方法”公式(4)、(5)的具体迭代过程进行结合令Sv(K∪{v},Rsv)表示图G中对应电阻值Rsv的时延最小的Steiner树,其中v是某个中间节点,可当作假想源,且v的度数小于2;Rsv表示从源点s到点v的电阻与源点内阻的和,即有Rsv=Rs+r^Σxy∈path(s,v)Lxy]]>仿照前面Sv(K∪{v})与Pv(K∪{v})的定义及其相互关系,这里Pv(K∪{v},Rsv)与Sv(K∪{v},Rsv)的定义类似,只是限定v的度数大于等于2(以下,我们将Sv(K∪{v},Rsv)与Pv(K∪{v},Rsv)所代表的树简称为顶点v的S树和P树,记为Sv和Pv)。用Td(Sv,t)表示Steiner树Sv中从v到关键点t的时延,当t不在该树中时,Td(Sv,t)值为0。将上述定义符号代入公式(6)和(7)之中,得到下面的求解最小时延树的时延传递公式(Tt见上面定义)Tt(Pv(K∪{v},Rsv),t)]]>=mi~n{Tt(Sv(K′∪{v},Rsv),t)+Tt(Sv(K-K′∪{v},Rsv),t)}----(8)]]>Tt(Sv(K∪{v},Rsv),t)]]>=mi~n{mi~n{Tt(Sw(K,Rsv+r^Lvw),t)+(βr^LvwCw+αr^c^Lvw2)iK|w∈K},]]>mi~n{Tt(Pw(K∪{w},Rsv+r^Lvw),t)+(βr^LvwCw+αr^c^Lvw2)iK|w∉K}}----(9)]]>其中, 且有K′K∧K′≠φ,
在公式(8)和公式(9)中,我们定义了一个扩展的最小化函数 用来表示在此函数作用下,取得的中间点w的确定值wm可以使得从源点到关键漏点的时延最小。用Td(v,w)来表示两个节点v与w之间的时延, 的定义如下mi~nTc(v,K,t)=Td(v,wm)iK+Tc(wm,K,t)----(10)]]>其中,Td(v,w)=βr^LvwCw+αr^c^Lvw2]]>且有wm={w|minw∈V(Td(s,v)iK+Td(v,w)iK+Tc(w,K,t))}]]>公式(8)和公式(9)给出了一个自上而下的迭代计算过程。可将该过程解释如下对于一个给定线网顶点集合N,时延最小树的连接方式是通过一个中间节点w,将源点s与剩余顶点的集合K(K={N}-s)相连。而根据w和K的连接方式,可以得到两种连接方式的树,即w在K∪{w}中度为1或者度大于1,分别对应前面介绍的顶点w的S树和P树,记为Sw和Pw。而对于剩余顶点的集合K,也可以递归的求得其满足时延最小的连接。公式(8)和公式(9)通过遍历所有可能的顶点集合的组合,来计算最小时延的Steiner树的顶点连接关系,它们具备有两个功能首先,提供了对于顶点集合的遍历顺序;其次,提供了对于两点间时延的计算公式。
第二步在对连接关系的时延计算过程中,按照有障碍的两点间最短距离的路径长度来进行计算,该路径的搜寻由本发明提出的扩展的Rubin方法完成。
设需要寻找从s到t两点间的有障碍的最短距离,v是当前扩展点,Man(v,t)是节点v与t之间的曼哈顿距离。对“Rubin方法”的改造主要表现在我们将当前扩展点v的费用函数改为从s到v的路径长度加上v和t之间的曼哈顿距离。这样保证了对于非均匀网格图,扩展的波前点(由于扩展的过程类似波的传播过程,因此把扩展最前沿的点比喻成为在波的传播最前沿的点,故称为波前点)始终位于最短路径上。我们下面就具体给出我们设计的称为扩展Rubin方法的说明设s为出发点,t为到达点。算法执行下列步骤1)设定波前列表里包含唯一的元素为出发点s,邻居列表为空;设定当前搜索标志为“未找到”,所有顶点的扩展标志为“未扩展”;设定所有顶点的距离函数值为0,代价函数值为0。
2)若波前列表不为空,且当前搜索标志为“未找到”,执行下面第3)到第8)步骤。
3)从波前列表里取出一个顶点vi,登记其进入列表的方向为k;如果该顶点先前已被扩展过,返回步骤2)。
4)修改该顶点的扩展标志为“已扩展”;对该顶点的每个邻居,执行下面第5)到第7)步骤。
5)如果该邻居vj是到达点t,计算最短路径的长度为vi的距离函数值与vi、vj距离的和;设定当前搜索标志为“已找到”并退出。
6)否则,如果该邻居vj先前被扩展过或者是障碍,回到步骤4)访问下一个邻居。
7)计算vj的距离函数值为vi的距离函数值与vi、vj距离的和;计算vj的代价函数值为vi的距离函数值与vj与到达点t的曼哈顿距离之和。将vj插入到邻居列表中。
8)找到邻居列表中具有最小代价函数值,并以方向k进入的最后一个顶点。如果具有最小费用的顶点没有从方向k进入,选择新的方向并赋给k;将该顶点插入波前列表,并从邻居列表中将该顶点删除;从波前列表中将扩展点vi删除。返回步骤2)。
本方法核心部分的总流程框图如图1所示,扩展Rubin方法的流程框图如图2所示。
下面结合一个MCNC(Microelectronics Center of North Carolina)标准电路线网的例子,说明本方法的全过程,如下为了实现,或者说是具体实施本项发明,我们给出以下关于发明实施的描述。
实施本发明的计算机系统本发明所设计的为总体布线服务的软件要在一个具体的计算机系统上得以实施,该计算机系统具体描述如下。
一台Sun公司的V880型工作站;Unix操作系统;标准C编程语言;Vi编辑器、gcc编译器、gdb调试工具等。
步骤(1)预备工作。构造GRG网格;读入线网信息;读入障碍信息。其所涉及的工作与一般的标准单元总体布线的预备工作相同,详细描述见文献[已申请的国家发明专利洪先龙,经彤,鲍海云,蔡懿慈,许静宇.发明名称基于关键网络技术优化时延的标准单元总体布线方法.申请日期2002/01/15.申请号为02100354.8.已于2002/07/24被公开。]和[已申请的国家发明专利洪先龙,经彤,许静宇,张凌,胡昱.发明名称考虑耦合效应进行时延优化的标准单元总体布线方法.申请日期2002/12/17.申请号为02156622.4.已于2003/05/07被公开。]中的介绍。
读入的线网信息采用MCNC标准电路例子中的684号线网的网表表示(待连端点信息),则有(net684(vertexList 159 2 193 2 158 2 155 1))——说明其中的159,193,158,155给出了在GRG网格中待连端点号,这些端点在xy平面的坐标依次为(3170,1784),(2714,2126),(2942,1784),(2258,1784)。第159号顶点是漏点,第193号顶点是漏点,第158号顶点是漏点,第155号顶点是源点。它们的通式可表示为(net号(VertexList顶点号 源点/漏点......)),其中数字1表示源点,数字2表示漏点。图3为顶点位置的示意图小黑方块“■”表示顶点,符号s表示源点,符号t表示关键漏点。
针对684号线网所输入的障碍信息为arrayGRGInfo[175].obs=1;
arrayGRGInfo[177].obs=1;——说明输入的障碍信息给出了障碍ID号。其中,arrayGRGInfo[175].obs=1表示GRG网格上的点175为障碍点,arrayGRGInfo[177].obs=1表示GRG网格上的点177为障碍点。图4为障碍点位置的示意图“×”符号表示障碍点。
读入这些信息后,经过处理,存于相应的数据结构中。
步骤(2)对每个线网的顶点集合,进行子集合的划分。
例如由net684得到的子集合的划分为Net ID 684除去源点155,有顶点集合为{159,193,158}下面进行不考虑顺序的互补子集合对划分{159,193,158}划分的互补子集合对有{159}+{193,158};{193}+{159,158};{158}+{159,193};进一步划分{193,158}划分的互补子集合对有{193}+{158}{159,158}划分的互补子集合对有{159}+{158}{159,193}划分的互补子集合对有{159}+{193}——说明互补子集合是指将某个集合里面的元素划分到两个子集合中去,使得子集合元素之间没有重复,并且保证两个子集合元素的叠加等于原来的集合。
步骤(3)计算关键漏点。
三个漏点159,193,158到源点155的曼哈顿距离分别为159912193798158684由于漏点159距离源点的曼哈顿距离最远,设定关键漏点为159。
步骤(4)按照子集合的划分,利用前面得到的新迭代公式(8)和公式(9)所提供的遍历顺序的功能,从顶点开始,向关键漏点进行自上而下的遍历,得到顶点的连接关系。
net684的源点为155,关键漏点为159。利用公式(8)和公式(9),将中间点w取遍平面里的所有点,并对每个点,取遍前面列出的所有互补子集合对所对应的连接,可得到各种不同形状的Steiner树。
例如,源点直接向集合{159,193,158}进行Sw连接,以顶点158作为中间点w,则去除158之后剩余的子集合为{159,193,158}-{158}={159,193}。通过中间点158向剩余的集合{159,193}进行Pw连接,对应互补子集合对的划分为{159}+{193}。其得到的连接关系表示为
(连接关系A)又如,源点直接向集合{159,193,158}进行Sw连接,以顶点193作为中间点w,则去除158之后剩余的子集合为{159,193,158}-{193}={159,158}。通过中间点193向剩余的集合{159,158}进行Sw连接。以顶点158作为中间点w,则去除158之后剩余的子集合为{159,158}-{158}={159}。通过中间点158向剩余的集合{159}进行Sw连接。其得到的连接关系表示为155->193->158->159 (连接关系B)再如,源点以平面上的节点156作为中间点w,通过w向集合{159,193,158}进行Pw连接,对应互补子集合对的划分为{193}+{159,158}。中间点156首先向集合{193}进行Sw连接。中间点156再向集合{159,158}进行Sw连接,以顶点158作为中间点w,则去除158之后剩余的子集合为{159,158}-{158}={159}。通过158向剩余的集合{159}进行Sw连接。其得到的连接关系表示为 (连接关系C)步骤(5)对得到的所有连接关系进行时延计算。对于每一段连接关系,如果最短曼哈顿连接不存在障碍,则按照最短曼哈顿连接并计算时延;若最短曼哈顿连接存在障碍,运用本发明提出的扩展的Rubin方法,按照考虑障碍的两点间最短路径的距离来进行计算时延。比较所得到的所有Steiner树的关键点的时延,确定最小时延树。
我们对每两个点之间的连接关系,按照前面得到的扩展的Rubin方法来完成考虑障碍的最短连接。对于前述的三种连接方式A、B、C,依次给出连接示意图。
(连接关系A)其连接得到的Steiner树如图5所示,其关键漏点的时延为0.302ns。将其记录在数据结构中。
155->193->158->159 (连接关系B)其连接得到的Steiner树如图6所示,其关键漏点的时延为0.392ns。将其记录在数据结构中。
(连接关系C)
其连接得到的Steiner树如图7所示,其关键漏点的时延为0.279ns。将其记录在数据结构中。
经过比较,得到最小时延树应该对应连接如下

(最后选出的最小时延树应该对应的连接关系)步骤(6).按照确定的连接关系,将顶点集合自底向上逐步连接成最后的目标Steiner树。
最后得到的有障碍下的时延驱动的net684的Steiner树如下所示。这就是采用本发明方法的最终结果。
Net ID 684(其关键漏点的时延为0.279ns)(connect 155 156)<1>
(connect 156 157)<2>
(connect 157 158)<3>
(connect 158 159)<4>
(connect 156 174)<5>
(connect 174 192)<6>
(connect 192 193)<7>
——说明“(connect 155 156)”描述的是net684在障碍下的最终结果Steiner树的一条树边,它的两个端点在xy平面上的顶点号分别为155和156,“<1>”是这条边的序号。其余类似。所求得的net684的障碍下Steiner树共有7条树边。
图8给出了net684最终结果的Steiner树连接示意图,图中标出了各边的序号。
本发明方法效果的实验数据进行实验的计算机系统具体描述如下一台Sun公司的V880型工作站;Unix操作系统;标准C编程语言;Vi编辑器、gcc编译器、gdb调试工具等;MCNC电路中的线网作为测试例子,12个线网的测试结果数据列举如下首先比较我们的方法得到的Steiner树的关键时延和有障碍下的RSMT关键点时延。

OA-RSMT有障碍下的RSMT关键点时延[2]OARMDST有障碍下的时延驱动STEINER树关键点时延[3]%时延改进量=(“OA-RSMT”-“OARMDST”)/“OA-RSMT”×100%其次比较我们的方法得到的Steiner树的总线长和有障碍下的RSMT的总线长。注意后者代表线长的最优解。
OA-RSMT有障碍下的RSMT总线长[5]OARMDST有障碍下的时延驱动STEINER树总线长[6]%线长增量=(“OARMDST”-“OA-RSMT”)/“OA-RSMT”×100%从上述测试结果对比可以看出已有的考虑障碍的多端点线网Steiner树构造方法以线长作为驱动目标,本发明与其最优解RSMT进行了比较。本发明方法将时延的最小化作为考虑障碍的多端点线网Steiner树构造的目标,在时延性能上具有较大的优势,同时保证了较好的线长性能。
权利要求
1.标准单元总体布线时障碍下时延驱动直角斯坦纳树方法,含有斯坦纳树构造、时延计算和寻找有障碍的两点间最短距离的方法,其特征在于它采用了一个从源点到关键漏点的递归迭代过程,去逐步产生同时考虑了障碍和时延最小化的最终斯坦纳树的连接关系;具体而言,它依次含有以下(1).初始化,计算机从外部读入以下预先设置的数据总体布线单元GRC的行数Nnr,列数Nnc,总体布线图GRG中所有顶点即GRC中心点的坐标Vnr,nc(x,y),其中,nr,nc分别代表行和列,x,y是芯片平面的坐标,连接每相邻两个顶点的边ek的编号;电路中线网的总数Nsum,每条线网的网表NetlistIndex,电路中障碍的总数Osum和障碍列表,即每个障碍在GRG图上对应的顶点位置ObstacleIndex;(2).对每个线网的顶点集合用已知方法进行子集合的划分;(3).计算得到关键漏点t,即距离源点的曼哈顿距离最远的漏点;(4).按照子集合的划分,从顶点开始,向关键漏点进行自上而下的遍历,得到顶点的两两连接关系;(5).对得到的所有连接关系按下式进行时延计算对于最短曼哈顿连接不存在障碍的连接关系,则按照最短曼哈顿连接并计算时延;对于最短曼哈顿连接存在障碍的连接关系,运用下述扩展的Rubin方法,按照有障碍的两点间最短路径的距离来进行计算时延;比较由以上步骤所得到的所有斯坦纳即Steiner树的关键点的时延,确定出最小时延树;所述计算时延的公式如下用G=(V,E)表示GRG图,给定线网顶点集合N,障碍点集合O,源点s∈N,关键漏点t∈N;定义Tt表示在一给定Steiner树中,从某一中间节点到关键漏点的时延;如果用K表示N的一个子集,v表示N中的一个顶点,且v不属于K,w表示树的生长过程中的中间点,可在图G的全平面上取到;Sw(K)表示K集合上的Steiner树,且w的度数(图上的一个顶点所连的边的个数称为该顶点的度)小于2;Pw(K)表示K集合上的Steiner树,且w的度数大于等于2;令Sv(K∪{v},Rsv)表示图G中K∪{v)集合上的对应电阻值Rsv的时延最小的Steiner树,其中v的度数小于2;Rsv表示从源点到点v的电阻与源点内阻的和,于是有Rsv=Rs+r^Σxy∈path(s,v)Lxy]]>Pv(K∪{v},Rsv)与Sv(K∪{v},Rsv)的定义类似,只是限定v的度数大于等于2;K’表示K的不为空的子集,K-K’表示从K中减去K’后的剩余子集,所述时延公式为Tt(Pv(K∪{v},Rsv),t)]]>=min~{Tt(Sv(K′∪{v},Rsv),t)+Tt(Sv(K-K′∪{v},Rsv),t)}]]>Tt(Sv(K∪{v},Rsv),t)]]>=min~{min~{Tt(Sw(K,Rsv+r^Lvw),t)+(βr^LvwCw+αr^c^Lvw2)iK|w∈K},]]>min~{Tt(Pw(K∪{w},Rsv+r^Lvw),t)+(βr^LvwCw+αr^c^Lvw2)iK|w∉K}}]]>其中, 且有K′K∧K′≠φ, 其中 是连线的方块电容, 是连线的方块电阻,α=1.02,β=2.21,α和β的取值表示计算的是输出电压VO从0增加到0.9高电平VDD时的时延值;节点v为节点w的前驱节点,Lvw为节点v到节点w的连线长度,Cw为节点w之后的总电容,Rs是驱动晶体管的等效电阻;在上面的公式中,定义了一个扩展的最小化函数 用来表示在此函数作用下,取得的中间点w的确定值wm可以使得从源点到关键漏点的时延最小;用Td(v,w)来表示两个节点v与w之间的时延, 的定义如下min~Tc(v,K,t)=Td(v,wm)iK+Tc(wm,K,t)]]>其中,Td(v,w)=βr^LvwCw+αr^c^Lvw2]]>且有wm={w|minw∈V(Td(s,v)iK+Td(v,w)iK+Tc(w,K,t))}]]>所述扩展的Rubin方法包含以下步骤设s为出发点,t为到达点;算法执行下列步骤1)设定波前列表里包含唯一的元素为出发点s,邻居列表为空;设定当前搜索标志为“未找到”,所有顶点的扩展标志为“未扩展”;设定所有顶点的距离函数值为0,代价函数值为0;2)若波前列表不为空,且当前搜索标志为“未找到”,执行下面第3)到第8)步骤;3)从波前列表里取出一个顶点vi,登记其进入列表的方向为k;如果该顶点先前已被扩展过,返回步骤2);4)修改该顶点的扩展标志为“已扩展”;对该顶点的每个邻居,执行下面第5)到第7)步骤;5)如果该邻居vj是到达点t,计算最短路径的长度为vi的距离函数值与vi、vj距离的和;设定当前搜索标志为“已找到”并退出;6)否则,如果该邻居vj先前被扩展过或者是障碍,回到步骤4)访问下一个邻居;7)计算vj的距离函数值为vi的距离函数值与vi、vj距离的和;计算vj的代价函数值为vi的距离函数值与vj与到达点t的曼哈顿距离之和;将vj插入到邻居列表中;8)找到邻居列表中具有最小代价函数值,并以方向k进入的最后一个顶点;如果具有最小费用的顶点没有从方向k进入,选择新的方向并赋给k;将该顶点插入波前列表,并从邻居列表中将该顶点删除;从波前列表中将扩展点vi删除;返回步骤2);(6).按照确定的连接关系,将顶点集合自底向上逐步连接成最后的目标Steiner树。
全文摘要
标准单元总体布线时障碍下时延驱动直角斯坦纳树方法属于集成电路标准单元总体布线设计领域,其特征在于它针对每个线网的顶点集合,进行子集合的划分;再利用自己提出的对顶点集合进行遍历后得到的顶点两两连接的关系求解最小时延树的时延公式进行时延计算,对于有障碍的路径利用自己改进的适用于非规则网格的Rubin方法先寻找有障碍的两点间最短距离后再计算时延;由此得到符合时延最小的目标斯坦纳树的顶点连接关系;把顶点集合自底向上逐步连接成最后的目标斯坦纳树。它同时考虑了障碍和时延的最小化,直接适应了集成电路设计对电性能的需求,它能处理多端点线网或有复杂障碍的线网。
文档编号G06F17/50GK1540554SQ20031010304
公开日2004年10月27日 申请日期2003年10月31日 优先权日2003年10月31日
发明者洪先龙, 经彤, 许静宇, 杨旸 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1