• 沒有找到結果。

細部繞線之前的一個電阻電感電容串擾界限設計流程

N/A
N/A
Protected

Academic year: 2021

Share "細部繞線之前的一個電阻電感電容串擾界限設計流程"

Copied!
42
0
0

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

全文

(1)

資訊科學與工程研究所

細部繞線之前的一個 RLC 串擾界限設計流程

RLC Noise-Bounded Routing Design Flow Prior to Detailed

Routing

研 究 生:洪鵬洋

指導教授:李毅郎 教授

(2)

細部繞線之前的一個 RLC 串擾界限設計流程

RLC Noise-Bounded Routing Design Flow Prior to Detailed

Routing

研 究 生:洪鵬洋 Student:Peng-Yang Hung

指導教授:李毅郎 Advisor:Yih-Lang Li

國 立 交 通 大 學

資 訊 科 學 與 工 程 研 究 所

碩 士 論 文

A Thesis

Submitted to Institute of Computer Science and Engineering College of Computer Science

National Chiao Tung University in partial Fulfillment of the Requirements

for the Degree of Master

in

Computer Science

Nov 2005

Hsinchu, Taiwan, Republic of China

(3)

細部繞線之前的一個電阻電感電容串擾界限設計流程

學生:洪鵬洋 指導教授:李毅郎 博士

國立交通大學 資訊科學與工程研究所

以細部繞線之前的一個電阻電感電容串擾界限設計流程,主要是

希望能針對大部份的線路組,找到一個只加入最小的保護線段數目,

來使每一組線路能找到一個結果滿足其給定的串擾上限的的問題。

由於希望能確實做到保護線段數目的最小化,因此整合了有串擾界限

考量的軌道分配,並在後續增加了一個表格式保護線段安插演算

法,從模擬插入保護線段,再去做實際插入保護線段的動作。與利用

線性規劃的方式來處理,此流程可以更準確的確定保護線段數並且

能處理較多的線路組。因此本論文的目地就是在建立一套不失效率

且考量電阻電感電容串擾的電阻電感電容串擾界限設計流程,使其能

在滿足串擾上限下找到盡可能加入最少的安插保護線段。

(4)

RLC Noise-Bounded Routing Design Flow Prior to Detailed Routing

Student:Peng-Yang Hung Advisor:Yih-Lang Li

Institute of Computer Science and Engineering

National Chiao Tung University

ABSTRACT

RLC Noise-Bounded Routing Design Flow Prior to Detailed

Routing:the problem to find a flow which there is a minimal area SINO

solution that is free of capacitive noise and is under the given inductive

noise bound

.

We plan to construct flow which take performance and

RLC crosstalk bound into account. 1. An uniform distribution result of

global route . 2. RLC-Bounded Track Assignment algorithm can make a

result with capacitive noise free and minimal LSK value. 3. Tabular

Shield Insertion algorithm can insert as few shields as possible .We hope

to design a flow and algorithm for general case.

(5)

我要深深的感謝我的指導教授,李毅郎博士,感謝他給予指導和

支持,並且有耐心的不斷和我討論這個研究題目。也因此他的建議使

我能夠順利的完成這份論文。同時我也感謝我的同學們,互相鼓勵和

支援,使我能夠在低潮時順利走過。

這份論文我想獻給我的父母及家人,感謝他們對我的付出,無怨

無悔的幫助及鼓勵,謝謝大家。

(6)

錄

中文摘要 ……… I

英文摘要 ……… II

誌謝 ……… III

目錄 ……… IV

圖目錄 ……… V

表目錄 ……… VI

1. Introduction ……… 1

2. Preliminaries ………... 2

2.1 回合刪除式的全域繞線演算法……….... 2

2.2 干擾與評估串擾程度……… 5

3. Flow and Algorithm ………... 8

3.1 初步全域繞線………... 9

3.2 軌道分配………11

3.2.1 串擾模型………...12

3.2.2 串擾上限導向的軌道分配演算法...13

3.3 實際安插保護線段………16

4. Experiment Results ……….23

5. Conclusion ………..31

(7)

圖目錄

圖 1. 回合刪除式的全域繞線演算法 ……….. 3 圖 2. 回合刪除式步驟 1 ……… 4 圖 3. 回合刪除式步驟 2 ……… 4 圖 4. 回合刪除式步驟 3 ……… 4 圖 5. 保護線段與干擾比率的關係 ……….. 5 圖 6. LSK 模組範例圖 ………. 6 圖 7. 初步全域繞線步驟 1 ……… 9 圖 8. 初步全域繞線步驟 2 ……… 9 圖 9. 初步全域繞線步驟 3 ……… 10 圖 10. 初步全域繞線步驟 4 ……… 11 圖 11. 嵌板範例圖 ……….. 12 圖 12. 水平限制和雙分圖 ……….. 13 圖 13. 互相干擾關係圖 ……….. 13 圖 14. Tabu search 演算法 ………. 14 圖 15. 完全子圖初步解 ……….. 15 圖 16. 經 Tabu search 後的解 ……… 15 圖 17. 軌道分配最終結果 ……….. 16 圖 18. 保護線段安插範例圖 1 ……… 17 圖 19. 保護線段安插範例圖 2 ……… 18 圖 20. 保護線段安插範例圖 3 ……… 18 圖 21. 安插保護線段的演算法 ……….. 22

(8)

表目錄

表 1. 安插保護線段範例表 1 ……….. 18 表 2. 安插保護線段範例表 2 ……….. 19 表 3. 安插保護線段範例表 3 ……….. 20 表 4. 安插保護線段範例表 4 ……….. 20 表 5. 安插保護線段範例表 5 ……….. 21 表 6. 安插保護線段範例表 6 ……….. 21 表 7. 基準檔資訊 ……… 23 表 8. 實驗測試結果 ……… 24 表 9. s5378 路徑 LSK 值變化情形 ……… 24 表 10. s5378 的 LSK 串擾界限與保護線段數目關係 ……… 25 表 11. s9234 路徑 LSK 值變化情形 ……… 25 表 12 s9234 的 LSK 串擾界限與保護線段數目關係 ……… 26 表 13. s13207 路徑 LSK 值變化情形 ..……… 26 表 14. s13207 的 LSK 串擾界限與保護線段數目關係 ………….. 27 表 15. s15850 路徑 LSK 值變化情形 ..……… 27 表 16. s15850 的 LSK 串擾界限與保護線段數目關係 ………….. 28 表 17. s38417 路徑 LSK 值變化情形 ..……… 28 表 18. s38417 的 LSK 串擾界限與保護線段數目關係 ………….. 29 表 19. s38584 路徑 LSK 值變化情形 ..……… 29 表 20. s38584 的 LSK 串擾界限與保護線段數目關係 ………….. 30

(9)

Chapter 1

Introduction

1. RLC 串擾界限取向之設計流程簡介

在 DSM 設計裡,線高(wire thickness)往往大過線寬(wire width),而兩條相

鄰的線(wire)與線之間的距離(spacing)也小過兩個相鄰的電路層(metal layer), 因此這也使得兩條相鄰線之間的耦合雜訊(coupling noise)的問題成為 DSM 設計裡一 個受關注的課題。

因為電容耦合效應在兩條不相鄰的線之間是相當微不足道的,所以只需要做訊號定 序(net ordering) [2][3]或者是做軌道分配﹙track assignment﹚[8]使得有互相干擾 效應存在的兩條訊號不要分派到相鄰的軌道,這樣也是為了降低耦合雜訊的影響。而事 實上這方面的研究已經相當的豐富[16][17][18],也就是到這時為止普遍認為耦合問題 只有當兩條直接相鄰的訊號才會有的存在。

然而,當考慮到電感耦合(coupling inductance)的問題的時候,經過 Lei He 等 教授[19][20][21]使用 RLC 連線模組經由 SPICE 模擬實驗後,上面的情形似乎就不再是 肯定的,所有的訊號不論相鄰或不相鄰都有可能有互相干擾的情形存在,這也是電感耦 合效應會有的問題,所以經由他們的實驗發現可以藉由加入保護線段來降低電感耦合的 情形。綜合上面的介紹,這就是所謂的電阻電感電容串擾(RLC crosstalk)。 隨著超大型積體電路﹙VLSI﹚設計技術的進步,串擾問題變的越來越關鍵,在這之 前已經有不少全域繞線的方法,研究針對電容串擾這個限制的問題考量了一些方法,像 是軌道分配或是分別做軌道和分層分配還有加上保護線段(shield)的插入,但是只有 少數的研究是關於同時存在電感串擾以及電容串擾的串擾限制問題該如何去避免,像插 入保護線段、同時的安插保護線段與訊號定序(SINO)[5],然而這些研究並沒有放在全

(10)

及電容串擾的串擾限制問題。 由於時脈持續在增加,元件的尺寸卻一直在縮小,因此在高效能的超大型積體電路 ﹙VLSI﹚晶片設計的主要限制裡訊號的完整性這個因素的考量開始被包含在其中[1],隨 著 RLC 串擾這個問題漸漸被重視,現存的訊號定序(net ordering) [2][3]等相關單純 針對 RC 串擾的方法已經不敷使用,最近有一些研究已經開始將降低 RLC 串擾、提高保 護線段的利用率[4]、同時的安插保護線段與訊號定序(SINO)[5]等相關策略提出併入考 量,然而上述的研究在串擾上限的問題上都有不適宜的地方,因為完全只考量到 RC 問 題,而沒有將日益重要的 RLC 三者的問題整合考慮進去,因此後來有另外的研究以線性 規劃的方式整合動態調查串擾上限的策略[6]來進行,可是這個方法對於大量的繞線問 題並不可行,而且只能做到估算。然而繞線是積體電路設計中最複雜的步驟之一。 傳統上,一般的繞線演算法都是將積體電路繞線區分為全域繞線﹙global route﹚ 和細部繞線﹙detail route﹚兩個程序[7]。但是,只區分這兩個程序來作積體電路繞 線的話,並沒有提供適當的機會來處理一些由於訊號延遲,線路串擾,或製程限制所引 發的問題。因此,軌道分配,一個介於全域繞線和細部繞線之間的步驟,就被提出來, 藉以改善這些問題。也就是將繞線的步驟規劃區分為三個程序,全域繞線,軌道分配 ﹙track assignment﹚,和細部繞線。藉由利用全域繞線所獲得的一些資訊,我們就可 以在軌道分配時,有效率地處理上述的問題,也因此,能夠有效率地幫助細部繞線完成 整個積體電路的繞線過程[8]。因此以限制電阻電容電感為考量的全域式繞線 (RLC Bound Driven Global Routing) 主要是希望能找到一個只加入最小的保護線段 (shield) 數目來使每一組線路能找到一個結果滿足其給定的串擾 (crosstalk) 上限的的問題。 由 於 希 望 能 確 實 做 到 保 護 線 段 數 目 的 最 小 化 , 因 此 整 合 了 軌 道 分 配 ﹙ track assignment﹚,並在後續增加了兩個實際插入保護線段以及微調將多餘的可合併的保護 線段結合以降低其數目。與利用線性規劃的方式來處理,此流程可以更準確的確定保護 線段數並且能處理較多的線路組。因此本論文的目地就是在建立一套不失效率且考量電 阻電容電感串擾的全域繞線,使其能在滿足串擾上限下找到盡可能加入最少的安插保護 線段。

(11)

Chapter 2

Preliminaries

2.1 回合刪除式的全域繞線演算法

先介紹所謂改良後的回合刪除式的全域繞線演算法[15],配合以線性規劃的方式整 合動態調查串擾上限的策略[6],找出用最少的保護線段使每一條訊號的每一條路徑的 電感串擾程度都能符合給定的串擾上線,圖 1 為演算法: ID Algorithm

For each net Ni , construct Gi Let Ω be the set of Gi’s Repeat

e = the edge with the maximum weight in Ω. remove e from the corresponding Gi

update the weight of affected edge. Until Ω is a net connection forest

圖 1:回合刪除式的全域繞線演算法

首先,針對每一條訊號(net)建立連接圖(connecting graph Gi)(圖 2),再根

據線性規劃與實驗統計的方式評估出保護線段的數目(shield)[14],並將這個數值與 一般計算可繞線區域(routing region)的密度方式結合,用這個成本計算公式為每一

個連接圖上的邊(edge e)都計算出屬於這個邊的成本(圖 3),接著再依照成本值由高

(12)

圖 2:針對一條有兩個針腳的訊號 A 建立連接圖

圖 3:計算出每個邊的成本

(13)

2.2 干擾與評估串擾程度

接下來要介紹如何去評估每一條訊號的每一條路徑的電感串擾程度,在這之前要先

簡單說明訊號間的互相干擾(Net sensitivity),也就是若當訊號S1出現訊息改變會導

致訊號S2發生錯誤,則表示訊號S1與S2為互相干擾的兩條訊號(S1 and S2 are sensitive),

也就是這兩條訊號當在處理電容串擾問題是需要將它們擺設在不相鄰的軌道,在處理電 感串擾問題時需要用保護線段來將它們之間的電感串擾程度降到串擾上限值以下,這就 是針對有互相干擾的線路所要做的處理。 我們在意的是互相干擾的訊號間的串擾影響,所以每一條訊號在其繞經的可繞線區 域裡都會存在受干擾訊號的比率(sensitive rate),這個比率是指該訊號在該區塊中, 所有與它有互相干擾關係的訊號數目與該區塊中的所有訊號數目之比,根據這個比率可 以做各種評估來預測保護線段的數目或是將訊號在繞線時預先將有互相干擾問題存在 的訊號分散開來。 圖 5:該訊號所需的保護線段的數目與其所受干擾訊號的比率的關係

(14)

從圖 5(引用自[14])可以觀察出,根據實驗統計,在固定串擾上限下,該訊號所 需的保護線段的數目與其所受干擾訊號的比率大約是線性成長的關係,一條訊號在每一 個它所經過的可繞線區域都會有它自己受干擾訊號的比率,也就是與該訊號有互相干擾 效應存在的訊號總數與該區塊中的訊號總數之比,這就是該條訊號的干擾訊號的比率。 因為這樣,所以可以用線性規劃的方式去約略估算出在這樣的串擾上限和干擾訊號 的比率下,大約會需要多少個保護線段。 在評估電感串擾的程度上,採用的是Length-scaled Keff 模組(LSK)[14],兩條會 互相干擾影響的訊號之間會產生我們必須在意的電感串擾,而它們的電感串擾關係的程 度可以用一個K數值來表示,數值化能讓我們更明確的知道嚴重程度,從圖 6(引用自 [14])來看,圖 6 代表的是兩條被保護線段夾在同一個區塊(block)裡的訊號以及他 們之間的互相干擾關係, 圖 6:兩條有互相干擾關係的訊號線段分別在軌道 i 與 j 根據圖 6,要計算位於軌道i與j的這兩條訊號線段之間的K數值(稱做Kij),其關係 公式(引用自[14])為:

( ) ( )

2 j g i f Kij = + (a)

( )

l l g j g i i f − − = (b)

( )

i g j g j g r r − − = (c)

(15)

依照公式可以評估出兩條有互相干擾效應的訊號之間的程度,但一個區塊內也許不 只一條訊號線段互相有影響,所以對任何一條位在此區塊內的訊號線段(Nti 也就是訊 號t在此區塊的軌道i)而言,其位在此區塊內的K數值(Kti)為:

≠ × = i j ij ij ti S K K (d) 當 = 1 的時候,代表位在軌道 i 與 j 的兩條訊號線段有互相干擾的效應存在,反之若 沒有互相干擾的效應存在則 = 0。最後再考慮到每塊可繞線區域的長度因素,並將它 放進公式裡,就成為我們要評估任一條訊號,它的每一條路徑的總電感串擾程度大約是: ij S ij S

∈ × = ij H t ti t ij l K LSK (e) ij LSK 表示訊號i的第j條路徑的總電感串擾程度數值,t代表這條路徑上的每一塊可繞線 區域,Hij表示訊號i的第j條路徑的所有可繞線區域的集合, 則表示可繞線區域t的長度。lt 而改良後的回合刪除式的全域繞線演算法[15],就是用線性規劃的方式[14]去評估 每一個邊的成本值,包含繞經這個邊的話會大約使用到多少保護線段,最後的目的同樣 是希望能用最少的保護線段來讓每一條訊號的每一條路徑的總電感串擾程度都能滿足 使用者所設定的串擾上限值。

(16)

Chapter 3

Flow and Algorithm

我們的整個方法分成三個步驟 1. 建立初步的全域繞線 2.軌道分配 3.實際安插 保護線段。 也就是先通過初步的全域繞線,將每一條訊號的路徑先經過基本的分配均勻以及將 有互相干擾效應的關係的訊號盡可能的分散開來這兩個主要的考量,再配合上各可繞線 區域的長度,貫接點(via)的成本和該可繞線區域的偏好方向的成本這些因素加進去 後,每一段路徑就可以依序找到自己的繞線路徑,等全部都繞線完畢後,接著再去做有 RLC 串擾考量的軌道分配。 軌道分配可大量節省長遠訊號所需細部繞線的時間,更可以產生較平直不會彎曲好 的繞線品質。因此,我們將整個晶片分隔成一整列和一整行的陣列式繞線區域(Gcell), 每一橫列或一直條的繞線區域稱為嵌板(panel)。為了將問題簡化,我們一次只處理一 個嵌板裡跨越過兩個繞線區域以上的線段[8],我們的目的是做出一個整合軌道分配並 且滿足串擾上限的全域繞線,因此,在軌道分配的部分,我們希望達到的目標是將經過 一個嵌板裡的線段盡量的分配到軌道上,並且藉由軌道分配將嵌板裡彼此有影響的線段 所產生的串擾值達到最小化。這邊會進行兩個主要步驟,第一、初始的軌道分配,第二、 再透過一個類似 SA 演算法的一種改良方法,也就是 tabu search [12][13],來做串擾 最小化的動作。 再根據軌道分配的結果,針對超過各路徑所給定的串擾上限值的路徑去做實際安插 保護線段的動作,這邊會用一種表格式的演算法,從最嚴重的訊號處理起,一次列出該 訊號裡需要做安插保護線段的路徑,再用圈選判斷的方式,以選擇最少可繞線區域也就 是最少的保護線段數目,來達到將全部問題路徑一次解決的目標,的而下面就分別介紹

(17)

這三個流程的實際運作情形。

3.1

初步全域繞線

考量 RLC 串擾的全域繞線首先要決定出一個初步的全域繞線,而在開始繞線之前要 先將讀進來的基準檔將一塊塊可繞線區域分割出來(圖 7)並且對針腳加以整理,將一 個個針腳根據它所在的座標分配對應的可繞線區域代表點內(圖 8)以便稍後進行決定 每一條訊號的每一條路徑該如何繞線時使用 圖 7:分割出一塊塊可繞線區域 :代表座標座落在該可繞線區域內的針腳 圖8:分配針腳

(18)

當上面的前置工作都處理好之後,要開始繞線,每一條訊號都是由每兩個針腳為一 對的路徑組所組成,在做有串擾上限值的RLC串擾問題時,通常每一條訊號都是由其中 一個針腳定成起始針腳(source),而其他的針腳全部是終點針腳(sink),每一條路 徑的串擾上限值就是設定在這些終點針腳上,也就是所有的路徑組都是由同一個起始針 腳到任一個終點針腳的組合。 我們的初步全域繞線的動作是採用迷宮繞線(Maze Route)的方式,依序的繞每一 條路徑,在繞線時是根據成本值由小到大去挑選可繞線區域,每挑一個可繞線區域後就 再為與它接觸到的所有可繞線區域去計算成本值(圖9), S:代表Source T:代表Sink 圖9:從起始針腳到終點針腳做迷宮繞線 成本值的計算方面,有加入可繞線區域的長度和干擾訊號的比率的考慮,當然還有 軌道使用率的情形也一併加入考量,再配合原本的貫接點成本值以及偏好方向的成本 值,加總起來就是每一個可繞線區域的成本值,成本值計算如下: v p f t leng C C N N N t =α× s+β× +γ × + + cos (f) 對每一條訊號的路徑在繞的時候成本值計算式裡,α、β、γ分別是可調整的係 數,Ns代表若此訊號有繞經該可繞線區域的話,與此訊號有互相干擾的情形的線路數

(19)

目,Nt代表該可繞線區域的總軌數,Nf代表該可繞線區域剩下的可用軌的數目,Cv代表 貫接點的成本,Cp代表繞線偏好方向的成本,leng 則是該可繞線區域的長度,這樣的式 子是為了能夠讓繞線分佈均勻化,以及會互相干擾的訊號能夠盡可能的分散開來,如此 一來接下來的軌道分配會有更好的效果而且更有調整的彈性空間。 當拓展碰觸到目標終點時,就開始反溯到起點,順著成本值由大到小,一步一步 反推回起點,於是一條路徑就產生了(圖10),當初步全域繞線完成後,再將結果輸出 給下一步,有考慮RLC串擾問題的軌道分配。 圖10:順著成本值反推回起始點

3.2

軌道分配

軌道分配可大量節省長遠訊號所需細部繞線的時間,更可以產生較平直不會彎曲好 的繞線品質。因此,我們將整個晶片分隔成一整列和一整行的陣列式繞線區域(Gcell), 每一橫列或一直條的繞線區域稱為嵌板(panel)。為了將問題簡化,我們一次只處理一 個嵌板裡跨越過兩個繞線區域以上的線段[8](圖 11)。 我們的目的是做出一個整合軌道分配並且滿足串擾上限的全域繞線,因此,在軌道 分配的部分,我們希望達到的目標是將經過一個嵌板裡的線段盡量的分配到軌道上,並 且藉由軌道分配將嵌板裡彼此有影響的線段所產生的串擾值達到最小化。

(20)

線段{a,b,c,d,e,f},軌道{1,2,3,4} 圖11:一個嵌板

3.2.1

串擾模型

彼此有影響的線段在有重疊的情況下所產生的串擾有兩種,一個是電容串擾,另一 個則是電感串擾,在我們的模型下,要滿足串擾上限,就是沒有電容串擾的發生,和電 感串擾要滿足設計者所設定的限制。 我們假設要達到沒有電容串擾發生,只要彼此有影響的訊號線段,在有重疊的情況 下,不要被分配到相鄰的軌道即可滿足;至於電感串擾,由於是必須要滿足設計者所設 定的限制,因此,在軌道分配的部分,希望能夠將整個嵌板裡線段所產生的電感串擾值 最小化,我們的電感串擾值是採用圖6的模組,在第二章的時候已經介紹過的電感串擾 值計算方式,也就是LSK模組[9],即第二章所列的方程式(a)、(b)、(c)、(d)、(e)。

3.2.2

串擾上限導向的軌道分配演算法(noise-bound driven track assignment)

我們將圖11轉化成水平限制圖(圖12),如圖12的左邊那張圖,來紀錄線段重疊的

(21)

要兩點之間有邊存在,表示這兩個點所代表的訊號軌道不能分配在相鄰的軌道上,因為 它們兩個訊號線段所經過的可繞線區域有重疊的部份。再利用雙分圖,也就是圖12的右 邊那張雙分圖來紀錄線段可被分配在哪個軌道上[8][10]。最後,使用者可自行定義訊 號線段間的互相干擾的關係,我們再根據這個關係去建出訊號線段互相干擾關係圖 [9],如圖13,圖上的點仍然代表訊號線段,只不過兩個點之間若有邊存在,則代表重 疊的訊號線段會互相影響。因此這兩個訊號線段在分配軌道的時候,不能分配在有重疊 的可能的相鄰軌道。也就是說如果這兩個訊號線段沒有重疊的可繞線區域的話(根據圖 12左邊的圖可以判斷),那就可以分配在相鄰的軌道上,但若是有的話,則這兩個訊號 線對必須隔開至少一個軌道。 圖12:水平限制圖和雙分圖 圖13:訊號線段有互相干擾的情形圖:(a ,f),(b ,f),(c ,e)

(22)

我們已知有權重最佳化的軌道分配是一個 NP-complete 的問題,因此,我們採用一 種漸進式(heuristic)的演算法來處理這個問題。 首先,為了簡化問題,我們先從水平限制圖的最大完全子圖(maximum clique)著手, 找出最大完全子圖只需要多項式時間[11],找到後,先從包含於這個最大完全子圖的線 段開始作軌道分配。做完後,更新水平限制圖,再找原先的水平限制圖更新後的最大完 全子圖,繼續作軌道分配。 這個作法是針對找到的最大完全子圖,產生一個軌道分配的初步解,然後,再使用 一個類似 SA 演算法效能的方法 Tabu search(圖 14)[12][13]作串擾最小化的動作。 圖14:Tabu search 最大完全子圖的初步解作法則是,先找出屬於這個子圖的點,然後在線段影響圖中 也是最大的完全子圖開始依序做起。如圖12左半邊圖,不失一般性,先找到最大完全子 圖(a ,d ,f),再依據圖13中的線段影響關係找出最大完全子圖(a ,f),因此初步解

Step 1:Select an initial solution xnow , and set Tabu list H = empty;

Step 2:While not meet the stop conditions do

Generate a candidate list can(xnow)from the neighborhood N(xnow , H)that doesn’ conflict with H;

Select the best solution from can(xnow):xnext; xnow= xnext;

Update Tabu list H; End While 圖14:Tabu search 的演算法 從線段a和f開始作軌道分配,分配規則是在按照在水平限制圖中度數較高的線段就 先放,將它到第一個能擺放的軌道上,也就是先將線段f分配到軌道1;然後,再分配線 段a,但因為根據圖13,線段a與線段f有互相干擾效應存在且因為從圖12左半圖可得知, 線段a與線段f有重疊的可繞線區域,因此線段a在分配的時候要留意不能分配到相鄰的 軌道上,,便是將線段a分配到軌道3上,再依序將沒有影響的線段分配到軌道上,結果 如圖15。

(23)

圖15:最大完全子圖(a ,d ,f)之初步解

產生初步解後,再利用 Tabu search 作串擾值最小化的動作,所考慮到的權值為

1.有影響的線段被分配在相鄰的軌道上所產生的權值; 2.利用第二章介紹過的計算式子計算得來的電感串擾值。

圖 15 中的線段(a ,d ,f)經過 Tabu search 後,結果如下(圖 16),彼此有影響的

a ,f 經分配後,會得到較大的距離。

(24)

圖 17:圖 11 經過軌道分配後的最終結果 圖 17 就是從最初的初步全域繞線給的結果開始,經過一連串演算法調整後的最終軌 道分配結果。

3.3

實際安插保護線段

當完成軌道分配後,可能會有幾條訊號線段的整體串擾值超過其給定的串擾界限, 這時候我們根據訊號超過界限的總程度來逐一處理。 首先針對最嚴重情形的訊號取出來,將有超過界限的路徑取出,如圖 18 所示,假 設該圖代表一條超過界限最嚴重的訊號,其中有兩條路徑是超過所給定的串擾界限,所 以我們將它們取出,並且找出這兩條路徑經過的所有可繞線區域中的所有訊號線段的K 數值,比較出最大值(Kmax)後將之乘以 3/4,將這個新的值稱為門檻值(Kthreshold),只要 這兩條路徑中的所有訊號線段,其K數值乘與該訊號線段被多少個路徑使用的數值(Nu) 經過運算後所得的值大於門檻值,此運算式如下: max 4 3 K Kthreshold = × (g) ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + × o u N N K 1 (h)

(25)

(h)式中的 代表該訊號中超過串擾界限的路徑數目我們就將此訊號線段所在的 可繞線區域紀錄下來,因此可得到一個類似如表 1 的初步結果,其中每一欄的最上方的 一列被分割成兩半,上半部是紀錄這些超過其給定的串擾界限的路徑編號,下半部是紀 錄超過其給定的串擾界限的程度,而中間對應的欄位則是在該區域安插一個保護線段 後,對於正對應的路徑編號而言,會降低多少的串擾效益程度,接下來我們並未實際安 插保護線段,而是先做模擬,假設該可繞線區域在該訊號所在的區塊內選擇兩個最靠近 該訊號線段的軌道,根據圖 19 與圖 20,指的是軌道 3 與軌道 6,在該訊號線段所在軌 道之前選一個最靠近的可安插軌道(圖 19),以及之後也選一個(圖 20),再比較哪一個 能隔開較多與該訊號有互相干擾效應存在的訊號線段,也就是各算一次該訊號線段的更 新後 K 數值,挑選更新後 K 數值較低的軌道來安插保護線段,接著再與原先該訊號線段 的 K 值做比較,將降低數值填進對應的欄位內,於是可以得到如表 2 的結果, o N 圖 18:取出超過界限的路徑

(26)

圖 19:干擾關係:(4 , 2)(4 , 7),更新後的訊號線段 4 的 K 數值為 0.25

圖 20:干擾關係:(4 , 2)(4 , 7),更新後的訊號線段 4 的 K 數值為 0.5

(27)

表 2:將降低的 K 數值填入欄位 根據表 2,接下來我們要做的是選擇最少的可繞線區域,使得能處理掉的路徑,也 就是能使最多的路徑的 LSK 值降低到符合給定的串擾界限,所以在選擇可繞線區域上有 4 步原則: 1. 如果該終點路徑所在的欄(column)只有一個可繞線區域可選,優先做以下確認: i. 若選擇該可繞線區域能使此路徑降低到符合界限,則選它 ii. 若不能則放棄選擇 2. 從每一個可繞線區域所在的列(row)去看,紀錄下來選擇該列可以使得多少個路徑降 低到符合界限,如果多於一個可繞線區域可以挑,則根據第 3 點來判斷 3. 從 2.所挑出的可繞線區域,比較除了能降低到符合界限的路徑外,還包含了多少個 未能降低到界限的路徑,選擇能包含最多的,如果還是多於一個,則根據第 4 點來 判斷 4. 從 3.過濾後所得到的可繞線區域,統計它們分別使這些未能降低到界限的路徑總共 減少了多少的 LSK 值,選擇減少最多的 重覆執行上面四個步驟判斷要選擇哪一個可繞線區域,每選擇出一個可繞線區域 後,開始更新表格上路徑的 LSK 值,並且將已處理完成的路徑,也就是已經符合給定的

(28)

串擾界限,及選擇過的可繞線區域標示起來,一直到所有路徑都已經處理完成,或是所 有目前表格裡的可繞線區域都已經被挑選過為止,下面的連續表就是在演示表 2 的整個 流程: 表 3:框起來的列表示我們這一回合選擇該列, 框起來的欄表示該路徑已處理完成 表 4:第二回合的結果

(29)

表 5:第三回合結束 表 6:選擇了可繞線區域 4、3、1、5,各插入一條保護線段後, 將三條路徑都處理完畢 這個表格處理結束後,根據模擬的過程,開始實際去安插保護線段,並且對所有挑 選到的可繞線區域去為整個可繞線區域內的訊號線段做 K 數值更新,假如如表 2 的例 子,最後所有路徑都已處理完畢,則整個演算法結束,可是如果所有表格內的可繞線區 域都已經被挑選過,但是還有路徑沒有符合給定的串擾界限,我們就根據新的結果,再 重新跑一遍表格處理演算法,直到所有路徑都無法再加入保護線段或是已經沒有超過串 擾界限的情況為止。

(30)

z Repeat

z Find the serious net; z Repeat

* Find all sinks which are overflow;

‹ Kmax:the serious K value of regions in overflow sinks; ‹ Calculate the Kthreshold:3/4* Kmax;

‹ Create that Table;

‹ According to our 4 steps , select routing regions;

‹ Insert shield and update K value of all net segments in those routing regions;

z Until there is no violation sink

z Until there is no violation net or can not insert any more shield

(31)

Chapter 4

Experiment Results

我們使用 C++程式語言來撰寫整個流程的程式,並在配備 1 GHz CPU 和 2G RAM 的

Sunblade2000 工作站平台上執行,表 7 是我們用來測試的幾個基準檔以及程式執行環境:

Circuits Size(μm) #Layer #Nets #pins S5378 4330x2370 3 1694 4734 S9234 4020x2230 3 1486 4185 S13207 6590x3640 3 3781 10562 S15850 7040x3880 3 4472 12566 S38417 11430x6180 3 11309 32210 S38584 12940x6710 3 14754 42589 All programs were implemented in the C++ language. The tests for benchmark circuits were executed on a Sunblade2000 workstation with 1GHz CPU and 2G RAM.

表 7:基準檔資訊以及程式執行環境

下面的數據會以表格統計結果以及折線圖來一一繪出實際各超過串擾界限的路徑,

其 LSK 值的變化情形,表格裡的 50%表示每條訊號的互相干擾率為 50%,也就是每個訊 號會用亂數篩選的方式決定出半數的訊號有之互相干擾的關係存在,實驗結果如下表 8:

(32)

50% Number of Nets Number of Paths Number of Violation LSK Bound Number of Shield s5378 1693 3124 149 5000 57 s9234 1485 2774 64 5000 23 s13207 3781 6995 102 10000 69 s15850 4471 8321 224 10000 113 s38417 11308 21035 809 10000 199 s38584 14753 28177 1618 10000 514 表 8:實驗測試結果 下面的連續折線圖表是將上面的數據的每一條路徑的 LSK 值在安插保護線段之前與 之後的變化情形呈現出來,折線圖中的 Y 軸代表的是 LSK 值刻度,X 軸代表超過界限的 路徑: 0 5000 10000 15000 20000 1 12 23 34 45 56 67 78 89 100 111 122 133 144 LSK without SI LSK with SI 表 9:s5378 的路徑 LSK 值變化情形

(33)

Shields & LSK Bound - s5378 77 57 41 28 19 13 9 0 20 40 60 80 100 4000 5000 6000 7000 8000 9000 10000 LSK Bound S hie lds Shields 表 10:s5378 的 LSK 串擾界限值與使用保護線段數目的變化情形 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 58 61 64 LSK without SI LSK with SI 表 11:s9234 的路徑 LSK 值變化情形

(34)

表 12:s9234 的 LSK 串擾界限值與使用保護線段數目的變化情形

Shields & LSK ound - s9234

44 34 23 14 6 4 3 1 0 10 20 30 40 50 3000 4000 5000 6000 7000 8000 9000 10000 LSK Bound S hield s B Shields 0 5000 10000 15000 20000 25000 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 LSK without SI LSK with SI 表 13:s13207 的路徑 LSK 值變化情形

(35)

表 14:s13207 的 LSK 串擾界限值與使用保護線段數目的變化情形

Shields & LSK ound - s13207

210 167 135 100 78 64 48 30 20 19 12 0 50 100 150 200 250 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000 LSK Bound S hie ld s B Shields 0 5000 10000 15000 20000 25000 1 17 33 49 65 81 97 113 129 145 161 177 193 209 225 241 LSK without SI LSK with SI 表 15:s15850 的路徑 LSK 值變化情形

(36)

表 16:s15850 的 LSK 串擾界限值與使用保護線段數目的變化情形

Shields & LSK und - s15850

130 113 92 71 56 40 35 22 14 12 6 0 50 100 150 9000 10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 LSK Bound S hie ld s Bo Shields 0 5000 10000 15000 20000 25000 30000 35000 1 51 101 151 201 251 301 351 401 451 501 551 601 651 701 751 801 LSK without SI LSK with SI 表 17:s38417 的路徑 LSK 值變化情形

(37)

表 18:s38417 的 LSK 串擾界限值與使用保護線段數目的變化情形 Shields & LSK d - s38417 333 264 199 146 109 85 62 45 43 40 30 0 100 200 300 400 8000 9000 10000 11000 12000 13000 14000 15000 16000 17000 18000 LSK Bound S hile ds Boun Shields 0 10000 20000 30000 40000 50000 60000 70000 80000 1 164 327 490 653 816 979 1142 1305 1468 LSK without SI LSK with SI 表 19:s38584 的路徑 LSK 值變化情形

(38)

表 20:s38584 的 LSK 串擾界限值與使用保護線段數目的變化情形 Shields & LSK d - s38584 608 514 481 421 382 330 309 283 265 238 213 0 200 400 600 800 9000 10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 LSK Bound S hie ld s Boun Shields

(39)

Chapter 5

Conclusion

我們嚐試先由一個迷宮式的全域繞線, 更加均勻分佈,考慮了互相干擾 慮了可繞線區域裡的擁擠密度 的因素,再根據 LSK 模組的原因,將可繞線區域的長度也加入考量,最後輸出一個均勻 分佈的初步全域繞線結果給我們設計的有評估 RLC 串擾效應的軌道分配的演算法去加以 擺放,使得能求取一個無電容串擾效應以及盡可能最小化電感串擾效應的解,最後再透 透過設計一個期望能將初步全域繞線的結果 的訊號數目的因素,也考 過我們的安插保護線段演算法,以選取最少的可繞線區域來安插盡可能少的保護線段。 由於採用線性規劃來評估保護線段的數目[6],會受到線性規劃計算軟體本身的限 制,可能無法針對大型的設計情形來使用,因此我們的設計理想就是希望能用一個較普 遍的方式來安插保護線段,並且實際計算安插保護線段後的 LSK 值,以做到確實每一個 需要安插的保護線段都不是浪費,期望用設計出來的表格選取式保護線段演算法,達到 選取最少的可繞線區域,安插盡可能少的保護線段,使最多的路徑滿足其給定的串擾界 限的目的。

(40)

Chapter 6

Reference

[1] K. L. Shepard and V. Narayanan, “Noise in deep submicron digital design,”in Proc. Int.

Conf. Computer-Aided Design, 1996

[2] T. Gao and C. L. Liu ,“Minimum crosstalk channel routing, ” in Proc.Int. Conf.

Computer-Aided Design, Nov. 1993, pp. 692–696.

[3] D. A. Kirkpatrick and A. L. Sangiovanni-Vincentelli, “Techniques for crosstalk

for 7–460.

d Systems, IEEE Transactions on

irable , pp. 524–531.

avoidance in the physical design of high-performance digital systems,” in Proc. Int. Conf. Computer-Aided Design, Nov. 1994, pp.

[4] L. He, N. Chang, S. Lin, and O. S. Nakagawa, “An efficient inductance modeling on-chip interconnects” in Proc. CICC, 1999, pp. 45

[5] L. He and K. M. Lepak, “Simultaneous shielding insertion and net ordering for capacitive and inductive coupling minimization,” in Proc. Int. Symp. Phys. Design, 2000, pp. 55–60.

[6] Jinjun Xiong and Lei He ,“Full-chip routing optimization with RLC crosstalk udgeting”Computer-Aided Design of Integrated Circuits an

Volume 23, Issue 3, pp.366 – 377, March 2004

[7] N. Sherwani,“algorithms for VLSI physical design automation,”kluwer Academic Press, 1992.

[8] S. Batterywala, N. Shenoy, W. Nicholls, and H. Zhou,”Track assignment: a des

(41)

ICCAD 2002. IEEE/ACM International Conference on 10-14 pp.59 – 66 ,Nov. 2002.

, ”Simultaneous Shield Insertion and Net Ordering for Capacitive and Inductive

and EE/ACM

ence”,

d Systems, 2004.

3-26 May 2004

us shield insertion and net esign

gn Automation Conference archive Proceedings of the 39th

f 692–696

[9] Xin Zhao , Yici Cai , Qiang Zhou , Xianlong Hong , Lei He and Jinjun Xiong

Coupling Minimization”, Circuits and Systems, 2004. ISCAS '04. Proceedings of the 2004 International Symposium on Volume 5, pp. V-297 - V-300 Vol.5 , 23-26 May 2004 [10] Tsung-Yi Ho, Yao-Wen Chang, Sao-Jie Chen, and D. T. Lee,”A Fast Crosstalk- Performance-Driven Multilevel Routing System” Proceedings of the 2003 IE

international conference on Computer-aided design November 2003.

[11] F. Harary,Graph Theoery, Addison-Wesley, Reading, MA, USA, 1972. [12] F. Glover,”Future paths for integer programming and links to artificial intellig Computers and Operations research, 1986, 13(5): pp.533-549.

[13] Ling Zhang, Tong Jing, Xianlong Hong, Jingyu Xu, Jinjun Xiong, and Lei He”Performance and RLC crosstalk driven global routing” Circuits an

ISCAS '04. Proceedings of the 2004 International Symposium on Volume 5, 2 Page(s):V-65 - V-68 Vol.5.

[14] Kevin M. Lepak, Min Xu, Jun Chen, Lei He“Simultaneo

ordering for capacitive and inductive coupling minimization” ACM Transactions on D Automation of Electronic Systems (TODAES) July 2004 Vol.9 No.3

[15] James D.Z. Ma, Lei He“Towards global routing with RLC crosstalk constraints” Annual ACM IEEE Desi

conference on Design automation 2002 Pages: 669-67

[16] GAO, T. AND LIU, C. L. 1993. Minimum crosstalk channel routing. In Proceedings o the International Conference on Computer-Aided Design (Nov.), pp.

[17] GAO, T. AND LIU, C. L. 1994. Minimum crosstalk switchbox routing. In Proceedings of the International Conference on Computer-Aided Design (Nov.), pp. 610–615.

(42)

the Theory of NP-Completeness. Freeman, San Francisco, Calif.

[19] HE, L., CHANG, N., LIN, S., AND NAKAGAWA, O. S. 1999. An efficient inductance

f the International

aint. In Proceedings of the modeling for onchipinterconnects. In Proceedings of the IEEE Custom Integrated Circuits Conference (May),pp. 457–460.

[20] LEPAK, K. M. AND HE, L. 2000. Simultaneous shield insertion and net ordering for capacitive and inductive coupling minimization. In Proceedings o

Symposium on Physical Design.

[21] LEPAK, K. M., LUWANDI, I., AND HE, L. 2001. Simultaneous shield insertion and net ordering for coupled RLC nets under explicit noise constr

數據

圖 1:回合刪除式的全域繞線演算法  首先,針對每一條訊號(net)建立連接圖(connecting graph G i ) (圖 2) ,再根 據線性規劃與實驗統計的方式評估出保護線段的數目(shield)[14],並將這個數值與 一般計算可繞線區域(routing region)的密度方式結合,用這個成本計算公式為每一 個連接圖上的邊(edge e)都計算出屬於這個邊的成本(圖 3) ,接著再依照成本值由高 至低依序拔除連接圖上的邊,直到該訊號的連接圖為一個森林(forest)為止(圖 4)。
圖 3:計算出每個邊的成本
圖 16:圖 15 經 Tabu search 後
圖 17:圖 11 經過軌道分配後的最終結果       圖 17 就是從最初的初步全域繞線給的結果開始,經過一連串演算法調整後的最終軌 道分配結果。  3.3  實際安插保護線段  當完成軌道分配後,可能會有幾條訊號線段的整體串擾值超過其給定的串擾界限, 這時候我們根據訊號超過界限的總程度來逐一處理。     首先針對最嚴重情形的訊號取出來,將有超過界限的路徑取出,如圖 18 所示,假 設該圖代表一條超過界限最嚴重的訊號,其中有兩條路徑是超過所給定的串擾界限,所 以我們將它們取出,並且找出這兩條路徑經過的
+7

參考文獻

相關文件

z 圖3-39所示為電感性電 路電流增加率與時間的 關係。在第一個時間常 數的時段裡電流上升到 最大值的63.2%,而在第

• 接續之前的例子,若原為 0.288 pF 的液晶 電容 C LC ,再並聯一個亦為 0.288 pF 的電 容C st ,則電位保持的變化值為.

在介紹方向場時,我們曾提過 RL 電流迴路的模型:一個迴 路接上電源(E)電感(L)以及電阻(R) 如下圖. 同時推得這個

How would this task help students see how to adjust their learning practices in order to improve?..

Then, we tested the influence of θ for the rate of convergence of Algorithm 4.1, by using this algorithm with α = 15 and four different θ to solve a test ex- ample generated as

conductor pn junction diode pn junction

– Determine whether it is possible to design a distributed exact MST algorithm with better work complexity than GHS and obt ain a lower bound on work

In Chapter 3, we transform the weighted bipartite matching problem to a traveling salesman problem (TSP) and apply the concepts of ant colony optimization (ACO) algorithm as a basis