h3; 3) 對于任意一條邊,如果4種XRP全部穿越了障礙物,則每種XRP的優(yōu)先度反比于相應(yīng) 的W直。
[0024] 步驟S4還包括以下具體步驟:根據(jù)ML-XST每條穿障邊的具體特征,將所有 ML-XST穿障邊分為修復(fù)路徑、逃逸路徑及非逃逸路徑三類,并采用了三種不同的策略進行 避障路徑計算,精確地捕捉到多層空間中恰當(dāng)?shù)膫蜸teiner點位置,從而ML-XST邊生成最 佳的避障X布線路徑; 其中修復(fù)路徑的策略為:對于轉(zhuǎn)換后的任意一條可修復(fù)路徑ΑΡιΛ布線器首先計算 IA7J的直角邊界盒,記作然后從點向其右半軸五個方向作投影線,并記投影線Adx 同/^的第一個交點為4(1=1,2,3,4,5),若/?,(1)!同/^不相交4不存在;布線器計算每 條投影線Adx同線段AA之間的夾角記為α x,并選擇最小的%對應(yīng)的那個交點^作為 一個偽Steiner點s,由于s可能不能直接連接到點A,因此布線器檢查box的四個拐點Cy(y=l, 2, 3, 4),并選擇使得dis(s, cy)+dis (cyi /Ty)最小的那個拐點作為另一個偽Steiner 點c,其中dis (a, b)表示點a和點b之間的直角距離;布線器計算邊/?,s,sc,和CjOy的XRP 信息,并添加這些信息到兩個查找表中,從而生成一條新的連接A到/^的避障路徑; 逃逸路徑的策略為:布線器首先將Af/的三條子路徑和{漢>}全部投影到一個偽平 面上,記投影后為A 對P {況>};然后布線器將該逃逸路徑細分為兩種,如果投影后的 偽Steiner點s并未被}中任何一個障礙物所包圍則直接調(diào)用可修復(fù)路徑策略解決, 否則布線器首先計算投影后ΙΛ7Λ }的直角邊界盒box,并求得/7, /Ty々同box的一個交點 V* (X^戶),如果投影V*到/7,和/^所在層形成一個通孔VV',如果VV'合法,則問題得到求 解,否則,基于線掃描的方法進一步尋找一個合法的通孔位置; 非逃逸路徑的第一種策略為:布線器首先將一條非逃逸路徑和{況"}全部投影到 一個偽平面上,記投影后為A々和{況>},則根據(jù)非逃逸邊的定義,A 的直角邊界盒 被至少一個}中的障礙物完全包圍,在得到}的直角邊界盒box后,通過線掃描 方法在box的任一條邊所在直線上尋找到一個合法通孔位置v*,并生成一個連接^和&層 的通孔vv',那么P1V和ν' Pj兩條XRP幫助原始路徑逃離障礙物的包圍; 非逃逸路徑的第二種策略為:首先刪除路徑則ML-XST的所有點被分為兩個子 集,一個點集A包含點ft,另一個點集B包含點巧。然后,我們從A中刪除點ft,并求得此時 A和B間的一條最短路徑,同理,我們從B中刪除A.,并求得兩個集合間的另一條最短路徑, 最后,布線器選擇兩條路徑中不構(gòu)成非逃逸路徑,且代價較小的作為非逃逸路徑; 如果第二種策略新生成的邊仍舊構(gòu)成同一條非逃逸路徑,或者代價大于第一種策略得 到的結(jié)果,布線器則自動取用第一種策略的結(jié)果。
[0025] 所述線掃描的方法包含三個要素:一條固定線L即是box中包含V*的那條邊所在 直線,一條掃描線Ls及一組包含了所有第^層到第&層間的障礙物集合設(shè)置L的y 坐標(biāo)范圍為[y*,max(yb)],其中max(yb)中所有障礙物y坐標(biāo)的最大值,布線器將萬/ 中的所障礙物投影到與L相同的平面上,記作_¥,并按照投影后障礙物左下角拐點y坐標(biāo) 值遞增的順序排序,一條水平邊Ls被用來從y=y*到y(tǒng)= max (yb)去掃描所有排序后的障礙 物;當(dāng)Ls掃描到一條與L相交,且為一個障礙物的底邊時,Ls將直接掃描b的頂 邊;當(dāng)Ls掃描到連續(xù)兩條邊1挪12,且1挪12均與L相交,并分別為兩個不同障礙物的頂 邊和底邊,則1:和1 2與L的兩個交點被選為通孔候選,并從中選出一個合法的作為通孔位 置;如果Ls-直掃描到y(tǒng)= max(yb),仍未找到兩個連續(xù)的底邊和頂邊,最后一個掃描到的 障礙物邊同L的交點則被選為通孔位置;或者通過Ls從y=y*掃描到y(tǒng)= min (yb)去發(fā)現(xiàn)另 一個合法的通孔位置,其中min (yb)是I#中障礙物y坐標(biāo)的最小值;最終,布線器取同點P1和?]垂直距離之和較小的那個點作為通孔位置。
[0026] 本發(fā)明采用一種改進的最近點對算法尋找空間兩個點集A和B間的最短路徑,主 要包括以下步驟:首先將集合A和B中的所有點根據(jù)平面y=誠Ij分為兩個集合S JP S 2, ^ 所有點y坐標(biāo)的中位數(shù);分別遞歸地求解集合SJPS2中的最近點對,假設(shè)4和4為所求結(jié) 果,A和B之間的最短路徑小于<=min ( &么),那么這條路徑的兩個端點A和/^必須滿 足,·^.:且_:_·:.;由于仏和/?/司的距離小于心則有乃-m〈=心對于任意 一個可能的A,可構(gòu)成最近點對的&形成一個長為毛寬和高為2ds的矩形R,R中任意兩 個點間的距離不小于A根據(jù)鴿巢原理,在R中最多可能存在24個點與ft構(gòu)成最近點對, 因此,對于S1中的一個點/?, (?τ_τ,〈=<),通過對S2中滿足_^-111〈=式的點按照X和^坐標(biāo)排 序,快速地尋找到S2中所有24個可能的最近點,進而找到凡和&間的最短路徑。
[0027] 步驟S4的優(yōu)化基于以下兩種精煉策略:一種通過優(yōu)化偽Steiner點連接結(jié)構(gòu)以達 到充分利用有效布線資源的目的;另一種則是通過充分增加布線樹共享路徑總長,從而達 到壓縮線長的目的。
[0028] 附圖2-9為本發(fā)明一具體實施例的示意圖。以下對附圖2-9中的幾個常用變量進 行定義及解釋說明: 定義1 (偽Steiner點)為了簡便,假設(shè)除了引腳外的連接點,均稱為偽Steiner點。 圖2中的S1, S2均為偽Steiner點,一個偽Steiner點可能是一個真實的Steiner點。
[0029] 定義2 (U如圖2(a)所示,P1U7,乃,Z7)和P2U iif辦辦)為線段L的兩 個端點,其中x/Xi·。線段L對應(yīng)的偽Steiner點的選擇如圖2(b)所示,首先從pj|直角邊 至偽Steiner點S1,再通過生成一個通孔由S1連接到另一偽Steiner點s 2,最后從S2引非 直角邊到口2.。這條XRP被稱為P1和口2間的
[0030] 定義3 (U如圖2(a)所示,P1U7,乃,和P2Uiif辦辦)為線段L的兩 個端點,其中x/Xi·。線段L對應(yīng)的偽Steiner點的選擇如圖2(c)所示,首先從pj|非直角 邊至偽Steiner點S1,再通過生成一個通孔由S1連接到另一偽Steiner點s 2,最后從sjl 直角邊到口2.。這條XRP被稱為P1和口2間的
[0031] 定義4 (U如圖2(a)所示,P1U7,乃,和P2Uiif辦辦)為線段L的兩 個端點,其中x/Xi·。線段L對應(yīng)的偽Steiner點的選擇如圖2(d)所示,首先從pj|垂直邊 至偽Steiner點S1,再通過生成一個通孔由S1連接到另一偽Steiner點s 2,最后從S2引水 平邊到P2.。這條XRP被稱為P1和口2間的不^。
[0032] 定義5 (U如圖2(a)所示,P1U7,乃,和P2Uiif辦辦)為線段L的兩 個端點,其中Χ/Χ,。線段L對應(yīng)的偽Steiner點的選擇如圖2(e)所示,首先從?1引s水平 邊至偽Steiner點S1,再通過生成一個通孔由S1連接到另一偽Steiner點s 2,最后從sjl 垂直邊到P2.。這條XRP被稱為P1和口2間的
[0033] 定義6 (半周長)對于一個長為a寬為A的舉行障礙物b,b的半周長為a+A。
[0034] 定義7 (直角邊界盒)任意兩個點凡和的直角邊界盒為以這兩點為對角頂 點所形成的矩形。一組障礙物的直角邊界盒為一個包含所有這些障礙物的最小矩形。
[0035] 定義8 (可修復(fù)路徑)對于一條ML-XST邊如果穿越了一個或多個 障礙物,且,則稱AAk為一條可修復(fù)路徑。
[0036] 定義9 (逃逸路徑)對于一條ML-XST邊/?,j〇7k,如果/?,/^k穿越了一個或多個障 礙物(記為集合{%^}),且4辛&。當(dāng)投影A,到一個偽平面(投影后分別標(biāo)記 為和{^!'),如果不存在障礙物二 ii?f,使得A'和^/的直角邊界盒完全包 含于A中,則稱為一條逃逸路徑。如圖3所示,圖3 (a)中邊P1P2I穿越障礙物Id1,投 影后P/和p2'的直角邊界盒未完全包含在V中(圖3 (c)),故P1P2I為一條逃逸路徑。
[0037] 定義10 (非逃逸路徑)對于一條ML-XST邊/y^k,如果ftAk穿越了一個或多個 障礙物(記為集合IA7J ),且^辛&。當(dāng)投影A,&和{漢7,}到一個偽平面(投影后分別標(biāo) 記為A',<和ΙΛ"}'),如果至少存在一個障礙物b € ,使得A.'和A'的直角邊界 盒完全包含于A中,則稱為一條非逃逸路徑。如圖3所示,圖3(a)中邊Plp32穿越障 礙物b2,投影后P1^Pp3'的直角邊界盒完全包含在b2'中(圖3 (b)),故Plp32為一條非逃 逸路徑。
[0038] I. 3D-0FMST 構(gòu)建 在不考慮障礙物的情況下,存在多種構(gòu)建3D-0FMST的方法,例如通過生成以所有芯片 引腳為點集的一個完全圖,再利用經(jīng)典Prim或Kruskal算法即可構(gòu)建出一棵3D-0FMST。然 而,這種基于完全圖的方法效率太低,時間復(fù)雜度可達到平方級,特別是在問題輸入規(guī)模非 常大的情況下,該方法對整個線器的運行效率將產(chǎn)生較大負(fù)面影響。此外,基于Delaunay 三角剖分MST構(gòu)建方法被廣泛應(yīng)用于平面布線問題,因為該三角剖分已被證明至少包含有 一棵覆蓋所有給定點集的MST,且候選邊集規(guī)模僅為線性級別。然而,Delaunay三角剖分 的構(gòu)建策略目前還未能有效的推廣到更高維度。幸運的是,Bentley和Friedman通過改進 經(jīng)典Prim算法,提出了一種能適用于任意維度且被稱為多分片MST的構(gòu)建策略。該策略首 先基于多層芯片給定的所有引腳位置,構(gòu)建一棵々-d樹,該々-d樹被用來預(yù)