• 沒有找到結果。

中 華 大 學

N/A
N/A
Protected

Academic year: 2022

Share "中 華 大 學"

Copied!
59
0
0

加載中.... (立即查看全文)

全文

(1)

中 華 大 學 碩 士 論 文

具有腳位重新配置能力的可繞性導向之連線 預先設定重置層繞線

Routability-Driven RDL Routing With Pin-Reassignment

系 所 別:資訊工程學系碩士班 學號姓名:M09702020 陳科銓 指導教授:顏金泰 博士

中 華 民 國 100 年 2 月

(2)

中文摘要

由於在覆晶封裝設計上的輸入/輸出連接是個不可繞的預先設定,就目前所有提 出重置層的路由器都不能產生 100%的可繞性在預先設定之輸入/輸出連接上。基於 腳位重新配置的兩個腳位交換操作方式,使得在覆晶封裝設計之不可繞的情況可以 被排除。此外,給定一組在輸入/輸出焊墊(I/O Pads)與凸塊球(Bump Balls)之間的預 先設定之輸入/輸出連接,並提出一個具有可繞性導向能力的腳位重新配置之重置層 的預先設定繞線演算法在覆晶封裝設計上可以完成最短的總繞線長度以及達到 100%可繞性。另一方面,我們以可繞性導向能力的演算法在覆晶封裝設計上也可以 處理的長度偏差之限制問題。與已發表在重置層的預先設定之繞線演算法[13]比 較,我們具有可繞性導向能力的演算法在合理的程式執行時間內都能保證產生 100%

的可繞性。

關鍵字 : 覆晶封裝設計、重置層的繞線、可繞性

(3)

Abstract

Due to infeasible pre-assignment of IO connections in a flip-chip design, all the published RDL routers cannot guarantee 100% routability for pre-assigned IO connections. Based on two swapping operations for pin reassignment, the unroutable conditions in a flip-chip design can be eliminated. 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 reassignment can be proposed to minimize the total wirelength with 100% routability in a flip-chip design. On the other hand, our routability-driven algorithm can also handle the length-skew constraint in a flip-chip design. Compared with the published RDL pre-assignment algorithm[13], our routability-driven algorithm guarantees to achieve 100% routability under reasonable CPU time.

Keywords : Flip-chip design, RDL routing, Routability

(4)

誌謝

短短兩年多的研究所生活中,首先要感謝顏金泰教授對我及論文內容的指導、

協助與督促,當遇到難關時適時地提供解決方案及鼓勵,使論文得以逐步完成,因 教授的用心讓我學習到做研究的方法與態度,在此致上最深的謝意。

另外,我還要感謝實驗室的夥伴們,志偉、祥霖、凱平、仲賢、明清、忠位、

育誠與佳函,你們給了我許多寶貴的知識與經驗;在論文撰寫上亦提供了許多不同 的見解,很慶幸能遇見您們,讓我在中華有個美好的回憶。

最後,我要感謝我的家人,尤其是老爸老媽全力在日常生活的照顧,讓我可以 沒有憂慮的生活。而家庭的後顧之憂,確實是支撐我如期完成學位的主要動力。因 此我要把今日這份喜悅與家人分享,特別是辛苦的老爸與老媽。

(5)

目錄

中文摘要 ... I Abstract ... II 誌謝 ... III 目錄 ... IV 圖片目錄 ... VI 表格目錄 ... VIII

第一章 簡介 ... 1

1.1 現代積體電路的設計與發展 ... 1

1.2 重置層繞線 ... 2

1.2.1 輸入/輸出焊墊的擺置方式 ... 3

1.2.2 重置層繞線問題 ... 4

1.2.3 不可繞的重置層 ... 7

1.3 延遲時間的繞線問題 ... 8

1.4 相關研究 ...11

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

2.1 研究動機 ... 18

2.2 問題描述 ... 18

第三章 具有可繞性導向能力的腳位重新配置之重置層的預先設定繞線 ... 20

3.1 連線編號之重新編制 ... 21

3.2 可繞性導向能力的腳位重新配置 ... 22

3.2.1 建立繞線區域 ... 22

3.2.2 分析不可繞線的重置層 ... 24

3.3 全域繞線(Global Routing) ... 28

3.3.1 全域連線配置(Global Wire Assignment) ... 28

(6)

3.3.2 史丹爾點的配置(Steiner-point Assignment) ... 32

3.4 細部繞線(Detailed Routing) ... 33

3.4.1 通道交接點的配置(Crossing Point Assignment) ... 34

3.4.2 實體路徑的配置(Physical Path Assignment) ... 35

3.5 長度偏差的修正 ... 38

3.6 連線編號的恢復 ... 42

第四章 實驗結果 ... 43

4.1 實驗平台與測詴檔 ... 43

4.2 實驗結果 ... 43

第五章 結論與未來展望 ... 48

參考文獻 ... 49

(7)

圖片目錄

圖 1.1 打線封裝技術 ... 1

圖 1.2 覆晶封裝技術 ... 2

圖 1.3 重置層之連線示意圖 ... 3

圖 1.4 晶片內部的輸入/輸出焊墊示意圖 ... 4

圖 1.5 重置層的相關問題 ... 5

圖 1.6 自由設定的繞線問題 ... 6

圖 1.7 預先設定的繞線問題 ... 7

圖 1.8 不可繞的重置層 ... 8

圖 1.9 訊號連線之長度偏差 ... 9

圖 1.10 特定的連線線段且符合長度偏差之重置層的繞線 ... 10

圖 1.11 四篇論文相關研究問題的分析圖 ... 11

圖 1.12 重置層以分割線分成四個區塊[10] ... 12

圖 1.13 網路流量演算法示意圖[10] ... 13

圖 1.14 繞線的結構[12] ... 14

圖 1.15 在單層的網路流量[12] ... 14

圖 1.16 重置層的繞線步驟示意圖[13] ... 16

圖 1.18 實體路徑的配置[13] ... 16

圖 1.19 德洛涅三角化與凡諾氏圖[14] ... 17

圖 1.20 基於修改的網路流量[14] ... 17

圖 2.1 重置層繞線前後的例子 ... 19

圖 3.1 重置層的預先設定繞線流程圖 ... 21

圖 3.2 連線編號之重 新編制之示意圖 ... 22

圖 3.3 建立繞線區域之示意圖 ... 23

圖 3.4 重疊的繞線區域問題之示意圖 ... 24

(8)

圖 3.5 容量限制的問題之示意圖 ... 26

圖 3.6 重疊的繞線區域問題之交換結果 ... 26

圖 3.7 容量限制的問題之交換結果 ... 27

圖 3.8 重置層可繞線的區域 ... 29

圖 3.9 環形區域連線配置的示意圖 ... 30

圖 3.10 陣列區域連線配置的示意圖 ... 31

圖 3.11 全域連線配置的繞線結果 ... 32

圖 3.12 同一個象限配置斯坦 ... 33

圖 3.13 相鄰象限配置史丹爾點 ... 33

圖 3.14 通道交接點的配置示意圖 ... 35

圖 3.15 通道交接點配置後的結果 ... 35

圖 3.16 繞線格子的線段連接 ... 36

圖 3.17 環形區域之連線情況 ... 38

圖 3.18 實體路徑的配置之繞線結果 ... 38

圖 3.19 在二維陣列的繞線區域劃分格子之示意圖 ... 39

圖 3.20 擴充連線長度示意圖 ... 40

圖 3.21 在二維陣列的繞線區域擴充連線長度之示意圖 ... 41

圖 3.22 連線編號的恢復後的結果 ... 42

圖 4.1 Ex04 測詴檔 ... 45

圖 4.2 Ex04 測詴檔之建立繞線區域的結果 ... 45

圖 4.3 Ex04 測詴檔之腳位重新配置結果 ... 46

圖 4.4 Ex04 測詴檔之全域繞線的結果 ... 46

圖 4.5 Ex04 測詴檔之細部繞線的結果 ... 47

圖 4.6 Ex04 測詴檔的最後繞線結果 ... 47

(9)

表格目錄

表 4.1 測詴檔案 ... 43 表 4.2 實驗比較結果 ... 44

(10)

第一章 簡介

1.1 現代積體電路的設計與發展

隨著半導體製程技術的進步,可以大幅減少晶片製作成本以及晶片面積,使得 高密度整合晶片或系統單晶片成為近年來晶片設計的趨勢主流,因此現代晶片趨向 複雜化的設計。同時在現代晶片的功能日益強大,以致晶片訊號的傳輸量逐漸增加 間接影響到晶片之輸入/輸出腳位的個數隨之增長,導致在封裝設計的特性上亦面臨 嚴苛的挑戰。目前在晶片的封裝設計中,主要分成邊緣式輸入/輸出(Wire-Bonding IO)和面積式輸入/輸出(Area IO)兩種設計方式。邊緣式輸入/輸出,如圖 1.1 所示。

主要是將輸入/輸出焊墊(I/O Pad)配置在晶片周圍並且以打金屬線方式連接至封裝 基板周邊上的接腳。然而隨著現代晶片輸入/輸出的腳位需求大幅提升,此時,晶片 的封裝設計已經無法滿足高輸入/輸出數目的設計需求,必須開始採用面積式輸入/

輸出來取代邊緣式輸入/輸出的封裝設計[1]。

圖 1.1 打線封裝技術

面積式輸入/輸出,如圖 1.2 所示。這種封裝設計也稱為覆晶(Flip-Chip)封裝技 術,起源於 1960 年代,當時是由 IBM 公司開發出來以控制節點高度為新製程的技 術,並且將它命名為 C4(Controlled Collapse Chip Connection)技術[2]、[3],開啟覆晶 封裝技術的概念[4]。在封裝的過程中,主要是將輸入/輸出以二維陣列的凸塊球

(11)

封裝基板上的腳位連接。這樣的封裝設計不僅省去了晶片與封裝實際接線的工作,

在晶片上的腳位之排列方式也從原本只侷限於一維的周長排列變成二維的面積排 列。它可以有效的解決目前現代晶片需求大量輸入/輸出腳位的數目,同時也具備良 好的電性特性與晶片體積小的優點[5]、[6]。

圖 1.2 覆晶封裝技術

1.2 重置層繞線

在覆晶封裝技術中,由於封裝基板上的腳位以變成二維陣列之凸塊球的排列方 式,當晶片內部之輸入/輸出焊墊要與二維陣列之凸塊球連接的時候,它們之間的連 接關係並不會像是邊緣式輸入/輸出的封裝設計會以一對一且很有規則性的對應方 式做連接。然而為了不更改整體封裝設計的情況下,因此在覆晶封裝技術下,晶片 的最上方必須增加一層金屬層,我們稱這一層金屬層為重置層(Re-distribution layer, RDL),而這一層主要是執行繞線的工作,詳細的位置與連線關係請參考圖 1.3。從 圖中可以看出所有晶片內部的連線會先經過輸入/輸出焊墊並會利用重置層配置每 一條連線與擺置在中央的二維陣列之凸塊球之間的連接,再來透過凸塊球與基板做 連接。由於重置層是一個特殊的金屬層,在重置層繞線上是不能以任意角度的連線 方式進行連線,所以在重置層繞線必須符合重置層的連線限制,將每一個輸入/輸出 焊墊(I/O Pads)重新配置到凸塊球(Bump Balls)上,完成每一個連接點的繞線[7]。

(12)

圖 1.3 重置層之連線示意圖

1.2.1 輸入/輸出焊墊的擺置方式

目前在重置層之輸入/輸出焊墊的擺置方式主要分成邊緣式輸入/輸出焊墊 (Boundary I/O Pad)和面積式輸入/輸出焊墊(Area I/O Pad)兩種情況。在邊緣式輸入 /輸出焊墊,如圖 1.4(a)所示。我們假設在晶片周圍有足夠的空間可以擺置下所有輸 入/輸出焊墊數目的時候,晶片與封裝之間的連接是會先將在晶片內部之輸入/輸出 緩衝器(I/O Buffer)連接至晶片上層的周圍之輸入/輸出焊墊上,再經由這些環繞在 晶片四周的輸入/輸出焊墊利用重置層配置每一條與晶片中央的二維陣列之凸塊球 的連線。

另一方面,如果在晶片內部有過多輸入/輸出緩衝器的數目需要連接至晶片上 層的周圍之輸入/輸出焊墊,此時可能會導致在晶片上層的周圍沒有足夠的空間來擺 置大量的輸入/輸出焊墊給晶片內部之輸入/輸出緩衝器來連接,那麼在這樣的情況 之下,勢必會將輸入/輸出焊墊擺置到中央的二維陣列之區域裡面,而晶片與封裝之 間的連接部分就會變成在晶片內部的輸入/輸出緩衝器(I/O Buffer)會直接連接至晶 片上層的輸入/輸出焊墊,再經由這些散落在晶片二維陣列之凸塊球裡的輸入/輸出 焊墊利用重置層配置每一條與晶片中央的二維陣列之凸塊球的連線。這種擺放輸入/

輸出焊墊的擺置方式,我們稱它為面積式輸入/輸出焊墊,如圖 1.4(b)所示。它可以 滿足多數輸入/輸出焊墊的數目需求。

(13)

(a) 邊緣式輸入/輸出焊墊 (b)面積式輸入/輸出焊墊 圖 1.4 晶片內部的輸入/輸出焊墊示意圖

1.2.2 重置層繞線問題

目前重置層已經被廣泛的應用在二維的集成電路繞線,在晶片上層之輸入/輸 出焊墊與二維陣列之凸塊球開始繞線之前,必須要先配置它們兩個部份之間輸入/

輸出的連線關係再進行繞線。目前在配置連線關係的議題上,主要有分成自由設定 的繞線(Free-Assignment Routing)與預先設定的繞線(Pre-Assignment Routing)兩種 繞線問題。首先在自由設定的繞線問題,如圖 1.6(a)所示。它並不會指定配置晶片 上層之輸入/輸出焊墊與二維陣列之凸塊球的連線關係,因此每一個晶片上層之輸入 /輸出焊墊可以任意的選擇二維陣列之凸塊球進行連接。

另一方面,在預先設定的繞線問題,如圖 1.7(a)所示。晶片上層之輸入/輸出焊 墊與二維陣列之凸塊球的連線關係是會預先被晶片與封裝的設計團隊給配置好,哪 一個腳位就該與哪一個腳位做連線。在有對應關係的晶片上層之輸入/輸出焊墊與二 維陣列之凸塊球會編制相同編號,在後續繞線的時候,有同一個編號的晶片上層之 輸入/輸出焊墊與二維陣列之凸塊球就是要互相連接。因此在後續的繞線過程中,已 經配置好的連線關係是不可以被更動的。這類型的繞線問題,在業界相當盛行。因 此在重置層設計中,有擺置晶片上層之輸入/輸出焊墊的方式和配置晶片上層之輸入

(14)

/輸出焊墊與二維陣列之凸塊球的連線關係兩種問題,間接可以引導出四種在重置層 的相關問題。分別為邊緣式輸入/輸出焊墊之自由設定連接問題、邊緣式輸入/輸出 焊墊之預先設定連接問題、面積式輸入/輸出焊墊之自由設定連接問題以及面積式輸 入/輸出焊墊之預先設定連接問題等四種。詳細的連線關係請參考圖 1.5。

圖 1.5 重置層的相關問題

(15)

由於重置層不同的繞線問題,在後續的繞線設計上也有所不同。在自由設定的 繞線問題,如圖 1.6 所示。這類型的問題會分成晶片上層之輸入/輸出焊墊與二維陣 列之凸塊球的連線關係和重置層的繞線兩個部份。如果在晶片上層之輸入/輸出焊墊 與二維陣列之凸塊球有配置良好的連線關係時,相對的在後續重置層的繞線設計就 會變得容易許多,如圖 1.6(b)所示。因此自由設定的繞線問題通常都會把重點放在 晶片上層之輸入/輸出焊墊與二維陣列之凸塊球的連線關係。

(a) 自由設定的重置層 (b)實際重置層的繞線 圖 1.6 自由設定的繞線問題

而在預先設定的繞線問題,如圖 1.7 所示。由於在晶片上層之輸入/輸出焊墊與 二維陣列之凸塊球的連線關係是預先被配置好的並且無法更動,在後續的繞線設計 比起自由設定的繞線問題就會少了在晶片上層之輸入/輸出焊墊與二維陣列之凸塊 球的連線關係這個部分。所以這類型的繞線問題單單只能依靠重置層的繞線設計來 完成。在這樣的繞線設計情況下比起自由設定的繞線問題必須要考量更多在重置層 的繞線限制。因此預先設定的繞線問題,如圖 1.7(b)所示。它比起自由設定的繞線 問題,如圖 1.6(b)所示。在繞線設計上,當然會來的困難許多。

(16)

(a) 預先設定的重置層 (b)實際重置層的繞線 圖 1.7 預先設定的繞線問題

1.2.3 不可繞的重置層

重置層的繞線設計中,在之前的章節有提到晶片上層之輸入/輸出焊墊與二維陣 列之凸塊球配置良好或是差勁的連線關係,間接會影響到重置層之繞線的難易度。

如果晶片上層之輸入/輸出焊墊與二維陣列之凸塊球的連線關係是一個很差勁的配 置方式,如圖 1.8(a)所示。在後續的繞線設計,會根據線寬與線距的限制,在相鄰 的二維陣列之凸塊球之間會有固定線段的容量限制可以從中通過,因此,在繞線的 時很容易會有超出繞線的容量限制,並且會產生繞線的擁擠情況,嚴重的話甚至會 導致整個重置層是不可繞線的情形。詳細的連線關係請參考圖 1.8(b)。

由於在預先設定的繞線問題中,最主要的限制是在晶片上層之輸入/輸出焊墊與 二維陣列之凸塊球的連線關係是已經被配置好的,這個連線關係並且是不可以被更 動。不像在自由設定的繞線問題,晶片上層之輸入/輸出焊墊與二維陣列之凸塊球的 連線關係可以由重置層的繞線設計者自行配置,因此不可繞的重置層也只有在預先 設定的繞線問題才會發生。

(17)

(a) 不可繞的預先設定 (b)不可繞的情況 圖 1.8 不可繞的重置層

1.3 延遲時間的繞線問題

隨著單晶片系統工作時脈越來越高,積體電路進入高度整合的超大積體電路 (Very Large-Scale Integration, VLSI)時代。訊號完整度(Signal Integrality)對於訊號傳 輸而言是非常重要的。如果訊號的傳輸過程中有偏差問題,間接的會影響整體單晶 片系統的運算速度,嚴重的情況會威脅到單晶片系統運作的正確性。因此晶片內部 的訊號傳輸之間要求符合同步訊號偏差在高速的超大型積體電路設計是一個很重要 的議題[8]、[9]。對於影響晶片內部的訊號傳輸之時間偏差的因素很多,要在眾多影 響訊號傳輸之時間偏差的因素之下要能準確的算出訊號傳輸之時間偏差不容易。目 前在相關問題的研究中所提出解決方法也很多,其中一個延遲線(Delay Line)可以簡 單的解決訊號同步問題,它最常被使用在印刷電路板(PCB)。首先假設以固定訊號 的連線寬度,單純計算訊號連線的長度偏差(Length Skew)來當作訊號連線的延遲時 間,因此延遲時間跟連線長度偏差會是成正比關係,如果連線要達到同步傳輸的目 標勢必就要調整訊號連線的長度。

在訊號連線之長度偏差的議題上,可以分成有限偏差(Limited Skew)與零偏差 (Zero Skew)兩種繞線問題。在有限偏差的繞線問題中,單晶片系統會有一個可容忍

(18)

的延遲範圍,我們假設訊號連線的長度偏差在可容許的範圍內,晶片也是可以正常 運作並不需要訊號連線一定要達到相同的長度。如圖 1.9(a)所示,P1和 B1的連線長 度為 11 與 P2和 B2的連線長度為 7,這兩條訊號連線之長度偏差是將它們長度相減 後取絕對值,所以長度偏差的結果為 4。如果訊號連線之長度偏差是在可容許的範 圍內,那麼這樣的訊號連線是可行。相反的,如果說訊號連線之長度偏差在可容許 的範圍之外,較短的連線線段勢必要有擴充線路的設計,才能使得它們之間的長度 偏差達到可容許的範圍內。而零偏差的繞線問題真的就必須要將所有特定的連線線 段擴充到都符合相同的連線長度。如圖 1.9(b)中的 P1 和 B1 與 P2和 B2的連線線段 長度所示。

(a)有限偏差:長度偏差為│11-7│=4

(b)零偏差:長度偏差為│11-11│=0 圖 1.9 訊號連線之長度偏差

(19)

在特定連線線段且符合長度偏差之限制的重置層繞線,可以歸納出以下三點繞 線限制:

第一點:連線線段的線段長度是以該線段穿過幾個單位格子來計算。

第二點:在繞線的時候,由於重置層是屬於一個特殊的金屬層結構,因此在每 一條連線必須要以水平或是垂直的連線方式完成繞線。

第三點:由於連線是在單層(Single Layer)的重置層之繞線面積上,所有的連線 線段是不允許有交錯的情況發生。

以圖 1.10(a)的重置層繞線結果所示,可以發現所有的連線並沒有相交的情況以 及每一條連線線段都是走水平或是垂直的連線。在特定連線線段 2 與連線線段 3 這 兩條線段需要符合長度偏差之限制的重置層繞線,如圖 1.10(a)所示的重置層繞線。

最後完成在特定連線線段且符合長度偏差之限制的重置層繞線結果會像圖 1.10(b) 所示的繞線結果。

(a)有限偏差 (b)零偏差 圖 1.10 特定的連線線段且符合長度偏差之重置層的繞線

(20)

1.4 相關研究

隨著現代晶片製程技術的進步與設計的複雜化,使得單晶片的輸入/輸出腳位個 數持續的成長,導致以往邊緣式輸入/輸出的封裝方式已不足供應設計時,漸漸開始 採用面積式輸入/輸出封裝方式之覆晶封裝技術,並且產生出重置層的設計發展。我 們可以根據在重置層上擺置輸入/輸出焊墊的方式以及配置晶片上層之輸入/輸出焊 墊與二維陣列之凸塊球的連線關係等兩種問題,可以間接的衍生出四種在重置層相 關的問題,而在問題的難易度方面會根據擺置晶片上層之輸入/輸出焊墊的問題,會 隨著邊緣式輸入/輸出焊墊的擺置方式變成面積式輸入/輸出焊墊的擺置方式而變困 難。另外在配置晶片上層之輸入/輸出焊墊與二維陣列之凸塊球的連線關係方面,也 會隨著自由設定的繞線變成預先設定的繞線而變困難。接下來會針對這四種重置層 繞線問題分別提出四篇相關論文,將一一介紹這四篇論文的優缺點,各論文詳細的 對照關係請參考圖 1.11。

(21)

首先是邊緣式輸入/輸出焊墊之自由設定連接問題[10]。在 2005 年提出全域繞 線與細部繞線兩個階段技術來完成。在全域繞線的部分,重置層會以對角的切割方 式可以分成四個部分,並且每一個部分是個別去執行繞線動作,最後再把四個部分 拼湊起來完成整塊重置層的繞線,詳細的分割關係請參考圖 1.12。

圖 1.12 重置層以分割線分成四個區塊[10]

接下來在繞線的部分會在任意兩個相鄰的晶片上層之輸入/輸出焊墊或是相鄰 的二維陣列之凸塊球之間都會插入中間點(Intermediate Node)以及在任意四個鄰近 的晶片上層之輸入/輸出焊墊與二維陣列之凸塊球並可形成方格的中心也都會插入 磚點(Tile Node),透過晶片上層之輸入/輸出焊墊、二維陣列之凸塊球、中間點以及 磚點來建立每條可連線關係,如圖 1.13 所示。然後利用網路流量(Network-Flow)的 演算法[11]來解決從晶片上層之輸入/輸出焊墊到二維陣列之凸塊球的連線關係,並 且創造每條可繞線的繞線路徑。在細部繞線的部分包括三個階段,交叉點配置(Cross Point Assignment)、連線順序決定(Net Ordering Determination)以及線路配置(Track Assignment)等等。他們提出的方法可以在一個邊緣式輸入/輸出焊墊之自由設定連 接問題找出最佳的可繞性、最短的總連線長度以及訊號差(Signal Skews)。由於這篇

(22)

論文提出的方法不會考慮到有 U 形迴繞的繞線方式,因此他們的方法只局限於自由 設定的繞線問題,不能處理預先設定的繞線問題。

圖 1.13 網路流量演算法示意圖[10]

第二篇是針對面積式輸入/輸出焊墊之自由設定連接問題[12]。在 2008 年提出晶 片封裝共同設計,考慮晶片內層之區塊端口(Block Ports)與輸入/輸出緩衝區(I/O Buffers)配置以及輸入/輸出緩衝區與二維陣列之凸塊球的繞線,詳細的連接關係請 參考圖 1.14。並提出全域繞線與重置層的繞線兩個階段技術來解決需求更多的晶片 上層之輸入/輸出焊墊的超大積體電路設計。在全域繞線的部分,首先會配置每區塊 端口連接一個唯一的輸入/輸出緩衝區,並決定在重置層中的晶片上層之輸入/輸出 焊墊再與和二維陣列之凸塊球的進行繞線。在任意兩個相鄰的二維陣列之凸塊球之 間都會插入中間點(Intermediate Node)以及在任意四個鄰近的二維陣列之凸塊球並 可形成方格的中心也都會插入磚點(Tile Node),透過晶片上層之輸入/輸出焊墊、二 維陣列之凸塊球、中間點以及磚點來建立每條可連線關係,如圖 1.14 所示。然後利 用最小花費最大流量(Minimum-Cost Maximum-Flow)演算法可以保證 100%的可繞 性以及最短的總連線長度。

(23)

(a)晶片層的繞線 (b)重置層的繞線 圖 1.14 繞線的結構[12]

圖 1.15 在單層的網路流量[12]

最後重置層的繞線有效的配置的繞線點(Passing Point Assignment)在兩個相鄰 的二維陣列之凸塊球,然後產生連線順序(Net ordering determination)以及迷宮繞線 (Maze routing)來完成繞線。但是他們提出的方法不能處理預先設定的繞線問題。

第三篇是針對邊緣式輸入/輸出焊墊之預先設定連接問題[13]。在 2009 年提出 連線編號的重新編制(Re-numbering)與恢復(Recovery),可以簡化複雜的全域繞線與

(24)

細部繞線。在連線編號的重新編制方法中,將晶片上層之輸入/輸出焊墊與二維陣列 之凸塊球連線關係的編號以逆時針依順序重新編制,每一個晶片上層之輸入/輸出焊 墊的編號被重新編制後,所對應該連接二維陣列之凸塊球的編號也一併會被更改,

詳細重新編制的關係請參考圖 1.16。基於一個有效的重置層的繞線方法分別為:繞 線區域的建造(Routing region construction)、全域連線的配置 (Global wire assignment) 以及史丹爾點的配置(Steiner-point assignment)等步驟可以初步將所有的連線給建構 出來,詳細重新編制的關係請參考圖 1.17。

(a)原圖 (b)連線編號重制與建立繞線區域

(25)

圖 1.16 重置層的繞線步驟示意圖[13]

後續的細部繞線會依靠通道交接點的配置(Crossing-point assignment)與實體路 徑配置(Physical path assignment)來完成,如圖 1.18 所示。最後再恢復晶片上層之輸 入/輸出焊墊的編號。這篇論文可以提供最大限度的連線數目達到最短的總連線長 度,但是不能去處不可繞的重置層之繞線問題。

圖 1.18 實體路徑的配置[13]

第四篇是針對面積式輸入/輸出焊墊之自由設定連接與預先設定連接問題[14]。

在 2009 年提出可以同時處理自由設定連接和預先設定連接的繞線。這篇論文是利用 德洛涅三角化測量(Delaunay Triangulation)與凡諾氏圖(Voronoi Diagrams)兩個幾何 記算技術。如圖 1.19 所示,德洛涅三角化會利用每一個二維陣列之凸塊球周圍的四 個點以及每一個晶片上層之輸入/輸出焊墊來分割成很多塊三角形。當要連接的晶片 上層之輸入/輸出焊墊會去尋找周圍的每一塊三角形區域,再利用凡諾氏圖去找出這 些三角形區域的中點,因此規劃所圍成區域的每一個點與區域中的點的距離一定比 其他區域的中點來的近。透過晶片上層之輸入/輸出焊墊、二維陣列之凸塊球以及晶 片上層之輸入/輸出焊墊周圍的每一個中點並且利用網路流量(Network-Flow)的演 算法來建立從晶片上層之輸入/輸出焊墊到二維陣列之凸塊球可連線關係以及提出

(26)

十種連線的情況,在預先設定連接的繞線會使用迷宮繞線(Maze routing)先完成最佳 連線,之後再處理自由設定連接的繞線。如有碰到交錯的情況,如圖 1.20 所示會選 擇拆掉該條連線再重新連線的方式來避免,進一步提高繞線的結果。

最 後 在 細 部 繞 線 分 成 三 個 部 分 , 規 劃 明 確 的 繞 線 線 段 (Routing-path refinement)、決定連線順序(Ordering Determination)以及迷宮繞線(Maze routing)來完 成繞線。這篇論文提出的方法考慮到自由設定連接與預先設定連接問題並可以達到 100%的可繞性以及最短的總連線長度,但也是不能去處不可繞的重置層之繞線問題 以及需要花費較長的時間繞線。

圖 1.19 德洛涅三角化與凡諾氏圖[14]

(27)

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

2.1 研究動機

從先前的四篇相關研究中,可以發現他們所提出的方法都只局限在一個可繞的 重置層繞線問題之研究,假設今天給定的題目是一個不可繞的重置層,那麼在之前 論文提出的方法中勢必都會導致一個繞線錯誤的情況,當然這類型的問題是屬於不 可繞的重置層之預先設定問題。

因此本篇論文提出一個具有可繞性導向能力的腳位重新配置(Routability-Driven Pin Reassignment),使得在邊緣式輸入/輸出焊墊之預先設定連接並且屬於不可繞的 重置層,可以達到 100%的可繞性。在先前相關的論文研究中,重置層繞線也沒有 提出關於延遲時間的問題。因此本篇論文在後續的繞線有考慮到訊號連線的長度偏 差的問題,因此本篇論文提出在特定的連線線段,利用該連線周圍有限的可繞區域 進行擴充線路的動作並且達到零偏差的情況。在重置層繞線的設計,由於晶片上層 之輸入/輸出焊墊連接二維陣列之凸塊球的需求數量相當龐大,而且整體重置層繞線 必須要盡量減少繞線區域達到最短的總連線長度以及必須在單一一層的平面上完成 所有的繞線。因此在本篇論文中考慮重置層上的每條繞線並不影響其他條繞線路徑。

因此本篇論文流程為,先分析不可繞的重置層,在二維陣列之凸塊球中以少量 的交換方式,使得不可繞的重置層變成是一個可繞的重置層,再進一步執行預先設 定的繞線,最後在特定連線的線段長度達到零偏差之重置層繞線。本篇論文的問題 詳細定位請參考圖 1.11。

2.2 問題描述

本篇論文考慮在預先設定之不可繞的重置層經過腳位重新配置的處理後,每條 晶片上層之輸入/輸出焊墊連接至二維陣列之凸塊球的線段均可繞線成功,並且在特 定的連線線段達到零偏差之繞線長度限制。在腳位重新配置的部分,由於重置層繞 線是在單一一層的平面上設計以及根據連線線寬與線距的限制,因此每條線段是不

(28)

能有交錯的情況發生並且在相鄰的二維陣列之凸塊球之間會有連線線段從中通過的 容量限制,透過腳位重新配置的處理來滿足以上敘述的限制後,即可繞線成功。

本篇論文以可繞性導向能力的腳位重新配置在預先設定之重置層繞線的輸入如 下:在一個重置層的平面周圍擺放 m 個輸入/輸出焊墊為 P={p1, p2, …,pm}集合以 及平面中央擺放 n 個二維陣列之凸塊球為 B={b1, b2, …,bn}集合,每條 m 與 n 之間 對應兩點或多點的連線線段設為 N,需要達到零偏差的連線線段 N 會在 T 集合裡,

相鄰的二維陣列之凸塊球之間的容量限制為 C。繞線的限制為:必須在單層的平面 上完成所有的繞線以及線段與線段之間不能有交錯的情況發生。在繞線的過程中,

必須要符合預先設定的連線關係繞線,並且在特定的連線線段達到零偏差的繞線長 度。最後的輸出為:將所有在重置層中的線段繞線成功以及總連線長度最短。

如圖 2.1(a)為例,在重置層的平面周圍擺放 36 個輸入/輸出焊墊以及在平面中 央擺放 36 個二維陣列之凸塊球,在 N3 與 N17 的連線需要達到零偏差的繞線長度。

相鄰的二維陣列之凸塊球之間可通過的連線容量為 2。最後的繞線結果會像圖 2.1(b) 所示,其中在二維陣列之紅色編號的凸塊球是有經過腳位重新配置的凸塊球。

(a) (b)

(29)

第三章 具有可繞性導向能力的腳位重新配置之重 置層的預先設定繞線

在這一章節裡,首先根據輸入的輸入/輸出焊墊和二維陣列之凸塊球的數量與連 線關係經過連線編號之重新編制 (Transformation Of Net Renumbers)後,可以獲得一 個有順序的連線編號之重置層來降低後續繞線的複雜度。我們利用簡單的全域繞線

(Global Routing)和細部繞線(Detailed Routing)兩個有效率的演算法來完成主要的 重置層繞線。

在全域繞線(Global Routing)中,提出一個可繞性導向能力的腳位重新配置 (Routability-Driven Pin Reassignment)之方式來檢查重置層的可繞性,若是不可繞的 重置層則需要進行在二維陣列之兩個凸塊球的交換動作來獲得可繞的重置層。之後 再利用全域連線配置(Global Wire Assignment),初步的找出每條連線之路徑後,並 根據史丹爾點的配置(Steiner-point Assignment)可以將已被拆成多條兩點的對應連線 關係還原成多點的連線關係。在細部繞線(Detailed Routing)中,利用通道交接點的 配置(Crossing Point Assignment)與實體路徑的配置(Physical Path Assignment)等兩個 步驟,將所有在重置層中的連線線段配置實際的繞線路徑。

最 後 會針對 特 定的 連 線線 段 處理 長 度偏差的 問題 透過 連線 長度差的補 強 (Length-skew Correction) 來 達 到 零 偏 差的 繞線 長 度 。 以 及 透 過 連線 編 號 的 恢 復 (Net-Number Recovery)來還原重置層之預先設定的原始連線編號,完成在重置層的 預先設定繞線。在具有可繞性導向能力的腳位重新配置之重置層的預先設定繞線 (RDL Pre-Assignment Routing with Routability-Driven Pin Reassignment)的整體的流 程如圖 3.1 所示。

(30)

圖 3.1 重置層的預先設定繞線流程圖

3.1 連線編號之重新編制

在邊緣式輸入/輸出焊墊之預先設定連接問題,考量一維串列對應至二維陣列之 一對一或者是一對多配置連線的時候,連線上並沒有一定的順序規則存在,所以會 有許多種可能的連線方法,使其複雜度很高。由於本篇論文的重點放在可繞性為導 向之重置層的設計,所以避開連線的交集是優先考量的因素,而連線順序的好壞將 會影響最後可繞性的高低。因此,在這部分使用簡單的連線編號之重新編制的方式 來達到有順序性的連線順序,並且降低後續在全域繞線與細部繞線的複雜性。

在連線編號之重新編制這部分,首先假設 K 是代表幾個點的對應連線關係,將 K 點的對應連線拆成有(K-1)條之兩點的對應連線,為了能夠在二維陣列之凸塊球所 形成的二維區域中能夠有順序性的建立連線,會以逆時針的方向將在晶片上層之輸 入/輸出焊墊所對應的連線編號之重新編制。如圖 3.2(a)所示的結果,利用連線編號 之重新編制後會形成如圖 3.2(b)所示的結果。因此晶片上層之輸入/輸出焊墊所對應 的二維陣列之凸塊球的編號也會跟著改變。

(31)

(a) (b) 圖 3.2 連線編號之重 新編制之示意圖

3.2 可繞性導向能力的腳位重新配置

在這個部分,首先會將整體有順序的連線編號之重置層分成四個部分個別去建 立繞線區域。根據各個部分的繞線區域來分析重置層可不可繞,若是不可繞的重置 層並會透過在二維陣列之凸塊球中以少量的交換方式來完成可繞性導向能力的腳位 重新配置。

3.2.1 建立繞線區域

在重置層經過連線編號之重新編制之後,我們會將整個重置層周圍之輸入/輸出 焊墊序列依照重置層的四個邊分割成下、右、上以及左邊四個部分,如圖 3.3(a)所 示。然後各別依序去處理後續的繞線,並且每一個部分都是個別獨立的,與其他的 部分完全互不相干,最後等到四個部份都完成後,再將這四個部分的繞線結果拼起 來,即可完成整塊重置層的繞線。

在之前已經完成了連線編號之重新編制,所以在每一個部分輸入/輸出焊墊編號 會是一個持續增加序列。我們會根據輸入/輸出焊墊編號的序列所對應二維陣列之凸

(32)

塊球編號,按照順序的把這些二維陣列之凸塊球給依依連接起來建立一條串列,這 條串列會像是一條邊界可以劃分出該部分的繞線區域。因此,在後續該部分的繞線 線段都會被包含在這個繞線區域裡面不會有超出繞線區域的情況發生。所以,我們 在建立串列的過程中必須要符合整條串列是不可以有互相交錯的連接限制。

在建立一條串列的過程中,我們主要是以可繞性為導向的繞線設計,所以在建 立的串列所能圍成繞線區域的面積越大越好,才能使得在後續的繞線中有足夠的繞 線區域完成繞線。在串列的連線線段有兩種連線的方式。其一、收尋周圍的二維陣 列之凸塊球編號有下一個要串連的二維陣列之凸塊球編號,該線段會直接執行連線 的動作;其二、當周圍沒有收尋到二維陣列之凸塊球編號,該線段會從相鄰的兩個 凸塊球之間的通道穿過,但是必需要滿足該線段要連接的凸塊球編號要介於所穿過 兩個相鄰之凸塊球編號的範圍之間。當然在連接的時候必須要符合沒有與該串列發 生交錯的情況。如圖 3.3(a)的藍色連線所示,整條串列所圍成的面積屬於下邊單位 的繞線區域。後續完成其他四個部分併起來就會變成如圖 3.3(b)結果。

(a) (b) 圖 3.3 建立繞線區域之示意圖

(33)

3.2.2 分析不可繞線的重置層

在建立繞線區域之後,依照這四個部分的繞線區域可以分析重置層是不是可繞 的情況。由於每一個部分所圍成的繞線區域是屬於該部分的繞線區域,因此在有兩 兩部分之間的繞線區域有重疊的情況發生時,這會表示在這個重疊的區域裡面,這 兩個部分會有各個部分的連線經過此重疊的區域通過並會產生連線交錯的情況,那 麼在單一一層的重置層繞線中是不能允許這有連線交錯的情況發生。因此,重疊的 繞線區域問題會是分析重置層可不可繞的一個依據。

在不可繞的重置層中,如果有重疊的繞線區域問題是必須要去避免的,因此,

我們簡單的利用以兩個在二維陣列之凸塊球的交換方式,可以使得在有重疊的繞線 區域變成沒有重疊的情況。以圖 3.4(a)簡單的例子來看,兩個各別依照各自在晶片 上層之輸入/輸出焊墊的編號順序建立繞線區域後,有形成重疊的繞線區域的情況,

首先在兩部分建立繞線區域的凸塊球之間尋找有互相跨越到另一塊繞線區域的凸塊 球,其中 i 與 j 的二維陣列之凸塊球分別落在另一塊繞線區域的範圍裡面。因此,

這兩個二維陣列之凸塊球需要做交換的動作來減少重疊的繞線區域,每交換完一次 需要再重新建立繞線區域,直到沒有重疊的繞線區域,結束交換。圖 3.4(b)為最後 交換完的結果可以發現兩個繞線區塊會是個別獨立的。

(a) (b) 圖 3.4 重疊的繞線區域問題之示意圖

(34)

另一方面,在邊緣的晶片上層之輸入/輸出焊墊要與二維陣列之凸塊球連接的時 候,如果說凸塊球是在二維陣列的邊緣,當然邊緣的晶片上層之輸入/輸出焊墊會直 接與凸塊球連接。那麼凸塊球若是在二維陣列的內部,要連線的線段必須由兩個相 鄰在二維陣列邊緣的凸塊球之間連進二維陣列裡與凸塊球連接。由於在邊緣的晶片 上層之輸入/輸出焊墊經過連線編號之重新編制後,連接的線段編號也是會有順序性 連接。使得兩個相鄰在二維陣列邊緣的凸塊球編號之間就代表著有那幾條該編號的 連線線段必須從這兩個相鄰的凸塊球通過,否則線段與線段之間還未連進到二維陣 列裡就會產生線段交錯的情況。

在重置層的連線也有線寬與線距的限制,所以相鄰的二維陣列之凸塊球之間會 有固定線段的重疊的繞線區域問題可以從中通過。如果兩個相鄰在二維陣列邊緣的 凸塊球之間需要通過的線段數目有超過容量限制時,勢必是會有些線段無法從中通 過。因此,容量限制的問題也是分析重置層可不可繞的方式。

在不可繞的重置層中,如果兩個相鄰在二維陣列邊緣的凸塊球之間有容量限制 的問題是必須要去避免的,因此,我們簡單的利用以兩個在二維陣列之凸塊球的交 換方式,可以使得在相鄰的二維陣列之凸塊球之間會符合線段的容量限制。以圖 3.5(a)的例子來看,依照晶片上層之輸入/輸出焊墊的編號順序建立繞線區域後,假 設相鄰的二維陣列之凸塊球之間的容量限制為 C,觀察兩個相鄰在二維陣列邊緣的 凸塊球編號 i 與 j 之間是否有大於 C 的連線通過,如果 j-i 大於 C+1,代表這兩相鄰 的二維陣列之凸塊球之間有超過容量的線段從中通過,需要依照繞線區域連線尋找 到 i+C+1 這個凸塊球與邊緣 j 的凸塊球做交換的動作來避免容量限制的問題。每交 換完一次需要再重新建立繞線區域,直到整體的繞線區域沒有容量限制的問題,結 束交換,如圖 3.5(b)所示。

(35)

(a) (b) 圖 3.5 容量限制的問題之示意圖

詳細重置層的繞線包含下、右、上以及左邊四個部份的輸入/輸出焊墊,總共可 以獲得四塊繞線區域,如圖 3.6(a)所示。很明顯的在下與右的繞線區域有重疊的繞 線區域問題,藉由交換編號 9 與 13 的兩個凸塊球來避免這種重疊的關係,如圖 3.6(b) 所示。

(a) (b) 圖 3.6 重疊的繞線區域問題之交換結果

(36)

另一方面,在下邊的繞線區域裡的兩個相鄰在二維陣列之凸塊球之間有容量限 制的問題,黑色的箭頭就代表著有幾條連線會從該相鄰的二維陣列之凸塊球之間通 過。引導出有兩個不可繞的情況,藉由交換編號 4 與 6,如圖 3.7(a)所示。以及編號 8 與 9,如圖 3.7(b)所示。的兩組對應的凸塊球來避免容量限制的問題。最後完成所 有可繞性導向能力的腳位重新配置之交換動作後,而圖 3.7(c)為最後的腳位重新配 置結果。

(a) (b)

(37)

3.3 全域繞線(Global Routing)

首先根據輸入的輸入/輸出焊墊和二維陣列之凸塊球的數量與連線關係經過連 線 編 號 之 重 新 編 制 後 , 先 套 用 前 一 章 節 可 繞 性 導 向 能 力 的 腳 位 重 新 配 置 (Routability-Driven Pin-Reassignment)來檢查出重置層的可繞性,不可繞的重新配置 則要進行二維陣列之凸塊球的交換動作,達到可繞的重置層。在可繞的重置層中,

我們利用全域連線配置(Global Wire Assignment)與史丹爾點的配置(Steiner-point Assignment)兩個部分來完成初步的重置層繞線。

3.3.1 全域連線配置(Global Wire Assignment)

在可繞的重置層的繞線中,我們首先會將重置層可繞線的區域分成環形區域 (Ring Region)與陣列區域(Array Region)兩個部分來處理。環形區域是在外圍晶片之 輸入/輸出焊墊到外圍二維陣列之凸塊球之間的區域,另一個陣列區域是在中央的二 維陣列之凸塊球所有的區域範圍,如圖 3.8 所示。全域連線配置的繞線會利用之前 將重置層建立四個部份的繞線區域進行繞線,所有該部分繞線的連線線段是不可以 超出各自的繞線區域,然後在各自的繞線區域分成環形區域與陣列區域兩個區塊處 理繞線,合併起來完成一個部分的全域連線。最後等到四個繞線部分都完成之後,

再將這四個部分的繞線結果拼起來,即可完成全域連線配置的繞線。

(38)

圖 3.8 重置層可繞線的區域

在環形區域連線配置的部分,首先在每一塊的繞線區域裡面會尋找最外圍的二 維陣列之凸塊球,將這些凸塊球所排成的序列我們稱它為最大凸塊球序列(Maximum Bump-Ball Sub-List)。由於重置層只允許單一一層的繞線,因此,在最大凸塊球序列 的凸塊球編號會是一個由小排到大順序,而且在相鄰的凸塊球編號都會滿足容量的 限制。所以在最大凸塊球序列上的每一個凸塊球所對應在晶片外圍之輸入/輸出焊墊 可以直接與凸塊球配置全域連線。其中不在最大凸塊球序列裡的凸塊球所對應在晶 片外圍之輸入/輸出焊墊的連線路徑可以被配置到在最大凸塊球序列裡相鄰的凸塊 球編號之間。最後環形區域連線配置完後,在最大凸塊球序列裡需要保持連線編是 有順序的增加的序列。如圖 3.9(a)所示,藍色的線段是繞線區域,在這區域的外圍 可以找到最大凸塊球序列為 1、4、5、8 和 9 等凸塊球編號。在晶片外圍的 1、4、5、

8 和 9 等輸入/輸出焊墊編號會直接跟對應的凸塊球編號配置部分的全域連線,如圖 3.9(b)的紅色線段所示。其他的 2、3、6 和 7 等輸入/輸出焊墊的連線路徑可以被配 置到該屬於相鄰的凸塊球編號之間,如圖 3.9(b)的綠色線段所示。

(39)

(a)

(b)

圖 3.9 環形區域連線配置的示意圖

在陣列區域連線配置的部分,如圖 3.10(a)所示,每四個相鄰的 2X2 陣列之凸塊 球並可以構成一個格子(Grid),在全域連線配置的兩點部分線段,其中一點都會被配 置在格子中之兩個相鄰的凸塊球之間的通道,如圖 3.10(b)所示,線段 Ni被配置在 Bj與 Bk兩個相鄰的凸塊球之間。利用相鄰 2X2 陣列之凸塊球的格子在部分的全域 連線配置可以分成兩種繞線的情況。情況一、如果連線的編號與在格子中的任意一 個凸塊球編號相同時,該部分的連線線段會與相同編號的凸塊球直接連接,將配置 完成整條全域連線。如圖 3.10(b)的情況一所示,該部分的連線線段 Ni的編號與在 格子中的 Br凸塊球編號相同,就如紅色線段所示,該部分的連線線段會直接與 Br

的凸塊球編號配置部分的全域連線;情況二、如果連線的編號是在格子中的兩個相 鄰凸塊球編號範圍之內,而該部分的連線線段可以從這兩個相鄰的凸塊球中間穿 過,進入下一個相鄰 2X2 陣列之凸塊球的格子,繼續尋找連線路徑配置。如圖 3.10(b)

(40)

的情況二所示,該部分的連線線段 Ni的編號在格子中的 Br與 Bj兩個相鄰凸塊球編 號範圍之內,就如紅色線段所示,該部分的連線線段會被配置在格子中的 Br與 Bj

兩個相鄰凸塊球之間。持續反覆情況二的動作配置部分的全域線連,最終會回到情 況一的配置連線,完成整條全域連線。

(a)

(b)

圖 3.10 陣列區域連線配置的示意圖

在重置層上,每一個部分的全域連線配置可以透過合併環形區域與陣列區域的 兩個全域連線配置結果來完成,最後再完成四個部分的全域連線配置結果,合併起

(41)

圖 3.11 全域連線配置的繞線結果

3.3.2 史丹爾點的配置(Steiner-point Assignment)

由於先前連線編號之重新編制的動作,在全域連線配置之後會使得所有的連線 都是兩點的對應連線,任何一個凸塊球會有(K-1)個凸塊球編號並且存在有(K-1)條之 兩點對應的全域連線連接到相同的凸塊球上。而在重置層上,多點對應的全域連線 必須藉由史丹爾點的配置(Steiner-point Assignment)來合併最初(K-1)條之兩點對應 的全域連線,進一步的合併成 K 點對應的全域連線。在合併多條之兩點對應的全域 連線,其最主要的目的是為了可以減少在重置層繞線上的總連線長度。

因此,一個可行的合併關係是根據每兩條兩點對應的全域連線去配置一個史丹 爾點來合併全域連線。由於需要合併的所有兩點對應的全域連線都會往共同的凸塊 球集中,所以我們假設這些全域連線需要連接到共同的凸塊球為原點以二維座標劃 分四個象限,在兩條兩點對應的全域連線,如果位於同一象限或相鄰象限可以配置 一個史丹爾點來合併全域連線並且要考慮不與其他全域連線相交的情況下配置。如 圖 3.12 所示,在同一個象限兩條需要合併之兩點對應的全域連線,史丹爾點會被配 置在同一個象限裡面合併全域連線。如圖 3.13 所示,在相鄰象限兩條需要合併之兩 點對應的全域連線,史丹爾點會被配置在相鄰象限的邊上合併全域連線。

(42)

(a)兩點對應的全域連線 (b)多點對應的全域連線 圖 3.12 同一個象限配置斯坦

(a)兩點對應的全域連線 (b)多點對應的全域連線 圖 3.13 相鄰象限配置史丹爾點

3.4 細部繞線(Detailed Routing)

在完成全域繞線之後,這個章節會開始配置實際的連線位置,在連線的過程中 並且要符合在重置層上繞線等等的限制。相對於在細部繞線(Detailed Routing)的過 程,我們進一步將它分為兩個部分:

第一部分:通道交接點的配置(Crossing Point Assignment) 第二部分:實體路徑的配置(Physical Path Assignment)

(43)

3.4.1 通道交接點的配置(Crossing Point Assignment)

在任何兩個相鄰的凸塊球之間通過的所有全域連線,可以發現這些全域連線是 一個不斷增加的序列配置在相鄰的凸塊球之間並且保持連線不相交的情況。根據最 小的線寬以及兩條線的線距等重置層的限制,在兩個相鄰的凸塊球之間會被劃分出 可行的繞線路徑以及可以經過的連線個數。任何一個全域連線要從相鄰的凸塊球之 間通過的時候,我們必須進一步的在相鄰的凸塊球之間配置可行的交接點給全域連 線通過,可以滿足連線線段不會相交在單一一層的繞線平面上等等重置層繞線的限 制。這些交接點我們稱它為通道交接點(Crossing Point)。基本上,通道交接點的配 置(Crossing Point Assignment)是在陣列區域(Array Region)裡面完成。

在配置通道交接點的過程中,我們會考慮到全域連線線段的兩點位置之間所行 成之合理的繞線區域,只要將全域連線線斷落在此區域內,那最後的繞線結果必定 會是最短的連線距離。首先我們假設任何兩個相鄰凸塊球之間有 t 條繞線路徑編號 為 1 到 t 從 Br和 Bs這兩個相鄰的凸塊球編號中通過,我們會將所有在 Br和 Bs這 兩個相鄰凸塊球之間的全域連線分成三個繞線區域來配置通道交接點分別為左邊線 路放置(Left Wiring Set)設為 NL、中間線路放置(Straight Wiring Set) 設為 NS以及右 邊線路放置(Right Wiring Set) 設為 NR,詳細的假設關係請參考 3.14(a)。

在左邊線路放置的部分,根據從左邊連進相鄰凸塊球之間的全域連線,依照這 些全域連線的編號以持續增加的順序在相鄰凸塊球之間從左至右配置通道交接點。

再來處理右邊線路放置的部分,根據從右邊連進相鄰的二維陣列之凸塊球之間的全 域連線,依照這些全域連線的編號以持續遞減的順序在相鄰的二維陣列之凸塊球之 間從右至左配置通道交接點。最後中間線路放置的部分,根據從上邊連進相鄰的二 維陣列之凸塊球之間的全域連線,依照這些全域連線的編號以減少繞線長度為優先 考量以持續增加的順序在相鄰的凸塊球之間尋找剩餘可用的繞線路徑從左至右配置 通道交接點,詳細的通道交接點的配置關係請參考 3.14(b)。最後完成通道交接點的 配置後,可以發現在陣列區域裡通道交接點配置在所有全域連線上,如圖 3.15 所示。

(44)

(a) (b) 圖 3.14 通道交接點的配置示意圖

圖 3.15 通道交接點配置後的結果

3.4.2 實體路徑的配置(Physical Path Assignment)

在前一章節完成通道交接點配置的結果後,我們僅需要將原本的全域連線線段 改成水平及垂直的方向連線來滿足重置層繞線的限制。在本章節,我們會將實體路 徑的配置(Physical Path Assignment)分成環形區域與陣列區域兩個部分來處理。

在陣列區域之實體路徑的配置部分,我們觀察通道交接點配置的結果,可以發 現所有的通道交接點只被配置在兩兩相鄰 2X2 的二維陣列之繞線格子(Grid)邊上,

(45)

情況。首先我們會假設在格子內部的每一條兩點所連成的全域連線線段,由於繞線 必須要符合水平及垂直的方向連線,可以將所有在繞線格子的連線簡單分成 L 型連 線(L-Type Connections)與 I 型連線(I-Type Connections)兩種連線線段組合完成,如圖 3.16 所示。

在陣列區域配置實體路徑的過程中,由於先前的通道交接點已經是有符合重置 層繞線的線寬與線距限制,因此先將歪斜的連線線段直接貼上 L 型連線線段並且會 符合實際路徑位置。而在繞線格子裡,任意兩個 L 型連線也許會有互相產生線段相 交的情況。因此在有線段產生相交的情況時,我們必須要利用基於路徑配置的繞線 (Track-Assignment-Based Routing)方法[15],初步的將實際可走的路徑位置給建構出 來,如圖 3.16 的紫色虛線。根據原始的 L 型連線所規劃出來實際可走的路徑位置的 繞線區域與覆蓋區域之間的關係,尋找其他實際可走的路徑位置,然後沿著實際可 走路徑位置依依貼上 L 型連線替換掉最原始的 L 型連線來避開線段相交的情況。在 完 成 所 有 L 型 連 線 的 處 理 後 , 接 著 利 用 河 流 繞 線 演 算 法 (River Routing Algorithm)[16],以順時針或是逆時針的順序將剩餘還未處理的線段尋找出一個連線 順序然後將 I 型連線配置實體路徑在該線段上,完成在陣列區域之實體路徑的配置 部分,如圖 3.17 所示為在陣列區域之實體路徑的繞線結果。

(a) (b) 圖 3.16 繞線格子的線段連接

(46)

圖 3.17 陣列區域之實體路徑的繞線結果

在環形區域之實體路徑的配置部分,由於在陣列區域裡所有的全域連線都會被 配置到陣列區域外環的通道交接點,一般觀察環形區域的細部繞線可以被看成河流 繞線的問題,由於之前經過連線編號之重新編制的關係後,在環形區域的連線編號 會有順序性排列,因此我只要依照連線的編號順序依序處理來完成。首先所有在環 形區域兩點對應的全域連線可以分成正向連接(Positive Connection)與負向連接 (Negative Connection)兩個類型,如圖 3.17 所示。在正向連接的類型,我們定義這類 型的任何兩點對應的連線線段之斜率為正。另一方面,在負向連接的類型,我們定 義這類型的任何兩點對應的連線線段之斜率為負。在任何一個正向連接要配置實體 路徑可以藉由從右到左的樓梯路徑配置(Staircase Track Assignment)來完成。相反 的,在任何一個負向連接要配置實體路徑 可以藉由從左 到右 的樓梯路徑配置 (Staircase Track Assignment)來完成。

(47)

(a)正向連接 (b)負向連接 圖 3.17 環形區域之連線情況

完成實體路徑的配置在陣列區域與環形區域兩個部分後,如圖 3.18 所示分別為 陣列區域與環形區域最後的繞線結果,可以發現到沒有任何一條線段有互相交錯的 情況發生,也符合重置層的繞線限制。

圖 3.18 實體路徑的配置之繞線結果

3.5 長度偏差的修正

在完成全域繞線與細部繞線的處理後,一個完整的重置層之繞線大致上以經完 成。由於本篇論文有考量到時間延遲的繞線問題,本章節會針對特定的連線線段利 用論文[17]中所使用的 R-flip 來增加繞線的方法來擴充較短的連線線段來達到相同

(48)

的長度。

首先我們會根據最小的線寬以及兩條線的線距等重新分層的限制,在二維陣列 的繞線區域會劃分許多格子,如圖 3.19 的紫色格子所示。而連線線段的長度計算是 該線段的繞線長度去除以格子的長度以格子數的單位計算。在擴充連線長度的部分 也是以格子為單位的方式下擴充。在特定必須要符合長度偏差之限制的連線中,會 先去比較這些特定的連線然後找出最長的連線線段會把它當作一是個要達當擴充線 段長度的基準,而其他的連線線段就必須要去增加繞線長度達到所有特定的連線都 符合長度偏差的限制。如圖 3.19 橘色連線所示,假設 N2與 N17這兩條連線線段需 要符合長度偏差的限制,由於 N17的線段比 N2的線段長,因此只要去擴充 N2的連 線線段,擴充到與 N17的連線線段一樣長,並可符合長度偏差之限制。

圖 3.19 在二維陣列的繞線區域劃分格子之示意圖

我們會利用 R-flip 增加繞線之方式的概念來增加連線的長度,此方法是會先從 連線線段的起始點開始向該連線線段的周圍收尋可繞線的空間,而收尋的空間必須 是要與該連線線段相鄰,當收尋到兩個相鄰的可繞線的空間,即可擴充連線線段。

(49)

的收尋與擴充,直到需要擴充的線段與基準的連線線段符合長度偏差之限制則停 止。如圖 3.20 所示,P2與 B2對應的連線線段需要擴充線段,首先會先收尋兩個相 鄰可繞線的空間,如圖 3.20(a)的紅色框框。然後擴充繞線,如圖 3.20(b)所示。再次 收尋兩個相鄰可繞線的空間,如圖 3.20(c)的紅色框框。然後擴充繞線,如圖 3.20(c) 所示完成擴充連線長度。

(a)連線長度差為 4

(b) 長度偏差為 2

(c) 長度偏差為 0 圖 3.20 擴充連線長度示意圖

(50)

在重置層上的擴充線段繞線的部分,由於環形的繞線區域無法有效的劃分格 子,所以在擴充連線長度的部份我們只能仰賴陣列的繞線區域來完成。如圖 3.21(a)、

圖 3.21(b)、圖 3.21(c)所示經由反覆的收尋與擴充 N2的連線線段,最後完成的結果 如圖 3.22(d)所示。

(a) (b)

(c) (d) 圖 3.21 在二維陣列的繞線區域擴充連線長度之示意圖

(51)

3.6 連線編號的恢復

當連線長度差的補強完成後,重置層繞線已經全部完成,如圖 4.17(a)所示。由 於最初還沒進行重置層的繞線時,有經過連線編號之重新編制的動作,使得目前的 連線編號是有被更動過的。因此,在這章節裡,將目前的在重置層上的連線編號給 還原到最初始的連線編號。最後連線編號恢復後的詳細重置層之繞線結果,如圖 3.22(b)所示。

(a) (b) 圖 3.22 連線編號的恢復後的結果

(52)

第四章 實驗結果

4.1 實驗平台與測詴檔

本論文所模擬使用的程式語言為標準 C++,程式語言的平台為 Microsoft Visual Studio 2008,所執行程式的電腦平台為 Intel Core2 Quad/Q6600 2.4Hz,記憶體為 2GB。本實驗中所使用 Synopsis Company 的測詴檔為 Ex01、Ex02 以及 Ex03 是可繞 的預先設定連線。而另外三個 Ex04、Ex05 以及 Ex06 測詴檔是修改 Ex01、Ex02 以 及 Ex03 三個測詴檔,隨機產生預先設定連線,如表 4.1 所示。

測詴檔 輸出/輸入焊墊數量 凸塊球數量 容量限制 連線數量

EX01 144 169 4 144

EX02 143 169 4 143

EX03 150 225 6 150

EX04 144 169 4 144

EX05 143 169 4 143

EX06 150 225 6 150

表 4.1 測詴檔案

4.2 實驗結果

本實驗結果針對論文[13]提出在重置層的預先設定之繞線演算法做比較。如表 4.2 所示,本篇論文提出具有可繞性導向能力的腳位重新配置之演算法在 Ex01、Ex02 以及 Ex03 三個可繞的重置層之測詴檔都可以達到 100%的可繞性也在合理的程式執 行時間。另外在 Ex04、Ex05 以及 Ex06 三個不可繞的重置層之測詴檔,由於論文[13]

提出在重置層的預先設定之繞線演算法並沒有考慮到不可繞的預先設定之繞線問

(53)

實驗結果上能夠實現 100%的可繞性並且也在合理的程式執行時間。很顯然的,從 實驗結果可以證明本篇論文提出具有可繞性導向能力的腳位重新配置之演算,在覆 晶封裝設計中的重置層之繞線是非常有效率的演算法。

圖 4.1 為 144 條連線的 Ex04 測詴檔,建立繞線區域後的結果,如圖 4.2 所示。

在四個繞線區域中,下與右部分的繞線區域有區域重疊的情況以及 1 與 7 兩個凸塊 球編號之間連線的容量限制有超出的情況,因此在 32 與 37 的凸塊球編號以及 6 與 7 的凸塊球編號這兩處需要有交換的動作,交換完後的結果如圖 4.3 所示。後續的全 域繞線以及細部繞線的結果,如圖 4.4 與圖 4.5 所示。本篇論文也考慮到在特定的 連線線段根據長度偏差僅在該線段附近做迴繞來得到符合長度的結果,其中在連線 編號 23 與 143 這兩條線段為有訊號同步限制的連線,圖 4.6 為 Ex04 測詴檔的最後 繞線結果。

重置層之預線設定繞線演算法[13] 本篇論文

測詴檔 連線數量(可繞性) 連線長度 時間 連線數量(可繞性) 連線長度 時間 EX01 144(100%) 11490 0.23 144(100%) 11490 0.24 EX02 143(100%) 11152 0.27 143(100%) 11152 0.27 EX03 150(100%) 23550 0.21 150(100%) 23550 0.22 EX04 138(95.8%) 11490 0.29 144(100%) 11964 0.30 EX05 136(95.1%) 11152 0.30 143(100%) 11721 0.32 EX06 142(94.7%) 23550 0.27 150(100%) 24309 0.28

表 4.2 實驗比較結果

(54)

圖 4.1 Ex04 測詴檔

(55)

圖 4.3 Ex04 測詴檔之腳位重新配置結果

圖 4.4 Ex04 測詴檔之全域繞線的結果

(56)

圖 4.5 Ex04 測詴檔之細部繞線的結果

(57)

第五章 結論與未來展望

隨著製程的進步,使得單一晶片上的輸出輸入腳位持續的成長,電路設計趨向 越來越趨複雜封裝技術對晶片設計的影響當然也就更加重要,從最初的邊緣式的輸 入/輸出演變為面積式的輸入/輸出之覆晶的封裝技術並產生出新的繞線議題。

我們蒐集了許多重置層的繞線之相關研究,發現以往都是針對一個可繞的重置 層進行繞線的動作,對於一個不可繞的重置層之預先設定問題,在本論文中即可透 過腳位重新配置的兩個交換處理方式來解決,使得不可繞的重置層也可以變成可繞 的情況。

本篇論文提出有效率的重新配置之預先設定繞線的演算法可以簡單快速的獲得 繞線結果並且達到 100%的可繞性與最短的總連線長度。最後還有溶入延遲時間的 繞線問題,可以使得在需要訊號同步的連線線段符合長度偏差之限制。在實驗的結 果上,我們提出具有可繞性導向能力的演算法在合理的程式執行時間內都能保證產 生 100%的可繞性。

(58)

參考文獻

[1] P. Dehkordi and D. Bouldin, “Design for packageability: the impact of bondong technology on the size and layout of VLSI dies,” Multi-chip Module Conference, pp.153-159, 1993.

[2] P. A. Totta and R. P. Sopher, “SLT device metallurgy and its monolithic extension,”

IBM J. Res. Dev., 13, 226 (1969).

[3] B. S. Berry and I. Ames, “Studies of the SLT chip terminal metallurgy,” IBM J. Res.

Dev., 13, 286 (1969).

[4] J. H. Lau, "Flip Chip Technologies," New York, McGraw-Hill (1996).

[5] J. H. Lau, Flip Chip Technologies, McGraw-Hill, New York, Chapter 1、3、6、

15(1996)

[6] J. H. Lau, Chip on Board Technologies for Multichip Modules, Van Nostrand Reinhold, An Interational Thomson Publishing Company, New York, Chapter5(1994)

[7] UMC, “0.13µm Flip Chip Layout Guideline,” pp. 6, 2004.

[8] M. M. Ozdal and M. D. F. Wong, “A length-matching routing algorithm for high-performance printed circuit boards,” IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems, Vol. 25, no. 12, pp.2784–2794, 2006.

[9] T. Yan and M. D. F. Wong, “BSG-Route: A length-matching router for general topology,” International Conference on Computer-Aided Design, pp.499-505, 2008.

[10] J. W. Fang, I. J. Lin, Y. W. Chang, and J. H. Wang, “A routing algorithm for flip-chip design,” in Proc. Int. Conf. Comput.-Aided Des., 2005, pp. 753–758.

[11] B. Cherkasssky, “Efficient Algorithms for the Maximum Flow Problem,”Mathematical Methods for the Solution of Economical Problems, vol. 7,

(59)

[12] J.-W. Fang and Y.-W. Chang, “Area I/O flip-chip routing algorithm for chip-package co-design,” Proc. of ICCAD, pp. 518–522, November 2008.

[13] J.-T. Yan and Z.-W. Chen, “RDL pre-assignment routing for flip-chip designs,” Proc.

GLSVLSI, pp. 401–404, 2009.

[14] Jia-Wei Fang, Martin D. F. Wong, Yao-Wen Chang: Flip-chip routing with unified area-I/O pad assignments for package-board co-design. DAC 2009:336-339

[15] S. H. Batterywala, N. Shenoy, W. Nicholls, and H. Zhou, “Track assignment: A desirable intermediate step between global routing and detailed routing,” in Proc.

IEEE/ACM Int. Conf. Comput. Aided Des., Nov. 2002, pp. 59–66.

[16] C. P. Hsu, “General river routing algorithm,“ Design Automation Conference, pp.578-583, 1983.

[17] M. M. Ozdal and M. D. F. Wong. A length-matching routing algorithm for high-performance printed circuit boards. IEEE Transactions on Computer-Aided Design of Integrated Cir-cuits and Systems (TCAD), 25:2784–2794, 2006.

[18] J.-W. Fang, C.-H. Hsu, and Y.-W. Chang, “An integer linear programming based routing algorithm for flip-chip designs,” IEEE Trans. Computer-Aided Design, Vol.

28, No. 1, pp. 98–110, January 2009.

[19] P.-W. Lee, C.-W. Lin, Y.-W. Chang, C.-F. Shen, and W.-C. Tseng, “An Efficient Pre-Assignment Routing Algorithm for Flip-Chip Designs,” in Proceedings of IEEE/ACM International Conference on Computer-Aided Design, pp. 239–244, 2009.

[20] T. H. Cormen, C. E. Leiserson and R. L. Rivest, Introduction to Algorithms, MIT Press, 2000.

[21] Y. Tomioka and A. Takahashi, “Monotonic parallel and orthogonal routing for single-layer ball grid array packages,” Asia South-Pacific Design Automation Conference, pp.642–647, 2006.

參考文獻

相關文件

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

Inspired by the concept that the firing pattern of the post-synaptic neuron is generally a weighted result of the effects of several pre-synaptic neurons with possibly

• An algorithm is any well-defined computational procedure that takes some value, or set of values, as input and produces some value, or set of values, as output.. • An algorithm is

Given an undirected graph with nonnegative edge lengths and nonnegative vertex weights, the routing requirement of a pair of vertices is assumed to be the product of their weights.

 Warrants are an instrument which gives investors the right – but not the obligation – to buy or sell the underlying assets at a pre- set price on or before a specified date.

Given a graph and a set of p sources, the problem of finding the minimum routing cost spanning tree (MRCT) is NP-hard for any constant p > 1 [9].. When p = 1, i.e., there is only

– Equivalently, there is a truth assignment such that each clause has a literal assigned true and a literal assigned false.. – Equivalently, there is a satisfying truth assignment

Biases in Pricing Continuously Monitored Options with Monte Carlo (continued).. • If all of the sampled prices are below the barrier, this sample path pays max(S(t n ) −