專利名稱:標準單元總體布線時障礙下時延驅(qū)動直角斯坦納樹方法
技術(shù)領(lǐng)域:
標準單元總體布線時障礙下時延驅(qū)動直角斯坦納樹方法屬于集成電路計算機輔助設(shè)計即IC CAD技術(shù)領(lǐng)域,尤其涉及標準單元(SC)總體布線設(shè)計領(lǐng)域。
背景技術(shù):
在集成電路(IC)設(shè)計中,物理設(shè)計是IC設(shè)計過程中主要的一環(huán),也是其中最耗時的一步。與物理設(shè)計相關(guān)的計算機輔助設(shè)計技術(shù)稱為布圖設(shè)計。在布圖設(shè)計中,總體布線是一個極為重要的環(huán)節(jié),它的結(jié)果對最后詳細布線的成功與否和芯片的性能影響極大。
集成電路的設(shè)計規(guī)模目前正由超大規(guī)模(VLSI)、甚大規(guī)模(ULSI)向G大規(guī)模(GSI)方向發(fā)展,并出現(xiàn)了系統(tǒng)級芯片(SOC)的設(shè)計概念。最小直角斯坦納樹(rectilinear Steiner minimaltree,RSMT)構(gòu)造方法的研究是VLSI/ULSI/GSI/SOC布圖設(shè)計、尤其是布線研究中的一個重要問題。而在實際布線過程中,由于宏模塊、IP模塊以及預布線等都將成為障礙,使得考慮障礙的RSMT方法成為一個非常值得研究的問題。然而到目前為止,人們的研究多集中于無障礙的情況,對于帶障礙的RSMT方法的研究還相對較少。相比之下,帶障礙的時延驅(qū)動RSMT方法的研究就更是處于空白,非常有必要進行深入的研究。
在已有的非常有限的帶障礙的RSMT方法的研究中,一般都以總線長作為目標。而隨著集成電路超深亞微米工藝(VDSM)技術(shù)的發(fā)展,電路的時延性能成為影響電路總體性能的關(guān)鍵。目前,無論是在芯片級的模塊布線還是在標準單元級的總體布線研究中,都對考慮障礙下的時延驅(qū)動的直角斯坦納(Steiner)樹方法提出了需求。針對總體布線的實際應用,考慮障礙情況進行時延驅(qū)動的Steiner樹構(gòu)造方法的研究是總體布線中的關(guān)鍵問題之一,具有很大的實際意義。
在已報導和所能查閱到的國內(nèi)外相關(guān)研究中,我們列舉、分析、總結(jié)如下對于“考慮障礙的直角Steiner樹構(gòu)造方法(以總線長作為目標)”的研究工作,在文獻[剛剛申請的國家發(fā)明專利洪先龍,經(jīng)彤,楊旸,朱祺,王垠.發(fā)明名稱標準單元總體布線時障礙下的直角Steiner樹方法.申請日期2003/09/26.申請?zhí)枮?3134684.7.]中進行了全面的分析、介紹,簡要列舉如下。
兩個端點線網(wǎng)的情況Lee于1961年提出了迷宮方法([C.Y.Lee,An Algorithm forConnections and Its Applications,IRE Trans.On Electronic Computers,1961,346-365.])。1978年,Soukup提出了一個帶有固定意義的非對稱搜索方法([J.Soukup,F(xiàn)astMaze 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.]提出的單層詳細布線中的最小化兩端線網(wǎng)的方法。三篇文獻[周智,有障礙的Manhattan空間中的最小Steiner樹問題(碩士學位論文).合肥中國科學技術(shù)大學,1998.]、[周智,陳國良,顧鈞.用O(tlogt)的連接圖求有障礙時的最短路徑.計算機學報,1999,22(5)519-524.]和[周智,蔣承東,黃劉生,顧鈞,“用Θ(t)的廣義連接圖求有障礙時的最短路徑”,軟件學報,2003,14(2)pp.166-174.]中提出了利用廣義連接圖GG來構(gòu)造兩端線網(wǎng)的最小Steiner樹,另外也提出GG可以用來構(gòu)造多端線網(wǎng),但是他們還沒有具體實現(xiàn)。
多端點線網(wǎng)的情況文獻[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.]對單層對布圖中的多端線網(wǎng)進行了研究,提出了基于TPT轉(zhuǎn)換和“線段可見性”概念下的最小化方法。文獻[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技術(shù)來優(yōu)化原有布線。文獻[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”值不改向進行啟發(fā)。還有三項專利[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Toward optimal steiner tree routing in the presence of rectilinear obstacles,5491641,F(xiàn)eb.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化的方法來求有障礙下多點線網(wǎng)的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.]引入了幾何優(yōu)化方法中的Guillotine-cut技術(shù)。文獻[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點組來實現(xiàn)。文獻[黃林,趙文慶,唐璞山.一種含浮動端點的斯坦納樹的構(gòu)造算法.計算機輔助設(shè)計與圖形學學報.Vol.10,No.6,1998.11.]在具體分析和方法描述中,沒有針對有障礙情況的說明。
上述工作雖然都是考慮障礙情況,但因為它們僅僅是以總線長作為目標,于是就和本專利申請的內(nèi)容“考慮障礙的時延驅(qū)動直角Steiner樹構(gòu)造方法”無關(guān)。在已報導和所能查閱到的國內(nèi)外相關(guān)研究中,我們尚未查到關(guān)于“考慮障礙的時延驅(qū)動直角Steiner樹構(gòu)造方法”的研究情況。在相近領(lǐng)域中,僅查到以下3篇文獻涉及到了對障礙和時延性能的同時考慮,列舉、分析、總結(jié)如下文獻[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.]提出了一個自動時鐘樹生成系統(tǒng),通過改變接入點的位置來繞過障礙。但在該文獻中,時鐘樹的時延性能目標與總體布線的時延性能目標是不同的。前者是使得時鐘信號同時到達各個作用單元,而后者一般是要求關(guān)鍵漏點(距離源點的曼哈頓距離最遠的漏點)的時延最小化。因此該文獻的方法不適合總體布線中時延驅(qū)動的直角Steiner樹構(gòu)造方法。
文獻[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的考慮障礙約束的布線樹構(gòu)造方法。在該文獻中,布線問題被形式化為一系列的圖論問題并通過求解圖中的最短路徑來解決。由于該文獻中重點考慮了緩沖器插入與wire sizing的方法,與本發(fā)明中所采用的拓撲構(gòu)造方法從本質(zhì)上屬于不同的范疇。
文獻[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.]提出了一個兩步驟的布線方法。首先在有障礙的粗糙網(wǎng)格平面上構(gòu)造最短路徑Steiner樹(Minimal Rectilinear ShortestPath Steiner Tree),之后去掉網(wǎng)格,按照預先給定的設(shè)計規(guī)則進行詳細連線。該方法主要針對無網(wǎng)格的詳細布線階段,與本發(fā)明所針對的總體布線階段不同。
本專利申請所涉及的方法首次在總體布線的斯坦納樹構(gòu)造階段同時考慮了障礙與時延目標,直接適應了集成電路設(shè)計中對電性能的突出需求。與已有的考慮障礙的多端點線網(wǎng)Steiner樹構(gòu)造方法相比,本發(fā)明方法在時延性能上具有較大的優(yōu)勢,同時保證了較好的線長性能。請具體參見后面的“本發(fā)明方法效果的實驗數(shù)據(jù)”中給出的實驗數(shù)據(jù)對比及其說明。
已進行過“新穎性檢索”,檢索報告見附件1。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種標準單元總體布線時障礙下時延驅(qū)動直角斯坦納樹方法。
本發(fā)明的總體思路是首先,對公知的“Sakurai時延計算公式”[1983年發(fā)表于國際刊物“IEEE Journal of Solid-State Circuits”]進行分析和推導,并對公知的“Dreyfus-Wagner迭代Steiner樹構(gòu)造方法”[1972年發(fā)表于國際刊物“Networks”]進行改造和變形,然后將改造后的兩者進行適當結(jié)合,得到一組新的迭代公式。該組公式具有兩個功能首先,提供了根據(jù)頂點的子集合劃分進行遍歷的方法,以求得頂點的連接關(guān)系;其次,可以進行時延迭代計算來確定最小時延樹。即針對每個線網(wǎng)的頂點集合,進行子集合的劃分,然后利用已得到的新迭代公式提供的遍歷順序功能,對頂點進行遍歷,得到兩兩連接關(guān)系;繼而利用新迭代公式提供的時延迭代計算功能,進行從源點到關(guān)鍵漏點的迭代求解,得到符合時延最小的目標Steiner樹的頂點連接關(guān)系。
其次,對公知的尋找有障礙的兩點間最短距離的“Rubin方法”[1974年發(fā)表于國際刊物“IEEE Transactions on Computers”]進行非規(guī)則網(wǎng)格的擴展,得到新的擴展的Rubin方法。根據(jù)已得到的符合時延最小的目標Steiner樹的頂點連接關(guān)系,將頂點集合自底向上逐步連接成最后的目標Steiner樹。在連接過程中,按照有障礙的兩點間最短距離的路徑來進行連接,由擴展的Rubin方法完成。
本發(fā)明的特征在于它在Steiner樹的構(gòu)造過程中同時考慮到了障礙和時延最小化目標。采用了一個從源點到關(guān)鍵漏點的遞歸迭代過程,逐步產(chǎn)生最終目標Steiner樹的連接關(guān)系。具體而言,它依次含有以下步驟(1).初始化,計算機從外部讀入以下預先設(shè)置數(shù)據(jù)總體布線單元GRC的行數(shù)Nnr,列數(shù)Nnc,總體布線圖GRG中所有頂點即GRC中心點的坐標Vnr,nc(x,y),其中,nr,nc分別代表行和列,x,y是芯片平面的坐標,連接每相鄰兩個頂點的邊ek的編號;電路中線網(wǎng)的總數(shù)Nsum,每條線網(wǎng)的網(wǎng)表NetlistIndex,電路中障礙的總數(shù)Osum和障礙列表,即每個障礙在GRG圖上對應的頂點位置ObstacleIndex;(2).對每個線網(wǎng)的頂點集合進行子集合的劃分;(3).計算得到關(guān)鍵漏點(見前面“背景技術(shù)”中的定義距離源點的曼哈頓距離最遠的漏點,用符號t表示);(4).按照子集合的劃分,利用本發(fā)明提出的迭代公式所提供的遍歷順序功能,從頂點開始,向關(guān)鍵漏點進行自上而下的遍歷,得到頂點的兩兩連接關(guān)系;(5).對得到的所有連接關(guān)系,利用本發(fā)明提出的迭代公式的時延計算功能進行時延計算對于每一段連接關(guān)系,如果最短曼哈頓連接不存在障礙,則可以進行最短曼哈頓連接并計算時延;若最短曼哈頓連接存在障礙,運用本發(fā)明提出的擴展的Rubin方法,按照考慮障礙的兩點間最短路徑的距離來進行計算時延。比較所得到的所有Steiner樹的關(guān)鍵點的時延,確定出最小時延樹;(6).按照確定的連接關(guān)系,將頂點集合自底向上逐步連接成最后的目標Steiner樹。
本發(fā)明的方法有如下特點首先,本發(fā)明的方法能處理多端點(包括能處理兩端點)的線網(wǎng);能處理復雜障礙(包括能處理矩形或L形的簡單障礙)的情況。即本發(fā)明方法的適用范圍更廣。同時,本發(fā)明方法并不像有些文獻那樣只給出了一個設(shè)想或思路雛形,而是一個能在具體裝置(工作站)上運行的為總體布線過程服務的IC CAD工具,有具體的實施描述。
其次,本發(fā)明首次將時延的最小化作為考慮障礙的多端點線網(wǎng)Steiner樹構(gòu)造的目標,直接適應了集成電路設(shè)計中對電性能的突出需求。本發(fā)明中得到的對頂點集合進行遍歷來迭代求解最小時延樹的時延公式,對其他時延驅(qū)動的Steiner樹構(gòu)造方法具有一定的指導意義。與已有的考慮障礙的多端點線網(wǎng)Steiner樹構(gòu)造方法相比,本發(fā)明方法在時延性能上具有較大的優(yōu)勢,同時保證了較好的線長性能。本發(fā)明的方法在綜合效果上優(yōu)于已有方法,請具體參見后面的“本發(fā)明方法效果的實驗數(shù)據(jù)”中給出的實驗數(shù)據(jù)說明。
此外,本發(fā)明將尋找有障礙的兩點間最短距離的Rubin方法進行非規(guī)則網(wǎng)格的擴展,可應用于其他非規(guī)則網(wǎng)格上的考慮障礙的布線問題。
圖1本發(fā)明核心部分流程圖。
圖2擴展的Rubin算法流程圖。
圖3頂點位置的示意圖。
圖4障礙點位置的示意圖。
圖5遍歷得到的一種連接關(guān)系A(chǔ)對應的Steiner樹示意圖。
圖6遍歷得到的一種連接關(guān)系B對應的Steiner樹示意圖。
圖7遍歷得到的一種連接關(guān)系C對應的Steiner樹示意圖。
圖8net684最終結(jié)果的Steiner樹連接示意圖。
具體實施例方式
首先具體分析本專利申請涉及的“考慮障礙的時延驅(qū)動直角斯坦納樹方法”的核心思想。
第一步通過對公知的“Sakurai時延計算公式”進行分析和推導、對公知的“Dreyfus-Wagner迭代Steiner樹構(gòu)造方法”進行改造和變形,然后將兩者進行適當結(jié)合,得到一個新的通過對頂點集合的劃分進行遍歷來迭代求解最小時延樹的時延公式。
(1)“Sakurai時延計算公式”簡要介紹Sakurai時延計算公式將互連線看作是具有分布電阻和電容的傳輸線,該計算公式與實際情況基本相同。時延計算公式為TDZ=βRs(ce+Cz)+αrece+βreCz(1)其中TDZ是欲計算點的時延值。re是總的連線電阻(它等于方塊電阻 乘以連線的長度),ce是總的連線電容(它等于方塊電容 乘以連線的長度),Rs是驅(qū)動晶體管的等效電阻,Cz是負載電容,α=1.02,β=2.21,α和β的取值表示計算的是輸出電壓Vo從0增加到0.9高電平VDD時的時延值。
而對于一個樹型的多端點線網(wǎng),各節(jié)點的時延可根據(jù)上一級節(jié)點的時延來確定。具體公式如下TDZ(s)=βRsCs(2)TDZ(w)=TDZ(v)+αr^c^Lvw2+βr^LvwCw----(3)]]>其中節(jié)點s為源點,節(jié)點v為節(jié)點w的前驅(qū)節(jié)點,Lvw為節(jié)點v到節(jié)點w的連線長度,Cw為節(jié)點w之后的總電容,Cs為該線網(wǎng)總的負載電容, 是連線的方塊電容, 是連線的方塊電阻。
(2)“Dreyfus-Wagner迭代Steiner樹構(gòu)造方法”簡要介紹令G=(V,E)為總體布線圖(GRG),其中V為所有的節(jié)點集合,E{{v1,v2}|v1,v2∈V}為邊的集合,NV是要連通節(jié)點的集合。樹S是圖G中要連通節(jié)點集合N的Steiner樹,當且僅當樹S中包含N中所有結(jié)點,并且樹S的所有葉結(jié)點均為N中結(jié)點。如果用K表示N的一個子集,v表示N中的一個頂點,且v不屬于K,p(v,w)表示圖中v到w(w表示樹的生長過程中的中間點,可在圖G的全平面上取到)的最短距離。用Sv(K∪{v})表示K∪{v}集合的Steiner樹,且v的度數(shù)(圖上的一個頂點所連的邊的個數(shù)稱為該頂點的度)小于2;用Pv(K∪{v})表示K∪{v}上v的度數(shù)大于等于2的Steiner樹(例如,Sw(K)表示K集合上的Steiner樹,且w的度數(shù)小于2;Pw(K)表示K集合上的Steiner樹,且w的度數(shù)大于等于2)。則“Dreyfus-Wagner迭代Steiner樹構(gòu)造方法”求解最小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中元素的個數(shù),則上述遞歸公式將從k=2,3,...計算到|N|-1。
(3)對“Dreyfus-Wagner迭代Steiner樹構(gòu)造方法”進行改造和變形,將其與“Sakurai時延計算公式”進行適當結(jié)合,以得到新的能夠?qū)旤c集合進行遍歷,并進行迭代求解最小時延樹的公式。
“Dreyfus-Wagner迭代Steiner樹構(gòu)造方法”以線長最小化作為迭代目標,具有自底向上的構(gòu)造順序。我們將該過程進行改造,以適應時延最小化過程中時延從源點向漏點計算的特性。用G=(V,E)表示GRG圖,給定線網(wǎng)頂點集合N,障礙點集合O,源點s∈N,關(guān)鍵漏點t∈N。定義三種不同性質(zhì)的時延,Tc表示在一給定頂點集合中,從某一中間節(jié)點到關(guān)鍵漏點的時延,Tt表示在一給定Steiner樹中,從某一中間節(jié)點到關(guān)鍵漏點的時延,Td表示兩個節(jié)點之間的時延。
定義Tc(w,K,t)表示在一給定的頂點集合K∪{w}中,從中間節(jié)點w到關(guān)鍵漏點t的時延。如果集合K∪{w}不包含t,則Tc(w,K,t)=0。對于源點s,Tc(s,K,t)=TD(t)-βRsCs,其中TD(t)是從源點s到漏點t的時延,K=N-{s}。
首先,我們根據(jù)“Dreyfus-Wagner迭代Steiner樹構(gòu)造方法”公式(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樹構(gòu)造方法”公式(4)、(5)的具體迭代過程進行結(jié)合令Sv(K∪{v},Rsv)表示圖G中對應電阻值Rsv的時延最小的Steiner樹,其中v是某個中間節(jié)點,可當作假想源,且v的度數(shù)小于2;Rsv表示從源點s到點v的電阻與源點內(nèi)阻的和,即有Rsv=Rs+r^Σxy∈path(s,v)Lxy]]>仿照前面Sv(K∪{v})與Pv(K∪{v})的定義及其相互關(guān)系,這里Pv(K∪{v},Rsv)與Sv(K∪{v},Rsv)的定義類似,只是限定v的度數(shù)大于等于2(以下,我們將Sv(K∪{v},Rsv)與Pv(K∪{v},Rsv)所代表的樹簡稱為頂點v的S樹和P樹,記為Sv和Pv)。用Td(Sv,t)表示Steiner樹Sv中從v到關(guān)鍵點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)中,我們定義了一個擴展的最小化函數(shù) 用來表示在此函數(shù)作用下,取得的中間點w的確定值wm可以使得從源點到關(guān)鍵漏點的時延最小。用Td(v,w)來表示兩個節(jié)點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)給出了一個自上而下的迭代計算過程??蓪⒃撨^程解釋如下對于一個給定線網(wǎng)頂點集合N,時延最小樹的連接方式是通過一個中間節(jié)點w,將源點s與剩余頂點的集合K(K={N}-s)相連。而根據(jù)w和K的連接方式,可以得到兩種連接方式的樹,即w在K∪{w}中度為1或者度大于1,分別對應前面介紹的頂點w的S樹和P樹,記為Sw和Pw。而對于剩余頂點的集合K,也可以遞歸的求得其滿足時延最小的連接。公式(8)和公式(9)通過遍歷所有可能的頂點集合的組合,來計算最小時延的Steiner樹的頂點連接關(guān)系,它們具備有兩個功能首先,提供了對于頂點集合的遍歷順序;其次,提供了對于兩點間時延的計算公式。
第二步在對連接關(guān)系的時延計算過程中,按照有障礙的兩點間最短距離的路徑長度來進行計算,該路徑的搜尋由本發(fā)明提出的擴展的Rubin方法完成。
設(shè)需要尋找從s到t兩點間的有障礙的最短距離,v是當前擴展點,Man(v,t)是節(jié)點v與t之間的曼哈頓距離。對“Rubin方法”的改造主要表現(xiàn)在我們將當前擴展點v的費用函數(shù)改為從s到v的路徑長度加上v和t之間的曼哈頓距離。這樣保證了對于非均勻網(wǎng)格圖,擴展的波前點(由于擴展的過程類似波的傳播過程,因此把擴展最前沿的點比喻成為在波的傳播最前沿的點,故稱為波前點)始終位于最短路徑上。我們下面就具體給出我們設(shè)計的稱為擴展Rubin方法的說明設(shè)s為出發(fā)點,t為到達點。算法執(zhí)行下列步驟1)設(shè)定波前列表里包含唯一的元素為出發(fā)點s,鄰居列表為空;設(shè)定當前搜索標志為“未找到”,所有頂點的擴展標志為“未擴展”;設(shè)定所有頂點的距離函數(shù)值為0,代價函數(shù)值為0。
2)若波前列表不為空,且當前搜索標志為“未找到”,執(zhí)行下面第3)到第8)步驟。
3)從波前列表里取出一個頂點vi,登記其進入列表的方向為k;如果該頂點先前已被擴展過,返回步驟2)。
4)修改該頂點的擴展標志為“已擴展”;對該頂點的每個鄰居,執(zhí)行下面第5)到第7)步驟。
5)如果該鄰居vj是到達點t,計算最短路徑的長度為vi的距離函數(shù)值與vi、vj距離的和;設(shè)定當前搜索標志為“已找到”并退出。
6)否則,如果該鄰居vj先前被擴展過或者是障礙,回到步驟4)訪問下一個鄰居。
7)計算vj的距離函數(shù)值為vi的距離函數(shù)值與vi、vj距離的和;計算vj的代價函數(shù)值為vi的距離函數(shù)值與vj與到達點t的曼哈頓距離之和。將vj插入到鄰居列表中。
8)找到鄰居列表中具有最小代價函數(shù)值,并以方向k進入的最后一個頂點。如果具有最小費用的頂點沒有從方向k進入,選擇新的方向并賦給k;將該頂點插入波前列表,并從鄰居列表中將該頂點刪除;從波前列表中將擴展點vi刪除。返回步驟2)。
本方法核心部分的總流程框圖如圖1所示,擴展Rubin方法的流程框圖如圖2所示。
下面結(jié)合一個MCNC(Microelectronics Center of North Carolina)標準電路線網(wǎng)的例子,說明本方法的全過程,如下為了實現(xiàn),或者說是具體實施本項發(fā)明,我們給出以下關(guān)于發(fā)明實施的描述。
實施本發(fā)明的計算機系統(tǒng)本發(fā)明所設(shè)計的為總體布線服務的軟件要在一個具體的計算機系統(tǒng)上得以實施,該計算機系統(tǒng)具體描述如下。
一臺Sun公司的V880型工作站;Unix操作系統(tǒng);標準C編程語言;Vi編輯器、gcc編譯器、gdb調(diào)試工具等。
步驟(1)預備工作。構(gòu)造GRG網(wǎng)格;讀入線網(wǎng)信息;讀入障礙信息。其所涉及的工作與一般的標準單元總體布線的預備工作相同,詳細描述見文獻[已申請的國家發(fā)明專利洪先龍,經(jīng)彤,鮑海云,蔡懿慈,許靜宇.發(fā)明名稱基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時延的標準單元總體布線方法.申請日期2002/01/15.申請?zhí)枮?2100354.8.已于2002/07/24被公開。]和[已申請的國家發(fā)明專利洪先龍,經(jīng)彤,許靜宇,張凌,胡昱.發(fā)明名稱考慮耦合效應進行時延優(yōu)化的標準單元總體布線方法.申請日期2002/12/17.申請?zhí)枮?2156622.4.已于2003/05/07被公開。]中的介紹。
讀入的線網(wǎng)信息采用MCNC標準電路例子中的684號線網(wǎng)的網(wǎng)表表示(待連端點信息),則有(net684(vertexList 159 2 193 2 158 2 155 1))——說明其中的159,193,158,155給出了在GRG網(wǎng)格中待連端點號,這些端點在xy平面的坐標依次為(3170,1784),(2714,2126),(2942,1784),(2258,1784)。第159號頂點是漏點,第193號頂點是漏點,第158號頂點是漏點,第155號頂點是源點。它們的通式可表示為(net號(VertexList頂點號 源點/漏點......)),其中數(shù)字1表示源點,數(shù)字2表示漏點。圖3為頂點位置的示意圖小黑方塊“■”表示頂點,符號s表示源點,符號t表示關(guān)鍵漏點。
針對684號線網(wǎng)所輸入的障礙信息為arrayGRGInfo[175].obs=1;
arrayGRGInfo[177].obs=1;——說明輸入的障礙信息給出了障礙ID號。其中,arrayGRGInfo[175].obs=1表示GRG網(wǎng)格上的點175為障礙點,arrayGRGInfo[177].obs=1表示GRG網(wǎng)格上的點177為障礙點。圖4為障礙點位置的示意圖“×”符號表示障礙點。
讀入這些信息后,經(jīng)過處理,存于相應的數(shù)據(jù)結(jié)構(gòu)中。
步驟(2)對每個線網(wǎng)的頂點集合,進行子集合的劃分。
例如由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)計算關(guān)鍵漏點。
三個漏點159,193,158到源點155的曼哈頓距離分別為159912193798158684由于漏點159距離源點的曼哈頓距離最遠,設(shè)定關(guān)鍵漏點為159。
步驟(4)按照子集合的劃分,利用前面得到的新迭代公式(8)和公式(9)所提供的遍歷順序的功能,從頂點開始,向關(guān)鍵漏點進行自上而下的遍歷,得到頂點的連接關(guān)系。
net684的源點為155,關(guān)鍵漏點為159。利用公式(8)和公式(9),將中間點w取遍平面里的所有點,并對每個點,取遍前面列出的所有互補子集合對所對應的連接,可得到各種不同形狀的Steiner樹。
例如,源點直接向集合{159,193,158}進行Sw連接,以頂點158作為中間點w,則去除158之后剩余的子集合為{159,193,158}-{158}={159,193}。通過中間點158向剩余的集合{159,193}進行Pw連接,對應互補子集合對的劃分為{159}+{193}。其得到的連接關(guān)系表示為
(連接關(guān)系A(chǔ))又如,源點直接向集合{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連接。其得到的連接關(guān)系表示為155->193->158->159 (連接關(guān)系B)再如,源點以平面上的節(jié)點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連接。其得到的連接關(guān)系表示為 (連接關(guān)系C)步驟(5)對得到的所有連接關(guān)系進行時延計算。對于每一段連接關(guān)系,如果最短曼哈頓連接不存在障礙,則按照最短曼哈頓連接并計算時延;若最短曼哈頓連接存在障礙,運用本發(fā)明提出的擴展的Rubin方法,按照考慮障礙的兩點間最短路徑的距離來進行計算時延。比較所得到的所有Steiner樹的關(guān)鍵點的時延,確定最小時延樹。
我們對每兩個點之間的連接關(guān)系,按照前面得到的擴展的Rubin方法來完成考慮障礙的最短連接。對于前述的三種連接方式A、B、C,依次給出連接示意圖。
(連接關(guān)系A(chǔ))其連接得到的Steiner樹如圖5所示,其關(guān)鍵漏點的時延為0.302ns。將其記錄在數(shù)據(jù)結(jié)構(gòu)中。
155->193->158->159 (連接關(guān)系B)其連接得到的Steiner樹如圖6所示,其關(guān)鍵漏點的時延為0.392ns。將其記錄在數(shù)據(jù)結(jié)構(gòu)中。
(連接關(guān)系C)
其連接得到的Steiner樹如圖7所示,其關(guān)鍵漏點的時延為0.279ns。將其記錄在數(shù)據(jù)結(jié)構(gòu)中。
經(jīng)過比較,得到最小時延樹應該對應連接如下
(最后選出的最小時延樹應該對應的連接關(guān)系)步驟(6).按照確定的連接關(guān)系,將頂點集合自底向上逐步連接成最后的目標Steiner樹。
最后得到的有障礙下的時延驅(qū)動的net684的Steiner樹如下所示。這就是采用本發(fā)明方法的最終結(jié)果。
Net ID 684(其關(guān)鍵漏點的時延為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在障礙下的最終結(jié)果Steiner樹的一條樹邊,它的兩個端點在xy平面上的頂點號分別為155和156,“<1>”是這條邊的序號。其余類似。所求得的net684的障礙下Steiner樹共有7條樹邊。
圖8給出了net684最終結(jié)果的Steiner樹連接示意圖,圖中標出了各邊的序號。
本發(fā)明方法效果的實驗數(shù)據(jù)進行實驗的計算機系統(tǒng)具體描述如下一臺Sun公司的V880型工作站;Unix操作系統(tǒng);標準C編程語言;Vi編輯器、gcc編譯器、gdb調(diào)試工具等;MCNC電路中的線網(wǎng)作為測試例子,12個線網(wǎng)的測試結(jié)果數(shù)據(jù)列舉如下首先比較我們的方法得到的Steiner樹的關(guān)鍵時延和有障礙下的RSMT關(guān)鍵點時延。
OA-RSMT有障礙下的RSMT關(guān)鍵點時延[2]OARMDST有障礙下的時延驅(qū)動STEINER樹關(guān)鍵點時延[3]%時延改進量=(“OA-RSMT”-“OARMDST”)/“OA-RSMT”×100%其次比較我們的方法得到的Steiner樹的總線長和有障礙下的RSMT的總線長。注意后者代表線長的最優(yōu)解。
OA-RSMT有障礙下的RSMT總線長[5]OARMDST有障礙下的時延驅(qū)動STEINER樹總線長[6]%線長增量=(“OARMDST”-“OA-RSMT”)/“OA-RSMT”×100%從上述測試結(jié)果對比可以看出已有的考慮障礙的多端點線網(wǎng)Steiner樹構(gòu)造方法以線長作為驅(qū)動目標,本發(fā)明與其最優(yōu)解RSMT進行了比較。本發(fā)明方法將時延的最小化作為考慮障礙的多端點線網(wǎng)Steiner樹構(gòu)造的目標,在時延性能上具有較大的優(yōu)勢,同時保證了較好的線長性能。
權(quán)利要求
1.標準單元總體布線時障礙下時延驅(qū)動直角斯坦納樹方法,含有斯坦納樹構(gòu)造、時延計算和尋找有障礙的兩點間最短距離的方法,其特征在于它采用了一個從源點到關(guān)鍵漏點的遞歸迭代過程,去逐步產(chǎn)生同時考慮了障礙和時延最小化的最終斯坦納樹的連接關(guān)系;具體而言,它依次含有以下(1).初始化,計算機從外部讀入以下預先設(shè)置的數(shù)據(jù)總體布線單元GRC的行數(shù)Nnr,列數(shù)Nnc,總體布線圖GRG中所有頂點即GRC中心點的坐標Vnr,nc(x,y),其中,nr,nc分別代表行和列,x,y是芯片平面的坐標,連接每相鄰兩個頂點的邊ek的編號;電路中線網(wǎng)的總數(shù)Nsum,每條線網(wǎng)的網(wǎng)表NetlistIndex,電路中障礙的總數(shù)Osum和障礙列表,即每個障礙在GRG圖上對應的頂點位置ObstacleIndex;(2).對每個線網(wǎng)的頂點集合用已知方法進行子集合的劃分;(3).計算得到關(guān)鍵漏點t,即距離源點的曼哈頓距離最遠的漏點;(4).按照子集合的劃分,從頂點開始,向關(guān)鍵漏點進行自上而下的遍歷,得到頂點的兩兩連接關(guān)系;(5).對得到的所有連接關(guān)系按下式進行時延計算對于最短曼哈頓連接不存在障礙的連接關(guān)系,則按照最短曼哈頓連接并計算時延;對于最短曼哈頓連接存在障礙的連接關(guān)系,運用下述擴展的Rubin方法,按照有障礙的兩點間最短路徑的距離來進行計算時延;比較由以上步驟所得到的所有斯坦納即Steiner樹的關(guān)鍵點的時延,確定出最小時延樹;所述計算時延的公式如下用G=(V,E)表示GRG圖,給定線網(wǎng)頂點集合N,障礙點集合O,源點s∈N,關(guān)鍵漏點t∈N;定義Tt表示在一給定Steiner樹中,從某一中間節(jié)點到關(guān)鍵漏點的時延;如果用K表示N的一個子集,v表示N中的一個頂點,且v不屬于K,w表示樹的生長過程中的中間點,可在圖G的全平面上取到;Sw(K)表示K集合上的Steiner樹,且w的度數(shù)(圖上的一個頂點所連的邊的個數(shù)稱為該頂點的度)小于2;Pw(K)表示K集合上的Steiner樹,且w的度數(shù)大于等于2;令Sv(K∪{v},Rsv)表示圖G中K∪{v)集合上的對應電阻值Rsv的時延最小的Steiner樹,其中v的度數(shù)小于2;Rsv表示從源點到點v的電阻與源點內(nèi)阻的和,于是有Rsv=Rs+r^Σxy∈path(s,v)Lxy]]>Pv(K∪{v},Rsv)與Sv(K∪{v},Rsv)的定義類似,只是限定v的度數(shù)大于等于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時的時延值;節(jié)點v為節(jié)點w的前驅(qū)節(jié)點,Lvw為節(jié)點v到節(jié)點w的連線長度,Cw為節(jié)點w之后的總電容,Rs是驅(qū)動晶體管的等效電阻;在上面的公式中,定義了一個擴展的最小化函數(shù) 用來表示在此函數(shù)作用下,取得的中間點w的確定值wm可以使得從源點到關(guān)鍵漏點的時延最?。挥肨d(v,w)來表示兩個節(jié)點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方法包含以下步驟設(shè)s為出發(fā)點,t為到達點;算法執(zhí)行下列步驟1)設(shè)定波前列表里包含唯一的元素為出發(fā)點s,鄰居列表為空;設(shè)定當前搜索標志為“未找到”,所有頂點的擴展標志為“未擴展”;設(shè)定所有頂點的距離函數(shù)值為0,代價函數(shù)值為0;2)若波前列表不為空,且當前搜索標志為“未找到”,執(zhí)行下面第3)到第8)步驟;3)從波前列表里取出一個頂點vi,登記其進入列表的方向為k;如果該頂點先前已被擴展過,返回步驟2);4)修改該頂點的擴展標志為“已擴展”;對該頂點的每個鄰居,執(zhí)行下面第5)到第7)步驟;5)如果該鄰居vj是到達點t,計算最短路徑的長度為vi的距離函數(shù)值與vi、vj距離的和;設(shè)定當前搜索標志為“已找到”并退出;6)否則,如果該鄰居vj先前被擴展過或者是障礙,回到步驟4)訪問下一個鄰居;7)計算vj的距離函數(shù)值為vi的距離函數(shù)值與vi、vj距離的和;計算vj的代價函數(shù)值為vi的距離函數(shù)值與vj與到達點t的曼哈頓距離之和;將vj插入到鄰居列表中;8)找到鄰居列表中具有最小代價函數(shù)值,并以方向k進入的最后一個頂點;如果具有最小費用的頂點沒有從方向k進入,選擇新的方向并賦給k;將該頂點插入波前列表,并從鄰居列表中將該頂點刪除;從波前列表中將擴展點vi刪除;返回步驟2);(6).按照確定的連接關(guān)系,將頂點集合自底向上逐步連接成最后的目標Steiner樹。
全文摘要
標準單元總體布線時障礙下時延驅(qū)動直角斯坦納樹方法屬于集成電路標準單元總體布線設(shè)計領(lǐng)域,其特征在于它針對每個線網(wǎng)的頂點集合,進行子集合的劃分;再利用自己提出的對頂點集合進行遍歷后得到的頂點兩兩連接的關(guān)系求解最小時延樹的時延公式進行時延計算,對于有障礙的路徑利用自己改進的適用于非規(guī)則網(wǎng)格的Rubin方法先尋找有障礙的兩點間最短距離后再計算時延;由此得到符合時延最小的目標斯坦納樹的頂點連接關(guān)系;把頂點集合自底向上逐步連接成最后的目標斯坦納樹。它同時考慮了障礙和時延的最小化,直接適應了集成電路設(shè)計對電性能的需求,它能處理多端點線網(wǎng)或有復雜障礙的線網(wǎng)。
文檔編號G06F17/50GK1540554SQ20031010304
公開日2004年10月27日 申請日期2003年10月31日 優(yōu)先權(quán)日2003年10月31日
發(fā)明者洪先龍, 經(jīng)彤, 許靜宇, 楊旸 申請人:清華大學