亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

標(biāo)準(zhǔn)單元總體布線時(shí)障礙下的直角Steiner樹方法

文檔序號:6363072閱讀:343來源:國知局
專利名稱:標(biāo)準(zhǔn)單元總體布線時(shí)障礙下的直角Steiner樹方法
技術(shù)領(lǐng)域
標(biāo)準(zhǔn)單元總體布線時(shí)障礙下的直角Steiner樹方法屬于集成電路計(jì)算機(jī)輔助設(shè)計(jì)即ICCAD技術(shù)領(lǐng)域,尤其涉及標(biāo)準(zhǔn)單元(SC)總體布線設(shè)計(jì)領(lǐng)域。
背景技術(shù)
在集成電路(IC)設(shè)計(jì)中,物理設(shè)計(jì)是IC設(shè)計(jì)過程中主要的一環(huán),也是其中最耗時(shí)的一步。與物理設(shè)計(jì)相關(guān)的計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)稱為布圖設(shè)計(jì)。在布圖設(shè)計(jì)中,總體布線是一個(gè)極為重要的環(huán)節(jié),它的結(jié)果對最后詳細(xì)布線的成功與否和芯片的性能影響極大。
集成電路的設(shè)計(jì)規(guī)模目前正由超大規(guī)模(VLSI)、甚大規(guī)模(ULSI)向G大規(guī)模(GSI)方向發(fā)展,并出現(xiàn)了系統(tǒng)級芯片(SOC)的設(shè)計(jì)概念。最小直角Steiner樹(rectilinear Steinerminimal tree,RSMT)構(gòu)造方法的研究是VLSI/ULSI/GSI/SOC布圖設(shè)計(jì)、尤其是布線研究中的一個(gè)重要問題。而在實(shí)際布線過程中,由于宏模塊、IP模塊以及預(yù)布線等都將成為障礙,使得考慮障礙的RSMT方法成為一個(gè)非常值得研究的問題。然而到目前為止,人們的研究多集中于無障礙的情況,相比之下對于帶障礙的RSMT方法的研究還相對空白,有必要進(jìn)行深入的研究。針對總體布線的實(shí)際應(yīng)用,考慮障礙情況進(jìn)行Steiner樹構(gòu)造方法的研究是總體布線中的關(guān)鍵問題之一,具有很大的實(shí)際意義。
在已報(bào)導(dǎo)和所能查閱到的國內(nèi)外相關(guān)研究中,關(guān)于“考慮障礙的直角Steiner樹構(gòu)造方法”的研究情況可列舉、分析、總結(jié)如下對于線網(wǎng)僅含有兩個(gè)端點(diǎn)這種比較簡單的情況,人們做了不少研究,而且其中已經(jīng)有一些比較成熟的方法。
Lee于1961年提出了迷宮方法([C.Y.Lee,An Algorithm for Connections and ItsApplications,IRE Trans.On Electronic Computers,1961,346-365.]),可用于求解障礙下的兩端線網(wǎng)布線中兩端點(diǎn)之間的最短路徑。但由于該方法在整個(gè)搜索中總是對稱的,這增加了搜索所需的時(shí)間和存儲空間。1978年,Soukup提出了一個(gè)帶有固定意義的非對稱搜索方法([J.Soukup,F(xiàn)ast Maze Router,Proc.Of 15thDesign Automation Conference,1978,100-102.]),提高了搜索效率。但該方法不能保證找到最優(yōu)解。另一個(gè)改進(jìn)的方法是Hadlock于1977年提出的,稱為Hadlock最小迂回方法([Hadlock,A Shortest Path Algorithm forGrid Graphs,Networks,1977.7,323-334.])。上述兩種改進(jìn)的迷宮方法的時(shí)間與空間復(fù)雜度均為0(hw),其中h和w是網(wǎng)格的數(shù)目。迷宮方法的最大缺點(diǎn)是要搜索較大的布圖空間,所以要花費(fèi)較大的時(shí)間和存儲空間。它的優(yōu)點(diǎn)是能在任何有解的情況下保證找到一個(gè)解。
為了克服迷宮方法的缺點(diǎn),Hightower于1969年([D.w.Hightower,A solution to theLine Routing Problem on the Continuous Plane,Proc.Of the 6thDesign AutomationWorkshop,1969,1-24.]),Mikami和Tabuchi于1968年([Mikami K.and Tabuchi K.,AComputer Program for Optimal Routing of Printed Circuit Connectors,IFIPS Proc.,1968,H47,1475-1478])分別提出了線搜索方法。它的計(jì)算時(shí)間和空間復(fù)雜度均為0(L),其中L為該方法所產(chǎn)生的線數(shù)。
另外一種比較有代表性方法的是文獻(xiàn)[J.M.Ho,M.Sarrafzadeh and A.Suzuki,“An ExactAlgorithm For Single-Later Wire-Length Minimization”,Proceedings of IEEEInternational Conference of Computer Aided Design,pp.424-427,1990.]提出的單層詳細(xì)布線中的最小化兩端線網(wǎng)的方法。它使用一種稱為“同倫變換(homotopictransformation)”的方法對線網(wǎng)進(jìn)行優(yōu)化變換,所謂的“同倫”就是不改變線網(wǎng)的整體布局。作者提出當(dāng)路徑中不存在“空U”(三段連續(xù)的線段構(gòu)成的形如字母U的線路稱為一個(gè)“U”,“空U”即指在U形線路的中間那段向U內(nèi)部仍有上移空間)時(shí),便可斷定為最短路徑。這個(gè)方法只適用于兩端線網(wǎng)的處理,它能得到最優(yōu)路徑。
三篇文獻(xiàn)[周智,有障礙的Manhattan空間中的最小Steiner樹問題(碩士學(xué)位論文)。合肥中國科學(xué)技術(shù)大學(xué),1998.]、[周智,陳國良,顧鈞。用0(tlogt)的連接圖求有障礙時(shí)的最短路徑。計(jì)算機(jī)學(xué)報(bào),1999,22(5)519-524.]和[周智,蔣承東,黃劉生,顧鈞,“用Θ(t)的廣義連接圖求有障礙時(shí)的最短路徑”,軟件學(xué)報(bào),2003,14(2)pp.166-174.]中引入了廣義連接圖GG,其平均復(fù)雜度為Θ(t),其中t為障礙的極邊數(shù)(多邊形相鄰的三條邊e1(x1,x2),e2(x2,x3),e3(x3,x4),若 和 正好反向,則e2即為極邊)。GG在復(fù)雜度上有一定的優(yōu)勢。在這些文獻(xiàn)中提出了利用GG來構(gòu)造兩端線網(wǎng)的最小Steiner樹,另外也提出GG可以用來構(gòu)造多端線網(wǎng),但是他們還沒有具體實(shí)現(xiàn)。
相比之下,人們針對多端點(diǎn)線網(wǎng)提出的考慮障礙的直角Steiner樹方法還相對很少。與兩端點(diǎn)線網(wǎng)相比,多端點(diǎn)情況要復(fù)雜得多。尤其是在有障礙的情況下,很難在人們可以接受的時(shí)間內(nèi)求得最優(yōu)解。本專利申請所涉及的方法就是針對多端點(diǎn)線網(wǎng)的一種啟發(fā)式方法,其復(fù)雜度為0(mn),其中m和n分別為障礙個(gè)數(shù)和線網(wǎng)端點(diǎn)數(shù)。以下將列舉目前已有的考慮障礙的多端點(diǎn)線網(wǎng)的方法,并與本專利申請所涉及的方法進(jìn)行比較,以指出他們之間的區(qū)別。
文獻(xiàn)[Chen Desheng,Sarrafzadeh M.A wire-length minimization algorithm forsingle-layer layout[A].InProceedings of IEEE/ACM International Conference ofComputer Aided Design(ICCAD),Santa Clara,USA,1992.390-393.]對單層對布圖中的多端線網(wǎng)進(jìn)行了研究,提出了基于TPT轉(zhuǎn)換和“線段可見性”概念下的最小化方法。其時(shí)間復(fù)雜度為0(max(mn,mlogm)),其中n和m分別是指定待連線網(wǎng)N和全部線網(wǎng)集L的線段數(shù)目。該方法比較簡單,它在轉(zhuǎn)換過程中保持了“拓?fù)浣Y(jié)構(gòu)”不變(topology preserving)。但拓?fù)浣Y(jié)構(gòu)的固定又限制了TPT轉(zhuǎn)換的自由度,使結(jié)果在很大程度上依賴于轉(zhuǎn)換前的初始布線,因而在某些情況下結(jié)果不太理想。本專利申請所涉及的方法除了與該方法的思路不同外,在時(shí)間復(fù)雜度相當(dāng)?shù)那闆r下,我們能求得更優(yōu)的線長結(jié)果,請具體參見后面的“本發(fā)明方法效果的實(shí)驗(yàn)數(shù)據(jù)”中給出的實(shí)驗(yàn)數(shù)據(jù)對比及其說明。
文獻(xià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)化原有布線。在這篇文獻(xiàn)中證明了利用flip和dual-flip可將連接線網(wǎng)的任意一棵樹轉(zhuǎn)換為任何其它形狀的樹,這使得該方法的轉(zhuǎn)換比上述的TPT轉(zhuǎn)換有更大自由度。但由于該方法采用模擬退火技術(shù),使得執(zhí)行時(shí)間非常長。它的時(shí)間復(fù)雜度大大于本專利申請所涉及的方法。
文獻(xiàn)[Zheng S Q,Lim J S,Iyengar S S.Finding obstacle-avoiding shortest pathsusing implicit connection graphs[J].IEEE Transaction on Computer-Aided Design ofIntegrated Circuits and Systems.1996,15(1)103-110.]引入一個(gè)強(qiáng)連接圖GC,其復(fù)雜度為0(e2),其中e為障礙的總邊數(shù)。它同時(shí)采用A*和基于“detour”值不改向進(jìn)行啟發(fā)。另外,三項(xiàng)專利[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Towardoptimal steiner tree routing in the presence of rectilinear obstacles,5491641,F(xiàn)eb.13,1996],[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Toward optimalsteiner tree routing in the presence of rectilinear obstacles,5615128,Mar.25,1997],和[Ranko Scepanovic,Cupertino;Cheng-Liang Ding,SanJose.Toward optimal steinertree routing in the presence of rectilinear obstacles,5880970,Mar.9,1999]也都是利用一個(gè)相似的強(qiáng)連接圖“escape graph”,通過迷宮方法或者是對最小生成樹(spanningtree)進(jìn)行Steiner化的方法來求有障礙下多點(diǎn)線網(wǎng)的Steienr樹。這一類方法在障礙情況比較簡單的情況下會有較好的求解效果,但在障礙形狀較復(fù)雜、邊數(shù)較多的情況下,它們所基于的強(qiáng)連接圖將會變得非常復(fù)雜,求解效率就比較差。因此,這一類方法僅適用于障礙比較簡單的情況。而本專利申請所涉及的方法能適用于各種復(fù)雜的障礙情況。
文獻(xiàn)[Liu Jian,Zhao Ying,Shragowitz E,Karypis G.A polynomial timeapproximation scheme for rectilinear Steiner minimum tree construction in thepresence of obstacles[A].InProceedings of IEEE International Symposium onCircuits and Systems(ISCAS),Scottsdale,USA,2002.781-784.]引入了幾何優(yōu)化方法中的Guillotine-cut技術(shù)。該方法在無障礙時(shí)復(fù)雜度為多項(xiàng)式時(shí)間。雖然該方法可以應(yīng)用到有障礙的情況,但求解就不能在多項(xiàng)式時(shí)間內(nèi)完成,還需進(jìn)行復(fù)雜度簡化的研究工作。
文獻(xiàn)[Ganley J L,Cohoon J.P.Routing a multi-terminal critical netSteinertree construction in the presence of obstacles[A].InProceedings of IEEEInternational Symposium on Circuits and Systems(ISCAS).London,UK,1994.113-116.]提出的觀點(diǎn)是由于3點(diǎn)和4點(diǎn)的情況比較簡單,因此在多點(diǎn)情況下可將它們按一定的要求分成3點(diǎn)組或4點(diǎn)組來實(shí)現(xiàn)。對于有障礙下的Steiner樹問題,greedy 3-Steinerization(G3S)的時(shí)間復(fù)雜度為0(k2n),而greedy 4-Steinerization(G4S)的時(shí)間復(fù)雜度為0(k3n2)。其中n是可選的Steiner點(diǎn)數(shù)目,k是執(zhí)行迭代的次數(shù),效率較低。batched 3-Steinerization(B3S)成批地選擇三點(diǎn)組,時(shí)間復(fù)雜度為0(rkn),其中r為反復(fù)的次數(shù),提高了求解效率。但如何選擇三點(diǎn)組或四點(diǎn)組是這個(gè)方法的核心問題,它決定著該方法求解結(jié)果的好壞。在無障礙的情況下,通常采取的方法是將比較靠近的點(diǎn)歸為一組,這個(gè)方法是比較合理的,得到的結(jié)果也比較好。但是在有障礙的情況下,選擇點(diǎn)組時(shí)就需要綜合考慮障礙以及點(diǎn)的分布情況。因此,如何選擇合適點(diǎn)組的問題就復(fù)雜很多。然而,在該文獻(xiàn)中并沒有針對這個(gè)核心問題給出明確的解決方法。雖然該方法的時(shí)間復(fù)雜度還不是很高,但是需要再做后續(xù)優(yōu)化工作才能使該方法得到優(yōu)化的結(jié)果。
另外,文獻(xiàn)[黃林,趙文慶,唐璞山。一種含浮動端點(diǎn)的斯坦納樹的構(gòu)造算法。計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào).Vol.10,No.6,1998.11.]在具體分析和方法描述中,沒有針對有障礙情況的說明。
已進(jìn)行過“新穎性檢索”,檢索報(bào)告見附件1。

發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種標(biāo)準(zhǔn)單元總體布線時(shí)障礙下的直角Steiner樹方法。
本發(fā)明的總體思路是首先將所有障礙視為不存在,求得端點(diǎn)集在無障礙下的Steiner樹(我們稱為預(yù)-Steiner樹)并連接各端點(diǎn);然后對預(yù)-Steiner樹進(jìn)行改造,使預(yù)-Steiner樹中在障礙內(nèi)部的樹邊繞過障礙,生成有障礙下的Steiner樹。在生成有障礙Steiner樹的過程中,還可以根據(jù)圖的拓?fù)浣Y(jié)構(gòu),進(jìn)行適當(dāng)?shù)念A(yù)處理和后期處理,以得到更好的構(gòu)造結(jié)果。
本發(fā)明的特征在于它首先將所有障礙視為不存在,求得待連線網(wǎng)的端點(diǎn)集在無障礙下的Steiner樹即預(yù)-Steiner樹;然后使預(yù)-Steiner樹中在障礙內(nèi)部的樹邊繞過障礙,生成有障礙下的Steiner樹;在生成有障礙Steiner樹的過程中,根據(jù)圖的拓?fù)浣Y(jié)構(gòu),進(jìn)行適當(dāng)?shù)念A(yù)處理和后期處理;具體而言,它依次含有以下步驟(1).初始化,計(jì)算機(jī)從外部讀入以下預(yù)先設(shè)置數(shù)據(jù)總體布線單元GRC的行數(shù)Nnr,列數(shù)Nnc,總體布線圖GRG中所有頂點(diǎn)即GRC中心點(diǎn)的坐標(biāo)Vnr,nc(x,y),其中,nr,nc分別代表行和列,x,y是芯片平面的坐標(biāo),GRG中每條邊ek的容量Ck,電路中線網(wǎng)的總數(shù)Nsum,每條線網(wǎng)的網(wǎng)表NetlistIndex,電路中障礙的總數(shù)Osum,每個(gè)障礙各組成邊的位置ObstacleIndex;(2).讀出以下數(shù)據(jù)以生成GRG讀出在布線芯片上劃分GRC所必需的行數(shù)Nnr和列數(shù)Nnc,再讀出在布線芯片上生成上述GRG所必需的各頂點(diǎn)的坐標(biāo)值,同時(shí),給上述頂點(diǎn)及連接每相鄰兩個(gè)頂點(diǎn)的邊ek編號;(3).按讀入程序,為上述每條線網(wǎng)編號;(4).根據(jù)上述讀入的電路中障礙的總數(shù)Osum及每個(gè)障礙各組成邊的位置ObstacleIndex生成障礙列表;(5).構(gòu)造預(yù)-Steiner樹,即在不考慮障礙的情況下對連線網(wǎng)的端點(diǎn)集求解得到預(yù)-Steiner樹;(6).計(jì)算得到預(yù)-Steiner樹各邊與障礙邊的交點(diǎn)并存儲,刪除預(yù)-Steirer樹中處于障礙內(nèi)部的樹邊;(7).預(yù)處理根據(jù)障礙及預(yù)-Steiner樹的情況,綜合考慮線長和時(shí)間效率決定對預(yù)-Steiner樹是否進(jìn)行變換以及如何進(jìn)行變換;(8).根據(jù)步驟(7)得到的預(yù)處理樹與障礙相交的情況,對樹邊進(jìn)行變換即分別對各組的樹邊與障礙的交點(diǎn)繞障礙重新連接,得到有障礙下的Steiner樹;(9).后期處理從優(yōu)化線長出發(fā),對上述有障礙下的Steiner樹進(jìn)行變換。
所述的步驟(9)后期處理,主要是去環(huán)處理和去“空U”處理,以進(jìn)一步減小樹的總長度。
本發(fā)明的方法有如下特點(diǎn)首先,本發(fā)明的方法能處理多端點(diǎn)(包括能處理兩端點(diǎn))的線網(wǎng);能處理復(fù)雜障礙(包括能處理矩形或L形的簡單障礙)的情況。即本發(fā)明方法的適用范圍更廣。同時(shí),本發(fā)明方法并不像有些文獻(xiàn)那樣只給出了一個(gè)設(shè)想或思路雛形,而是一個(gè)能在具體裝置(工作站)上運(yùn)行的為總體布線過程服務(wù)的IC CAD工具,有具體的實(shí)施描述。
其次,與已有的考慮障礙的多端點(diǎn)線網(wǎng)Steiner樹構(gòu)造方法相比,本發(fā)明的方法在時(shí)間復(fù)雜度和線長這兩方面有更好的性能。本發(fā)明方法的時(shí)間復(fù)雜度僅為0(mn),m和n分別是障礙的個(gè)數(shù)和線網(wǎng)端點(diǎn)數(shù);同時(shí)用本方法求解的線長結(jié)果也十分理想。本發(fā)明的方法在綜合效果上優(yōu)于已有方法,請具體參見后面的“本發(fā)明方法效果的實(shí)驗(yàn)數(shù)據(jù)”中給出的實(shí)驗(yàn)數(shù)據(jù)說明。


圖1本發(fā)明核心部分流程圖。
圖2變換預(yù)-Steiner樹為有障礙下Steiner樹的流程圖。
圖3樹邊與障礙邊的交點(diǎn)的幾種情況示意圖。
(a)一條樹邊穿過障礙的交點(diǎn)情況;(b)在障礙內(nèi)部有Steiner點(diǎn)時(shí)的交點(diǎn)情況;(c)有整條邊在障礙內(nèi)部時(shí)的交點(diǎn)情況。
圖4樹邊與障礙邊相交的兩種邊界情況示意圖。
(a)樹邊僅有一端與障礙接觸的情況;(b)樹邊有一部分與障礙邊重合的四種可能情況。
圖5交點(diǎn)“分組”的示意圖。
圖6預(yù)處理的例子示意圖一。
(a)預(yù)-Steiner樹的一部分與障礙的兩個(gè)交點(diǎn)p1,p2;
(b)點(diǎn)S1和點(diǎn)S2間的一條最短路徑。
圖7預(yù)處理的例子示意圖二。
(a)預(yù)-Steiner樹的一部分與障礙的兩個(gè)交點(diǎn)p1,p2;(b)去掉預(yù)-Steiner樹位于障礙內(nèi)部的部分;(c)無預(yù)處理時(shí),最后生成的結(jié)果。
圖8預(yù)處理方法描述。
圖9預(yù)處理的例子示意圖三。
(a)預(yù)-Steiner樹的一部分與障礙的兩個(gè)交點(diǎn)p1,p2;(b)預(yù)處理過程;(c)有預(yù)處理時(shí),最后生成的結(jié)果。
圖10net18的Steiner樹構(gòu)造過程示意圖。
(a)輸入的待連線網(wǎng)端點(diǎn)和障礙;(b)預(yù)-Steiner樹,以及它與障礙的交點(diǎn)情況;(c)去掉預(yù)-Steriner樹位于障礙內(nèi)部的部分之后的結(jié)果;(d)進(jìn)行預(yù)處理之后的結(jié)果;(e)改變樹邊,使其繞過障礙的結(jié)果;(f)進(jìn)行后期處理之后的結(jié)果即為最后的輸出結(jié)果。
具體實(shí)施例方式
首先具體分析本專利申請涉及的“考慮障礙的直角Steiner樹方法”的核心思想。
在將GRG、電路中障礙以及線網(wǎng)的信息讀入并進(jìn)行處理后,本方法核心的部分就是構(gòu)造Steiner樹的過程,總流程框圖如圖1所示。該方法的思路與以往的方法不同,方法分兩步來構(gòu)造最后的結(jié)果樹第一步,忽略所有障礙,對線網(wǎng)端點(diǎn)生成初始的無障礙下Steiner樹,即預(yù)-Steiner樹;第二步,考慮障礙,對預(yù)-Steiner樹進(jìn)行改造,得到考慮障礙的Steiner樹。以下分別介紹方法的兩個(gè)步驟。
第一步構(gòu)造預(yù)-Steiner樹,即在不考慮障礙的情況下對端點(diǎn)集求解得到Steiner樹,相當(dāng)于上述總過程中的第(5)步由于該步產(chǎn)生的預(yù)-Steiner樹僅僅是最后結(jié)果的一個(gè)初稿,因此,選擇構(gòu)造無障礙Steiner樹方法的原則是,在保證結(jié)果有一定的優(yōu)化程度的基礎(chǔ)上,重點(diǎn)考慮方法是否有好的時(shí)間效率。例如一個(gè)效率較高并且效果不錯(cuò)的方法顯然比一個(gè)需要多花費(fèi)很多的時(shí)間求出更優(yōu)結(jié)果的方法合適。
根據(jù)這個(gè)原則,我們這樣選擇無障礙下Steiner樹方法當(dāng)端點(diǎn)數(shù)不多時(shí)選擇“DW方法”,它已公開發(fā)表于1972年的國際期刊,見[Dreyfus S E,and Wagner R A,“The Steiner problemin graphs”,Networks,1972,1195]。該方法是精確方法,求得的結(jié)果是最小Steiner樹,并且在端點(diǎn)數(shù)較少的情況下計(jì)算時(shí)間較短。但當(dāng)端點(diǎn)數(shù)較多時(shí),上面這種精確方法的計(jì)算時(shí)間急劇上升,因此應(yīng)該選擇一些效率較高的啟發(fā)式方,例如“1-Steiner方法”,見[A.B.Kahng,and G.Robins,“A new class of iterative Steiner tree heuristics with good performance”,IEEE Transactions on Computer Aided Design.11(7)893-902,July 1992.];或者“GTCA方法”,見[A.B.Kahng,Ion I.Mandoiu,Alexander Z.Zelikovsky,“Highly ScalableAlgorithms for Rectilinear and Octilinear Steiner Trees”,Proc Asia-Pacific DesignAutomation Conference(ASP-DAC),2003]。
第二步考慮障礙的影響,針對預(yù)-Steiner樹中與障礙相交的部分樹邊作相應(yīng)改造,求出有障礙下的Steiner樹。這個(gè)部分對應(yīng)于上述總過程中的第(6)至第(9)步,該步流程圖如圖2所示。其中,Proc1至Proc4依次對應(yīng)于第(6)至(9)步。
Proc1和Proc3是該步方法的主要工作,而Proc2和Proc4則根據(jù)結(jié)果Steiner樹的優(yōu)化程度而定。Proc2中的預(yù)處理可針對不同的情況幫助減少路徑長度,而Proc4中的后期處理中可做一些消除環(huán)及進(jìn)一步減少路徑長度的工作,它們的具體方法將在后面介紹。
1.Proc1和Proc3,是第二步方法的主體。首先計(jì)算得到預(yù)-Steiner樹各邊與障礙邊的交點(diǎn),對這些交點(diǎn)根據(jù)需要進(jìn)行處理并存儲(即Proc1);然后根據(jù)交點(diǎn)的情況,對邊進(jìn)行變換,得到有障礙下的Steiner樹(即Proc3)。
(1)在Proc1中處理樹邊與障礙邊的交點(diǎn)時(shí),需要考慮以下幾種情況,分別如圖3所示。
●一條樹邊穿過障礙,與障礙邊產(chǎn)生兩個(gè)交點(diǎn)。
●在障礙內(nèi)部有Steiner點(diǎn),這組邊與障礙邊的交點(diǎn)多于兩個(gè)。
●有整條邊在障礙內(nèi)部的情況,這條邊連接的必是兩個(gè)Steiner點(diǎn),則這組邊與障礙的交點(diǎn)是這些通過障礙內(nèi)部邊連在一起的Steiner所在的邊與障礙邊的交點(diǎn)集。
另外,還要考慮一些邊界情況。在程序中是通過障礙邊來描述障礙的,并且規(guī)定由障礙邊構(gòu)成的封閉區(qū)域之內(nèi)是非布線區(qū),而由障礙邊構(gòu)成的封閉區(qū)域的外面部分包括障礙邊均為可布線區(qū)。邊界情況包括兩種,分別如圖4所示●樹邊僅有一端與障礙接觸,此時(shí)處理為此邊與障礙不相交。
●樹邊有一部分與障礙邊重合,對于凸多邊形有四種可能情況,在程序中都要分別加以處理。
(2)另外,根據(jù)Proc3的要求,還要提出一個(gè)對交點(diǎn)“分組”的概念。對一棵預(yù)-Steiner樹與障礙邊的交點(diǎn)進(jìn)行分組的原則是凡經(jīng)過預(yù)-Steiner樹內(nèi)連于障礙內(nèi)部而形成的部分交點(diǎn)屬于同一組。只有屬于同一組的交點(diǎn)在Proc3中去除障礙內(nèi)樹邊后需要被重新連接。圖5的例子中,{p1,p2,p3,p4}是一組交點(diǎn),而{p5,p6}是另一組交點(diǎn)。
在Proc3中改變路徑所做的操作是先去掉處于障礙內(nèi)部的邊或邊的一部分,然后繞障礙進(jìn)行重連。重連的方法有多種最簡單的方法是求出一個(gè)最小路徑將一個(gè)障礙上的所有交點(diǎn)(不分組)沿障礙邊連接起來,由于這個(gè)方法將所有不同組的交點(diǎn)也連接在一起,因此可能產(chǎn)生一些不必要的連接,增長了路徑長度。稍微復(fù)雜一點(diǎn)的方法可以對交點(diǎn)分組來處理,分別對每組交點(diǎn)選擇繞障礙的最短路徑進(jìn)行重連。這個(gè)方法沒有考慮到不同組的繞障礙路徑的重疊造成的影響,因此更進(jìn)一步的還可以考慮這個(gè)影響作更細(xì)致的處理,使得繞障礙的路徑更短。
2.Proc2和Proc4,可根據(jù)結(jié)果優(yōu)化程度的好壞選擇使用該步驟。
若在第二步中僅僅進(jìn)行Proc1和Proc3,則在一些情況下得到的結(jié)果可能會不太好。針對不同的情況進(jìn)行不同的預(yù)處理可以幫助減短路徑的長度。下面舉例說明其中一個(gè)比較重要的問題圖6(a)中是某棵預(yù)-Steiner樹的一部分與障礙相交的情況,需要對邊進(jìn)行改變。顯然我們可以看出,S1和S2間的最短路徑長度是Manhattan距離,如圖6(b)所示。
但是,若不進(jìn)行預(yù)處理直接找出相交點(diǎn)并重連(即直接僅僅執(zhí)行Proc1和Proc3),如圖7所示,則我們只能得到圖7中(c)的結(jié)果,當(dāng)情況很壞時(shí),最后結(jié)果會比有障礙下最小Steiner樹的情況差很多。
因此,為了改善結(jié)果,需要做一些預(yù)處理。預(yù)處理流程如圖8所示。
圖9顯示的是上面例子進(jìn)行預(yù)處理的過程和結(jié)果。p1不作調(diào)整,p2調(diào)整為p2’,經(jīng)過預(yù)處理得到的結(jié)果如圖9(c)所示,可見此時(shí)兩點(diǎn)間路徑長度為兩點(diǎn)間最短距離。
后期處理主要是進(jìn)行去環(huán)處理和去“空U”的處理,以進(jìn)一步減小樹的總長度。三段連續(xù)的線段構(gòu)成的形如字母U的線路稱為一個(gè)“U”,“空U”即指在U形線路的中間那段向U內(nèi)部仍有上移空間。我們采用“TPT轉(zhuǎn)換技術(shù)”。而去環(huán)處理的方法是從樹根依次搜索找出環(huán),并去掉環(huán)中最大的邊。
下面結(jié)合一個(gè)MCNC(Microelectronics Center of North Carolina)標(biāo)準(zhǔn)電路線網(wǎng)的例子,說明本方法的全過程,如下為了實(shí)現(xiàn),或者說是具體實(shí)施本項(xiàng)發(fā)明,我們給出以下關(guān)于發(fā)明實(shí)施的描述。
實(shí)施本發(fā)明的計(jì)算機(jī)系統(tǒng)本發(fā)明所設(shè)計(jì)的為總體布線服務(wù)的軟件要在一個(gè)具體的計(jì)算機(jī)系統(tǒng)上得以實(shí)施,該計(jì)算機(jī)系統(tǒng)具體描述如下。
一臺Sun公司的V880型工作站;Unix操作系統(tǒng);標(biāo)準(zhǔn)C編程語言;Vi編輯器、gcc編譯器、gdb調(diào)試工具等。
步驟(1)-(4)預(yù)備工作。構(gòu)造GRG網(wǎng)格;讀入線網(wǎng)信息;讀入障礙信息并處理這些信息。其中,除“讀入障礙信息并處理這些信息”外的其他工作都與一般的標(biāo)準(zhǔn)單元總體布線的預(yù)備工作相同,詳細(xì)描述見文獻(xiàn)[已申請的國家發(fā)明專利洪先龍,經(jīng)彤,鮑海云,蔡懿慈,許靜宇。發(fā)明名稱基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法。申請日期2002/01/15.申請?zhí)枮?2100354.8.已于2002/07/24被公開。]和[已申請的國家發(fā)明專利洪先龍,經(jīng)彤,許靜宇,張凌,胡昱。發(fā)明名稱考慮耦合效應(yīng)進(jìn)行時(shí)延優(yōu)化的標(biāo)準(zhǔn)單元總體布線方法。申請日期2002/12/17.申請?zhí)枮?2156622.4.已于2003/05/07被公開。]中的介紹。這里只重點(diǎn)描述“讀入障礙信息并處理這些信息”這項(xiàng)工作。
輸入的線網(wǎng)信息采用MCNC標(biāo)準(zhǔn)電路例子中的18號線網(wǎng)的網(wǎng)表表示(待連端點(diǎn)信息),則有(net 18(vertexList 83 238 280 293 1))——說明其中的83,38,80,93給出了在GRG網(wǎng)格中待連端點(diǎn)號,這些端點(diǎn)在xy平面的坐標(biāo)依次為(1246,1312),(972,656),(428,1312),(972,1488)。第83號頂點(diǎn)是漏點(diǎn),第38號頂點(diǎn)是漏點(diǎn),第80號頂點(diǎn)是漏點(diǎn),第93號頂點(diǎn)是源點(diǎn)。它們的通式可表示為(net號(VertexList頂點(diǎn)號源點(diǎn)/漏點(diǎn) ……)),其中數(shù)字1表示源點(diǎn),數(shù)字2表示漏點(diǎn)。
針對18號線網(wǎng)所輸入的障礙信息為obstacle 1(ybound(800 1000)xbound(400 1000)h_edge(400 800,1000800;400 1000,1000 1000)v_edge(400 800,400 1000;1000 800,1000 1000))obstacle 2(ybound(1200 1400)xbound(600 1000)h_edge(700 1200,9501200;600 1250,700 1250;950 1250,1000 1250;600 1350,700 1350;9501350,1000 1350;700 1400,950 1400)v_edge(600 1250,600 1350;7001200,700 1250;700 1350,700 1400;950 1200,950 1250;950 1350,950 1400;1000 1250,1000 1350))——說明輸入的障礙信息給出了障礙ID號和對各個(gè)障礙的描述,即包括障礙在x和y方向的最大值和最小值,障礙的所有水平邊和豎直邊。
圖10(a)為輸入線網(wǎng)net18和障礙的示意圖,圖中給出了待連線網(wǎng)端點(diǎn)的坐標(biāo),以及障礙的各端點(diǎn)坐標(biāo)。
讀入這些信息后,經(jīng)過處理,存于相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。
步驟(5)根據(jù)待連線網(wǎng)端點(diǎn)構(gòu)造預(yù)-Steiner樹。
例如由net18求得的預(yù)-Steiner樹為Net ID 18(972,1488)----->(972,1312)(972,1312)----->(1246,1312)(428,1312)----->(972,1312)(972,656)----->(972,1312)——說明“(972,1488)----->(972,1312)”描述的是預(yù)-Steiner樹的一條樹邊,它的兩個(gè)端點(diǎn)在xy平面上的坐標(biāo)分別為(972,1488)和(972,1312)。其余類似。這棵預(yù)-Steiner樹共有4條樹邊。
圖10(b)為net18的預(yù)-Steiner樹的示意圖,圖中給出了樹的各端點(diǎn)坐標(biāo),以及此樹與障礙的交點(diǎn)坐標(biāo)。
步驟(6)計(jì)算預(yù)-Steiner樹與障礙的交點(diǎn)。并刪除處于障礙內(nèi)部的樹邊。
經(jīng)過計(jì)算,net18的預(yù)-Steiner樹與障礙1和障礙2的交點(diǎn)分別為Net ID 18obstacle 1intersections(972,800)1,(972,1000)1obstacle 2intersections(600,1312)2,(972,1250)2,(972,1350)2,(1000,1312)2——說明障礙obstacle1和obstacle2與net18的預(yù)-Steiner樹相交。各交點(diǎn)表示為(x,y)link_No,其中(x,y)表示交點(diǎn)在xy平面上的坐標(biāo)值,link_No表示此交點(diǎn)所在的組號(同一組的交點(diǎn)需要在后邊改變樹邊的步驟中重新連接在一起,具體可參見前面“具體實(shí)施方式
”節(jié)中的第1(2)條目中的關(guān)于“分組”概念的分析)。
相應(yīng)的,預(yù)-Steiner樹處于交點(diǎn)之間的障礙的部分被刪除,僅保留其處于障礙外部的部分,如下所示Net ID 18Part of the tree out of the obstacles(972,1488)----->(972,1350)(972,1250)----->(972,1000)(972,656)----->(972,800)(1000,1312)----->(1246,1312)(428,1312)----->(600,1312)變化示意圖如圖10(c)所示,圖中給出了各樹邊的端點(diǎn)坐標(biāo)。
步驟(7)預(yù)處理過程。根據(jù)預(yù)-Steiner樹與障礙相交的情況,對障礙外部的預(yù)-Steiner樹部分中的一些樹邊進(jìn)行改變。
經(jīng)過計(jì)算,以下原樹邊被新樹邊替代原樹邊 新樹邊(972,1250)----->(972,1000)(1000,1250)----->(1000,1000)因此,經(jīng)過預(yù)處理后得到的處于障礙外部的預(yù)-Steiner樹的部分為Net ID 18Part of the tree out of the obstacles(972,1488)----->(972,1350)(1000,1250)----->(1000,1000)(972,656)----->(972,800)
(1000,1312)----->(1246,1312)(428,1312)----->(600,1312)經(jīng)過預(yù)處理過程后的障礙外部的預(yù)-Steiner樹參見圖10(d),圖中給出了各樹邊的端點(diǎn)坐標(biāo)。
步驟(8)改變路徑。這一步所做的工作就是交點(diǎn)繞障礙的重新連接。
重連交點(diǎn)得到的新樹邊為Net ID 18Part of the tree reconnecting the intersections(600,1312)----->(600,1350)(600,1350)----->(700,1350)(700,1350)----->(700,1400)(700,1400)----->(950,1400)(950,1400)----->(950,1350)(950,1350)----->(972,1350)(972,1350)----->(1000,1350)(1000,1350)----->(1000,1312)(1000,1312)----->(1000,1250)(1000,1000)----->(1000,800)(1000,800)----->(972,800)這樣,改造后的Steiner樹由這兩部分構(gòu)成保留的(并有可能經(jīng)過步驟(7)改造的)處于障礙外部的預(yù)-Steiner樹部分和由步驟(8)得到的重連交點(diǎn)得到的新樹邊。改造的Steiner樹如下所示,此Steiner樹連接所有端點(diǎn)并避開障礙。
Net ID 18(600,1312)----->(600,1350)<1>
(600,1350)----->(700,1350)<2>
(700,1350)----->(700,1400)<3>
(700,1400)----->(950,1400)<4>
(950,1400)------>(950,1350) <5>
(950,1350)----->(972,1350)<6>
(972,1350)----->(1000,1350) <7>
(1000,1350)----->(1000,1312) <8>
(1000,1312)----->(1000,800) <9>
(1000,800)----->(972,800) <10>
(972,1488)----->(972,1350) <11>
(972,656)----->(972,800)<12>
(1000,1312)----->(1246,1312)<13>
(428,1312)----->(600,1312) <14>
——說明“(600,1312)----->(600,1350)”描述的是Steiner樹的一條樹邊,“<1>”是這條邊的序號。其余類似。圖10(e)為改造后的Steiner樹,圖中標(biāo)出了各邊的序號。
步驟(9)后期處理。對樹中的環(huán)以及“空U”進(jìn)行處理。
處理的結(jié)果為如下所示的原樹邊被新樹邊代替。
原樹邊 處理原因 新樹邊(950,1400)----->(950,1350)形成“空U” (950,1400)----->(972,1400)(950,1350)----->(972,1350)(972,1400)----->(972,1350)(972,1488)----->(972,1350)(972,1488)----->(972,1400)經(jīng)過后期處理后,得到的有障礙下的net18的Steiner樹如下所示。這就是采用本發(fā)明方法的最終結(jié)果。
Net ID 18(600,1312)----->(600,1350)<1>
(600,1350)----->(700,1350)<2>
(700,1350)----->(700,1400)<3>
(700,1400)----->(972,1400)<4>
(972,1400)----->(972,1350)<5>
(972,1350)----->(1000,1350) <6>
(1000,1350)----->(1000,1312) <7>
(1000,1312)----->(1000,800) <8>
(1000,800)----->(972,800) <9>
(972,1488)----->(972,1350)<10>
(972,656)----->(972,800) <11>
(1000,1312)----->(1246,1312) <12>
(428,1312)----->(600,1312)<13>
——說明“(600,1312)----->(600,1350)”描述的是net18在障礙下的最終結(jié)果Steiner樹的一條樹邊,它的兩個(gè)端點(diǎn)在xy平面上的坐標(biāo)分別為(600,1312)和(600,1350),“<1>”是這條邊的序號。其余類似。所求得的net18的障礙下Steiner樹共有13條樹邊。
圖10(f)給出了net18最終結(jié)果的Steiner樹示意圖,圖中標(biāo)出了各邊的序號。
本發(fā)明方法效果的實(shí)驗(yàn)數(shù)據(jù)進(jìn)行實(shí)驗(yàn)的計(jì)算機(jī)系統(tǒng)具體描述如下一臺Sun公司的V880型工作站;Unix操作系統(tǒng);標(biāo)準(zhǔn)C編程語言;Vi編輯器、gcc編譯器、gdb調(diào)試工具等;MCNC電路中的線網(wǎng)作為測試?yán)樱?個(gè)線網(wǎng)的測試結(jié)果數(shù)據(jù)列舉如下Net ID線網(wǎng) RSMT RSMTO Ours Redundancy端點(diǎn)數(shù) [1][2] [3] [4]C2net222 442754 754 0%C2net332 1332 1332 1332 0%C2net2 3 3572 3828 3828 0%C2net173 1160 1188 1188 0%C2net504 4 8561256 1256 0%C2net593 2028 3208 3268 1.87%C2net609 4 2054 2894 3004 3.80%C2net675 1880 2064 2156 4.46%C2net177 6 2660 2660 2790 4.89%[1]RSMT無障礙下的RSMT長度[2]RSMTO有障礙下的RSMT長度[3]Ours本發(fā)明方法生成的有障礙下的RSMT長度[4]Redundancy=(Ours-RSMTO)/RSMTO*100%從上述測試結(jié)果可計(jì)算得到本發(fā)明方法求解的布線樹的線長冗余Redundancy的平均值為1.67%。同時(shí),對所有例子的求解執(zhí)行時(shí)間均有≤1秒。
針對上述9個(gè)線網(wǎng),本發(fā)明方法與Chen Desheng等的“TPT”[5]方法(請參見“背景技術(shù)”中的介紹)的測試結(jié)果比較列出如下Net ID 線網(wǎng) TPT OursComparison端點(diǎn)數(shù) [5] [3] [6]C2net22 2902 754 19.00%C2net33 2133213320%C2net2 3390638282.03%C2net17 31368118815.15%
C2net50441580125625.80%C2net59 332543268-0.43%C2net6094300430040%C2net67 52418215612.15%C2net1776300827907.81%[5]“TPT”方法求解生成的有障礙下的RSMT長度。
Comparison=(TPT-Ours)/Ours*100%從上述測試結(jié)果對比可以看出兩種方法的時(shí)間復(fù)雜度相當(dāng),但本發(fā)明方法所求解得到的線長結(jié)果明顯優(yōu)于“TPT”方法。
權(quán)利要求
1.標(biāo)準(zhǔn)單元總體布線時(shí)障礙下的直角Steiner樹方法,其特征在于它首先將所有障礙視為不存在,求得待連線網(wǎng)的端點(diǎn)集在無障礙下的Steiner樹即預(yù)-Steiner樹;然后使預(yù)-Steiner樹中在障礙內(nèi)部的樹邊繞過障礙,生成有障礙下的Steiner樹;在生成有障礙Steiner樹的過程中,根據(jù)圖的拓?fù)浣Y(jié)構(gòu),進(jìn)行適當(dāng)?shù)念A(yù)處理和后期處理;具體而言,它依次含有以下步驟(1).初始化,計(jì)算機(jī)從外部讀入以下預(yù)先設(shè)置數(shù)據(jù)總體布線單元GRC的行數(shù)Nnr,列數(shù)Nnc,總體布線圖GRG中所有頂點(diǎn)即GRC中心點(diǎn)的坐標(biāo)Vnr,nc(x,y),其中,nr,nc分別代表行和列,x,y是芯片平面的坐標(biāo),GRG中每條邊ek的容量Ck,電路中線網(wǎng)的總數(shù)Nsum,每條線網(wǎng)的網(wǎng)表NetlistIndex,電路中障礙的總數(shù)Osum,每個(gè)障礙各組成邊的位置ObstacleIndex;(2).讀出以下數(shù)據(jù)以生成GRG讀出在布線芯片上劃分GRC所必需的行數(shù)Nnr和列數(shù)Nnc,再讀出在布線芯片上生成上述GRG所必需的各頂點(diǎn)的坐標(biāo)值,同時(shí),給上述頂點(diǎn)及連接每相鄰兩個(gè)頂點(diǎn)的邊ek編號;(3).按讀入程序,為上述每條線網(wǎng)編號;(4).根據(jù)上述讀入的電路中障礙的總數(shù)Osum及每個(gè)障礙各組成邊的位置ObstacleIndex生成障礙列表;(5).構(gòu)造預(yù)-Steiner樹,即在不考慮障礙的情況下對連線網(wǎng)的端點(diǎn)集求解得到預(yù)-Steiner樹;(6).計(jì)算得到預(yù)-Steiner樹各邊與障礙邊的交點(diǎn)并存儲,刪除預(yù)-Steiner樹中處于障礙內(nèi)部的樹邊;(7).預(yù)處理根據(jù)障礙及預(yù)-Steiner樹的情況,綜合考慮線長和時(shí)間效率決定對預(yù)-Steiner樹是否進(jìn)行變換以及如何進(jìn)行變換;(8).根據(jù)步驟(7)得到的預(yù)處理樹與障礙相交的情況,對樹邊進(jìn)行變換即分別對各組的樹邊與障礙的交點(diǎn)繞障礙重新連接,得到有障礙下的Steiner樹;(9).后期處理從優(yōu)化線長出發(fā),對上述有障礙下的Steiner樹進(jìn)行變換。
2.根據(jù)權(quán)利要求1所述的標(biāo)準(zhǔn)單元總體布線時(shí)障礙下的直角Steiner樹方法,其特征在于所述的步驟(9)后期處理,主要是去環(huán)處理和去“空U”處理,以進(jìn)一步減小樹的總長度。
全文摘要
標(biāo)準(zhǔn)單元總體布線時(shí)障礙下的直角Steiner樹方法屬于集成電路計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)領(lǐng)域,其特征在于它首先將所有障礙視為不存在,求得待連線網(wǎng)的端點(diǎn)集在無障礙下的Steiner樹即預(yù)-Steiner樹;然后,使預(yù)-Steiner樹中在障礙內(nèi)部的樹邊繞過障礙,生成有障礙下的Steiner樹;在生成有障礙Steiner樹的過程中,根據(jù)圖的拓?fù)浣Y(jié)構(gòu),進(jìn)行適當(dāng)?shù)念A(yù)處理和后期處理,以在考慮時(shí)間效率下優(yōu)化線長的優(yōu)化問題。它解決了在待連線網(wǎng)有多個(gè)端點(diǎn)情況時(shí)標(biāo)準(zhǔn)單元總體布線時(shí)有障礙下優(yōu)化了線長和時(shí)間效率的直角Steiner樹構(gòu)造方法。
文檔編號G06F17/50GK1529268SQ0313468
公開日2004年9月15日 申請日期2003年9月26日 優(yōu)先權(quán)日2003年9月26日
發(fā)明者洪先龍, 經(jīng)彤, 楊旸, 朱祺, 王垠 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1