• 沒有找到結果。

中 華 大 學 碩 士 論 文

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學 碩 士 論 文"

Copied!
76
0
0

全文

(1)

中 華 大 學 碩 士 論 文

利用矩形樣本迴繞結果來完成已知障礙物並 符合長度限制的匯流排繞線

Obstacle-Aware Length-Matching Bus Routing Using Rectangular Pattern Detouring

系 所 別:資訊工程學系碩士班 學號姓名:M09702018 鍾明清 指導教授:顏金泰 博士

中華民國 九十九 年 八 月

(2)

I

摘要

近 年 來 科 技 日 漸 發 達 , 使 得 各 類 處 理 器 功 能 日 漸 強 大 且 工 作 時 脈 (Clock Frequency)快速的增加。造成積體電路的複雜度逐步上升以及訊號線在印刷電路板上 的延遲時間必須更精準的滿足時間上的要求。一般來說,訊號線在印刷電路板上的長 度決定了訊號線的延遲時間。在製造成本的考量下,印刷電路板上的繞線面積必須越 小越好。因此,要將數以千計的線段在非常有限的面積之下繞線成功,變成是一個很 重要的議題。

本論文中,基於矩形樣本迴繞的概念以及分析矩形樣本迴繞所剩餘的格子數,提 出一個有效率且時間複雜度為 O(mnlog(mn))的演算法並在有障礙物的繞線平面中找 到一條兩端點間最長的路徑。更進一步地在有障礙物的繞線平面中,給一組匯流排線 段以及所有線段的長度限制,基於所提出的產生最長路徑之演算法,匯流排中所有的 線段都會在所給的繞線平面中被分配到滿足長度限制的繞線格子以完成避開障礙物 且長度已知之匯流排繞線。與先前學者所提出的 CAFÉ Router[19]做比較,實驗結果 顯示,我們的方法可以讓在匯流排中的每條線段都能連線成功並且可以更精準的滿足 長度的限制。

關鍵詞:印刷電路板、匯流排繞線、符合長度

(3)

II

Abstract

As technology becomes more advanced, the functions in many processors become enhanced and the clock frequency increases. The complexity in an integrated circuit increases gradually, and delays of all the signals on PCBs are requested to meet the timing constraints with very high accuracy. Generally speaking, the length of a single net on PCBs decides the delay of the net. Under the consideration of the manufacture cost, the routing area on PCBs must be minimized. Hence, the challenge of routing thousands of nets in a very limited area becomes an important issue.

In this paper, based on the concept of rectangular pattern detouring and the analysis of unreachable grids in the rectangular pattern detouring, an efficient O(mnlog(mn)) algorithm is proposed to generate the longest path between two terminals in routing grids with obstacles. Furthermore, given a set of nets in a bus on routing grids with obstacles, and the length constraints for all the nets in the bus, based on this proposed longest path generation, all the nets in the bus can be assigned onto a given set of routing grids to satisfy the length constraints for obstacle-aware length-matching bus routing. Compared to the CAFÉ router [19], our approach complete the routing process of all the nets in the bus and match the length constraints more accuracy as the result of experiment show.

Keywords: Printed Circuit Board, Bus Routing, Length-Matching

(4)

III

致謝

在兩年研究所生活裡,許多學長、同學以及朋友的支持和陪伴,讓我在這兩年的 生活不孤單,也學習到了許多的寶貴經驗。本論文能順利完成要特別感謝指導教授顏 金泰教授不遺餘力的幫助,不論在課業上或生活上遇到困難時都能給予我最大的幫助 及適當的建議,讓我能順利的解決問題。以及陳永源教授在研究所兩年期間,對於專 業知識的教學盡心盡力,在此也特別感謝他。

在求學過程中,非常感謝實驗室的學長們:志瑋、祥霖、凱平、宜強、仲賢、東 彥,時常給予我相關領域知識上的指導與教誨以及陪伴我度過這兩年的同學:忠位、

育誠、科銓、仁杰、威志、佳涵,相互的研究討論與支持,最後也要感謝學弟們:潤 民...等,熱心的幫忙。

謹將此論文獻給我的家人、師長、同學以及朋友們,將一起來分享這份得來不易 的榮耀。這份榮耀不僅是我一個人造就的,也與那些鼓勵我、支持我的大家息息相關。

(5)

IV

目錄

摘要 ... I Abstract ... II 致謝 ... III 目錄 ... IV 圖目錄 ... VI 表目錄 ... IX

第一章 簡介...1

1.1 晶片封裝與印刷電路板的共同設計 ...1

1.2 印刷電路板繞線 ...2

1.3 相關研究 ...7

第二章 研究動機與問題描述 ... 15

2.1 研究動機 ... 15

2.2 問題描述 ... 16

第三章 矩形樣本迴繞 ... 18

3.1 兩端點在轉角上(Terminal on Corners) ... 19

3.2 兩端點在同一邊上(Terminal on the Same Side) ... 20

3.3 兩端點在相對邊上(Terminal on Opposite Sides) ... 22

3.4 兩端點在相鄰邊上(Terminal on Adjacent Sides) ... 24

3-5 剩餘格子數的分析 ... 27

第四章 避開障礙物之最長路徑 ... 28

4.1 反覆的矩形切割 ... 29

4.2 產生避開障礙物之最長路徑 ... 33

4.2.1 排除無法繞線之區域 ... 33

4.2.2 產生初始路徑 ... 34

(6)

V

4.2.3 增加外部繞線 ... 36

4.2.4 增加內部繞線 ... 38

第五章 避開障礙物且符合長度之匯流排繞線 ... 39

5.1 檢查可繞性 ... 40

5.2 避開障礙物之匯流排繞線 ... 41

5.3 產生符合長度之線段 ... 50

5.3.1 產生邊界路徑 ... 50

5.3.2 分配區域或縮短長度 ... 52

5.3.3 產生最長路徑 ... 55

5-4 時間複雜度分析 ... 59

第六章 實驗結果 ... 60

第七章 結論及未來展望 ... 63

參考文獻 ... 64

(7)

VI

圖目錄

圖 1-1 基本印刷電路板繞線之示意圖[11] ...3

圖 1-2 有順序之跳脫繞線[14] ...4

圖 1-3 匯流排繞線示意圖[19] ...4

圖 1-4 長度計算示意圖 ...5

圖 1-5 符合長度之匯流排繞線示意圖 ...5

圖 1-6 匯流排繞線先天上的錯誤 ...7

圖 1-7 解決匯流排繞線之先天上的錯誤 ...7

圖 1-8 匯流排繞線及背景知識相關圖形 ...8

圖 1-9 特殊圖形結構走法[15] ...9

圖 1-10 單一方向之額外迴繞[15] ...9

圖 1-11 調整邊界的四種方法及同樣面積但不同調整邊界的方式[16] ... 10

圖 1-12 可調邊界單元之繞線流程[16] ... 11

圖 1-13 可調邊界單元之最大繞線長度及剩餘空間[16] ... 11

圖 1-14 分類可用繞線格子 ... 12

圖 1-15 R-flip 以及 C-flip 示意圖[18] ... 12

圖 1-16 比較原始路徑與取代路徑 ... 13

圖 1-17 最大流量以及隔絕牆示意圖[19] ... 14

圖 2-1 多個對應腳位且有障礙物之繞線棋盤 ... 16

圖 2-2 長度限制 100 以及 150 之繞線結果 ... 17

圖 3-1 L-type 迴繞方式 ... 18

圖 3-2 兩端點在轉角之固定迴繞 ... 19

圖 3-3 兩端點在轉角之遞迴向內的迴繞方式 ... 20

(8)

VII

圖 3-4 兩端點在同邊上的迴繞方式 ... 21

圖 3-5 兩端點在同邊上的特殊迴繞方式 ... 21

圖 3-6 兩端點在相對邊上的迴繞方式 ... 23

圖 3-7(a) 兩端點在相對邊上的特殊迴繞方式 ... 23

圖 3-7(b) 兩端點在相對邊上的預設特殊迴繞方式 ... 23

圖 3-8 兩端點在相鄰邊上 ... 25

圖 3-9(a) 兩端點在相鄰邊上的特殊迴繞方式 ... 25

圖 3-9(b) 預設之兩端點在相鄰邊上的預設特殊迴繞方式 ... 26

圖 4-1 避開障礙物之最長路徑的流程圖 ... 28

圖 4-2 凡諾氏圖(Voronoi Diagrams)以及三角化測量(Triangulation)示意圖... 29

圖 4-3 外圍邊界(Outer Boundary)以及轉角格子(Corner Grids)示意圖 ... 30

圖 4-4 用掃描線切割繞線區域的流程 ... 31

圖 4-5 反覆的矩形區域切割 ... 32

圖 4-6 根據切割區域建立的相鄰關係圖 ... 33

圖 4-7 排除無法繞線之區域 ... 34

圖 4-8 相鄰關係圖上初始路徑以及初始路徑的繞線... 35

圖 4-9 R-flip 及 C-flip 增加外部繞線 ... 37

圖 4-10 避開障礙物之最長路徑 ... 38

圖 5-1 避開障礙物且長度匹配之匯流排繞線流程圖... 39

圖 5-2 奇偶不相同之匯流排線段長度 ... 41

圖 5-3 最大流量問題之圖形 ... 42

圖 5-4 繞線平面及其切割完成圖 ... 42

圖 5-5 不同端點位置之切割方式 ... 43

圖 5-6 利用障礙物相對關係切割之結果 ... 43

圖 5-7 匯流排之繞線平面的相鄰關係圖及最大流量的有向圖 ... 45

(9)

VIII

圖 5-8 最大流量問題之結果 ... 45

圖 5-9 線段非最後一條線的走法 ... 46

圖 5-10 線段為最後一條線的走法 ... 46

圖 5-11 根據經過空間之路徑分配... 47

圖 5-12 延伸矩形範圍以求得適當路徑 ... 47

圖 5-13 各線段分配完成的路徑以及集中各路徑之繞線平面 ... 48

圖 5-14 釋放空間示意圖 ... 51

圖 5-15 分配空間示意圖 ... 54

圖 5-16 產生最長路徑之區域及其繞線結果 ... 56

圖 5-17 長度限制 36 之繞線過程及結果 ... 56

圖 5-18 長度限制 46 之繞線過程及結果 ... 57

圖 5-19 外部區域路徑之迴繞 ... 58

圖 6-1 Data1 不同長度限制之繞線結果 ... 61

圖 6-2(a) Data2 長度限制 251 ... 62

圖 6-2(b) Data2 長度限制 301 ... 62

(10)

IX

表目錄

表 1-1 根據兩端點分析長度奇偶關係 ... 13

表 3-1 各種情況下的矩形樣本迴繞所剩餘格子分析表 ... 27

表 6-1 測試檔資訊 ... 60

表 6-2 比較繞線結果... 60

(11)

1

第一章 簡介

近數十年來資訊電子產業的蓬勃發展,不僅提升了人們的生活品質也明顯地影響 了人們的生活習慣。從公共電話到手機、黑白電視機到彩色電視機或液晶電視以及各 式各樣的家電產品…等等,都使人們的生活更加便利。其中 3C 產品(通訊、電腦以及 消費性電子)更是與人們的日常生活有著密不可分的關係。以行動通訊為例:從以前 早期的定點式公共電話亭到現在幾乎每個人都有至少一支手機。當然,人們不會因為 擁有手機而感到滿足,手機從早期的利用類比訊號傳輸的 1G 手機,演進成立用數位 訊號傳輸以及具有網路功能的 2、3G 手機,一直到時下流行的智慧型手機(Smart Phone),代表著人們對於電子產品功能性的要求不僅要好還要更好!甚至還有為了娛 樂而出的遊戲機,例如:PS3、Wii、XBOX 以及 PSP…等等,而其中的各類遊戲更是 琳瑯滿目,使得在人們在空閒時候的娛樂選擇更多。而資訊電子產業近年在政府及產 業界大力推動之下,已躋身成為世界主要的生產供應國,再創台灣的經濟奇蹟,也因 此帶動了上游原材料及中游之電子零組件業的蓬勃發展。在整個資訊、通訊、以及消 費性電子產業中,「印刷電路板」實可稱為不可或缺之重要零組件。由印刷電路板業 之產銷供需情形,即可反映出 3C 產業的榮枯興衰與技術水準之高低。印刷電路板能 將電子零組件連接在一起,使其發揮整體功能,因此是所有電子資訊產品不可或缺的 基本構成要件。因此 PCB (Printed Circuit Board)經常被稱為是「電子系統產品之母」

或「3C 產業之基」。

1.1 晶片封裝與印刷電路板的共同設計

在超大型積體電路(Very Large Scale Integration, VLSI)中的電子設計自動化流程 分為前段設計(Front-end)及後段設計(Back-end),其中前段設計中包含了電路的合成 (Synthesis)、功能模擬(Simulation)和驗證(verification);後段設計又稱為實體設計,其

(12)

2

流程包含幾個步驟分別為:分割(Partition)、版面規劃(Floorplan)、擺置(Placement)以 及整體繞線(Global Routing)和細部繞線(Detail Routing)。而早期因為晶片較複雜的情 況下,人們將自動化的技術全都投入在晶片當中,然而隨著晶片設計自動化技術的成 熟,人們開始發現封裝以及印刷電路板也變得越來越複雜,因此,近年來封裝及印刷 電路板的設計也漸漸地走向自動化。然而,早期的晶片、封裝以及印刷電路板分別是 由三組完全不同的團隊分別設計所以對於各自最好的元件擺設以及端點的設置都會 有不同的看法,所以在各自做自動化出來的結果,對於整個系統可能並不是最好的。

因此,晶片封裝與印刷電路板的共同設計(co-design)便顯得格外的重要[1]、[2]。

其中 , 在印刷電路板設計 (PCB Layout) 的流程中分成前端設置 、元件擺置 (Placement)、繞線(Routing)以及後端作業等四大步驟。前端設置的部分是根據客戶所 提供的元件及印刷電路板的規格和繞線規則…等等,設置相關之設計規則以及印刷電 路板的版面圖。將檢查過的印刷電路板的版面圖經過元件擺置(Placement)及繞線 (Routing)後進入後端作業的部分。在後端作業的部分,必須先檢查繞線(Routing)完成 後印刷電路板圖的可用性再依據客戶所提供的設計規則複查,檢查的內容包括間距 (Clearance)、連接性(Connectivity)、高速規則(High Speed)、過孔(Via)設置和電源層 (Plane)…等等。經過檢查再複查後完成的印刷電路板圖形,便可將佈線圖形輸出給製 造工廠,經過曝光、顯影、蝕刻以及剝膜…等過程,將其佈線圖形成現在實體印刷電 路板上,進而完成印刷電路板的製造。

1.2 印刷電路板繞線

印刷電路板設計流程中,繞線是一個相當重要的環節,繞線的好壞直接影響了整 個系統的速度。 而近年來電子系統的成長,造成電路上訊號線的數目急速的增加,

而在印刷電路板上,也產生了數量龐大的匯流排(Bus)。同時,隨著工作時脈(Clock Frequency)的增加,以致於週期的時間越來越短,而印刷電路板上訊號的延遲時間必

(13)

3

須更精準的滿足時間上的限制。在成本的考量之下,人們希望印刷電路板的面積能越 小越好所用的層數能越少越好。因此,要將數量龐大的匯流排在非常有限的面積之下 繞線成功變得越來越困難。

在印刷電路板繞線中,依照繞線區域的不同分成兩種繞線,分別是跳脫繞線 (Escape Routing)及匯流排繞線(Bus Routing)。跳脫繞線的部分是將元件封裝後在元件 底部的二維輸入輸出腳位(I/O pin)連線至元件的周邊,繞線的範圍僅在元件的底部繞 線,如圖 1-1 中藍色的線段;而匯流排繞線的部分,將跳脫繞線到元件周邊的端點連 接起來,並且任兩條線段互不相交,如圖 1-1 中紅色的線段。然而,因為繞線的範圍 不同,所以跳脫繞線以及匯流排繞線各有不同的限制及所要達成的目的。

匯流排繞線 (在元件之外的面積繞線)

匯流排繞線 (在元件之外的面積繞線) 跳脫繞線

(在元件底部繞線)

圖 1-1 基本印刷電路板繞線之示意圖[11]

跳脫繞線(Escape Routing)的部分,主要的問題分成有排序之跳脫繞線(Ordered Escape Routing)[12]、[13]、[14]與沒排序之跳脫繞線(Unordered Escape Routing)這兩 大類,這兩大類主要的區別在於說,連線拉到元件邊緣的時候是否有固定的順序,有 的話就是排序之跳脫繞線,如圖 1-2 所示。而跳脫繞線(Escape Routing)主要的限制有:

兩相鄰針腳之間能通過線段之容量以及連線到元件周邊上的排序。

(14)

4

圖 1-2 有順序之跳脫繞線[14]

匯 流 排 繞 線 (Bus Routing) 的 部 分 , 主 要 的 目 的 在 於 符 合 延 遲 時 間 的 繞 線 (Delay-Matching Routing),但是由於影響延遲的因素很多,包括計算延遲的模型(Delay Model)、線長(Length)、線寬(Width)或者延伸到多層面板的通道(Via)等等。而在眾多 影響延遲的因素之下,要精準地計算出延遲時間是相當不容易的,而現今考慮延遲去 繞線的結果都不是很好。因此,我們先將問題作簡化,以不考慮延遲模型(Delay Model) 以及固定線寬(Width)且在單層(Single Layer)繞線的情況下,單純以計算線長(Length) 來當作訊號線的延遲時間。因此,衍伸出在單層(Single layer)繞線面積下符合長度之 繞線(Length-Matching Routing)[15]、[16],而符合長度之繞線的主要的限制有繞線面 積(Routing area)、障礙物(Obstacle)以及長度(Length)或延遲(Delay)時間的限制,如圖 1-3 為一個匯流排繞線(Bus Routing)的示意圖。

迴繞 障礙物

圖 1-3 匯流排繞線示意圖[19]

(15)

5

符合長度之匯流排繞線在單層(Single Layer)繞線面積上繞線的時候,基本上有下 面三點特性,第一點是線段兩兩互不相交且在固定的範圍中繞線,第二點是在繞線區 域中,線段是由水平或垂直線所組合而成的以及第三點為每條匯流排中的線段必須要 避開障礙物且符合長度限制。而長度的計算為,該線段在繞線平面中所經過的格子數 目,如圖 1-4(a)所示長度為 4;而圖 1-4(b)的長度為 5。所以,符合長度之匯流排繞線 若以圖 1-5 的繞線平面為例,給定三組線段的端點在 7x15 的有障礙物之繞線平面中,

如圖 1-5(a)並且長度限制給 18 以及 24,那麼長度符合的匯流排繞線的結果就會像圖 1-5(b)的一個繞線結果。

(a) (b)

S

T S

T

圖 1-4 長度計算示意圖

1 2 3

1 2 3

1 2 3

1 2 3

1 2 3

1 2 3 長度限制 18 長度限制 24

(a) (b)

圖 1-5 符合長度之匯流排繞線示意圖

因為製造成本的考量,匯流排繞線的面積很嚴格的被受限制。因此,當面積被受 限制的時候,在所給定的 mxn 的繞線平面中,根據所給的障礙物的數量、匯流排中 線段的多寡以及線段端點的位置,計算出長度限制的上下限。假設 m 為繞線平面的

(16)

6

高、n 為繞線平面的寬、s 為障礙物的數量以及 N 為匯流排中線段的數目,藉由上面 幾個參數的假設,利用(m x n – s) / N 計算出長度限制的上限,而下限的部分則是在 每條線段的最短路徑中取最大的當作下限,如圖 1-5(a)的繞線平面為例,繞線平面的 高跟寬分別為 7 和 15、障礙物的數量為 12 而匯流排中的線段數目為 3,所以上限為:

(7 x 15 – 12) / 3 = 31;而線段一的最短路徑為 16、線段二的最短路徑為 18、線段三的

最短路徑為 16,取最大值當作下限,所以下限為 18。因此,在圖 1-5(a)中的繞線平 面,長度限制必須落在 18 到 31 之間,且與線段長度的奇偶關係相同,才能將匯流排 中的線段都繞線成功。

而根據先前介紹的印刷電路板繞線的分類,可以得知匯流排繞線的端點是承接跳 脫繞線出來的結果,所以如果跳脫繞線結果出來的兩組線段的端點排序不同或者端點 之間間隔不同,以及長度限制不合法的情況下,都會造成匯流排繞線中不可避免的錯 誤。兩端點排序不同基本上會造成連線交錯的情形,如圖 1-6(a)所示,端點間間格不 同則會造成線段長度有奇數有偶數,而無法精準的滿足長度限制,如圖 1-6(b)所示,

而長度限制在上下限之外的話,過短的話可能某些線段無法連線成功;太長則會造成 可以利用的空間不足而某些線段無法滿足長度限制,如圖 1-6(c)所示。

然而這些先天上的錯誤可以藉由在跳脫繞線(Escape Routing)中的繞線以及延長 長度限制以解決這些不可避免的錯誤,如圖 1-7 所示。

(a)

(b) (c)

交錯

(17)

7

圖 1-6 匯流排繞線先天上的錯誤

圖 1-7 解決匯流排繞線之先天上的錯誤

1.3 相關研究

隨著電子系統的成長,印刷電路板上的電路也越來越複雜,導致印刷電路板上的 元件以及匯流排數量也隨之增漲,再加上工作時脈要求越來越快以至於時間上的限制 越來越嚴苛。一般來說,訊號線在印刷電路板上的長度可以視為訊號線的延遲時間,

所以精準地符合長度限制的問題變得越來越困難且重要。而近年來符合長度之匯流排 繞線的問題有利用放鬆技術演算法(Lagrangian-Relaxation Algorithm) [15]、可調邊界 單元之繞線(BSG Router, Bounded-Slice Line router) [16]以及檢測連接性之探針搜尋 繞線(CAFÉ Router, Connectivity Aware Frontier Exploration router) [19]等三種繞線方 法。其中,除了放鬆技術演算法之外,另外兩個都有利用單一線段繞線的背景所衍伸 而得的繞線方法,如圖 1-8 所示黑字的部分即為目前在符合長度之匯流排繞線中先前 研究的關係,下面將一一介紹這三篇的優缺點。

(18)

8

單一線段背景 匯流排繞線

有 障 礙 物

沒 障 礙 物

US Routing [18]

BSG cell detouring routing [16]

CAFÉ Routing [19]

LR Algorithm [15]

BSG Routing [16]

矩形迴繞形式

最長路徑產生 符合長度之 匯流排繞線

圖 1-8 匯流排繞線及背景知識相關圖形

首先是放鬆技術演算法[15]的部分。2006 年學者提出利用放鬆技術,在未達長度 匹配之繞線平面中,以最長線段為標準,其他較短線段做額外迴繞的方式,用以達到 符合長度。而根據線段的長短不一所需的空間不同,利用公式分別計算鄰近之空白區 域需要多少才可滿足長度匹配,較短的線段需要較多的空白區域;而較長的則不需要 太多空白區域。並且提出一個特殊的圖形結構,每個繞線格子皆為一個特殊的圖形結 構,而這種特殊的圖形結構,紀錄繞線格子從哪個方向進入以及往哪個方向走出,如 圖 1-9 所示。該圖形結構以起點到終點的方向為直線,加上與直線方向垂直的兩側,

一共記錄三種不同的來源以及出口方向。此圖形結構可以快速得知額外迴繞的地方和 長度以及兩端點之間最短路徑,但由於該特殊圖形只記錄了三個方向的走位,因此,

導致線段無法走起點到終點的相反方向,起點和終點兩側以外的空間也無法使用。也 就是說,線段繞線的範圍不僅限制在起點到終點的範圍內,該線段也只能經由上或下 的方向做額外的迴繞,如圖 1-10 所示。

(19)

9

u s d

A 點

u s d

B 點

u s d

C 點

A B

uAdB

A B

dAuB

A B

sAsB

C A

uCuA

C A

dAdC

圖 1-9 特殊圖形結構走法[15]

圖 1-10 單一方向之額外迴繞[15]

所以,此特殊圖形,不僅因為端點先天的位置而限制了繞線的範圍,也限制了線 段繞線的方向。而同樣這位學者發現了這個缺點之後,在 2008 年提出一個以面積為 導向的概念[16],同樣在不考慮障礙物的情況下,利用[26]設計的可調適邊界單元(BSG Cell, Bounded-Slice line Grid Cell),是由兩條水平及兩條垂直線所構成,經過移動、

放大、縮小以及消失等四種運算改變 BSG Cell 的大小位置,如圖 1-11(a)中 A 為放大、

B 為縮小、C 為移動、D 則是消失。並分配包含數個可調式邊界單元且不同形狀但是 相同面積大小的區域,如圖 1-11(b)所示,給每條線段做符合長度之繞線。論文[16]

(20)

10

中的流程分為四個步驟,分別為:輸入拓樸結構平面(Input Topology)、嵌入可調式邊 界單元( BSG Embedding)、調整單元形狀(Cell Sizing)以及細部繞線(Detail Routing),

如圖 1-12 所示。觀察繞線平面及線段連線的關係,將繞線平面嵌入可調式邊界單元,

並經由調整邊界分配相同面積的區域給不同的線段,最後,在所分配的面積中做繞 線。因為是面積導向的關係,只要在該區域內繞線即可,沒有任何方向的限制,所以 可多個方向的繞線,有效的解決了拓樸(Topologic)結構上限制的問題[11]、[15]、[17]。

但是,在所分配的可調式邊界單元中,因為全部加總的面積是與其他線段所分配的面 積相等,而線段的間距為ε,在假設線寬極小的情況下每一單元中勢必會留下一小塊 無法使用的區域( <4ε2 ),如圖 1-13 所示。因此就算每條線段分配的區域面積相等,

但是由於每一單元中所餘留的空間不同,可能會造成長度不一而無法精準地達到符合 長度,而這種情況在當在長度限制與可用面積很吃緊的情況下會更加明顯。

A

B

C

H-wall

V-wall

cell

A B

C D

調整 邊界

調整 邊界

不同嵌入之可調邊界單元有相同的結果

(a) (b)

圖 1-11 調整邊界的四種方法及同樣面積但不同調整邊界的方式[16]

(21)

11

輸入拓樸結構 嵌入可調式邊界單元 調整單元形狀 細部繞線

圖 1-12 可調邊界單元之繞線流程[16]

ε ε /2

<2 ε

<2 ε

圖 1-13 可調邊界單元之最大繞線長度及剩餘空間[16]

在上述[15]、[16]論文中都有一個共通的缺點則是沒考慮到障礙物,而在真實的 印刷電路板上,一定多多少少會有一些障礙物阻擋在兩端點之間。因此,在有考慮障 礙物的情況下,日本學者用 2009 年提出的基於上限搜尋繞線(US Routing, Upper bound based Seed Routing) [18]的方法為背景,更進一步的在 2010 年提出檢測連接性之探針 搜尋繞線(CAFÉ Router, Connectivity Aware Frontier Exploration router) [19],在有障礙 物之繞線平面中將匯流排中的每條線段連線成功。

基於上限搜尋繞線(US Routing)[18]方法中,基本上分成兩個階段,第一階段為找 尋階段(Seed Stage),第二階段為延伸階段(Extension Stage)。在第一階段中利用計算 長度上限(Upper Bound)的方式,每走一步就更新終點到每個空白格子的步數,而觀察 每次相鄰格子所剩餘的步數,取最多的當作下一步,再次更新繞線平面上空白格子的 步數,以此類推,進而找到一條兩端點之間的連線。因為每次都是找相鄰格子中剩餘

(22)

12

格子數最多的來走,因此,第一階段所完成的線段已經是一個比較長的線段;在第二 階段中,利用提出兩個重要的延長路徑的方法分別是 R-flip 以及 C-flip,有效的加長 了線段的長度。

在上限搜尋繞線(US Routing)[18]方法中,第一階段計算上限的方式是將繞線平面 中可用的格子分成兩類,一類是白格子(Vw)另一類是灰格子(Vg),而同類的格子互不 相鄰,如圖 1-14 所示,可以經由兩端點(s,t)在格子種類的不同,而長度奇偶也會有所 不同,如表 1-1 所示。此分析說明了,兩端點先天的位置決定了此線段是奇數或偶數;

而第二階段中的延伸路徑長度的方法,說明如下:

 R-flip:在長度為二的部分路徑上,其相鄰的兩個格子是空白的,則利用一個簡 單向旁延伸的迴繞將相鄰空白格子的長度加進來,如圖 1-15(a)所示。

 C-flip:在部分路徑上,能找到另一條路徑其路徑長度是大於原本路徑的,則選 擇走較長的那條路徑而放棄原本部分的路徑,如圖 1-15(b)所示。

圖 1-14 分類可用繞線格子

R-flip

(a)

C-flip (b)

圖 1-15 R-flip 以及 C-flip 示意圖[18]

(23)

13

觀察 R-flip 以及 C-flip 方法,可以得知這兩種方法都是利用一條較長的路徑(P’) 去取代原本的路徑(P),藉由不同的原路徑(P)與較長的路徑(P’)做個簡單的比較,如 圖 1-16 所示,發現,如果原路徑是奇數那麼取代的路徑也會是奇數;原路徑是偶數 的話取代的路徑也會是偶數,而根據這兩階段中方法的分析可以得知,如果先天是奇 數長度的線段,無論如何做延伸長度的動作,是不可能會變成偶數的。

長度( L(G,s,t) ) 奇或偶 (1) s,t ∈ Vw 2min{|Vw|-1, |Vg|} + 1 奇 (2) s,t ∈ Vg 2min{|Vw|, |Vg|-1} + 1 奇 (3) 其他 2min{|Vw|, |Vg|} 偶 表 1-1 根據兩端點分析長度奇偶關係

R-flip C-flip

圖 1-16 比較原始路徑與取代路徑

在檢測連接性之探針搜尋繞線(CAFÉ Router) [19]中,日本學者先利用他們所提出 的牆(Wall)的概念,如圖 1-17(b)所示,先將相鄰線段的兩端點之間做隔絕的效果,避

(24)

14

免線段一開始就跨越牆(Wall)而導致其他線段不可繞的情形。每條線段都會有一個探 針(Frontier),利用探測的方式,藉由計算剩餘多少長度到終點來決定下一步。而每條 線段在每個繞線的循環中所剩餘的長度都是一樣的,也就是說,剩餘長度最長的線段 會先走,直到所有線段之剩餘長度一樣,以此類推。最後,在檢查是否有線段造成其 他線段不可繞的情形,是以最大流量(Maximum Flow)的概念,如圖 1-17(a)所示,分 別以所有的起始端點以及所有的終點端點為單一起點(Single Source)和單一終點 (Single Sink),線段由起點經過中間的繞線格子到終點。如果某線段在中間格子中無 法找到路徑到達終點的話,就代表此步會造成其他線段不可繞的情形發生,即最大流 量小於線段的數目,而回到上一步尋找其他路徑,以此類推,直到所有線段都繞線成 功。其中,也利用了先前提出的 R-flip,以盡量的滿足長度限制。但是出來的繞線結 果卻沒有辦法很精準的滿足長度的限制。

(a) (b)

起點 終點 起點 終點

牆 牆

圖 1-17 最大流量以及隔絕牆示意圖[19]

(25)

15

第二章 研究動機與問題描述

在這個章節中,由先前三篇符合長度之匯流排繞線方法中的缺點以及尚未考量的 因素,提出本論文研究的動機以及針對研究動機所定義的問題描述。

2.1 研究動機

由先前的三篇相關研究可得知,利用放鬆技術[15]以及可調式邊界單元[16]的繞 線方法,並沒有考慮到障礙物,當然在真實的印刷電路板上勢必會有一些障礙物的存 在;而在有考慮到障礙物的檢測連接性之探針搜尋繞線(CAFÉ Router) [19]中,繞線出 來的結果在還有剩餘格子的情況下並沒有準確的符合長度的限制。

在整個印刷電路板上,匯流排的數量相當龐大,且以整個印刷電路板的效能為考 量,必須盡量的縮減不必要的多餘繞線。本論文中所考慮的繞線平面為整個印刷電路 板分配給該匯流排的繞線區域,匯流排在該區域中繞線並不影響其他匯流排的繞線路 徑。因此,印刷電路板上的每條匯流排的繞線區域皆為獨立的,而在考慮障礙物的先 前研究中,論文[19]在單一匯流排所分配到的繞線區域中,不僅無法精準的達到長度 的限制,剩餘的格子也無法被其他匯流排線段所使用,而造成不必要的浪費。因此,

本篇論文在考慮障礙物的情況下,以同樣的繞線平面(資源)做符合長度的匯流排繞 線,有效的利用有限的繞線格子且能達到精準的符合長度限制。

因此,本篇論文流程為,藉由建立單一線段無障礙物的矩形樣本迴繞,在單一線 段有障礙物的平面中找出一條最長路徑,並且更進一步的應用在避開障礙物且符合長 度之匯流排繞線中,如圖 1-8 中紅字部分所示。

(26)

16

2.2 問題描述

在考慮印刷電路板中每條匯流排所分配到的區域中將匯流排中的每條線段連線 成功,並且符合特定的長度限制。長度限制的部分,因為印刷電路板上的匯流排數量 龐大,在此不預設匯流排線段是否在整個印刷電路板繞線中為最長路徑,僅為了滿足 特定的延遲時間或者長度所訂定的。因此,如果長度限制落在該平面限制下的長度限 制上下限之間且與線段長度的奇偶關係相同的話,即可繞線成功。因此,本論文中避 開障礙物且符合長度之匯流排繞線輸入為:一個有 s 個障礙物 mxn 的繞線平面,平面 上有一條匯流排,匯流排中有一組線段,且線段的兩端點是有順序的排列而成的。以 及所需符合的長度限制。輸出為:將匯流排中所有線段連線成功。限制為:匯流排中 任兩線段互不相交且符合長度限制。

以圖 2-1 為例,給定一個有 13 個障礙物且 28x28 的繞線平面,以及有四條線段 的匯流排,長度限制設定為 100 以及 150,經過繞線之後可以分別得到繞線結果如圖 2-2(a)為長度限制 100 的繞線結果而圖 2-2(b)為長度限制 150 的繞線結果。

圖 2-1 多個對應腳位且有障礙物之繞線棋盤

(27)

17

(a) (b)

圖 2-2 長度限制 100 以及 150 之繞線結果

(28)

18

第三章 矩形樣本迴繞

在這章節裡,針對單一線段在無障礙矩形中的迴繞做分析。而根據兩端點在矩形 邊界上的關係,進一步將矩形樣本迴繞細分成下面四項並各別做分析:

1. 兩端點在轉角上(Terminal on Corners)。

2. 兩端點在同一邊上(Terminal on the Same Side)。

3. 兩端點在相對邊上(Terminal on Opposite Sides)。

4. 兩端點在相鄰邊上(Terminal on Adjacent Sides)。

整個矩形樣本迴繞的繞線模式,是由許多的 L-type 的迴繞方式所組成的。L-type 迴繞方式是利用線段行走無障礙物矩形之邊界,順時針或逆時針且經過一個或兩個轉 角(至少包含一個垂直及水平線段)所形成的,如圖 3-1 所示。同時,L-type 繞線方式 在轉角旁邊產生新端點,可以讓不同情況下的繞線套用在相同的迴繞模式上,以降低 程式的複雜度。

圖 3-1 L-type 迴繞方式

(29)

19

3.1 兩端點在轉角上(Terminal on Corners)

在 mxn 的繞線棋盤中兩端點在轉角的情況下,如果 m = 1 或 n = 1 以及 m = 2 或 n = 2 且奇偶不相同的情況下給定以下的固定迴繞方式:

m = 1 或 n = 1:直線繞線,如圖 3-2(a)所示。

m = 2 或 n = 2:蛇行繞線,如圖 3-2(b)所示。

(a) (b) 圖 3-2 兩端點在轉角之固定迴繞

而在 m 和 n 皆大於 2 的情況下,經由一個或兩個 L-type 且向內遞迴的迴繞方式:

如果兩端點在對邊轉角上,利用兩個 L-type 迴繞方式,在內部(m-2)x(n-2)之繞線棋盤 的對角產生兩個新端點如此遞迴向內直到 m 或 n 小於等於 2 為止;若兩端點在同邊 轉角則由其中一端點利用一個 L-type 迴繞在另一端點對角的位置產生一個新端點,

並將 mx(n-1)之繞線棋盤套用兩端點在對邊轉角上的迴繞方式,如圖 3-3 所示為兩端 點在對邊轉角或兩端點在同邊轉角上利用 L-type 迴繞方式向內遞迴的迴繞方式。

(30)

20

圖 3-3 兩端點在轉角之遞迴向內的迴繞方式

3.2 兩端點在同一邊上(Terminal on the Same Side)

在 mxn 的繞線棋盤中且兩端點在同一邊上,在此,先設定三個參數 p、q 和 r 分 別為起點左邊行的數目、終點右邊行的數目以及起點終點之間行的數目。然而根據兩 端點在同一邊上的相鄰關係以及 p 和 q 的大小又細分為三種迴繞方法,分別為兩端點 在同邊相鄰格子上、兩端點在同邊不相鄰格子上以及 p 或 q 等於 1 時的特殊迴繞方 式,分述如下:

1. 兩端點在同邊相鄰格子上:一個經過一個轉角的 L-type 迴繞和一個經過兩個轉 角的 L-type 迴繞分別在同邊轉角以及對邊轉角旁產生新的端點並得到一個 (m-1)x(n-1)的繞線棋盤,再將此(m-1)x(n-1)的繞線棋盤套用兩端點在轉角上的迴

繞方式,以得到繞線結果,如圖 3-4(a)所示。

2. 兩端點在同邊不相鄰格子上:將此一繞線棋盤依照兩端點的位置切割成三個繞線 棋盤,分別為起點左邊(mxp)、終點右邊(mxq)以及兩端點間(mxr)。將兩端點間(mxr) 的繞線棋盤套用兩端點在轉角上的迴繞方式並在兩側邊上找類似 R-flip 可以向 外延伸的相鄰格子當作起點左邊(mxp)以及終點右邊(mxq)的兩端點並將這兩個 繞線棋盤套用在兩端點在同邊相鄰格子上的迴繞方式以得到繞線結果,如圖 3-4(b)所示。

(31)

21

3. 特殊迴繞方式:當 p 或 q 等於 1 時,先將等於 1 的那邊包含該端點所形成的 mx2 之繞線棋盤並以該端點上方或下方相鄰的格子做為中繼端點,套用兩端點在同邊 相鄰格子上的迴繞方式,並在中繼端點內側產生一個新端點,再將 2x(r-1)或 2x(r-2) 套用兩端點在轉角上的繞線方式以及(m-2)xr 和如果 p 或 q 大於 1 的那側,mxp 或 mxq,套用在兩端點在同邊相鄰格子上的迴繞方式,以得到繞線結果,如圖 3-5 所示。

(a) (b)

圖 3-4 兩端點在同邊上的迴繞方式

圖 3-5 兩端點在同邊上的特殊迴繞方式

(32)

22

3.3 兩端點在相對邊上(Terminal on Opposite Sides)

在 mxn 的繞線棋盤中且兩端點在相對邊上,在此,先設定三個參數 p、q 和 r 分 別為起點左邊行的數目、終點右邊行的數目以及起點終點之間行的數目。然而根據參 數 p 和 q 的大小關係又細分為兩種迴繞方法,分別為 p 和 q 皆大於 1 以及 p 或 q 等於 1,分述如下:

1. 參數 p 和 q 皆大於 1:將此一繞線棋盤依照兩端點的相關位置切割三個繞線棋 盤,分別為起點左邊(mxp)、終點右邊(mxq)以及兩端點間(mxr)。將兩端點間(mxr) 的繞線棋盤套用兩端點在轉角上的迴繞方式並在兩側邊上找類似 R-flip 可以向 外延伸的相鄰格子當作起點左邊(mxp)以及終點右邊(mxq)的兩端點並將這兩個 繞線棋盤套用在兩端點在同邊相鄰格子上的迴繞方式以得到繞線結果,如圖 3-6 所示。

2. 參數 p 或 q 等於 1:當 m 或 n 小於等於 3 時,給定幾個預設的迴繞方式:m 或 n 等於 3 時,兩端點向兩側對邊分別利用 L-type 迴繞方法並在中間內側產生新端 點再將兩端點連接起來;m 或 n 等於 2 時,如果兩端點外側有剩餘格子的話,先 分別向外側做一個 R-flip 並在兩端點內側產生新端點,再將剩下的繞線空間套用 在兩端點在轉角上的迴繞方式;m 或 n 等於 1 時,則直接將兩端點直線連接起來,

以上預設的迴繞方式如圖 3-7(b)所示。當 m 和 n 皆大於 3 時,先將 p 或 q 等於 1 的那邊包含該端點所形成的 mx2 之繞線棋盤並以該端點上方或下方相鄰的格子 做為中繼端點,套用兩端點在同邊相鄰格子上的迴繞方式,並在中繼端點內側產 生一個新端點,再將 mx(r-1)或者 mx(r-2)套用兩個 L-type(皆以同方向並在另一端 點的上方或下方產生新端點)向內遞迴的迴繞方式,如圖 3-7(a)所示,直到 m 或 n 小於等於 3 時,再套用預設好的迴繞方式,如圖 3-7(b)所示。最後,在如果 p 或 q 大於 1 的那側找類似 R-flip 可以向外延伸的相鄰格子當作起點左邊(mxp)或終點 右邊(mxq)的兩端點並將該繞線棋盤套用在兩端點在同邊相鄰格子上的迴繞方式

(33)

23

得到繞線結果。

圖 3-6 兩端點在相對邊上的迴繞方式

圖 3-7(a) 兩端點在相對邊上的特殊迴繞方式

圖 3-7(b) 兩端點在相對邊上的預設特殊迴繞方式

(34)

24

3.4 兩端點在相鄰邊上(Terminal on Adjacent Sides)

在 mxn 的繞線棋盤中且兩端點在相鄰邊上,在此,先設定四個參數 p、q、u 和 v 分別為起點左邊行的數目、起點終點之間行的數目、終點上方列的數目以及起點終點 之間列的數目。然而根據參數 p 和 u 的大小關係又細分為三種繞線方法,分別為 p 和 u 皆大於 1、p 或 u 等於 1 以及 p 和 u 皆等於 1,分述如下:

1. 參數 p 和 u 皆大於 1:將此一繞線棋盤依照兩端點的相關位置切割三個繞線棋 盤,分別為起點左邊(mxp)、終點上方(uxq)以及兩端點間(vxq)。將兩端點間(vxq) 的繞線棋盤套用兩端點在轉角上的迴繞方式並在上方及左側邊上找類似 R-flip 可以向外延伸的相鄰格子當作起點左邊(mxp)以及終點上方(uxq)的兩端點並將這 兩個繞線棋盤套用在兩端點在同邊相鄰格子上的迴繞方式以得到繞線結果,如圖 3-8 所示。

2. 參數 p 或 u 等於 1:當 m 或 n 小於等於 3 時,給定幾個預設的迴繞方式:m 或 n 等於 3 時,兩端點向兩側對邊分別利用 L-type 迴繞方式並在中間內側產生新端 點再將兩端點連接起來;m 或 n 等於 2 時,如果兩端點外側有剩餘格子的話,先 分別向外側作 R-flip 迴繞並在兩端點內側產生新端點,再將剩下的繞線空間套用 在兩端點在轉角上的迴繞方式,以上預設的迴繞方式如圖 3-9(b)所示。當 m 和 n 皆大於 3 時,先將 p 或 u 等於 1 的那邊包含該端點所形成的 mx2 或 2xq 之繞線棋 盤並以起點上方或下方、終點左方或右方之相鄰的格子做為中繼端點,套用兩端 點在同邊相鄰格子上的迴繞方式,並在中繼端點內側產生一個新端點,再將 (v-1)xq 或者 vx(q-1)套用兩個 L-type(皆以同方向並在另一端點的相鄰格子產生新

端點)向內遞迴的迴繞方式,如圖 3-9(a)所示,直到 m 或 n 小於等於 3 時,再套 用預設好的迴繞方式,如圖 3-9(b)所示。最後,在如果 p 或 u 大於 1 的那側找類 似 R-flip 可以向外延伸的相鄰格子當作起點左邊(mxp)或終點上方(uxq)的兩端點 並將該繞線棋盤套用在兩端點在同邊相鄰格子上的迴繞方式以得到繞線結果。

(35)

25

3. 參數 p 和 u 皆等於 1:分成兩個階段的迴繞方式,第一階段為包含起點 mx(p+1) 以及包含終點(u+1)xq 且以起點上方和終點左方為中繼端點,套用兩端點在同邊 相鄰格子上的迴繞方式,並在兩中繼端點內側產生第二階段的中繼端點;第二階 段分別為 2x(q-2)和 vx2 並以第一階段最後產生之中繼端點為左上轉角所形成的 矩形,並在 2x(q-2)和 vx2 中和中繼端點相鄰的格子為新的中繼端點,套用兩端點 在同邊相鄰格子上的迴繞方式,並在新的中繼端點內側產生新端點,如此向內遞 迴,如圖 3-9(a)所示。每階段結束之後,檢查是否可以套用預設之迴繞方式,如 圖 3-9(b)。不行則進入下一階段;反之,則套用預設迴繞方式以求得繞線結果。

圖 3-8 兩端點在相鄰邊上

圖 3-9(a) 兩端點在相鄰邊上的特殊迴繞方式

(36)

26

圖 3-9(b) 預設之兩端點在相鄰邊上的預設特殊迴繞方式

(37)

27

3-5 剩餘格子數的分析

前四小節的迴繞方式結果,根據每種情況下無障礙物矩形的長寬以及各參數 的不同,分析所剩餘的格子數,如表 3-1 所示。由表 3-1 可得知,四種情況中除兩端 點在轉角上剩餘格子數目為 1 之外,其他三類剩餘格子數最多只有 2。並用分析出來 的迴繞方法,套用在下一章節的繞線方法中。

迴繞長度 剩餘格子數 各參數奇偶關係

兩 端 點 在 轉角上

mn 0 (1) m 或 n 是奇數 (不同邊)

(2) m 是奇數或者 n 是偶數 (同邊) mn-1 1 (1) m 和 n 是偶數 (不同邊)

(2) m 是偶數且 n 是奇數 (同邊)

兩 端 點 在 同一邊上

mn 0

(1) m 是奇數或者 n 是偶數 (相鄰格子) (2) m 是偶數且 r 是奇數 (不相鄰格子) (3) m,p 和 q 是奇數且 r 是偶數 (不相鄰格子) mn-1 1

(1) m 是偶數且 n 是奇數 (相鄰格子) (2) m 和 r 是偶數 (不相鄰格子)

(3) m 是奇數且 p 或 q 是偶數 (不相鄰格子) mn-2 2 (1) m 是奇數且 p 和 q 是偶數 (不相鄰格子)

兩 端 點 在 相對邊上

mn 0 (1) m 是偶數且 r 是奇數 (2) m 是奇數且 p 和 q 是偶數 mn-1 1 (1) m 和 r 是偶數

(2) m 是奇數且 p 或 q 是偶數 mn-2 2 (1) m 是奇數且 p 和 q 是偶數

兩 端 點 在 相鄰邊上

mn 0

(1) m 是偶數且 u 是奇數

(2) m 和 p 是奇數且(q 和 u 是偶數) 或者 (q 是奇數且 v 是偶數)

mn-1 1

(1) m 和 u 是偶數

(2) m 是奇數, p 是偶數且 (u 或 v 是奇數) , (u 和 q 是偶數),或者 (v 是偶數且 q 是奇數) mn-2 2 (1) m 是奇數且 p 是偶數且(q 和 v 是偶數) 或

者(q 是奇數且 u 是偶數) 表 3-1 各種情況下的矩形樣本迴繞所剩餘格子分析表

(38)

28

第四章 避開障礙物之最長路徑

此一章節,針對單一線段在有障礙物的繞線棋盤中,提出一個有效率地產生最長 路徑的方法,整個流程如圖 4-1 所示。避開障礙物之最長路徑分為兩個步驟:

第一步:反覆的矩形切割(Iterative Rectangular Partition)。

第二步:產生避開障礙物之最長路徑(Obstacle-Aware Longest Path Generation)。

矩形樣 本迴繞 起點和終點在有障礙物的繞線平面

反覆的矩形切割

避開障礙物之最長路徑 繞線平面之邊界區域的建置

內部之邊界區域的重建

產生避開障礙物之最長路徑

增加外部路徑之迴路

增加內部路徑之迴路 相鄰關係圖的建置

移除不可繞之區域

產生初始路徑之迴路

圖 4-1 避開障礙物之最長路徑的流程圖

經由反覆的矩形切割,將有障礙物的繞線棋盤變成一群無障礙物的矩形並建立其 相鄰無障礙物矩形的相鄰關係,再利用產生避開障礙物之最長路徑內的四個步驟,分 別為:排除無法繞線之區域(Dead Region Elimination)、產生初始路徑(Initial Path Generation)、增加外部繞線(External Path Insertion)以及增加內部繞線(Internal Path Insertion)以完成整個避開障礙物之最長路徑。

(39)

29

4.1 反覆的矩形切割

在反覆的矩形切割中,本論文中使用平面掃描演算法(Plane Sweep Algorithm)的 概念來做切割。平面掃描演算法就是利用一條掃描線(Sweep Line),通常是由左而右,

掃過整個平面並記錄平面上物件的位置關係,用以解決各種幾何學上的問題。而平面 掃描法常被用到的問題例如:凡諾氏圖(Voronoi Diagrams),畫出的線所圍成之區域中 的每一個點與區域中黑點(site)的距離一定比其他的黑點(site)來的近,如圖 4-2(a)所 示;或者三角化測量(Triangulation),一群黑點所圍成的凸邊形當中每相鄰三個點就會 形成一個三角形的關係,如圖 4-2(b)所示。

(a) (b)

圖 4-2 凡諾氏圖(Voronoi Diagrams)以及三角化測量(Triangulation)示意圖

藉著掃描的概念由外而內的將一個有障礙物的繞線平面切割成數個無障礙物的 矩形。首先,先定義外圍邊界(Outer Boundary)以及轉角格子(Corner Grids)。外圍邊界 (Outer Boundary)是一個能包住尚未切割完成且有障礙物之繞線平面的最小矩形,如 圖 4-3(a)紫色部分所示;而轉角格子(Corner Grids)則是在外圍邊界(Outer Boundary) 上,僅與兩個可用的格子相鄰,我們把這類格子定義為轉角格子(Corner Grids),如圖

(40)

30

4-3(b)紅色部分所示。

(a) (b)

圖 4-3 外圍邊界(Outer Boundary)以及轉角格子(Corner Grids)示意圖

在定義完外圍邊界(Outer Boundary)以及轉角格子(Corner Grids)之後,依序將每一 個轉角格子(Corner Grid)經由掃描(Sweep)、找出無障礙物之梯型(Trapezoid)區域以及 取最大矩形區域(Maximum Area)之區域等三個步驟以完成一個切割區域(Partition Region)。

首先,以轉角格子為起點(Corner Grid)向外圍邊界(Outer Boundary)做水平或垂直 延伸線直到碰到障礙物或邊界為止。以此延伸線當作掃描線(Sweep Line),並在掃描 線(Sweep Line)與轉角格子(Corner Grid)之間的長度範圍內向轉角格子(Corner Grid)在 外圍邊界(Outer Boundary)上的相反方向掃描(Sweep)整個繞線平面,例如:轉角格子 (Corner Grid)在外圍邊界(Outer Boundary)的下方,則由下往上掃描。掃描過程中如果 碰到障礙物,則掃描線縮短至該障礙物距離轉角格子最短距離的坐標,並記錄該座 標,以此類推。掃描過整個平面之後,將每個記錄的座標往與轉角格子(Corner Grid) 相反方向做垂直水平延伸線並與轉角格子(Corner Grid)圍成一個無障礙物之梯型區 域。最後,則是在這梯型區域中找出一個最大的矩形區域。而為了得到較好的切割,

再找最大矩形的時候,必須盡量去除瘦長形的切割區域,如:1xn 或 nx1,之後將可 能得矩形面積做排序,即可找到一個最大面積之區域當作切割區域,如圖 4-4 所示。

(41)

31

每次完成切割區域的時候,將該區域視為障礙物,然後更新轉角格子(Corner Grids),直到外圍邊界(Outer Boundary)中無轉角格子(Corner Grids)為止,即外圍邊界 (Outer Boundary)中的格子皆已切割完成,再來更新外圍邊界(Outer Boundary),再做 切割,以此類推,直到沒有外圍邊(Outer Boundary)界為止,即繞線平面中所有的格 子皆以切割完成,如圖 4-5 所示。

掃描

梯形區域

最大矩形

圖 4-4 用掃描線切割繞線區域的流程

(42)

32

重複 1 次

重複 2 次

重複 3 次

圖 4-5 反覆的矩形區域切割

因此,整個反覆的矩形切割演算法流程如下所示:

反覆的矩形切割:

建置矩形的外圍邊界;

while( 外圍邊界串列不是空的 ){

外圍邊界中轉角格子的建置;

while(轉角格子串列不是空的){

轉角格子 i = 串列中第一個轉角格子;

針對轉角格子 i,掃描繞線平面;

不規則形梯形區域中的最大之矩形面積區域;

將此最大面積之區域設為切割之區域,並視為障礙物;

更新外圍邊界之轉角格子;

}

重建外圍邊界;

}

(43)

33

4.2 產生避開障礙物之最長路徑

在完成反覆的矩形切割(Iterative Rectangular Partition)之後,依照這些切割區域的 相鄰關係建立相鄰關係圖(Adjacent Graph)。相鄰的兩個區域,如果相鄰的格子數等於 1,則圖中邊上權重設為 1;如果相鄰格子大於 1,則設為 0,如圖 4-6 所示。

圖 4-6 根據切割區域建立的相鄰關係圖

建立完相鄰關係圖之後,根據這個相鄰關係圖,更進一步的將產生避開障礙物的 最長路徑(Obstacle-Aware Longest Path Generation)分成下面四個步驟:

 排除無法繞線之區域(Dead Region Elimination)。

 產生初始路徑(Initial Path Generation)。

 增加外部繞線(External Detouring Insertion)。

 增加內部繞線(Internal Detouring Insertion)。

4.2.1 排除無法繞線之區域

根據迴繞的基本概念,如果線段進入了一個切割區域,但是卻沒有其他出入口,

也無法回頭繞出來,那麼此一切割區域把它稱作無法繞線之區域(Dead Region)。而觀 察相鄰關係圖(Adjacent Graph)得知,如果圖上任何一點的分支度(Degree)只有 1 而且

(44)

34

分支邊上的權重也是 1(相鄰格子為 1),那麼這類型的切割區域就是要被排除的區域,

如圖 4-8 所示,我們依序的排除 V5以及 V4,以得到圖 4-7 右邊的圖形。

圖 4-7 排除無法繞線之區域

排除無法繞之區域的演算法流程如下所示:

排除無法繞線之區域:

while( 有無法繞線之區域 ){

設定沒有無法繞線之區域;

for(每一個在相鄰關係圖中的區域){

if( 該區域僅與 1 區域相鄰且相鄰格子為 1 ){

從相鄰關係圖中移除該區域;

設定有無法繞線之區域;

} } }

4.2.2 產生初始路徑

在此,利用深度優先搜尋法(Depth-First Search)[23],從起點 VS開始到 VT結束,

找出一個從起點到終點經過最少區域的初始路徑(Initial Path),如果初始路徑(Initial Path)有數條的話,那麼應當優先選擇不會額外造成不可繞之區域(Dead Region)的路

(45)

35

徑。以圖 4-8 為例,以深度搜尋(Depth-First Search)會找到兩條路徑分別是 VS、V8到 VT以及 VS、V3到 VT。如果選擇了 VS、V8到 VT那麼 V3就會變成不可繞線之區域(Dead Region),反觀 VS、V3到 VT則不會造成任何不可繞線之區域(Dead Region),所以在 此選擇 VS、V3到 VT這條路徑,如圖 4-8(a)所示,再分別將 VS、V3以及 VT套入無障 礙物矩形的繞線方式(Rectangular Pattern Detouring)以求得最後的初始路徑(Initial Path),如圖 4-8(b)所示。

(a) (b)

圖 4-8 相鄰關係圖上初始路徑以及初始路徑的繞線 產生初始路徑的演算法流程如下所示:

產生初始路徑:

當前串列 = 起點;

while( 找到終點 ){

與當前串列相鄰之區域新增至當前串列的後面;

}

while( 找到起點 ){

從終點往前找與終點相鄰之區域直到起點為止;

}

if(有多條初始路徑)

選擇不會製造不可繞之區域的路徑;

將初始路徑套用矩形迴繞形式;

(46)

36

4.2.3 增加外部繞線

增加外部繞線的部分,依據初始路徑的區域,利用廣度優先搜尋法(Breath-First Search)[24],依序地增加鄰近區域的繞線長度。在此延伸[18]中所使用的 R-flip 以及 C-flip 兩種增加繞線之方式的概念,用以增加外部繞線,說明如下:

 R-flip:當兩相鄰區域之相鄰格子大於 1 個的時候,利用 R-flip 增加該相鄰 區域的繞線長度。

 C-flip:一條起點終點在同一個切割區域(Partition Region)的迴路(Cycle),利 用 C-flip 將整條迴路(Cycle)串接起來以增加繞線長度。

利用 R-flip 或 C-flip 增加繞線長度的時候,由於 R-flip 比較不會破壞原本的繞線 方式,所以我們盡可能的使用 R-flip 增加外部的繞線,但如果 R-flip 和 C-flip 同時存 在且 R-flip 可能會照成其他區域變成不可繞線之區域(Dead Region),或者 C-flip 包含 該 R-flip 的區域,此時我們優先使用 C-flip 增加繞線長度。最後,在做 R-flip 或 C-flip 增加繞線方法之前,我們根據先前在無障礙物矩形之繞線方式(Rectangular Pattern Detouring)的分析,可以預先計算出無法繞到的格子(Unreachable Grids)數有多少,如 果大於 2 的話,則放棄該次的 R-flip 或 C-flip。

觀察完成初始路徑的繞線平面,如圖 4-8(b),以及相鄰關係圖(Adjacent Graph),

如圖 4-8(a),利用廣度優先搜尋法(Breath-First Search)去增加繞線的長度第一次會找 到 V2、V8以及 V6可以做 R-flip;第二次會找到 V1可以做 R-flip 和 V7及 V9可以做 C-flip,但是由於 VS、V7、V9再回到 VS的迴路(Cycle)所剩餘的格子數太多,因此放 棄這次的 C-flip,結果如圖 4-9(a)所示。最後會找到 V7可以做 R-flip 以及 V8、V10、 V7、V9再回到 V8的迴路可以做 C-flip,此時由於 C-flip 包含 R-flip 之區域,故所以 優先使用 C-flip 增加繞線的方法,結果如圖 4-9(b)所示。

(47)

37

(a)

(b)

圖 4-9 R-flip 及 C-flip 增加外部繞線

增加外部繞線的演算法流程如下所示:

增加外部繞線:

路徑區域 = 初始路徑區域;

剩餘區域 = 排除不可繞之區域後的區域 – 初始路徑區域;

while(還有剩餘區域){

for( 每個與初始路徑相鄰之區域 ){

從剩餘區域中移除;

if( 相鄰格子大於 2 )

R-flip 增加長度,且將該區域加入路徑區域;

else

加入新增區域;

}

if( 新增區域與路徑區域中有迴路且預估剩餘格子數小於 2 ) C-flip 增加長度,且迴路經過的區域加入路徑區域中;

}

(48)

38

4.2.4 增加內部繞線

C-flip 繞線方法串接數個區域,但是在起點和終點所在之區域中,原兩端點間的 路徑由於延伸數個區域而消失。所以在該區域中,使用[3]所提出的 R-flip 將消失的原 路徑盡可能地加回來。由圖 4-9(b)可得知,區域 R8因為 R8、R10、R7、R9到 R8的 C-flip 增加繞線中,使得區域中間產生一些空白區域。因此,從起點到終點原路經間找尋一 個可以使用 R-flip 之 2x2 的區域盡可能地增加線段長度,如圖 4-10 所示。在所有切 割區域(Partition Region)的繞線都被增加且因為 C-flip 增加繞線而消失的長度也被加 回來之後,就完成了避開障礙物之最長路徑(Obstacle-Aware Longest Path)。而整個演 算法的時間複雜度為 O(mn),且利用這產生最長路徑的演算法,延伸至匯流排繞線中 產生每條線段符合長度限制之路靜。

圖 4-10 避開障礙物之最長路徑

增加內部繞線的演算法流程如下所示:

增加內部繞線:

每次 C-flip 之後執行;

for( C-flip 起點終點之間 ){

原路徑每 2 空白格子執行 1 次 R-flip;

}

(49)

39

第五章 避開障礙物且符合長度之匯流排繞線

在此一章節,將單條線段有障礙物延伸到多條線段有障礙物。此章節後段針對每 一 線 段 , 分 配 適 當 的 區 域 並 套 用 前 一 章 節 的 產 生 避 開 障 礙 物 的 最 長 路 徑 (Obstacle-Aware Longest Path Generation) , 以 完 成產 生符 合長 度(Length-Matching Generation)。避開障礙物且符合長度之匯流排繞線(Obstacle-Aware Length-Matching Bus Routing)的整個流程如圖 5-1 所示。

否 不可繞

一組匯流排端點在有障礙物的 繞線平面

檢查可繞性

避開障礙物且符合長度之匯 流排繞線

避開障礙物之切割 最大流量圖的建置

產生長度限制之線段

產生分配空間 之最長路徑

從佇列中移除首尾兩線段 奇數和偶數之長度限制

產生首尾兩線段之外部邊界 路徑(釋放空間)

分配區域以滿 足長度限制 足夠格子

長度奇 偶不同

避開障礙物之匯流排繞線

每條線段之區域流向 區域流向中最短路徑的集中

路徑大於 長度限制 縮減長度以滿

足長度限制

是 否

產生最長路 徑演算法

圖 5-1 避開障礙物且長度匹配之匯流排繞線流程圖

(50)

40

在流程圖中,首先,根據輸入的繞線平面、長度限制以及匯流排線段的數量,檢 查長度限制是否落在上下限之中,再檢查每條線段的長度奇偶是否相同,不相同則要 調 整 長 度 限 制 , 以 滿 足 先 天 長 度 奇 偶 的 限 制 。 在 避 開 障 礙 物 之 匯 流 排 繞 線 (Obstacle-Aware Bus Routing)中,先利用障礙物的相對關係將繞線平面切割成數個無 障礙物的矩形,之後利用最大流量問題(Maximum Flow Problem)[25]的概念,先找出 每條線段經過區域的路徑(Region Path),並根據經過區域之路徑(Region Path),在不 做任何多餘繞線的情況下將每條線段的最短距離做集中的動作。最後,在產生符合長 度之繞線(Length-Matching Generation)中,我們經由產生外部邊界之路徑(Boundary Path)、分配區域或縮減長度(Region Assignment or shorten path)以及最長路徑產生 (Longest Path Generation)等三個循環的步驟,進而完成避開障礙物且符合長度之匯流 排繞線(Obstacle-Aware Length-Matching Bus Routing)。

5.1 檢查可繞性

首先,輸入一個有障礙物的繞線平面、長度限制以及線段數目的時候,藉由計算 長度限制的上下限,可以得知這個繞線平面是否可以將所有線段連線成功。爾後,在 根據每條線段兩端點的相對位置,計算出該線段先天上是奇數或偶數,在與長度限制 相比較,如果線段先天上的奇偶與長度限制不符,則應當調整長度限制以滿足每條線 段。

以圖 5-2 的例子來看,四條線段中的長度奇偶不相同,而在僅有一個長度限制的 情況之下,勢必無法精準的繞線成功。而唯一能解決這種問題的方法只有修改長度限 制(Length Constraint Modification),讓奇數長度的線段滿足奇數的長度限制(Odd Length Constraint);偶數長度的線段滿足偶數的長度限制(Even Length Constraint)。

(51)

41

圖 5-2 奇偶不相同之匯流排線段長度

因此,檢查可繞性的流程如下所示:

檢查可繞性:

長度限制上限 = (繞線平面長 x 寬 – 障礙物) / 線段數目;

長度限制下限 = 匯流排線段中最長之最短路徑;

if( 長度限制下限 ≤ 長度限制 ≤ 長度限制上限 ) 可繞;

else

不可繞;

if( 線段長度有奇數有偶數 ) 新增奇數或偶數的長度限制;

奇數長度限制給奇數線段使用;

偶數長度限制給偶數線段使用;

5.2 避開障礙物之匯流排繞線

最大流量問題(Maximum Flow Problem),在日常生活中隨處可見,例如:兩地來 往之間的車流量或者河川上游到河川下游的水流量等等,皆是最大流量的問題,而最 大流量圖形中各點分支邊上的數目就是該路徑上的最大容量。如圖 5-3,便是一個典

(52)

42

型的最大流量問題(Maximum Flow Problem)的圖形。

在避開障礙物之匯流排繞線(Obstacle-Aware Bus Routing)中,不做任何的符合長 度的動作。在此,僅利用最大流量問題(Maximum Flow Problem)在每條線段所必須經 過的區域路徑(Region Path)上,找出一條盡量不做其他多餘繞道動作的最短路徑。

圖 5-3 最大流量問題之圖形

首先,根據每個障礙物的垂直水平延伸線,將繞線平面切割成許多小矩形,觀察 這些小矩形,如果兩條垂直或水平延伸線剛好落在兩個障礙物或一個障礙物及一個外 部邊界的邊界上,,我們稱為獨立區域,因為這些區域要跟其他區域做合併的話勢必 會是一個狹長型的區域,所以這種區域要優先被獨立出來當作是一個切割區域,如圖 5-4 中灰色區域所示。

圖 5-4 繞線平面及其切割完成圖

而剩下的矩形,將會經由合併的動作形成一塊面積較大的獨立區域或者最大結合 的區域。因此,除了一開始的獨立區域之外,剩下的矩形會先經由合併先結合成較大

(53)

43

的獨立區域,最後才會形成最大面積的結合區域(maximum combined region)。

如圖 5-4 為例,經過合併之後,可以找到額外的獨立區域,如圖 5-5(a)黃色區域 所示,而接下來的空間經由合併可以依序的形成最大面積的矩形區域,如圖 5-5(b)灰 色以外部分所示。因此,我們就可以依序的得到如圖 5-5(c)所示的切割結果,其中 R1、 R3、R5、R8、R9及 R11為獨立區域,而 RS、RT、R2、R4、R6、R7及 R10為最大結合 區域。

RS

R4

R1

R2 R3

RT

R5

R6

R7

R9

R10 R11

R8

(a) (b) (c)

圖 5-5 不同端點位置之切割方式

然而,為了滿足流量問題中單一起點到單一終點的特性,我們要將兩組端點都分 配到同一個切割區域中。因此,如果起始端點或終點端點分佈在不同切割區域中,我 們要把這些區域做合併,形成一個不規則形的區域,如圖 5-6 所示。最後一條線段的 端點位在不同的切割區域,透過合併,使得所有線段的端點都在同一切割區域。

圖 5-6 利用障礙物相對關係切割之結果

參考文獻

相關文件

The approach solves the task of choos- ing from a candidate set of existing algorithms adaptively based on their estimated contributions to the learning per- formance on a given

The focus of this paper is to propose the use of task structures for modeling knowledge-based systems at the requirements specification level, and the use of high-level Petri nets

A fuzzy Petri nets approach to modeling fuzzy rule-based reasoning is proposed to bring together the possibilistic entailment and the fuzzy reasoning to handle uncertain and

In this paper, we propose a practical numerical method based on the LSM and the truncated SVD to reconstruct the support of the inhomogeneity in the acoustic equation with

Then they work in groups of four to design a questionnaire on diets and eating habits based on the information they have collected from the internet and in Part A, and with

In this paper, we have studied a neural network approach for solving general nonlinear convex programs with second-order cone constraints.. The proposed neural network is based on

In this paper, we extended the entropy-like proximal algo- rithm proposed by Eggermont [12] for convex programming subject to nonnegative constraints and proposed a class of

Given a connected graph G together with a coloring f from the edge set of G to a set of colors, where adjacent edges may be colored the same, a u-v path P in G is said to be a

In the past researches, all kinds of the clustering algorithms are proposed for dealing with high dimensional data in large data sets.. Nevertheless, almost all of

The min-max and the max-min k-split problem are defined similarly except that the objectives are to minimize the maximum subgraph, and to maximize the minimum subgraph respectively..

In this chapter, the results for each research question based on the data analysis were presented and discussed, including (a) the selection criteria on evaluating

SERVQUAL Scale and relevant scales to bus service quality, and based on service content and customer service related secondary data of H highway bus service company, to design the

Furthermore, based on the temperature calculation in the proposed 3D block-level thermal model and the final region, an iterative approach is proposed to reduce

The aim of this research is to design the bus- related lesson plans based on the need of the students of the 3 rd to 6 th grade of an elementary school in remote

Abstract: This paper presents a meta-heuristic, which is based on the Threshold Accepting combined with modified Nearest Neighbor and Exchange procedures, to solve the Vehicle

Through learning activities in this study found that in bus stop information, the elderly prefer aggregate road map and frequency of travel schedule to show on .In the

In view of this, based on the results gained from the questionnaires and the visits of construction sites, this study designs a check list for scaffolds of small-scale building

In this paper, based on the properties of hexagonal array for flip-chip designs, a generalized hexagonal array , called α-hexagonal array, is proposed to increase the I/O density

In this paper, based on the width determination for electromigration and IR-drop constraints in any current-flow path, a area-driven routing tree can be firstly

The purpose of this study is to propose a conceptual design of an intersection bus-pedestrian collision warning system with appropriate detection and warning parameters for

This research proposed a group-based access control model for maintenance of task (GBAC4MT) and elaborated on elements and concept of the proposed model.. This study

Moreover, this study employed the path analysis method in Structural Equation Modeling (SEM) approach to clarify the corrections among all causes on the dimensions of importance

Furthermore, given a set of pre-assigned IO connections between I/O pads and bump balls, a RDL pre-assignment routing algorithm with routability-driven pin