• 沒有找到結果。

摘要 由於超大型積體電路(Very Large scale integrated circuit, VLSI)

N/A
N/A
Protected

Academic year: 2022

Share "摘要 由於超大型積體電路(Very Large scale integrated circuit, VLSI)"

Copied!
66
0
0

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

全文

(1)
(2)
(3)
(4)
(5)
(6)

摘要

由於超大型積體電路(Very Large scale integrated circuit, VLSI)的製程技術已經 進入到深次微米(deep-submicron)或奈米(nano-meter)的時代,晶片設計的複雜度也 相對的提高,對於實體設計流程(Physical Design Flow)中的繞線階段(Routing Stage),將會產生許多新的問題,內部連線的延遲時間(Interconnect Delay)、連線 的可繞性(Routability)、訊號完整性(Signal Integrity)…等問題,都隨著製程的進步 而一一浮現出來,故目前的繞線階段都必須考慮到這些問題。

傳統實體設計流程中的繞線階段可分為整體繞線(Global Routing)和細部繞線 (Detailed Routing),其中整體繞線的執行方式通常是將繞線平面(Routing Plane)以二 維度的格子做切割,而任兩點之間的連線皆以連線所經過的格子來表示,但以格 子為基礎(Grid-Based)的整體繞線是無效率的,因為若格子切割過大,線段包含在 格子內,則無法完整的表示出每條連線之間的連接,若格子切割過小,雖然可以 完整的表示出每條連線,但計算每條連線的時間會相對的增加許多,故難以定義 出格子所需要切割的數目及大小。

本 論 文 提 出 一 個 階 層 式 時 序 限 制 的 全 晶 片 繞 線 系 統 (Hierarchical Timing-Constrained Full-Chip Routing System)來解決現在的繞線問題,在考慮時序 不超過所設限的延遲時間範圍內,針對不同的繞線密度來做格子的切割,並且將 整個繞線平面作階層式的處理,以降低處理的複雜度。在我們所提出的階層式時 序限制的全晶片繞線系統可分為四個步驟: (1) 由上而下時序限制擁擠度導向 的整體繞線,(2) 模擬退火法為基礎的時序限制挑線與重繞, (3) 由下而上時 序限制型態導向的細部繞線和(4) 時序限制的迷宮繞線,由實驗結果可得知,針 對不同的測試檔都完成所有的繞線且符合時序限制。

(7)

Abstract

As VLSI technology reaches deep submicron or nano-meter dimensions, VLSI design has become more complicated. In physical design, more different goals will come out in the routing stage, for example interconnect delay, routability, signal integrity…etc.

Traditional routing stage in physical design can be separated into the global routing step and the detailed routing step. In general, the global routing partitions the entire routing plane into a 2-dimensional array of grids, and find one grid-to-grid path for each two-endpoint wire. However, the concept of grid-based global routing is inefficient. If the size of any partitioned grid is too large, some wires may be fully contained inside one grid cell so that the connection of wires is unable to be represented in the congestion estimation. If the size of any partitioned grid is too small, the computation time of each wire in the congestion estimation will increase.

Hence, it is difficult to define one feasible partitioned grid size in the routing plane.

In this thesis, one hierarchical timing-constrained full-chip routing(HTFR) system is proposed to deal with modern routing issue. Considering the timing constraint of any wire, the entire routing plane can be partitioned hierarchically into different size grids for different routing requirement. Our HTFR system can be divided into four phases: (1) Top-down timing-constrained congestion-driven global routing(TCGR) in a quad-grid model, (2) Simulated-annealing-based timing-constrained rip-up-and-reroute(STRR) in a hierarchical quad-grid model and (4) Timing-constrained maze routing(TMR) in a routing plane. Our experimental results shows our proposed HTFR system can obtain 100% for many benchmark circuits.

(8)

致 謝

此 篇 論 文 能 夠 順 利 完 成 要 特 別 感 謝 指 導 教 授 顏 金 泰 老 師 不 遺 餘 力 的 指 導,不 論 在 課 業 上 或 是 生 活 上 所 遇 到 的 困 難,都 能 給 予 我 最 大 的 幫 助 , 讓 我 能 順 利 的 解 決 問 題 , 還 有 陳 永 源 老 師 在 研 究 所 兩 年 期 間 , 對 於 相 關 課 程 的 指 導 教 學 盡 心 盡 力 , 在 此 也 特 別 感 謝 他 。

在 研 究 所 的 求 學 過 程 中 , 非 常 感 謝 實 驗 室 的 學 長 - 呂 昭 宏 、 廖 祥 智 及 林 順 華,在 這 兩 年 中 均 給 予 我 很 大 的 幫 助。以 及 許 多 實 驗 室 的 同 學 -李 佳 芳 、 陳 逢 銘 、 李 政 曄 、 戴 正 中 及 陳 昆 鋒 幫 助 我 解 決 問 題 。 還 有 江 秋 龍 同 學 解 答 我 程 式 上 的 相 關 問 題 , 也 感 謝 學 弟 -林 鎧 平 、 吳 嘉 偉 、 李 育 政 、 呂 昆 龍 、 賴 世 軒 、 張 云 斌 、 林 勝 茂 與 學 妹 王 姿 雅 在 實 驗 室 的 熱 心 服 務 以 及 課 業 上 的 討 論 與 指 教。最 後 要 感 謝 家 人 的 支 持,當 我 在 挫 折 及 困 難 時 , 給 我 鼓 勵 及 關 心 , 讓 我 在 求 學 過 程 中 無 後 顧 之 憂 , 能 夠 專 心 的 完 成 學 位 。

謹 將 此 篇 論 文 獻 給 家 人 、 師 長 、 同 學 及 朋 友 們 , 共 同 分 享 這 得 來 不 易 之 榮 耀 。

陳 彥 翔 謹 致 中 華 民 國 九 十 三 年 七 月 於 新 竹

(9)

目 錄

摘要 ...I 英文摘要 ...II 致謝 ...III 目錄 ...IV 圖表目錄 ...VI 表格目錄 ...VIII

第一章 簡介 ...1

1.1 積體電路及其產業的發展 ...1

1.2 積體電路晶片設計 ...2

1.2.1 積體電路晶片設計的流程 ...3

1.2.2 積體電路晶片設計的問題 ...4

1.3 實體設計流程 ...8

1.3.1 邏輯切割 ...8

1.3.2 版面規劃 ...9

1.3.3 擺置 ...11

1.3.4 繞線 ...11

第二章 問題描述 ...15

2.1 相關研究 ...15

2.1.1 全晶片繞線系統 ...15

2.1.2 時序限制的整體繞線 ...18

2.2 研究動機 ...19

2.3 問題定義 ...21

(10)

第三章 階層式四方格模式與四元樹 ...23

3.1 階層式四方格模式 ...23

3.2 階層式四方格模式表示法 ...24

3.3 階層式四方格模式的相鄰關係 ...26

第四章 階層式時序限制的全晶片繞線系統 ...28

4.1 由上而下時序限制擁擠度導向的整體繞線...30

4.1.1 機率的擁擠度計算 ...30

4.1.2 Steiner 端點的移動 ...32

4.1.3 整體的路徑分派 ...34

4.2 模擬退火法為基礎的時序限制挑線與重繞 ...36

4.2.1 初始結果 ...37

4.2.2 成本函式 ...37

4.2.3 擾亂函式 ...38

4.3 由下而上時序限制型態導向的細部繞線 ...42

4.3.1 邊界腳位的分派 ...43

4.3.2 細部的型態繞線 ...44

4.3.3 轉彎點的減少 ...45

4.4 時序限制的迷宮繞線 ...46

第五章 實驗結果 ...47

5.1 測試電路檔與工作平台 ...47

5.2 實驗結果 ...48

第六章 結論與未來展望 ...50

6.1 結論 ...50

6.2 未來展望 ...50

參考文獻 ...52

(11)

圖 表 目 錄

圖 1.1 積體電路晶片設計流程 ...3

圖 1.2 晶圓切割 ...5

圖 1.3 漏話效應示意圖 ...8

圖 1.4 邏輯切割示意圖 ...9

圖 1.5 以面積為導向的版面規劃結果 ...10

圖 1.6 擺置後的結果 ...11

圖 1.7 繞線完成的結果 ...12

圖 1.8 格狀繞線為基礎的整體繞線結果 ...13

圖 1.9 細部繞線後的結果 ...14

圖 2.1 多層次的繞線流程 ...16

圖 2.2 多層次架構流程圖 ...17

圖 2.3 時序限制的擁擠度導向整體繞線流程 ...19

圖 2.4 二維度的均勻格子切割 ...20

圖 2.5 Steiner 端點的移動 ...21

圖 2.6 輸入及輸出的電路檔案 ...22

圖 3.1 階層式四方格模式的關係位置 ...24

圖 3.2 階層式四方格模式的格子表示法 ...25

圖 3.3 階層式四方格模式的相對應四元樹 ...25

圖 4.1 階層式時序限制的全晶片繞線系統 ...29

圖 4.2 四方格模式下的連線狀態 ...31

圖 4.3 三條線段的連線狀態 ...32

圖 4.4 生成樹與 Steiner 樹 ...33

圖 4.5 Steiner 端點的移動條件...33

(12)

圖 4.6 Elmore 延遲時間模式 ...34

圖 4.7 考量擁擠度機率值下,Steiner 端點的移動 ...34

圖 4.8 整體的路徑分派 ...36

圖 4.9 模擬退火演算法 ...37

圖 4.10 Steiner 端點的重新分派 ...39

圖 4.11 Steiner 端點的重新分派與移除 ...40

圖 4.12 繞線的邊界矩形範圍 ...41

圖 4.13 線段連線的條件 ...41

圖 4.14 線段繞路的延伸距離 ...42

圖 4.15 邊界腳位的分派 ...44

圖 4.16 細部的型態繞線 ...44

圖 4.17 細部的型態繞線 ...45

圖 4.18 轉彎點的減少 ...45

圖 4.19 時序限制的迷宮繞線 ...46

圖 5.1 電路測試檔案 a9c3 的繞線結果 ...49

(13)

表 格 目 錄

表 1.1 線 段 與 邏 輯 閘 延 遲 時 間 的 比 較 ...6

表 1.2 訊 號 完 整 性 及 可 靠 性 之 分 類 ...6

表 5.1 測試電路參數值 ...47

表 5.2 測試電路檔 ...48

表 5.3 實驗結果 ...49

(14)

第一章 簡介

在現今世界中,電子產品已經是隨處可見、隨手可得的商品,例如手機、數 位相機、PDA、電腦…等等,這些電子產品已在人類的生活中扮演著不可或缺的 重要角色,然而使這些電子產品能發揮出不同功能及特性的一個重要因素就是內 部所包含的晶片(Chip),所謂的晶片,就是先將二氧化矽(SiO2)經過處理後製作成 矽晶棒,再經過切片處理後成為晶圓(Wafer),接著再將晶圓切割成晶片,而其中 一個重要的關鍵就是透過製程(Process)的技術將我們所設計的電路實現在晶圓 上,如此一來,所切割的晶片才會有我們所需要的功能,由於所設計出來的電路 經由製程的技術,使得電路在晶圓裡可在不同層次中做三度空間的伸展,故稱積 體電路(Integrated Circuit, IC),隨著製造技術的提升、製程的進步及電子設計自動 化(Electronic Design Automation, EDA)軟體的發展,使得 IC 晶片設計能夠越來越複 雜,且功能也日益強大,同樣地,所面臨的問題也將變的更困難。

1.1 積體電路及其產業的發展

在 1958 年,美國德州儀器公司(TI)發展出第一個積體電路後,便開創了微電 子的時代,跟著在六十年代,隨著 nMOS(Metal Oxide Semiconductor)、pMOS、互 補性氧化金屬半導體(Complementary Metal Oxide Semiconductor, COMS)等電晶體 的積體電路陸續地研發成功及矽平面製程技術的不斷提升,此後積體電路晶片的 發展可說是突飛猛進,從積體電路晶片只能包含少數電晶體的小型積體電路 (Small Scale Integrated Circuit, SSI),進展到今天已經能包含數十萬,甚至數百萬電 晶體的超大型積體電路(Very Large Scale Integrated Circuit),因為所能包含的電晶 體越來越多,所以整個積體電路的產品也從電路板上的系統(System-on-Board)進 步到系統單晶片(System-on-a-Chip)的階段,把所有系統、元件整合到一個晶片上 已不再是個夢想。

(15)

隨著積體電路不斷地發展,在工業界也造成了許多不同的變革,在積體電路 發展的初期,只有少數的產品,例如微處理器(Micro Processor)、通用邏輯電路等,

所以許多製造商都是以人工的方式來設計積體電路,當時的電腦輔助設計 (Computer-Aided Design, CAD)軟體只是用來做圖形編輯和數據統計等簡單工作,

在此時大多數的產業都以生產為主。隨著晶圓代工廠(Foundry Factory)及積體電路 設計公司(IC Design House)的興起,開始將積體電路產業分為設計和製造兩個部 份,在這階段的產品漸漸出現了一些特殊應用的積體電路(Application Specific Integrated Circuit, ASIC),主要是以客戶需求為導向的積體電路設計,一般標準化 的積體電路設計已經難以符合客戶對成本、可靠性、功能性等要求,也不容易在 競爭激烈的市場中脫穎而出,每個客戶都希望所設計出來的積體電路成本低、可 靠性高,並且在符合所有功能情況下,來達到最大的效能。而另一方面,在現代 製造及製程技術提升,將以往軟體中要花較多時間執行的部份作硬體化已經是可 行的方法,所以特殊應用的積體電路占整個積體電路的銷售比率將會越來越高。

最後是電子設計自動化工具(電腦輔助設計軟體)的快速發展,導致許多複雜的積 體電路設計都能藉由這些電子設計自動化工具來實際地做出晶片,基於前面所提 到的幾點因素,許多廠商預見了特殊應用積體電路的市場及前景,開始大量的設 立積體電路設計公司及部門,而所設計出來的電路必須要交由晶圓代工廠來做成 晶片,故大量的晶圓代工廠也應運而生。而現今的積體電路產業已經從以往的價 格競爭轉為人才技術競爭,整個產業更細部分工為設計業、製造業、封裝業及測 試業,唯有高度分工的產業架構,才能使積體電路不斷地向前發展,也才能讓所 設計出來的產品在市場中有更強大的優勢。

1.2 積體電路晶片設計

隨著積體電路晶片所能包含的電晶體已達到百萬個以上,晶片設計也跟著越 來越複雜,甚至能將整個系統設計在晶片上,為了降低整個積體電路晶片設計的

(16)

複雜度,所以將整個晶片設計流程分為許多不同的階段,根據不同的階段來個別 求出最佳的結果,在藉由所有階段的整合來完成我們所設計的晶片。

1.2.1 積體電路晶片設計的流程

在此我們提出四個晶片設計的主要階段,架構設計(Architecture design)、

邏輯設計(Logic design)、實體設計(Physical design)、工廠製造(Fabrication),如 圖 1.1 所示,首先對所要設計的晶片有一個初步的構想,接著經過架構設 計、邏輯設計、實體設計、工廠製造四個階段後,再加上各種不同電腦輔助 設計軟體的幫忙,即可製造出新的晶片。

構想計劃

架構設計

邏輯設計

實體設計

工廠製造

晶片

一般電腦輔助設計軟體 (電子設計自動化軟體)

行為模組化及模擬軟體工具驗證

功能及邏輯的最小化,找出對應 的邏輯閘及模擬軟體工具驗證

切割、擺置 、繞線等輔助軟體工具 電腦輔助設計軟體的層次

行為/架構 層次

暫存器轉移/邏輯 層次

標準晶元/遮罩 層次

圖 1.1 積體電路晶片設計流程

(1) 架構設計階段: 在此階段,設計工程師必須對整體的架構來作決策,這 些決策將會影響未來晶片設計的成本、效能及特性,而此階段主要是定義 整個晶片的輸入、輸出腳位來決定訊號的輸入與輸出,還有晶片內部的大

(17)

致功能和所組成的元件(Component) 及其所使用的架構,在給定規格書後,

接下來的目標就是依據規格書的內容來設計出晶片,並且能在各個設計階 段都達到最佳化的解決。

(2) 邏輯設計階段: 這個階段是將之前所規劃出的元件作細部的設計,假設 在剛剛的架構設計階段中,有規劃一個元件為乘法器,則在此階段就必須 依上個階段所規劃的架構來實現此乘法器,並且要詳細的設計出元件之間 的彼此連線及整個晶片的連線關係,在從前的邏輯設計階段中,所有的電 路、元件皆以邏輯閘來設計,現在因為硬體描述語言及其編譯合成軟體發 展成熟,故大多以硬體描述語言(Hardware Description Language)來設計。

(3) 實體設計階段: 在這階段主要包含許多合成(Synthesis)的步驟,大致上 有邏輯切割(Logic Partition)、版面規劃(Floorplan)、擺置(Placement)和繞線 (Routing)四個步驟,完成此四個階段後,將會產生實際的電路佈局圖 (Layout),然而電路佈局圖的好壞將會嚴重的影響整個晶片的效能、面積、

良率和可靠性。

(4) 工廠製造階段: 由上一個階段所產生的 GDSII 檔案,交由晶圓代工廠來 製造晶片。

1.2.2 積體電路晶片設計的問題

然而在積體電路晶片設計的流程中,隨著不同時代的製程、晶片設計、

製造等各方面的技術提升,所面臨的問題也就完全不同。

(1) 晶片面積

以往因為晶片製造的價格昂貴,若能將晶片的面積(die size)縮小,則在

(18)

相同尺寸的晶圓下所能切割出來的晶片數量就會提高許多,成本當然也能下 降許多,如圖 1.2 所示,在左方的晶圓針對面積較大的晶片總共能切割出 34 個,但右方相同大小的晶圓,對於較小面積的晶片卻能切割出 89 個。故 在設計與製造的總成本相同下,若能在相同晶圓切割出更多的晶片,則單顆 晶片的成本將會降低許多,在市場的競爭力也就相對的提高許多,所以在這 個時期的積體電路晶片設計流程中,每個階段的每個步驟都是以晶片面積最 小化為考量。

圖 1.2 晶圓切割

(2) 晶片效能

隨著製造成本的降低及人們對晶片速度、效能的要求越來越高,晶片的 面積已不再是主要的考量因素,如何提高晶片的速度,漸漸成為新的設計目 標。在傳統的積體電路晶片設計流程裡,估算整個晶片的延遲時間只以邏輯 閘的延遲時間來考量,連線的延遲時間幾乎不被考慮或是以簡單的模式來做 估算,但隨著製程的進步,晶片內部的連線延遲時間已大幅度的超過邏輯閘 的延遲時間,如表 1.1 所示,所以針對晶片內部的時序(Timing)和所有連線 中的臨界路徑(Critical Path)在積體電路晶片設計的流程中都要加入考慮,簡 單的說,所有連線的線段越長,訊號延遲的時間就越久,晶片執行的速度就 越慢,故連線的線段越短,對晶片執行的效能就越有利,然而如果在每個階 段都將所有連線的線段拿來做考慮,將會使整個晶片設計流程的時間過於冗

(19)

長,而且考量整個晶片的時序是以時序最長的連線線段(臨界路徑)作為準 則,其他連線的線段速度再快也是毫無意義,基於以上幾點,為了增加晶片 的速度,通常都是針對晶片中的臨界路徑做修正及改善,以提高晶片的執行 速度和效能。

0 1 2 3 4 5

1.5 1.25 1 0.75 0.5 0.25

微米

延遲時間

線段延遲時間 邏輯閘延遲時間

表 1.1 線段與邏輯閘延遲時間的比較

(3) 訊號完整性及可靠性

由於半導體製程技術已進入深次微米及奈米的世代,過去未曾考慮到的 電子特性及物理現象,到現在都已逐漸成為嚴重的問題,然而主要考慮的問 題可分為兩大類: 訊號完整性(Signal Integrity)及可靠性(Reliability),分別對 訊號線及電壓源線/接地線來做討論,如表 1.2 所示。

訊號完整性 可靠性

訊號線 漏話雜訊 訊號線的電子漂移 電壓源線

/接地線

電壓源線的電壓降低/

接地線的電壓升高

電壓源線的電子漂移 特徵 引發功能及時序的錯

誤問題

減短電路的生命週期 表 1.2 訊號完整性與可靠性之分類

(20)

在訊號完整性方面,對於訊號線(Signal Net)來說,將會造成漏話雜訊 (Crosstalk Noise)的影響,因為製程的進步,使得兩條不同連線的線段距離越 來越接近,以致於彼此所傳送的訊號會有互相干擾的情形發生,原因是兩條 線段若過於接近則會有偶合電容(Coupling Capacitance)效應的產生,且線段與 基底間也會有其它的電容效應產生,如圖 1.3 所示,故線段上的訊號電壓受 到影響,所呈現出的電壓不再是完整的高電壓或低電壓,而是有上下起伏的 訊號電壓,這些起伏的訊號電壓如果是落在雜訊容限(Noise Margin)內,則訊 號不會產生錯誤,反之則訊號錯誤,進而影響晶片功能的正確性,而且過多 的干擾也會使線段的延遲時間增加,讓晶片原本估計出來的時序與線段的延 遲時間增加後的晶片時序相差甚多,因此無法準確的評估出整個晶片的時 序。

Metal 1 Metal 2 C CROSSOVER

C AREA C FRINGE C COUPLING

C COUPLING

Substrate

圖 1.3 漏話效應示意圖

在訊號完整性方面,對於電壓源線/接地線而言,在越先進的製程下,

晶片所使用電壓源的電壓越低,若電壓源線連接到目的端的線段過長的話,

則會產生電壓下降的情況,導致目的端無法得到足夠的電壓,造成目的端之 後的電路無法運作而發生錯誤。

在可靠性方面,對於訊號線及電壓源線/接地線而言,都會因為線寬在

(21)

先進製程下越來越小,使得電流在通過線段的時候,容易產生電子漂移的現 象,而讓線段變成短路,導致晶片的功能錯誤,所以在考慮線段寬度時,必 須精密的估算出通過電流的大小,以防止電子漂移的現象發生。

(4) 晶片散熱

在相同晶片面積下,所能容納的電晶體數目越來越多,由於系統單晶片 的時代來臨,使得晶片上所包含的元件越來越多,並且在晶片速度的要求 下,時脈的震盪頻率也越來越高,在這些因素下晶片所產生的熱量也相對提 高許多,在熱量過高的情況下,也可能使線段發生短路的現象,讓晶片的功 能發生不可預期的錯誤。

1.3 實體設計流程

在 1.2 節中,介紹了整個積體電路晶片設計的流程,而此節中,將針對其中 實體設計階段的整個流程做詳細的介紹,一般來說,實體設計的流程包含了邏輯 設計階段之後與工廠製造階段之前的所有合成步驟,在這個階段裡,會直接影響 到晶片最後設計出來的成本、效能及可靠性。然而實體設計流程主要可分為四個 階段來執行: 邏輯切割、版面規劃、擺置及繞線,分別在以下四個小節介紹。

1.3.1 邏輯切割

隨著晶片設計越來越複雜及系統單晶片的時代來臨,一個晶片所包含的 邏輯閘可達百萬以上,如果在實體設計流程中,將整個設計都打散(Flatten) 來處理,也就是以邏輯閘或電晶體為基本單位來執行實體設計,則要處理的 複雜度就會提高許多,甚至無法在合理的時間內得到結果,所以在實體設計 流程的第一個階段就是作邏輯切割,將性質相同或連線關係較緊密的邏輯閘 合為一個區塊(Block)或稱模組(Module),也就是將整個電路切割為許多子電

(22)

路,然後將這些子電路視為一個獨立的電路區塊,在處理運算的過程中,都 是以區塊為基本單位,如此一來,就能減少處理的複雜度,並在有效的時間 內,得到所需要的結果。而邏輯切割階段的主要目標是希望切割出來的所有 區塊之間的連線能達到最小化,若能減少區塊間的連線數目,則在繞線階段 的運算複雜度也會下降許多,如圖 1.4 所示,若一個設計如圖 1.4 (a)有兩 種切割方式如圖 1.4 (b)及 1.4 (c),其中圖 1.4 (b)所切割出來的兩個區 塊之間有四條連線,而圖 1.4 (c)所切割出來的兩個區塊之間只有兩條連 線,所以我們選擇連線較少的圖 1.4 (c)作為結果。

1 2 3 4

5

6

7 8

C

1

C

2

(a)要做邏輯切割的電路圖

4 3 2 1

6 5

7 8 44

33 22 11

66 55

77

88

1

8 2 3

5

4

7

6 11

88 22 33

55

44

77

66

(b)切出來的區塊間有四段連線 (c)切出來的區塊間有兩段連線 圖 1.4 邏輯切割示意圖

1.3.2 版面規劃

經過邏輯切割階段後,我們可將整個電路分為許多區塊,或是在系統單

(23)

晶片的設計中,整個電路都是由許多區塊所組成,這些區塊稱為矽智產 (Silicon Intellectual Property, SIP),也就是將每個不同功能的元件分開設計,

在考量不同產品的需求下,挑選不同的矽智產作整合,使所設計的晶片達到 預期的功能。總之,在現代積體電路晶片實體設計中,版面規劃這個階段就 是將許多區塊讀入,根據不同的成本考量將區塊作擺置、移動、位置調換,

其中區塊的類型可分為兩種,一種是已完成電路佈局(Layout)的硬區塊(Hard Block),這種硬區塊是無法改變區塊的形狀、外觀,另一種則是以硬體描述 語言設計的軟區塊(Soft Block),由於尚未經過實體設計的階段,所以還沒有 實際的電路佈局,故區塊的形狀、外觀在版面規劃時,可在相同面積下,作 不同的形狀變化讓版面規劃的結果更好。然而版面規劃所考量的成本在不同 時代、不同問題的情況下,將有不一樣的變化。從前版面規劃的目標,是希 望區塊擺置的總面積越小越好,因為當時晶片的成本較高,若能壓低晶片設 計的面積,則晶圓所能切割出來的晶片就越多,成本也就能降低許多,然而 製程的進步及晶片設計的複雜度提高,區塊間的連線可繞性成為新的目標成 本,就是將連線關係較緊密的區塊擺放在一起,使得繞線成功的機會較大,

在未來裡,版面規劃的目標成本漸漸會成為影響晶片成敗的雜訊(Noise),所 以在版面規劃中,如何以雜訊影響最小的狀態來擺置區塊將會成為一個很重 要的課題。圖 1.5 為考慮面積為成本的版面規劃結果。

圖 1.5 以面積為導向的版面規劃結果

(24)

1.3.3 擺置

所有區塊在版面規劃後,都已決定了區塊的所在位置,但區塊的腳位皆 尚未決定,故接著針對區塊中的標準晶元(Standard Cell)來作擺置,擺置完成 後即可決定所有區塊的腳位位置,標準晶元包含一些基本的邏輯閘(AND、

OR、NOT)和正反器(Flip-flop)等,擺置的動作與版面規劃大致相同,只有處 理的基本單元從區塊變為標準晶元,且標準晶元也已完成電路佈局,故在擺 置時無法變更外觀及形狀,而擺置的成本考量都是以標準晶元間連線長度及 擺置面積最小為原則,圖 1.6 為擺置完成後,腳位確定的結果。

圖 1.6 擺置後的結果

1.3.4 繞線

當所有區塊及腳位的位置皆已確定後,接著就是執行實體設計流程中的 最後階段: 繞線,簡單來說,就是將有連線關係的腳位找出連線的路徑並連 接起來即為繞線。在以往的製程下,晶片的製造過程中只有較少的繞線金屬 層可使用,扣除電壓源及接地線(Power/Ground)的繞線後,通常僅剩下一、

兩層的繞線金屬層可供繞線和標準晶元來使用,而且線段無法跨越標準晶元 所構成的區塊,還有水平及垂直的連線也不能交錯而過,否則會有短路的情 形發生,因此,所有連線線段都只能在區塊間的通道(Channel)中完成繞線並 且要避免水平及垂直的連線發生交錯的狀況,但隨著製程的進步,所提供的 繞線金屬層也不斷地增加,同一連線的水平及垂直線段已可透過 via 在不同

(25)

的繞線金屬層中完成繞線,如此一來不但可以減少繞線面積,繞線成功的機 率也能大幅度提高。圖 1.7 為繞線完成後的狀態,其中水平及垂直連線為不 同的繞線金屬層。

圖 1.7 繞線完成的結果

然而繞線階段的目標成本也是隨著不同時代、不同製程技術產生的不同 問題下,不斷地變化,最早以前,由於晶片成本高,而繞線面積又佔整個晶 片面積中的相當比例,所以繞線目標都希望能降低連線線段的總長度以縮小 整個晶片面積。接著因為大家對晶片效能的要求提高,產品在市場上的競爭 力都取決於晶片的執行速度,故晶片在執行實體流程中的繞線時,都會考慮 是否要加入緩衝器(Buffer)、增加線段寬度來加速晶片執行的速度,或是減少 via(不同繞線金屬層中的線段都是以 via 來連接,但以 via 來連接會增加線 段延遲的時間)的個數。製程進步後,晶片設計的複雜度也不斷提高,相對 地,晶片中連線的複雜度也增加許多,繞線的結果足以左右整個晶片設計的 成敗,為有成功的繞線才能製造出晶片,所以晶片的可繞性成為主要的關鍵 目標。在現今的繞線階段,因為先進製程的關係,使線段之間的距離越來越 近,電流通過線段時,彼此會產生干擾的情形,也就是 1.3.2 節提到的漏話,

漏話的產生會導致晶片的功能錯誤及降低晶片執行的效能,故如何保持訊號 的完整性,將是未來幾年裡,繞線階段成本的主要考量目標。

繞線階段中,不論繞線的面積或是執行繞線所花費的時間,都在整個晶

(26)

片設計中佔大部分的比例,繞線的重要性由此可知,然而繞線又可細分為兩 個步驟: 整體繞線(Global Routing)及細部繞線(Detailed Routing)。

(1) 整體繞線

在現今繞線階段中,整體繞線的目標就是將兩端點之間的連線,以大概 路徑將其連接,其中的方法從過去到現在可分為許多種類,而目前的整體繞 線大多都以格狀繞線為基礎,首先將整個繞線平面以二維度的格子做切割,

將整個平面切為 MxN 的格子,有連線關係的兩個端點分別落在不同的格子 中,以來源端腳位所落在的格子中出發,經過不同格子後,連接到目的端腳 位所落在的格子中,而途中所經過的不同格子即為兩端點的大致連線路徑,

故兩端點的連線路徑都是以格子來表示。圖 1.8 為以格狀繞線為基礎的整體 繞線結果。

圖 1.8 格狀繞線為基礎的整體繞線結果

(2) 細部繞線

完成上述的整體繞線後,對於任兩端點之間的連線,我們都可以找出其 大致路徑,然而這些路徑僅能粗略地表示連線的大概位置,並不是真實的連 線路徑,所以必須在符合設計規則下,找出每條連線的真實走向,以目前最 多學者使用的格狀繞線方法來說,首先要把所有線段連線與同一格子邊上的

(27)

交點作順序及位置的分配,接著依據設計規則來調整交點的位置,即可得到 所有連線經過格子邊上的實際位置,再將所有交點以水平及垂直線段連接,

則可找出所有線段的真實連線。圖 1.9 為細部繞線後的結果。

圖 1.9 細部繞線後的結果

(28)

第二章 問題描述

隨著超大型積體電路的製程技術日趨進步,設計也日益複雜,單位面積所能 容納的邏輯閘及電晶體也相對提高,如何能在整個晶片設計流程中處理如此龐大 複雜的設計,而不至於花費過多時間,將成為一個非常關鍵的問題。

對於實體設計流程中的繞線階段所產生的問題,本論文提出解決方法,希望 能針對繞線階段這個部份,整合出一個包含整體繞線及細部繞線的繞線系統,並 且在繞線平面中,以階層式的格子切割來取代二維度的格子切割,對較複雜的設 計作階層式的分割才能有效的降低處理複雜度及時間。

2.1 相關研究

在過去的相關文獻及學術研究中,許多學者都針對繞線階段提出不同的解決 方法,在此列出與本論文相關的研究文獻並分為全晶片繞線系統和時序限制的整 體繞線兩個方向來做討論。

2.1.1 全晶片繞線系統

VLSI 的技術已達到深次微米及奈米的世代,晶片的時序震盪頻率(clock frequencies)也達到每秒十億次,許多以往必須分開設計的各個元件或是各種 矽智產(Silicon Intellectual Property, SIP)都能整合到單一晶片上而成為一個完 整的系統,稱為系統單晶片(System-on-Chip, SoC),像時下許多的產品都已 有系統單晶片的嵌入,而這些產品的訴求不外乎是: 體積小、可攜性高、

執行速度快、消耗電力低…等等,所以效能(performance)、電力(power)、可 靠度(reliability)已經成為現代晶片設計流程中,主宰晶片成敗的關鍵,只有 考慮到這些重要因素,在市場上才能有更多的競爭力。

為了使系統單晶片能成功的整合,各個元件或矽智產之間的連線將扮演

(29)

著極重要的角色,尤其在晶片設計的複雜度不斷地提高,繞線的複雜度也 相對的提高,所以全晶片的繞線系統就成為在實體設計流程中,左右晶片 成 敗 的 階 段 。 全 晶 片 繞 線 系 統 的 研 究 中 , 在 此 介 紹 與 本 論 文 階 層 式 (Hierarchical)繞線系統相關的多層次(Multilevel)繞線系統。

在加州大學(UCLA)的 Jason Cong 教授相關研究[7,8,9]中,主要針對非 格狀(Gridless)的繞線平面為基礎來完成繞線,採用的方法是以多層次的非格 狀繞線,來對全晶片做繞線,並且可繞線區域必須符合擁擠度(congestion) 的限制,再藉由設計規則(Design Rules)所定義的連線寬度(width)和間隔 (spacing)來調整腳位與腳位間的連線寬度與連線間隔。而他們所提出的多層 次繞線流程如圖 2.1 所示。

G

1

G

3

G

2

Coarse Routing Result

G

1

G

3

G

2

Refinement at Next Level

Initial fine routing tile

Accurate routing resource computation

G

0

Tile coarsening

Routing resource estimation G

1

G

k

Coarsest routing representation

Use multicommodity flow algorithm to get initial routing results

Uncoarsening

Route refinement using constrained maze

Final planning result

Using gridless router to fine final routing result

圖 2.1 多層次的繞線流程

主要分為粗糙化(coarsening)和精細化(uncoarsening)兩個階段,一開始先 將整個繞線平面做切割並且計算整體的繞線資源,在由上而下粗糙化的流程 中,將格子合併且估計目前的繞線資源,等到合併達某種程度,則執行初始

(30)

繞線,接著在由下而上精細化的流程中,將格子做切割,每次切割格子所顯 現出來的連線,則實際的將之連接,如果連線數目超過格子邊上所允許通過 的線數,將使用迷宮(maze)繞線來完成連接。

在台灣大學(NTU)的張耀文教授相關研究[10,11,12]中,他們提出了一 個考量可繞性(Routability)和效能(Performance)的多層次繞線架構,主要方法 也跟 UCLA 的多層次繞線同樣分為粗糙化和精細化兩個階段如圖 2.2 所 示,而一開始也是先將繞線平面切割成許多二維度的格子,不過在由上而 下粗糙化的流程中,要先將格子內所包含的完整連線做整體繞線和細部繞 線,也就是將區域性的連線拿來做繞線,並且在細部繞線後估算出繞線的 擁擠度,以供下一個層次來做使用,完成由上而下粗糙化的階段後,在由 下而上精細化過程中,將粗糙化階段未能成功連線的線段,使用迷宮(maze) 繞線來完成。

To-be-routed net already-routed net

partitioned layout final solution

G

0

G

0

G

1

G

1

coarsening

coarsening

G

2

G

2

uncoarsenin

uncoarsenin

Perform global and

detailed routing for local connections and then estimate routing congestion for the next level

Use maze routing to reroute failed connections and refine the solution

圖 2.2 多層次架構流程圖

(31)

2.1.2 時序限制的整體繞線

在整體繞線的部份,過去的相關研究都是將繞線平面先作二維度的格子 切割,故腳位與腳位的連線路徑以所切割出來的格子做表示,稱為格狀繞 線(Grid-based Routing)。在以往的整體繞線所注重的目標不外乎是連線的總 線長,以總線長的長度降低視為成本的減少,但隨著製程技術的提升及晶 片設計複雜度提高,所要考量的因素也逐漸增加,例如: 線段的延遲時間、

線段的可繞性、訊號的完整性等等,在現代或未來的晶片設計流程中,都 是不可或缺的必要因素。

在中華大學(CHU)的顏金泰教授研究[1]中,將每條線段的時序限制及所 有線段的可繞性加入整體繞線的考量,在整體繞線的過程中,執行繞線的 所有步驟都必須符合時序的限制,而繞線的過程中都必須計算線段所造成 的擁擠度機率,以擁擠度機率來針對每條線段作連線,使得發生擁擠的情 況能夠有效地降低。如圖 2.3 所示,時序限制的擁擠度導向整體繞線 (Timing-Constrained Congestion-Driven Global Routing)演算法主要分為三個步 驟: 機率的擁擠度計算(Probabilistic Congestion Computation)、初始時序限制 的擁擠度控制(Initial Timing-Constrained Congestion Control)、時序限制的擁擠 度導向路徑分派(Timing-Constrained Congestion-Driven Path Assignment),最後 再 加 上 以 模 擬 退 火 法 為 基 礎 的 挑 線 與 重 繞 (Simulated-annealing-based Timing-constrained Rip-up-and-reroute),首先第一步驟必須算出所有的線段在 每個格子邊上所造成的擁擠度機率,估算出機率後,第二步驟要算出 Steiner 端點的移動區域範圍,藉由移動 Steiner 端點到不同的格子內部來降低格子 邊上最大的擁擠度機率,並且平衡格子邊上的擁擠度機率,第三步驟是依 據格子邊上的擁擠度機率來做路徑分派,在每條路徑的所有連線狀況中選 擇一條通過格子邊上機率總和最小的連線,每分派一條線段就要調整格子 邊上的擁擠度機率,如果三個步驟都完成後,還有連線失敗的線段(通過格 子邊上的線段數目超過格子邊上所允許通過的線段數目,如圖 2.3 的第三

(32)

點,假設格子邊上所允許通過的線段數目為二,而實際上通過了三條線段,

違反了擁擠度的限制),則使用以模擬退火法為基礎的挑線與重繞,將線段 在符合時序限制的情況下,以繞遠路的方式來避開擁擠的地方,如圖 2.3 的第四點。

1. 機率的擁擠度計算

2. 擁擠度控制 (b) 3. 路徑分派 4. 挑線與重繞

0.16 1.08 0

0.5 0.16 0.41 0.41

0.41 1

0.83 0.5

0.5

0 0.5

1.5

0 1.5

0.5

0.16 1.08 0 0.5 0.16 0.41 0.41

0.66 1.25 0.83

0.5

0.25 0.5 1.25

0.25 1.25

2. 擁擠度控制 (a)

圖 2.3 時序限制的擁擠度導向整體繞線流程

2.2 研究動機

討論完與本論文相關的研究後,針對各項研究在現代晶片設計中有缺失、疏 忽及低效率等缺點來加以改進,以符合目前超大型積體電路設計的趨勢及相關製 程的技術。

過去的晶片設計中,由於晶片的運算執行速度要求不高,而且估計整個晶片 的延遲時間是以邏輯閘的數量來計算,所以在考量晶片內部的延遲時間,並無包 含所有連線的延遲時間,只單純的計算邏輯閘的延遲時間,但由於製程技術的進 步,使得線段的延遲時間甚至比邏輯閘延遲時間還要嚴重,所以在考量晶片內部

(33)

的延遲時間就無法單方面的考率慮邏輯閘延遲時間,必須要加入線段本身的延遲 時間。而且隨著晶片的運算執行速度要求越來越高,例如現在中央處理器(CPU) 的處理速度已能達每秒幾十億赫的時鐘振盪頻率(clock frequency),所以在晶片設 計流程中就必須針對每條線段加上時序的限制,確保在每一個階段都能維持住所 要求的延遲時間,如此一來才能做出符合時序要求的晶片,本論文所提出的繞線 系統也是在時序限制下,針對每條線段做繞線處理。

在前述的相關研究中,首先都必須將整個繞線平面作二維度的格子切割,且 格子的大小必須一致,然而格子的切割程度及繞線平面所要劃分的大小在相關研 究中都沒有定義,事實上也相當難以定義出整個繞線平面究竟要切割出多少格 子,如圖 2.4 所示,若只切割出少量的格子,則因為許多線段都包含在格子內部,

所以無法客觀的表示出所有線段在格子邊上所造成的擁擠度機率,當然所估算出 的擁擠度機率也會不準確;反之若切割的格子太多,雖然所有線段的擁擠度機率 皆能表示出來,但每條線段在繞線所做的計算量也會相對的增加許多,處理時間 也會跟著延長。

格子切割過少,無法表現出 所有線段的擁擠度機率

格子切割過多, 每條線段的 繞線計算量增加

圖 2.4 二維度的均勻格子切割

研究[1]提出藉由移動 Steiner 端點來降低格子邊上最大的擁擠度機率,並且

(34)

平衡格子邊上的擁擠度機率,但如果格子的切割未能表達出所有線段的擁擠度機 率,則移動 Steiner 端點也許會產生新的問題,如圖 2.5 所示,假設每個格子邊 上所允許通過的線段數目為二,則圖 2.5 (a)有兩處發生了擁擠的現象,若移動 Steiner 端點如圖 2.5 (b),看來似乎已解決兩處發生擁擠的地方,但實際上在格 子的內部卻產生新的擁擠,此情形發生的原因是由於格子內部的線段並沒有通過 格子邊,所以內部的線段將不影響格子邊上的擁擠度機率,故移動 Steiner 端點 來平衡格子邊上的擁擠度機率就無法考慮到所有客觀的因素,如此一來只是將格 子邊上的問題轉嫁到格子內部,並無法真正的解決問題。但如果為了解決此問 題,而將格子做更細部的切割以表示出所有線段在邊上的擁擠度機率,則會因為 格子切割過於細密而增加 Steiner 端點移動區域範圍的計算時間及繞線處理的複 雜度。有鑑於前述的種種問題,因此本論文提出一個新的格子切割模式,稱為階 層式四方格模式,主要是以階層式的方法對較擁擠的區域做多層的格子切割,而 在連線較稀疏的區域做少層的格子切割,詳細做法將在第三章討論。

(a) (b)

圖 2.5 Steiner 端點的移動

2.3 問題定義

本論文的目標是完成一個在考量時序限制階層式的全晶片繞線系統,其中包 含整體繞線與細部繞線兩個方面,以往的做法都是將整體繞線和細部繞線這兩個

(35)

階段分開,並各別求其最佳化,但如此往往會為了得到較佳的結果而花費許多的 時間,本論文為了提高執行效率而將這兩個階段整合為一個階段,故只需要對整 個繞線系統求其最佳化即可。

由於本論文所提出的繞線系統是有時序限制的,所以在一開始必須讀入一個 有時序限制的整體繞線平面如圖 2.6 (a)所示,{T1,T2,…,TN}為所有繞線樹的集 合,{P1i,…,Pδ(i)i}為繞線樹 i 所有腳位的集合,若腳位為目地端(Sink),則必須包 含時序限制的資訊,{S1i,…,Sθ(i)i}為繞線樹 i 所有 Steiner 端點的集合,{w1i,…,wε(i)i} 為繞線樹 i 所有線段的集合,且所有線段皆是兩端點的連線(Two-pin Wire)。在經 過整體繞線與細部繞線的處理後,最終希望得到的結果如圖 2.6 (b)所示,在不 違反設計規則的情況下,所有繞線樹中的所有線段都被實際的配置在繞線平面 中,並且無擁擠的情況產生。

w1

w3 w1

w2

w3

w1

w1

S

11

S

12

w1 w1

P1

1

P21

P31

P14

P24

P23

P13

P22 P12

P32 P15 P25

w2

P26

P16

P17

P27 w1

G

w1

w2

w3 w1

w2

w3 w1

w1

w1

S

11

S

12

w1 w1

(a) 輸入電路檔案 (b) 輸出電路檔案 圖 2.6 輸入及輸出的電路檔案

(36)

第三章 階層式四方格模式和四元樹

唯有在晶片完成後,我們才能得知晶片中所有線段的真實連線情況,但隨著 製程技術的進步及晶片設計的日益複雜,線段的可繞性在實體設計流程中成為左 右晶片成敗的關鍵,而可繞性的目標就是使每條線段皆能連線成功,也就是如果 有任一條線段在繞線階段時無法完成連線,則晶片就不能完成,但在尚未完成晶 片前,我們也無從得知晶片中所有線段的真實連線情況,為了表示出在整個繞線 平面中,所有繞線樹的可繞性,大多數都以二維度靜態格子模式(2D static grid model) 將 繞 線 平 面 切 割 為 MxN 個 相 同 大 小 的 格 子 , 表 示 為 {G1,1,G1,2,…,G1,n,…,Gm,1,…,Gm,n},對任一格子 Gi,j而言,格子下方的水平邊界為 Hi,j, 格子右方的垂直邊界為 Vi,j,故整個 MxN 格的繞線平面將會有(M-1)xN 條水平格 子邊,Mx(N-1)條垂直格子邊,如此就可以依據這些格子及格子邊界來計算出每 條線段經過格子邊上的機率值,進而以格子邊上所允許通過的線段數目(Capacity) 來估算出擁擠度的機率值,求出擁擠度的機率值後,即可按照擁擠度的機率值配 置每條線段來達到可繞性的目標。

不過在 2.2 節的討論中,提到對於二維度格子模式在現今的晶片設計中是不 適合且無效率的,所以本論文提出了階層式四方格模式及相對應的四元樹來維持 所切出格子的資料結構。

3.1 階層式四方格模式

在接下來的第四章中,我們將會提出一個時序限制階層式的全晶片繞線系 統,在此繞線系統裡,可分為由上而下及由下而上這兩個階段,而階層式四方格 模式即是在執行這兩個階段才應運而生的,故在此必須先大略簡述一下整個繞線 系統的運作方式,才能描述出階層式四方格模式的實行方法,首先我們必須將原 始的繞線平面視為一個單一格子 G,接著判斷只要有任何一棵繞線樹的其中一條

(37)

完整線段被格子所包含,則將有包含完整線段的格子切割成四個較小的格子,在 每做完一次切割(將格子切割成四個較小的格子)後,就必須執行整體繞線演算 法,接著再重複判斷是否有任何一棵繞線樹的其中一條完整線段被格子所包含,

若沒有任何格子包含一條完整線段,則不再做切割的動作,此時即完成由上而下 的階段,反之則繼續做切割格子,並執行整體繞線演算法,一直到沒有任何格子 包含一條完整線段為止。做完由上而下階段後,接著進入由下而上階段,在此階 段中,是把由上而下階段所切割出來的格子,以四個為一組,再將它合併回原本 較大的格子,也就是讓所切割出來的格子合併回原始狀態,然而在每做完一次合 併後,就必須執行細部繞線演算法,接著必須判斷格子是否合併回最原始的繞線 平面 G,若已合併回最原始的繞線平面 G,則不再做合併的動作,此時即完成由 下而上的階段,反之則繼續合併格子,並執行細部繞線演算法,一直到格子已合 併回最原始的繞線平面 G,此時則完成整個繞線系統。

3.2 階層式四方格模式表示法

在此節中,說明階層式四方格模式的表示法,若我們將一個格子切割為四個 較小的格子,則此四個格子依位置分別編號為 1、 2、 3、 4 其關係位置如圖 3.1 所示。

2 1 3 4

圖 3.1 階層式四方格模式的關係位置

若將原始的繞線平面 G 切割為 G1、 G2、 G3、 G4四個格子後,再進一步的 把 G1切割成四個較小的格子,則此四個格子的表示法為 G11、G12、G13、G14,也 就是將新切割出來的格子位置編號,連接在原本格子的編號之後,依此類推,所

(38)

有階層式切割出來的格子都可給予一串唯一的編號,如圖 3.2 所示。由此可知,

若有一個格子的表示法為 Gα(1)α(2)...α(m),則α(1)代表第一個層級所切割出來格子的 位置,α(2)代表第二個層級所切割出來格子的位置,依此類推,則α(m)代表第 m 個層級所切割出來格子的位置。舉例來說,圖 3.2 的格子 G12即表示在第一層 所切割出來的格子位置為 1(整個繞線平面 G 的右上方),而在第二層所切割出來 的格子位置為 2(G1的左上方),因此可知道 G12在整個繞線平面的實際位置。

G

324

G 2 G

13

G

14

G

12

G

11

G

33

G

34

G

31

G

323

G

322

G

321

G 4

圖 3.2 階層式四方格模式的格子表示法

在產生出如圖 3.2 的階層式四方格後,我們必須要以適當的資料結構來維持 所有格子的狀態,並且能針對所有的格子做出基本的操作,例如新增、移除、搜 尋等等,在此我們可以使用四元樹來達到所需要的基本的操作,並且能完整的維 持住所有格子的資料結構,如圖 3.3 所示。

G

G

1

G

2

G

3

G

4

G

11

G

12

G

13

G

14

G

31

G

32

G

33

G

34

G

321

G

322

G

323

G

324

圖 3.3 階層式四方格模式的相對應四元樹

(39)

3.3 階層式四方格模式的相鄰關係

在階層式四方格模式中,格子之間的相鄰關係可定義為水平相鄰及垂直相 鄰,如以下定義:

定義一: 給定兩個格子 Gα(1)α(2)...α(m)和 Gβ(1)β(2)...β(n),則 1≦α(i)≦4,1≦i≦m,且 1

≦β(i)≦4,1≦i≦n,若格子 Gα(1)α(2)...α(m)與格子 Gβ(1)β(2)...β(n)為由左至右的水平相 鄰,則會滿足以下狀況:

(1) 假設在 m=n 時,α(i)=β(i),1≦i≦m-1,且(α(m), β(m))=(2, 1) or (3, 4),或者是

(2) 假設在 m=n 時,格子 Gα(1)α(2)...α(m-1)與格子 Gβ(1)β(2)...β(m-1)為由左至右的水平相鄰,

且(α(m), β(m))=(1, 2) or (4, 3),或者是

(3) 假設在 m>n 時,格子 Gα(1)α(2)...α(n)與格子 Gβ(1)β(2)...β(n)為由左至右的水平相鄰,且 α(i)=1 或 4,n+1≦i≦m,或者是

(4) 假設在 m<n 時,若格子 Gα(1)α(2)...α(m)與格子 Gβ(1)β(2)...β(m)為由左至右的水平相鄰,

且β(i)=2 或 3,m+1≦i≦n。

若格子 Gα(1)α(2)...α(m)與格子 Gβ(1)β(2)...β(n)為由左至右的水平相鄰,則在此兩個格子 之間會存在一條共同的垂直邊,表示為 Vα(1)α(2)...α(m), β(1)β(2)...β(n),再依據設計規則中 線段寬度及線段之間的距離,我們可得出在此共同的垂直邊 Vα(1)α(2)...α(m), β(1)β(2)...β(n)

上所允許通過的線段數目,表示為 Capα(1)α(2)...α(m), β(1)β(2)...β(n)。

定義二: 給定兩個格子 Gα(1)α(2)...α(m)和 Gβ(1)β(2)...β(n),則 1≦α(i)≦4,1≦i≦m,且 1

≦β(i)≦4,1≦i≦n,若格子 Gα(1)α(2)...α(m)與格子 Gβ(1)β(2)...β(n)為由下至上的垂直相 鄰,則會滿足以下狀況:

(1) 假設在 m=n 時,α(i)=β(i),1≦i≦m-1,且(α(m), β(m))=(3, 2) or (4, 1),或者是

(40)

(2) 假設在 m=n 時,格子 Gα(1)α(2)...α(m-1)與格子 Gβ(1)β(2)...β(m-1)為由下至上的垂直相鄰,

且(α(m), β(m))=(1, 4) or (2, 3),或者是

(3) 假設在 m>n 時,格子 Gα(1)α(2)...α(n)與格子 Gβ(1)β(2)...β(n)為由下至上的垂直相鄰,且 α(i)=1 或 2,n+1≦i≦m,或者是

(4) 假設在 m<n 時,若格子 Gα(1)α(2)...α(m)與格子 Gβ(1)β(2)...β(m)為由下至上的垂直相鄰,

且β(i)=3 或 4,m+1≦i≦n。

同樣地,若格子 Gα(1)α(2)...α(m)與格子 Gβ(1)β(2)...β(n)為由下至上的垂直相鄰,則在此 兩個格子之間會存在一條共同的水平邊,表示為 Hα(1)α(2)...α(m), β(1)β(2)...β(n),再依據設 計規則中線段寬度及線段之間的距離,我們可得出在此共同的水平邊 Vα(1)α(2)...α(m),

β(1)β(2)...β(n)上所允許通過的線段數目,表示為 Capα(1)α(2)...α(m), β(1)β(2)...β(n)。

基本上,每個格子邊上都會限制所允許通過的最大線段數目值,若實際上通 過格子邊上的線段數目超過這個值,則會產生擁擠的情況。

(41)

第四章 階層式時序限制的全晶片繞線系統

針對繞線階段的問題,本論文提出了一個階層式時序限制的全晶片繞線系 統,其中包含了整體繞線及細部繞線,配合第四章所提到的階層式四方格模式,

以由上而下的階層式四方格切割來處理整體繞線及由下而上的階層式四方格合 併來處理細部繞線系統。

現代的晶片對於效能的要求越來越高,所以在繞線時,若不考慮時序限制,

則所作出來的晶片會因為效能過低、處理速度過慢而失去市場的競爭力,所以在 繞線階段的每個步驟都必須符合時序的限制,也就是每條線段在繞線完成後,線 段的延遲時間必須小於系統給定的延遲時間,如此所作出來的晶片才能符合原來 所規劃的效能,本論文所提出的繞線系統是在時序限制下,無論執行任何步驟或 任何運算都必須保證所有線段的延遲時間皆是在系統所設定的延遲時間內。

由於積體電路晶片設計越來越複雜,晶片內部的連線已占整個晶片面積的百 分之九十以上,面對如此複雜且大量的連線,可繞性成為最主要的關鍵,因為如 果繞線失敗,則代表整個晶片無法完成,晶片所設計的速度再快、成本再低都毫 無意義,然而在如此龐大的連線中,若將所有線段都針對可繞性來做考量,則會 花費過多的計算時間,因此本論文以階層式的四方格模式針對不同階層的線段來 考量其可繞性。

圖 4.1 為本論文階層式時序限制的全晶片繞線系統整體架構,包含由上而下 及由下而上兩個過程,整個繞線系統主要可分為四個階段: 四方格模式下由上而 下時序限制擁擠度導向的整體繞線(Top-down Timing-constrained Congestion-driven Global Routing in Quad-grid Model)、四方格模式下模擬退火法為基礎的時序限制挑 線 與 重 繞 (Simulated-annealing-based Timing-constrained Rip-up-and-reroute in Hierarchical Quad-grid Model)、四方格模式下由下而上時序限制型態導向的細部繞 線 (Bottom-up Timing-constrained Pattern-driven Detailed Routing in Hierarchical

(42)

Quad-grid Model)及時序限制的迷宮繞線(Timing-constrained Maze Routing)。在由上 而下的過程中是處理整體繞線的部份,而由下而上的過程則是處理細部繞線的部 份。

1) 機率的擁擠度計算

(1) 四方格模式下由上 而下時序限制擁擠度導 向的整體繞線

(2) 四方格模式下以模擬退火 法為基礎的挑線與重繞

階層式四方格模式與四元樹 (4) 時序限制的迷宮

繞線

(3) 四方格模式下由 下而上時序限制型 態導向的細部繞線

0.5

0.75

0.25 0.75

0.5

0.5 0.5

0.5

G

G1 G2 G3 G4

G11

G12 G13 G14 G31 G32 G33 G34 G321 G322 G323 G324

1 2 3 4 5 6 7

2) Steiner端點的移動

3) 整體的路徑分派

1) 邊界腳位的分派

2) 細部的型態繞線

3) 轉彎點的減少

圖 4.1 階層式時序限制的全晶片繞線系統

(43)

4.1 由上而下時序限制擁擠度導向的整體繞線

在這個階段是配合階層式四方格的切割來完成整體繞線,針對研究[1]中所 提出的時序限制下擁擠度導向的整體繞線,以階層式四方格模式來修正並改善其 缺失,執行程序如下:

步驟 1. 將整個繞線平面視為單一格子 G。

步驟 2. 檢查繞線平面中的所有格子,若有完整包含所有繞線樹中的任何一條線 段,則執行步驟 3,反之則執行步驟 6。

步驟 3. 將有包含完整線段的格子切割成四個較小的格子。

步驟 4. 在四方格模式下,執行時序限制的擁擠度導向整體繞線。

步驟 5. 執行步驟 2。

步驟 6. 結束。

在此階段所提到的時序限制下擁擠度導向的整體繞線演算法,主要可分為三 個步驟: 機率的擁擠度計算(Probabilistic Congestion Computation)、Steiner 端點的移 動(Steiner Point Movement)及整體的路徑分派(Global Path Assignment),以下分為三 節來詳細說明。

4.1.1 機率的擁擠度計算

擁擠度的機率值代表這個區域發生擁擠的可能性有多高,在研究[1]

中,機率的擁擠度計算是將整個繞線平面以二維度格子切割後,將所有線段 跨越其中一個格子邊上的機率值總和除以此格子邊上所允許通過的線段數 目來當作此格子邊上的擁擠度機率值,而本論文是以階層式的四方格模式來 切割整個繞線平面,所以考量擁擠度機率值是針對每個階層的四方格來做運 算,也就是將每個階層所有線段跨過此階層四方格其中一個邊上的機率值總

(44)

和除以此邊上所允許通過的線段數目。

由於我們都是在四方格中,考慮邊上的擁擠度機率值,所以線段的連線 狀態不像在二維度格子切割的繞線平面中如此複雜,在四方格中,連線的狀 態只有兩種情況,如圖 4.2 所示,一種是相鄰格子的連線,另一種是對角格 子的連線,如圖 5.2 所示,相鄰格子的連線表示連線的兩個端點分別落在相 鄰的格子中,同樣地,對角格子的連線表示連線的兩個端點分別落在對角的 格子中,表示方法如下,給定兩個格子 Gα(1)α(2)...α(m)與 Gβ(1)β(2)...β(m),假設格子 G

α(1)α(2)...α(m) 與格子 Gβ(1)β(2)...β(m)相鄰,則會符合下列兩個條件,(1) α(i)=β

(i),1≦i≦m-1,(2) |α(i)-β(i)|=1 或 α(i)=[β(i)+1] mod 4 或 β (i)=[α(i)+1] mod 4,在兩個格子相鄰的情況下,兩個端點的連線狀態只 有一種可能選擇。假設格子 Gα(1)α(2)...α(m) 與格子 Gβ(1)β(2)...β(m)為對角的格子或不 相鄰的格子,則會符合下列兩個條件,(1) α(i)=β(i),1≦i≦m-1,(2) | α(i)-β(i)|=2,在兩個格子為對角的情況下,兩個端點的連線狀態則有兩 種可能選擇。

) ( )...

2 ( ) 1

( m

G α α α

) ( )...

2 ( ) 1

( m

G β β β

圖 4.2 四方格模式下的連線狀態

有了連線狀態的可能選擇後,就可以計算出四方格的四個邊上擁擠度機 率值,首先將每一條線段各別通過邊上的機率值總和起來,成為四個邊各別 會有線段通過的機率值,若線段通過的機率值越高,代表這個邊上越有可能

(45)

有線段經過,若線段通過的機率值為零,則代表此邊上並無任何的線段經 過,接著再將線段通過的機率值除以此邊上所允許通過的線段數目即為此邊 上的擁擠度機率值,如果擁擠度機率值大於 1,代表此邊上有可能發生擁擠 的情況。

在圖 4.3 中,線段 1、線段 2 和線段 3 的連線狀態可能選擇各為 2、1 和 3,在圈出來的邊上所造成的機率值分別為 0.5、1 及 0.5,因此這個邊上 所有線段通過的機率值總和為 2,假設此邊上所允許通過的線段數目為 4,

則此邊上的擁擠度機率值為 0.5,依此類推,可算出所有其它邊上的擁擠度 機率值。

線段 1

線段 2 線段 3

圖 4.3 三條線段的連線狀態

4.1.2 Steiner 端點的移動

在現今的整體繞線階段中,通常都是將整個繞線平面的腳位及連線關係 以 Steiner 樹來建構出整個資料結構,在建構過程中,必須在有連線關係的 腳位(三個腳位以上)之間產生一個虛擬端點稱為 Steiner 端點,而 Steiner 樹 建構的基本原則就是使 Steiner 端點與腳位之間的連線為最短,由於所建構 的 Steiner 樹中,Steiner 端點與腳位之間的連線總長度比傳統以生成樹 (Spanning Tree)建構出來腳位與腳位之間的連線總長度還短,所以現今的繞 線樹都是以 Steiner 樹來建構。如圖 4.4 所示。

(46)

Steiner 端點

生成樹 Steiner 樹

(a) 腳位及連線關係 (b)生成樹建構的繞線樹 (c) Steiner 樹建構的繞線樹 圖 4.4 生成樹與 Steiner 樹

在 Steiner 端點移動的這個階段,必須先找出時序限制下 Steiner 端點的 移動範圍,如圖 4.7 (b),也就是 Steiner 端點在此範圍內移動,Steiner 端點 後面所連接的線段及腳位都不會違反系統所要求的時序,因此 Steiner 端點 的移動必須符合圖 4.5 的條件,由圖可知,Steiner 端點移動之前,從來源 (Source)端點 S 到目地(Sink)端點 i 所需的時間( tA( i )、tB( i ) )不超過系統所要 求到達的時間( treq( i ) ),其中 i 是連接在 Steiner 端點之後的樹 TA及 TB中的任 一個端點,然而在 Steiner 端點移動之後,從來源(Source)端點 S 到目地(Sink) 端點 i 所需的時間( tA'( i )、tB'( i ) )也同樣地不能超過系統所要求到達的時 間( treq( i ) ),如此一來,所有線段及腳位才不會因為 Steiner 端點的移動而違 反時序限制。

B T

B

S R T

S

P

P’

T

A

A

Steiner端點移動之後

t’ A (i) ≤ t req (i) and t’ B (i) ≤ t req (i) Steiner端點移動之前

t A (i) ≤ t req (i) and t B (i) ≤ t req (i)

圖 4.5 Steiner 端點的移動條件

接著我們套用 Elmore 延遲時間模式(Elmore Delay Model)代入上述所要求 的條件來計算出 Steiner 端點可移動的範圍,在研究[1]中,有詳細的計算過

(47)

程,圖 4.6 為 Elmore 延遲時間模式的計算公式。

R

0

: 輸出阻抗

r

0

: 單位長度的線段電阻 c

0

:單位長度的線段電容 l

w

: 線段長度

r

w

=r

0

x l

w

c

w

=c

0

x l

w D w =R 0 · ( c w + C ) + r w · ( ½ c w + C )

Elmore延遲時間模式 ( π模式 )

r w

0.5c w 0.5c w

C R 0

圖 4.6 Elmore 延遲時間模式

在獲得 Steiner 端點的可移動範圍後,接著必須要求出 Steiner 端點的最 佳位置來,主要的目標就是在移動 Steiner 端點到新的位置後,重新計算擁 擠度的機率值,若能夠平衡格子邊上的擁擠度機率值,並且降低最大擁擠度 的機率值,則為好的結果,最後取降低最大擁擠度的機率值最多者為 Steiner 端點移動的最佳位置,如圖 4.7 (c)。

0.5

0.5 0.5

0.5 0.5

0.75

0.25 0.75

(a) (b) (c) 圖 4.7 考量擁擠度機率值下,Steiner 端點的移動

4.1.3 整體的路徑分派

在上個步驟中,移動完 Steiner 端點後,會使格子邊上的擁擠度機率值 得到平衡,此時在依據格子邊上的擁擠度機率值,作整體的路徑分派,將跨

參考文獻

相關文件

左邊有一個平面紙板圖形,右邊有數個立體圖型,左邊的紙板可合成右

說明: 設原立方體的邊長為 1,要作出的立方體邊長為 x,則 x 要滿足 ,這個方 程式沒有有理根,當然就沒有尺規作圖的 x 了。.

有一長條型鏈子,其外型由邊長為 1 公分的正六邊形排列而成。如下 圖表示此鏈之任一段花紋,其中每個黑色六邊形與 6 個白色六邊形相

有一長條型鏈子,其外型由邊長為 1 公分的正六邊形排 列而成。如下圖表示此鏈之任一段花紋,其中每個黑色 六邊形與 6 個白色六邊形相鄰。若鏈子上有

主觀機率 指一個事件發生的機率由某 人決定,包括設計上的安排 設定,或者根據相信的程度 而猜測。.. 古典機率 假設樣本空間S中的每一個

「光滑的」邊界 C。現考慮相鄰的 兩個多邊形的線積分,由於共用邊 的方向是相反的,所以相鄰兩個多

有一長條型鏈子,其外型由邊長為 1 公分的正六邊形排列而成。如下 圖表示此鏈之任一段花紋,其中每個黑色六邊形與 6 個白色六邊形相

” 影格速率(Frame Rate )是指 Flash 動畫每 秒鐘播放的影格數,預設是 12 fps(frame per second),也就是每秒播放 12