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