• 沒有找到結果。

Chapter 1 Introduction

1.2 Previous Works

目前大部分的研究都注重在 SL-OARSMT 的問題上,然而也逐漸開始有一 些針對 ML-OARSMT 問題的研究,基本上都是延伸 SL-OARSMT 的方法,而應 用在 ML-OARSMT 上。用來解決 OARSMT 的方法大致可以分成以下五種的類 型 : (1) maze routing based approach 、 (2) non-deterministic approach 、 (3) construction-by-correction approach、(4) connection graph based approach、(5) hybrid approach。

Step1: Initial connection graph construction

Step2: Tree connection

Step3: Rectilinearization and refinement

Pins Obtacles

OARSMT Typical flow

Figure 1.1: Typical flow of OARSMT.

若以步驟區分可以利用 Figure 1.1 所示的典型流程(typical flow)來完成。典型 流程分成三個步驟:(1)建立 initial connection graph:將所有的接點連接起來,而 形成一個初始圖。目前會用到的 initial connection graph 有完全圖(complete graph),

Delaunay triangulation (DT),和 spanning graph 三類。(2)執行 tree connection:利 用 initial connection graph,計算初始圖上邊(edge)的權重,可以建立對所有接點 的 最 小 生 成 樹 (Minimum Spanning Tree, MST) 。 (3) 直 角 化 以 及 修 正 (rectilinearization and refinement):基於 MST,我們可以將所有斜的 edge 轉換成 直角轉彎的線段與一些史坦那點及 via 的組合,且可以進一步的縮短線長,一般 都是利用 U 型線段修正。

綜合以上兩種劃分方式,整理了部分的相關研究如 Table 1-1。其中第一欄 是方法的分類;第二欄表示考慮多層繞線(M)與否(S);第三欄表示,第一步驟所 建的初始圖種類及是否把障礙物的四個角落加入初始圖(Y/N);第四和第五欄分 別表示第二和第三步驟所用的方法。

Table 1-1: Comparison between recent researches on OARSMT.

1.2.1 Maze Routing Based Approach

Figure 1.2: (a) Maze routing. (b) The first variant of line search. (c) The second variant of line search.

使用 maze routing 的方法來繞線一開始是由[10]所提出,目的在於找出 可能兩接點連線(two-pin net)中,最短線長的結果。maze routing 的方法藉 由 wave propagation 的方式來從起點(source) s 計算到終點(destination) t,

如 Figure 1.2(a)。所以這種演算法在時間複雜度與記憶體的使用量都相當 的驚人,一般來說,都不會使用這類的演算法來繞線。而改進 maze routing 而來的 line search 演算法使用 escape points 來使得繞線更有效率,如 Figure 1.2(b)和 Figure 1.2(c) [11][12]。但是延伸到多接點繞線上,依然沒辦法得 到好的結果,因為畢竟是針對分段的 two-pin net 的各別繞線,所以始終沒 有辦法得到整體更佳的結果。綜合以上的缺點來說,maze routing based 的 演算法,並不常在現今的設計流程中使用。

1.2.2 Non-Deterministic Approach

Figure 1.3: (a) A track graph. (b) The redundant edges are removed. (c) The SL-OARSMT.

Hu 等人在[8]提出了以螞蟻雄兵演算法(ant colony optimization)為基礎的一 種 non-deterministic 局部搜尋法,可以彈性地用來處理較複雜的凸型(convex)或是 凹型(concave)障礙物。這類的演算法首先建立了 track graph,如 Figure 1.3(a)。

然後把一些不會用到的 edge 移除掉,如 Figure 1.3(b)。最後在每個接點上面放上 一隻螞蟻,螞蟻會根據一些規則來決定下一個會走到的接點而形成 SL-OARSMT,

結果如 Figure 1.3(c)。然而 non-deterministic 的方法比較適合處理接點與障礙物較 少的問題,在處理大型輸入時會相當費時,所以不太適用於現今的設計流程。

1.2.3 Construction-by-Correction Approach

Construction-by-correction approach 的演算法是先建立一棵只連接所有接點 的 MST 或是史坦那樹。然後再把所有會穿越障礙物的 edge,重新沿著障礙物的 邊緣繞線。這類的演算法在業界非常常用,主要是因為方法很簡單且有效率。但 是由於第一步驟所長出的最小生成樹或史坦那樹並沒有考慮到障礙物的問題,所 以第二步驟對於穿越障礙物的邊,也只能局部的重繞,效能因此受到了影響。在 [3]中指出,使用這類的方法來建構的 SL-OARSMT,實驗結果通常都會有所侷 限。

Figure 1.4: (a)-(c) Three cases of edges overlapping an obstacle. (d) An example of case (a). (e) The edge is routed along the obstacle. (f) The wirelength is further reduced.

Yang 等人在[14]中提出了一種演算法來移除穿越障礙物的 edge。首先把穿 越障礙物的 edge 分成三種,如 Figure 1.4(a)-(c)。接著將穿越障礙物的邊移除,

且沿著障礙物的周圍重繞,如 Figure 1.4(d)是 case (a)的例子,Figure 1.4(e)-(f)是 重繞的結果。

Figure 1.5: (a) Delaunay triangulation. (b) The edges overlapping obstacles are removed. (c) An obstacle-avoiding minimum spanning tree. (d) The SL-OARSMT.

Feng 等人在[6]中提出了利用 Delaunay triangulation (DT)演算法來實現 多 角幾何 (λ–Geometry)的 SL-OARSMT。 對照典型流程:第一步驟根據所 有接點和障礙物的四個角落,建立 DT,如 Figure 1.5(a),且移除所有和障 礙物重疊的 edge,如 Figure 1.5(b)。第二步驟長出 MST 和移除不是接點的 leaves, 如 Figure 1.5(c)。 第 三 步 驟 將 MST 轉 換 為 相 對 應 的 多 角 幾 何 的 SL-OARSMT,如 Figure 1.5(d)。[6]的特點在於將障礙物的四個角加入 DT 的建造。

Figure 1.6: (a) An obstacle-weighted minimum spanning tree. (b) The SL-OARSMT.

Tsai 等人在[13]中,把障礙物的因素加到在兩點間 edge 的權重上,建立了障 礙物加權(obstacle-weighted)之 MST,如 Figure 1.6(a)。最後針對樹中的每一條 two-pin net,根據 escape graph 來使用 Dijkstra 演算法,同時也會檢查已建好的史 坦那樹是否有 U 型多餘線段產生,結果如 Figure 1.6(b)。

1.2.4 Connection Graph Based Approach

利用關連圖(connection graph)來完成 SL-OARSMT。首先會建立由接點 和障礙物的四個邊界所連接起來的 connection graph,而可以保證至少會有 一個 SL-OARSMT 的 solution 存在 connection graph 裡面。這類的方法跟 construction-by-correction approach 比較起來,可以整體性地考量接點和障 礙物的相對關係。現有文獻中,這種演算法可以得到目前最好的結果。

Figure 1.7: (a) The plane is divided into four regions with respect to a vertex. (b) An obstacle-avoiding spanning graph. (c) The minimum spanning tree. (d) A SL-OARSMT.

在[3]中,Shen 等人將每個端點(包含所有接點及障礙物的四個角落)對平面切

成四個區域,如 Figure 1.7(a)。每個接點在四個區域中各找出最近的端點,而連 接形成一條 edge。藉由這個方法,使得所有的接點和障礙物的四個角落,連接 形成 spanning graph,如 Figure 1.7(b)。再轉化成 MST,如 Figure 1.7(c)。Lin 等 人在[4]提出,在連接 spanning graph 時,加入更多的 essential edges,可以得到更 完整的 spanning graph,進而得到更好的 SL-OARSMT,如 Figure 1.7(d)。

1.2.5 Hybrid Approach

Figure 1.8: (a) An obstacle-weighted minimum spanning tree. (b) The edges overlapping the obstacles are removed. (c) The sub-trees are merged based on ant colony optimization. (d) The SL-OARSMT.

Wu 等人在[5]提出了與其他四種不太一樣的演算法。第一步驟對所有的接點 找出障礙物加權之 MST,如 Figure 1.8(a)。在這邊所使用的邊權重(edge weight) 並沒有[13]精準,只粗略估計上下兩個 L-型線段在最差情況下,要繞過所有的障 礙物,加總起來的最長寬度。第二步驟移除所有跟障礙物重疊的 edge,而拆成 多棵子樹(sub-trees),如 Figure 1.8(b)。第三步驟利用螞蟻雄兵演算法將子樹連接 起來,如 Figure 1.8(c)。然而這邊的螞蟻雄兵演算法跟[8]不同之處在於,[8]是在 track graph 上實現,但是[5]是在局部的 spanning graph 上實現以大幅減少執行的 時間。最後是將重新連好的 tree,轉換成 SL-OARSMT,如 Figure 1.8(d)。

相關文件