一種針對多層芯片的高效x結(jié)構(gòu)避障布線器的構(gòu)造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于集成電路計算機輔助設(shè)計技術(shù)領(lǐng)域,具體涉及一種針對多層芯片的高 效X結(jié)構(gòu)避障布線器構(gòu)造問題。
【背景技術(shù)】
[0002] 斯坦納最小樹是圖論領(lǐng)域最重要的數(shù)學模型之一,且被廣泛的應(yīng)用到了許多 研究領(lǐng)域。特別是1966年由Hanna提出的直角結(jié)構(gòu)斯坦納樹(rectilinear Steiner minimal tree, RSMT),已經(jīng)被廣泛的應(yīng)用到現(xiàn)代超大規(guī)模集成電路(very large scale integrat ion,VLSI)設(shè)計的多個階段。例如,在早期設(shè)計階段,包括劃分、布圖規(guī)劃和布局, RSMT可以被用來有效的預(yù)估芯片的多項性能指標,如線長,擁塞,和時延。在總體布線和詳 細布線階段,RSMT可以被用來構(gòu)造每一個線網(wǎng)的最終連通拓撲。此外,隨著現(xiàn)代芯片密度 的急劇增加,在當今的VLSI設(shè)計中存在著越來越多的障礙物,例如宏模塊和預(yù)布線網(wǎng),這 些障礙物在布線階段是不能夠被穿越的,因此避障直角斯坦納最小樹(obstacle-avoiding rectilinear Steiner minimal tree, 0ARSMT)布線器構(gòu)建問題在過去十幾年得到了充分 重視,并取得了非常出色的研究成果。
[0003] 另一方面,隨著VLSI生產(chǎn)工藝的不斷進步,現(xiàn)代芯片可以提供多個布線層 以增加設(shè)計靈活性。因此,在2007年,多層避障直角斯坦納最小樹(multi-layer obstacle-avoiding rectilinear Steiner minimal tree, ML-0ARSMT)布線器構(gòu)造問題首 次由臺灣大學電子工程研究院提出,并很快得到了工業(yè)界和學術(shù)界的重視。隨后,多家科研 單位先后設(shè)計了數(shù)個性能優(yōu)良的ML-0ARSMT布線器。
[0004] 然而,上述布線器,無論是針對傳統(tǒng)單層布線和現(xiàn)代多層布線,都是基于直角結(jié) 構(gòu)。隨著當前芯片規(guī)模進入深亞微米階段,由于直角結(jié)構(gòu)將走線方向限制為只能水平和垂 直兩個方向,而這已經(jīng)很難滿足當前的設(shè)計需求。幸運的是,新興的非直角結(jié)構(gòu)允許更多的 走線方向并能進一步提高芯片的可布通性。特別的,X結(jié)構(gòu)作為最有前景的非直角結(jié)構(gòu)已 經(jīng)被當前生產(chǎn)工藝充分支持,并成為近年來的一個研究熱點。數(shù)家研究機構(gòu)已先后設(shè)計出 了多個不同的避障X結(jié)構(gòu)斯坦納最小樹布線器(obstalce-avoiding X Steiner minimal tree, OAXSMT)〇
[0005] 問題是,當同時考慮多層芯片結(jié)構(gòu)、障礙物、X結(jié)構(gòu)三個因素,即多層避障X結(jié)構(gòu) 其if坦納樹(multi-layer obstacle-avoiding X-architecture Steiner minimal tree, ML-0AXSMT)布線器的構(gòu)造,問題將變得非常困難。因為,僅僅一個單層的RSMT布線器構(gòu) 造就已經(jīng)被證明為NP完全問題。據(jù)我們所知,當前有關(guān)ML-0AXSMT布線器構(gòu)造的成果非常 少,而工業(yè)設(shè)計的需求卻仍在不斷提高,因此設(shè)計一種高效的ML-0AXSMT布線器變得尤為 緊迫。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是提供一種在VLSI總體布線設(shè)計問題中考慮多層芯片結(jié)構(gòu)和障礙 物,同時引入X結(jié)構(gòu)斯坦納最小樹的布線器構(gòu)造問題。以優(yōu)化布線樹總長為目標,進而使得 諸如時延、擁塞等多項指標得到優(yōu)化。該方法從總體布線的全局角度考慮ML-OAXSMT的構(gòu) 造,能夠在極短的時間內(nèi)獲得有效的解決方案。
[0007] 本發(fā)明采用以下方案實現(xiàn):一種針對多層芯片的高效X結(jié)構(gòu)避障布線器的構(gòu)造 方法,其特征在于:包括以下步驟:步驟Sl :根據(jù)給定的一組引腳坐標位置,基于一種快 速的多分片MST(最小生成樹,minimum spanning tree),構(gòu)建策略生成一棵連接所有引 腳的 3D-0FMST (三維無障最小生成樹,3D obstacle-free minimal spanning tree),該 3D-0FMST 為最終 ML-0AXSMT (多層避障 X 結(jié)構(gòu)斯坦納樹,multi-layer obstacle-avoiding X-architecture Steiner minimal tree)的基礎(chǔ)架構(gòu);步驟 S2 :3D_0FMST 中所有邊 的XRP(X布線路徑,X routing path)信息被計算,并將這些信息存入兩個記錄從而生 成兩個查找表,這兩個查找表可以為布線器的后續(xù)運作提供信息支持;步驟S3 :基于快 速查表,通過將3D-0FMST的每條邊轉(zhuǎn)化為一條XRP生成一棵ML-XST (多層X結(jié)構(gòu)斯坦 納樹,multi-layer X-architecture Steiner tree),并將該 ML-XST 將被轉(zhuǎn)化為一棵 ML-0AXST (多層避障 X 結(jié)構(gòu)斯坦納樹,multi-layer obstacle-avoiding X-architecture Steiner tree);步驟S4:對ML-OAXST進一步從全局和局部兩個角度優(yōu)化,從而生成最終 的 ML-0AXSMT 〇
[0008] 與現(xiàn)有技術(shù)相比本發(fā)明具有以下優(yōu)點:該布線器采用了一種基于快速查找表的基 本構(gòu)架,整個布線器邏輯緊湊,運行效率高;在3D-0FMST構(gòu)建階段,一種基于密度度量的多 分片MST構(gòu)建策略被采用,同傳統(tǒng)基于完全圖的MST構(gòu)建方法相比,該策略具有更高的效 率;在ML-OAXST生成階段,該布線器根據(jù)ML-XST每條穿障邊的具體特征,將所有ML-XST穿 障邊分為三類,并采用了三種不同的策略進行避障路徑計算,這些策略可以精確地捕捉到 多層空間中恰當?shù)膫蜸teiner點位置,從而幫助ML-XST邊生成最佳的避障X布線路徑;特 別的,針對任意兩個分布在不同布線層的引腳,一種針對多層空間通孔定位的線掃描策略 被用來精確地搜索引腳之間的合法通孔;此外,為了進一步優(yōu)化壓縮布線總長,該布線器采 用了兩種有效的精煉策略,一種通過優(yōu)化偽Steiner點連接結(jié)構(gòu)以達到充分利用有效布線 資源的目的,另一種則是通過充分增加布線樹共享路徑總長,從而達到壓縮線長的目的。
【附圖說明】
[0009] 圖1是針對多層芯片的高效X結(jié)構(gòu)避障布線器的流程圖。
[0010] 圖2是多層結(jié)構(gòu)下四種XRP圖。
[0011] 圖3是ML-XST穿障邊的分類圖。
[0012] 圖4是單個引腳的八角劃分示意圖及ML-XST邊轉(zhuǎn)換示意圖。
[0013] 圖5是可修復(fù)路徑的避障路徑計算示例圖。
[0014] 圖6是逃逸路徑的避障路徑計算示例圖及通孔定位線掃描策略示意圖。
[0015] 圖7是非逃逸路徑的避障路徑計算示例圖。
[0016] 圖8是偽Steiner點連接優(yōu)化示意圖。
[0017] 圖9是ML-OAXST結(jié)構(gòu)優(yōu)化示意圖。
[0018] 實施方式 下面結(jié)合附圖和【具體實施方式】對本發(fā)明做進一步說明。
[0019] 一種針對多層芯片的高效X結(jié)構(gòu)避障布線器的構(gòu)造方法,包括以下步驟: 步驟Sl :根據(jù)給定的一組引腳坐標位置,基于一種快速的多分片MST構(gòu)建策略生成一 棵連接所有引腳的3D-0FMST,該3D-0FMST為最終ML-0AXSMT的基礎(chǔ)架構(gòu); 步驟S2 :3D-0FMST中所有邊的XRP信息被計算,并將這些信息存入兩個記錄從而生成 兩個查找表,這兩個查找表可以為布線器的后續(xù)運作提供信息支持; 步驟S3 :基于快速查表,通過將3D-0FMST的每條邊轉(zhuǎn)化為一條XRP生成一棵ML-XST, 并將該ML-XST將被轉(zhuǎn)化為一棵ML-OAXST ; 步驟S4 :對ML-OAXST進一步從全局和局部兩個角度優(yōu)化,從而生成最終的ML-0AXSMT。
[0020] 本發(fā)明的主要流程圖參見圖1。
[0021] 其中,步驟Sl中3D-0FMST的生成包括以下具體步驟:基于多層芯片給定的所有引 腳位置,構(gòu)建一棵k-d樹,該k-d樹被用來預(yù)估任一引腳的近似密度值,同時可提供快速的 最近鄰引腳查找;基于Prim算法思想,并根據(jù)每個引腳的初始預(yù)估密度,從當前密度最小 的引腳開始,一個MST分片被構(gòu)建直到該分片達到了局部密度最大值,此時另一個MST分片 亦從當前密度最小的引腳開始被構(gòu)建,直到所有的引腳被這些MST分片所覆蓋;最后,通過 連接這些生成的MST分片,一棵完整的3D-0FMST將被生成。
[0022] 步驟S2還包括以下具體步驟:假設(shè)給定芯片包含η個引腳,則生成的3D-0FMST - 共包含η-1條邊,由于每條邊可以有4種不同的XRP,因此一共存在4* (η-1)條XRP,針對 所有這些XRP,生成兩個查找表,第一個查找表為多層XRP-障礙物查找表MLX0T,另一個表 為多層XRP-坐標查找表MLXCT ;假設(shè)兩個引腳ft (X, % 4和b4間的一條XRP, 記該路徑為/y?/,將這條XRP穿越的障礙物記錄到一個集合ΙΛ>}中,即生成MLXOT的記 錄,并且當^^ &時,設(shè)置參數(shù)的值為U7J的基數(shù),而當2,=?時,設(shè)置的值為 IAj中所有障礙物的直角邊界盒的半周長;考慮到每一條XRP包含三條子路徑,對于任一 路徑ft/?/,記三條子路徑分別為ftsw, SwSfcs SiilOy,其中6^和s 兩個偽Steiner點,通過 生成所有4* (η-1)條XRP的三條子路徑的坐標信息,從而生成多層XRP-坐標查找表MLXCT 的記錄。
[0023] 步驟S3中還包括以下具體步驟:依次檢查3D-0FMST中的每一條邊,并基于以下原 則將每條邊轉(zhuǎn)化為一條XRP : 1) 對于任意一條邊,如果XpatM和X pathl都能繞過所有障礙物,則二者具有相同的優(yōu)先 度,如果\_和X Path3都能繞過所有障礙物,則二者具有相同的優(yōu)先度; 2) 如果兩者之間均存在繞障路徑,對于任意一條邊,Xpath。和X pathl的優(yōu)先度高于X path2和 Xpat