• 沒有找到結果。

VLSI Floorplanning based on Generalized Polish Expression

N/A
N/A
Protected

Academic year: 2021

Share "VLSI Floorplanning based on Generalized Polish Expression"

Copied!
42
0
0

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

全文

(1)

逢 甲 大 學

資訊工程學系專題報告

VLSI Floorplanning based on

Generalized Polish Expression

學 生: 趙英任(資訊四丁)

何信賢(資訊四丁)

指 導 教 授: 陳德生 老師

中華民國 91 年 11 月

(2)

目錄

第一章 序論 ………. 6 1-1 動機 ……….. 6 1-2 目的 ……….. 6 1-3 工作分配 ……….. 6 第二章 背景知識 ………. 7 第三章 系統架構 ………. 13 3-1 系統架構 ……….. 13 3-2 SA 流程 ………. 13 第四章 各部分實作細節 ………. 14 4-1 GPE 實作 ……….. 14 4-2 SA 實作 ……… 14 4-2-1 Operation ……… 15 4-2-1-1 Swap ……….. 15 4-2-1-2 SSwap ……… 15 4-2-1-3 Complement ……….. 17 4-2-1-4 Rotate ………. 17 4-2-1-5 OM ………. 19 4-2-1-6 Flip ………. 20

(3)

4-2-2 Fitness Function ……… 20 4-2-2-1 Corner @ ………. 21 (a) @的策略 ……….. 21 (b) 非法的@ ……….. 22 4-3 Boundary Constraint ……….. 23 4-3-1 Boundary Constraint on PE ……….. 23

4-3-1-1 Boundary Constraint Check Algorithm …... 23

4-3-1-2 修正 Shuffle ………. 23

4-3-1-3 Penalty 的機制 ……… 24

4-3-1-4 Boundary 完整流程 ……….. 25

4-3-1-5 附加說明 ………. 25

4-3-2 Boundary Constraint on GPE……… 26

4-3-2-1 Boundary Constraint Check Algorithm …... 26

4-3-2-2 演算法說明………. 27

(a) 嵌在 Fitness function ……… 27

(b) 演算法運算子 ……… 29

I. Union ……… 29

II. XCover ………. 30

(4)

4-3-2-3 修正 Shuffle ……….. 32 4-3-2-4 Penalty 的機制 ………. 32 第五章 實驗結果數據 ………. 34 5-1 SA 參數設定分析 ………. 34 5-2 Area Optimization ……….. 35 5-3 Boundary Constraint ……….. 36 第六章 結論 ………. 38 6-3 工作成果 ……….. 38 6-2 心得感想 ……….. 38 6-3 未來展望 ……….. 39 第七章 參考文獻 ………. 40 第八章 誌謝 ………. 42

圖表目錄

Figure 1 Slicing Floorplan ……… 8

Figure 2 Non-Slicing Floorplan ……… 8

Figure 3 L-B Compact ……….. 9

Figure 4 Infeasible OM ……… 9

Figure 5 Feasible OM with OM operation ………... 9

Figure 6 PE map to Floorplan ……… 10

Figure 7 GPE map to Floorplan ………. 10

Figure 8 Boundary Constraint ……… 11

(a) Infeasible ……….. 11

(b) Feasible ………. 11

Figure 9 Corner Constraint ……… 12

(5)

Figure 11 Swap Instance ……… 15

Figure 12 SSwap Instance1 ……… 16

Figure 13 SSwap Instance2 ……… 17

(a) Before Swap ……….. 17

(b) After Swap ……… 17

(c) After Swap with rotate ……….. 17

Figure 14 Complement Instance ………. 17

Figure 15 Rotate Instance ………... 18

(a) Before Rotate ……… 18

(b) After Rotate ………... 18

Figure 16 OM Instance ………... 20

Figure 17 PE Boundary Constraint Algorithm ………... 23

Figure 18 PE BICA Additional Description ………... 25

Figure 19 GPE Boundary Constraint Algorithm ……… 26

Figure 20 GPE Boundary Constraint Instance ………... 30

(a) First Step ………... 31

(b) Second Step ………... 31

(c) Third Step ……….. 31

(d) Fourth Step ……… 32

Figure 21 GPE Boundary Constraint Penalty ………. 33

Figure 22 Result Curve SA without SSwap VS SA with OM ………… 34

Figure 23 Result Curve SA without OM VS SA with OM ………. 34

Figure 24 Result Curve SA without SSwap VS SA with SSap ……... 35

Figure 25 Area Optimization Solution ………... 36

Figure 26 Boundary Constraint Solution ……… 37

Chart 1 SA Flowchart ………. 13

Chart 2 SA Operation’s Propability Table ……..……… 15

Chart 3 Module Similarity Table ……… 16

Chart 4 Similarity Degree ………... 16

Chart 5 OM Flowchart ……… 19

Chart 6 Fitness Function Flowchart ………... 21

Chart 7 Corner Checking Flowchart ………... 22

Chart 8 PE Boundary Flowchart ………. 25

Chart 9 GPE BICA Flowchart ……… 28

Chart 10 GPE BICA Embeded in Fitness Function ……….... 29

Chart 11 Area Optimization Experiment Result ………. 35

(6)

第一章 序論

1-1 動機

由於對於軟體有興趣加上上過 VLSI 相關課程後知道有些工作是需要 交給電腦來幫忙處理的,因而間接的碰到 Floorplan 的 CAD Tool,因 此引起我們濃厚的興趣,讓我們想一探究竟。

1-2 目的

我們的目的是要解決 VLSI Floorplanning 以廣義波蘭表示式為基礎 的面積最佳化以及邊界限制的問題。

1-3 工作分配

Area Optimization of GPE: 趙英任

(7)

第二章 背景知識

Floorplan

以現在的製程技術,單一晶片中可能包含數百萬甚至數千萬個電晶 體,然而在電腦上實際設計晶片及佈局時,由於記憶體的限制和計算 能力的考量,我們很難在一個步驟內就完成所有晶片的佈局配置及繞 線。因此我們通常會將晶片上的電路分割(Partition)成數個子部分再獨 力完成,而這些分割出的子部分我們稱之為區塊(blocks),經過分割 步驟之後所得到的輸出就是一組區塊和所有區塊間的連線需求。在這 步驟之後的每個區塊的面積大小是可以評估的,而且形狀和 pin 腳數 也會被確定,而這些資訊會被當成輸入傳送到平面規劃及平面配置步 驟以進行下個步驟。 平面規劃與平面配置其實很難做嚴格的區分,正確來說平面規劃包含 平面配置。當輸入的各區塊面積已經確知詳細的區塊寬度、長度也就 是形狀大小也已經決定時,如何在一個佈局表面決定各固定區塊 (fixed block)(或稱 hard block)的位置,以取得最小總面積及連線

成本,這問題我們稱之為平面配置問題(placement problem);反之,

若輸入的各區塊面積已經知道,但詳細的區塊寬、高也就是形狀大小 仍未決定(或稱 soft block)時,處理這樣的問題我們稱之為平面規

(8)

劃問題(floorplanning problem),我們可以說平面配置問題是比平面 規劃問題有更嚴格的限制。平面規劃和平面配置的結果好與壞會影響 一個晶片的面積成本與接線成本,因此平面規劃和平面配置在實體設 計部分具有相當重要的影響力。

Slicing

若一個平面規劃可以被遞迴的用垂直切割或水平切割,一次一刀的完 全分割成兩半,我們稱這個平面規劃為可分割的平面規劃,如 Figure1 所示。

Non-Slicing

並非所有的平面規劃都是可分割的,下圖為一個不可分割的平面規 劃,該平面不論是垂直或是水平分割都無法一次一刀將平面分為兩部 分。 1 2 4 5 3 A D C E Fig. 1

(9)

L-B Compact

這是在 floorplan 設計中的一種策略,大致的概念是把整個 floorplan 放置的方式盡量靠左下放置,我們在實作的時候以最左下角的那個點 當作(0,0)然後再向上向右堆積形成一個完整的 floorplan,figure3。 1 3 2 5 4 (0,0)

OM Property

在 floorplan 的設計中因為 L-B Compact 的關係,若是在左下的 block 比較矮的話容易造成 dead area,如 figure4;因此為了尋求更好的解, 採用 OM Property 用來增進找解的效率,就是將左下邊較矮或較窄的 block 與右上邊的交換,figure5。 1 2 Dead area 1 2 Dead area 1 2 Fig. 3 Fig. 4 Fig. 5

(10)

PE

Polish Expression,Slicing expression 用來表示 floorplan 的一種表示 法,operator 有+和*,+代表上下結合,*代表左右結合,figure6。 2 1 3 1 (2 3 +) * 2 3 +

GPE

Generalized Polish Expression,是將 PE 作更進一步的擴張,就原來的 PE 加入一個新的 Operator — @,而表示法也因此成為 Non-Slicing expression,增進@最主要的好處是將原來 PE 可能造成的 dead area 可以利用@operator 來彌補,如 figur7。 1 2 Dead Area 1 2 3 PE 1 2 * GPE 1 2 + 3 @ Fig. 6 Fig.7

(11)

Fig.8合理的平面規劃例子,假設模組 A 被限制需擺在右邊界。 (a)為一個不合理(infeasible)的置放(b)為合理(feasible)

Boundary Constraint

令模組 A 為一個方形區塊且寬高分別為 w(A)、h(A),面積為 area(A)。

在我們的問題中,我們給定兩種未定型模組 M = F∪B,F 是可以任何移動的模 組,稱之為 Free Module,而 B 是具有邊界限制條件的模組,稱之為 Module with Boundary Constraint,而屬於 B 類的方形區塊(Block)它必須只能擺在最終平面 規劃的四個邊界上,也就是左、右、上、下四個邊界。我們定義一個所謂合理的 置放(feasible packing),表示模組放置符合面積限制的要求,而且所有的邊界限 制模組均在所要求的邊界上。我們的最終目的是建構一個合理的平面規劃 (feasible floorplan)R 並能取得最小的評估函式值,cost( R )= A + P。此評估函 式的意義為且能使平面規劃的總面積 A 達到最小,P 為 Penalty,當 P 不為零 的狀況是當 B 類的模組,不在所限制的邊界。當 B 類模組為不合理的置放時, 會產生 Penalty。如 Fig8

Corner Constraint

在我們的 GPE 表示法中,有一 operator : @ ,其作用是找一個 Corner 插入。 Corner constraint 就是記錄了放在哪個 module 的左邊以及哪個 module 的上面, Figure9。

(12)

1

2

5

3

4

6

7

8

1 2 3 * + 5 * 4 @ 8 @ 6 * 7 @ {2,3},{4,5},{4,8} Fig. 9 區塊 4 是插在區塊 2 的左邊,區塊 3 的上面。 區塊 8 是插在區塊 4 的左邊,區塊 5 的上面。 區塊 7 是插在區塊 4 的左邊,區塊 8 的上面。 換句話說,corner constraint 是描述@所影響的 module 之所在位置。

(13)

第三章 系統架構

3-1 系統架構

3-2 SA 流程

Initial Solution Operation

Fitness ConstraintBoundary

Check Area is decrease Check is Accept Accept No Yes Random

Accept Not Accept

Yes No

Replacement Give Up Cost Function

Graphic User Interface

SA Fitness Operation Utility Boundary Constraint I/O Fig. 10 Chart 1

(14)

第四章 各部分實作細節

4-1 GPE 實作

我們在實做 GPE 時,因為 GPE/PE 在邏輯上是使用 Binary Tree 的概 念,故我們早期在資料結構實做上是使用 Binary Tree 的架構。Binary Tree 優點是實做上很直觀,但是在速度上,因為要 Copy 整個 GPE Tree 的關係,速度被拖了下來。現在是使用 Array 的結構當作主要實 做架構,用 Array 實做時,速度提升了很多。

4-2 SA 實作

我們的 Operation 有 Swap,Rotate,Flip(只對 wire 有幫助),

Complement,SSwap(Similar module swap),OM。在程式中,我們

加入了動態 Operation probability,目的是為了把 Operation 所做的動 作使其因應不同的 Area 有不同的變化。譬如在一開始,面積很大, 所以要使用會大幅度破壞 floorplan 的 operation。例如 swap 或 Complement。等到面積差不多小了,就換成另一種 operation 參數繼 續做,當 Area 又達到我所期望的 Area,此時 Area 已經夠小了,應該 換一種參數。由於此時 Area 已經算是滿密集的了,必須要採用微調 的 Operator,例如 SSwap。

(15)

我們的實做參數如下:

相對機率 Swap Rotate Complement SSwap OM

第一階段 1 1 1 1 1 第二階段 1 3 3 7 0 第三階段 1 1 1 20 0

4-2-1 Operation

我們的 Operation 有 Swap,Complement,rotate,flip,SSwap,OM

4-2-1-1 Swap

這個 Operator 主要是隨便選兩個 Subtree 交換,使用結果是容易大幅 度影響 Floorplane 的 Area。 + @ 6 5 * * + 4 3 1 2 + 7 * 8 + 7 * 8 @ 6 5 * * + 4 3 1 2 +

4-2-1-2 SSwap

此 Operator 是依照 module 的相似度排名來交換。主要精神是交換兩 Chart 2 Fig. 11 隨機選擇二個子樹交換,唯一要注意的是,若所選取的兩子樹有其中一子 樹為另一子樹的子樹,這是不被允許的。例如 一子樹選擇 1 2 + ,另一個子樹選 擇 1 2 + 3 *,像這種情形就不行。Swap 若用 Tree 實做,交換的時間複雜度很小, 只有 O(1),而用 Array 來做,時間複雜度為 O(n)。

(16)

個相似的 Module。Dij為 module i 和 j 的相似度 ,Dij = | Li-Lj | + | Wi-Wj |。L 為 moudle 的長,W 為 module 的寬。 如 Figure12

A

8 6

C

3 4

D

7 2

B

4 7 區塊 A 的長為 8,寬為 6;區塊 B 的長為 7,寬為 4;區塊 C 的長為 4,寬為 3; 區塊 D 的長為 7,寬為 2;則區塊 A 和區塊 B 的相似度為: DAB = | LA-LB | + | WA-WB | = | 8-7 | + | 6 - 4 | = 3;區塊 A 和區塊 C 的相似度為: DAC = | LA-LC | + | WA-WC | = | 8-4 | + | 6 - 3 | = 7,依此作法,可以推出每個區塊之間的相似 度表,從這個表可以知道區塊的相似度,當然若為了方便,還可以做相似度排名 表。 例如由上表可知,區塊 A 和區塊 B 最相似,其次是 D,最後是 C,其餘依此類 推。用此 Operator 的目的是在於微調。不過若是只有以相似度為主來交換,似乎 還不能達到微調的目的,還必須整合 rotation mechanism 在這個 Operator 裡。 rotation mechanism 是指在 Swap 時必須考慮 ratio,如 Figure14,圖(a)是原始的 Floorplane,若要把區塊 1 和區塊 3 交換,若不考慮 ratio,則結果可能會如同下 圖(b),若考慮 ratio,結果會是如同下圖(c)。實做上只是在交換前,檢查區塊 1 A B C D A 0 3 7 5 B 3 0 4 2 C 7 4 0 4 D 5 2 4 0 第一名 第二名 第三名 A B D C B D A C C B D A D B C A Fig. 12 Chart 3 Chart 4

(17)

和區塊三是否兩者的長是在同一邊,同一邊是指是否同和 X 軸平行或是和 Y 軸 平行,若兩者的長都在同一邊,則不必在交換前旋轉,若不在同一邊,則交換前 兩者都要先旋轉。

4-2-1-3 Complement

此 Operator 是把 + 變成 * 或 @,* 變成 + 或 @,@ 變成 * 或 +實作上無論是用 Array 實做或是用 Binary Tree,其時間雜度都是 O(1)

1 2 + 3 * 4 + 5 * 6 @ 7 8 *

*

[2,5]

7

8

1

2

3

6

4

5

1 2 + 3 * 4 + 5 * 6 @ 7 8 * + [2,5]

1

2

3

6

4

5

7

8

4-2-1-4 Rotate

Rotate 其實只是旋轉一個 Module,技術上來說,Subtree 也可以旋轉, 但是不能含有 @ 這個 Operator。 Fig. 13 Fig. 14一個 * 變 +的例子。 + 是指左右結合, * 是指上下結合, @ 是指右子樹插到左子樹的 Corner 上。

(18)

旋轉 90∘的例子:圖(a)是旋轉前,圖(b)是旋轉後。

1

2

3

6

4

5

7

8

7

3

1

*

8

+

*

*

+

2

+

4

5

+

6

1

2

3

6

4

5

7

8

8

7

*

+

+

3

+

5

*

6

1

*

2

*

4

(a) (b) Fig. 15 其實向右旋轉 90∘的規則很簡單:旋轉規則如下所示: 1. + 變 * ,* 變 + 。 2. 當 + 變 * 時,左右子樹對換。 3. 起點由 subtree 的根節點開始向下,一層一層換。

(19)

4-2-1-5 OM

OM 處理 左右結合 左子樹 是否比 右子樹高 左右子樹交換 結束 是 否 OM 處理 上下結合 左子樹 是否比 右子樹寬 左右子樹交換 結束 是 否 當初加入 OM 的理由是為了使@有更多 Corner 可以插入。為了製造 更多的 Corner,我們加入了此機制,左右結合時,高的擺左邊,上下 結合時,寬的擺下面。但是,事實上有過多的 Corner 而無 @ 適當 的擺放,也是沒有用的。故我們的作法是把 OM 當成一種 Operator, 只有在適當的時間內 Run 一下,以助於找到更好的解。而事實上也 是如此。 Chart 5

(20)

L

R

在上下結合時,不符合OM

L

R

在上下結合時,符合OM

L

R

在左右結合時,不符合OM

L

R

在左右結合時,符合OM

4-2-1-6 Flip

Flip 只是 module 的鏡射,只會影響 module 上的 pin 的位置,對面積 無助益,但是對 module 之間的線長會有幫助。

4-2-2 Fitness Function

評估函數,主要是評估經由搜尋引擎找到的 floorplan 是好或壞。其 實整個程式來說,Fitness Function 對結果來說佔了很重的比例。評估 函數更是影響效能好壞重要指標。 基本上,若是 PE 的評估函數,其時間複雜度為 O(n),因為 PE 只需 從頭到尾掃一次,便知 floorplane 的 Area 好壞。而 GPE 因為有了@,

其時間複雜度為O(nlogn),因為它還必須維護 corner,以及@擺放的 位置。 Fig. 16 OM 的最簡單的說明,簡單的說:高 的擺左邊,寬的擺下面。意思是指當 module 結合時,若結合的運算子為左右結合,但是 若左子樹(或左邊的 module / supermodule) 比右子樹來的高(或右邊的 module / supermodue),則符合 OM 的要求。又當 module 結合時,若結合的運算子為上下結 合,且左子樹(或下面的的 module / supermodule)比右子樹來的寬(或上面的的 module / supermodue),則符合 OM 的要求。

(21)

i=1 測試GPE的單元 GPE[i] GPE[i] 是否為 單 一block GPE[i]是否 為 + GPE[i] 是否為 * GPE[i] 是否為 @ 否 否 否 Push 入堆疊 取出堆疊的最 Top的二個單 元 是 是 是 是 取出堆疊的最 Top的二個單 元 取出堆疊的最 Top的二個單 元 是 OM 處理 上下結合 OM 處理 左右結合 是否為 合法的@ 是 把從堆疊取出 的最Top的二個 單元,依照原 來的順序放回 把@ 變成 + 或 * ,並且退 回 I 小於 2*nob ? 上下結合 左右結合 @ process Corner 更新 Corner 更新 Corner 更新 下一步 否 結束

GPE fitness function

4-2-2-1 Corner @

(a) @的策略

其實 GPE 的評估函數實做上並不困難,但是並非如 PE 的評估函數那 般容易。基本上,PE 的評估函數只要把 GPE 的@部分去除,OM 去 除,Corner 去除,就是完整的 PE 評估函數。在 GPE 的評估函數裡, @的決定最困難,因為它會摻雜策略在裡面。因為@的性質是會找

(22)

面臨 Corner 和 @ 的配對問題。因為@的插入先後和位置會影響整個 Floorplan 大的。基本上,Corner 和 @的配對策略大概有三種:First best、Random、Best。當然可能還有其他的。

First Best 策略是指只要找到某一個 Corner 能夠不產生 Dead Area,就 插入。Random 就是指 @ 隨機插入 Corner,而 Best 是指能填滿越多 的空洞越好,但是盡量不產生 Dead Area,當然第三種最花時間,基 本上採用第一種:First Best 和第二種:隨機。 @的處理 先前的 Corner是否 存在? 插入 Corner 結束 是 只要先找到 一個造成 Dead Area最 小的,就插 入Corner, 在不行就隨 機 否

(b)非法的@

非法的 @ 是指沒有 Corner 可插入的 @ ,這種 @ 是不應該存在 的,故我們的處理方法是把 @ 轉變成 + 或 * ,轉變的策略是看左 Chart 7

(23)

子樹的寬高比例。簡單的說若左子樹的高比寬大,則 @ 變成 *,本 來左子樹的高比寬大,而若此時是左右結合,將會把寬高的比例拉 近。依此類推,若左子樹的高比寬小,則@ 變成 +。

4-3 Boundary Constraint

4-3-1 Boundary Constraint on PE

4-3-1-1 Boundary Constraint Check Algorithm

輸入: 一個 PE Ψ = {λ 1, λ 2, …, λ 2n-1}

輸出: Four boundary lists L, B, R and T in the final floorplan. 1. top = 0.Assign 0 to all four bits of stack[top] 2. For i = 2n-1 downto 1

3. If £f i is * operator:

4. Push a new element x onto the stack 5. x.left = 1

6. copy x.right,x.above and x.below from stack[top – 1] 7. x.flag = 0; x.op = *

8. If £f i is + operator:

9. Push a new element x onto the stack 10. x.below = 1

11. copy x.left,x.right and x.above from stack[top – 1] 12. x.flag = 0; x.op = +

13. If £f i is a module name:

14. copy the four bits from stack[top] to £f i 15. while stack[top].flag = 1 and top >0 16. pop stack

17. If top > 0:

18. stack[top].flag = 1 19. If(stack[top].op = *) 20. stack[top].right = 1

21. stack[top].left = stack[top – 1].left 22. If(stack[top].op = +)

23. stack[top].above = 1

24. stack[top].below = stack[top – 1].below

4-3-1-2 修正 Shuffle

主要是在做修正不合法的 boundary,採用的方法是根據字串中的相對 位置來做修正,舉例說明

假設有一個字串 1 2 + 3 4 * + 5 + 6 *

(24)

left:1 2 5 right:6 top:5 6 button:1 3 6 如果 4 要在 button boundary 但不合法的話會從 4 的位置往前或往後看 會得到 3 距離 4 的位置較近雖然 1 和 6 也是合法的但是距離分別是 4 與 5 不過還有一點規定就是如果 block 曾經被換過或是已經含有 boundary constraint 就不會再被換掉,選到這些的話就要換選別的, 如果找不到可以換的那麼就不換,在 search engine 中的 cost function 中加入 penalty

4-3-1-3 Penalty 的機制

由於這個方法沒辦法每一次都能找到合法的解,每次都會有可能找到 不合法的解,因此需要加入 penalty 來使的 search engine 能夠有找到 又好又合法的解的方向,加入 penalty 的方法是將不合法的 block 現 在的位置與其目標 boundary 的位置之間的距離當作 penalty 例如有個 block 現在中心點在(40,35)而他的目標是 top 而此 floorplan 的 top 大概 在(100,XXX)的位置,因此 penalty 則是 100-45 = 55

(25)

4-3-1-4 Boundary 完整流程

4-3-1-5 附加說明

由於他的 block 是 soft 因此這一方法非常有效,如果作用在 hard block 則此一方 法所建出來的表則會缺東缺西的,figure 18 1 2 3 1 2 3

hard block soft block

1 2 3 + * Boundary Constraint Input Complete PE BICA 建立 boundary 的表格 Check BC TRUE FALSE Shuffle End Chart 8

(26)

4-3-2 Boundary Constraint on GPE

4-3-2-1 Boundary Constraint Check Algorithm

邊界限制演算法,包含了邊界資訊檢查演算法,以相似度決定互換區 塊模組。

演算法

輸入: 一個 GPE Ψ = {λ 1, λ 2, …, λ 2n-1}

輸出: Four boundary lists L, B, R and T in the final floorplan. 1. top = 0.

2. For i = 1 to 2n -1 3. If £f i is + operator:

4. N.left = stack[top].left union stack[top-1].left 5. N.right = stack[top].right union stack[top-1].right

6. N.above = x_cover(stack[top-1].left, stack[top].right,TOP)

7. N.below = x_cover(stack[top].bottom,stack[top-1].bottom, BOTTOM) 8. Pop the top two elements of stack

9. Push N to stack

10. If £f i is * operator:

11. N.left = x_cover(stack[top-1].left,stack[top].left, LEFT) 12. N.right = x_cover(stack[top].left,stack[top-1].left,RIGHT) 13. N.above = stack[top].above union stack[top-1].above

14. N.below = stack[top].below union stack[top-1].below 15. Pop the top two elements of stack

16. Push N to stack

17. If £f i is @ operator:

18. N.left = x_cover(stack[top-1].left, stack[top].left,LEFT) 19. N.right = x_cover(stack[top].left, stack[top-1].left,RIGHT) 20. N.above = x_cover(stack[top-1].left, stack[top].right,TOP)

21. N.below = x_cover(stack[top].bottom,stack[top-1].bottom, BOTTOM) 22. Pop the top two elements of stack

23. Push N to stack 24. If £f i is a module name: 25. N.left = £f i 26. N.right = £f i 27. N.above = £f i 28. N.below = £f i 29. Push N to stack 30. L = stack[top].left 31. B = stack[top].below 32. R = stack[top].right 33. T = stack[top].above

Fig. 18 這一個例子用 D.F. Wong bica(boundary information check algorithm)會 有不同的影響,他們所得到的 boundary constraint 表示一樣的但是結果上有些 許的差異。得到的表中 3 的 left 是有 module 的,在 soft 是如此沒錯,但是在 hard 卻不盡然,如圖所示 module 3 的 left 是沒有東西的,如果這時候的 constraint 設定 module 3 要在 left 那麼這個合法的解會被修掉的。

(27)

4-3-2-2 演算法說明

(a)嵌在 Fitness function

基本上,這個演算法的基本架構是嵌在 Fitness Function 裡的。因為我 們要較為精準的界限檢查演算法,也就是要把在邊界上的區塊 (block),算的較為精確。當然,這樣在實做上,會比簡單的估算複 雜多了,不過這也是第一次在 GPE 上應用邊界限制,為了使具有邊 界限制的區塊能正確的放在邊界,並使得面積盡量最小化。 簡單來說,邊界資訊的取得基本上是已經知道各個模組或區塊的真實 座標位置。邊界資訊檢查演算法裡頭有個 Operator,稱做 Union,其 實只是一個連接符號。舉例來說,若左子樹的左邊界資訊(Left Boundary information) 為 { 1 -> 2 -> 3 -> 4->5 },而右子樹的左邊界資 訊為{ 10->11->12->13->14 },那左右結合完後的資訊為何呢?當 然,左子樹的左邊界資訊會被完整的保留,而右子樹的左邊界資訊會 被部分刪除。再舉一例:若左右子樹現在要上下結合,但是上下結合 和左右邊界資訊無關,故左右子樹上下結合完後的左邊界資訊為 { 1 -> 2 -> 3 -> 4 -> 5 -> 10 -> 11 -> 12 -> 13 -> 14 }。在節所看到的邊界 資訊檢查演算法所用的 X_Cover,其精神是當左右子樹結合時,一定 會有一方的資訊會被丟棄,另一方的會被完整保留下來;而 Union 就 是兩方都完整保留下來。整個演算法裡所存的邊界資訊會由左往右

(28)

(當資訊為上邊界資訊或下邊界資訊時),由下往上(當資訊為左邊 界資訊或右邊界資訊時)。 OP is + ? OP is * ? OP is @ ? 否 否 處理邊界限制 邊界計算 for Op = + 邊界計算 for Op = * 邊界計算 for Op = @ 是 是 是 邊界計算 for module 否 (Op = 區塊)

For each GPE unit

座標計算 for Op = + 座標計算 for Op = * 座標計算 for Op = @ Module 座標計算 Chart 9

(29)

i=1 測試GPE的單元 GPE[i] GPE[i] 是否為 單 一block GPE[i]是否 為 + GPE[i] 是否為 * GPE[i] 是否為 @ 否 否 否 Push 入堆疊 取出堆疊的最 Top的二個單 元 是 是 是 是 取出堆疊的最 Top的二個單 元 取出堆疊的最 Top的二個單 元 是 OM 處理 上下結合 OM 處理 左右結合 是否為 合法的@ 是 把從堆疊取出 的最Top的二個 單元,依照原 來的順序放回 把@ 變成 + 或 * ,並且退 回 I 小於 2*nob ? 上下結合 左右結合 @ process Corner 更新 Corner 更新 Corner 更新 下一步 否 結束

GPE fitness function

邊界資訊 計算 邊界資訊 計算 邊界資訊 計算

(b)演算法運算子

I. Union

Union 在邊界檢查演算法裡,只是單純用在兩筆資料的連接,而且兩 筆資料會依照先後順序排列。例如:A = { 1 -> 21 -> 23 -> 34 -> 15 }; B = { 26 -> 7-> 38 -> 49 } ,則 A Union B = { 1 -> 21 -> 23 -> 34 -> 15 Chart 10

(30)

-> 26 -> 7-> 38 -> 49 }。

II. X_Cover

X_Cover 在邊界資訊檢查演算法裡,佔了很重要的概念。基本上是 Cover 的概念,而 X 是方向。X 可以為 LEFT、RIGHT、TOP、BOTTOM。 用物理的方式來想的話,X 可以當做是平行光源的來源方向,X_Cover 函式會傳回被 X 方向平行光源完整照到的區塊模組。X_Cover 的函示 原型可以寫成:

X_cover( dir ,reserve, abandon)

,其中 dir 表示方向,reserve 為在運算過程中不會被更動的資訊, abandon 是在運算過程中,可能會被蓋掉的模組資訊。用平行光的概 念來想,當有二群模組左右結合時,在左邊一群的左邊界模組,一定 會被光照到,而在右邊一群的左邊界模組,一定有些會被左邊群的模 組蓋到。這就是 X_cover 的精神。

(c)舉例說明

4

1

3

2

5

以 Figure 21 為例,我們將以例子為輔解釋邊界檢查演算法。 Fig. 20 1 2 3 + * 4 + 5 @

(31)

3

2

(a) 左邊界資訊 = { 2 } union { 3 } = { 2 , 3 } 右邊界資訊 = { 2 } union { 3 } = { 2 , 3 } 上邊界資訊 = X_Cover( { 3 } , { 2 } , TOP) = { 3 } 下邊界資訊 = X_Cover( { 2 } , { 3 } , BOTTOM) = { 2 }

1

3

2

(b) 左邊界資訊 = X_Cover( { 1 } , { 2 , 3 } , LEFT) = { 1 } 右邊界資訊 = X_Cover( { 2 , 3 } , { 1 } , RIGHT) = { 2 , 3 } 上邊界資訊 = { 1 } union { 3 } = { 1 , 3 } 下邊界資訊 = { 1 } union { 2 } = { 1 , 2 }

4

1

3

2

(c) 左邊界資訊 = { 1 } union { 4 } = { 1 , 4 } 右邊界資訊 = { 2 , 3 } union { 4 } = { 2 , 3 , 4} 上邊界資訊 = X_Cover( { 1 , 3 } , { 4 } , TOP) = { 4 } 下邊界資訊 = X_Cover( { 1 , 2 } , { 4 } , BOTTOM) = { 1 , 2 } 2 3 + 1 2 3 + * 1 2 3 + * 4 +

(32)

4

1

3

2

5

(d) 左邊界資訊 = X_Cover( { 1 ,4 } , { 5 } , LEFT) = { 1 } 右邊界資訊 = X_Cover({ 5 } , { 2 , 3 ,4 } , RIGHT) = { 2 , 5 } 上邊界資訊 = X_Cover( { 5 } , { 4 } , TOP) = { 4 , 5 } 下邊界資訊 = X_Cover( { 1 , 2 } , { 5 } , BOTTOM) = { 1 , 2 }

4-3-2-3 修正 Shuffle

我用的方法是盡量選擇則最相似度最高的模組區塊來和邊界交換,相 似度的定義 D = | HA – HB | + | WA - WB | 理由是盡量不要有大幅度的變動。故採用盡量和最相近模組區塊交換 的機制。

4-3-2-4 Penalty 的機制

基本上 Penalty 只是為了反應有哪些區塊模組未被正確的配置在邊 界。Penalty 的基本原則是當模組區塊無法被配置在邊界時,強迫將 它配置在邊界,所額外產生的 Dead Area 之和便是 Pealty。

1 2 3 + * 4 + 5 @ {3,2}

(33)

5

4

3

2

1

L

R

44

33

22

11

T

B

非法的右邊界的Penalty 非法的左邊界的Penalty 非法的上邊界的Penalty 非法的下邊界的Penalty

6

9

7

8

Fig. 21 L 是無法配置在左邊界的區塊,T 是無法配置在上邊界的區塊,R 是無法配置在右邊 界的區塊,B 是無法配置在下邊界的區塊。上圖黑色部分是強迫將 L、T、R、B 配置在邊界所 額外產生的 Dead Area,這些 Dead Area 之和會被當做 Peanlty。

(34)

第五章 實驗結果數據

5-1 SA 參數設定分析

Fig. 22 由這一張數據我們 可以看出 OM 的作用,能夠 比較快的找到好解 Fig. 23 由這一張數據我們 可以了解 OM 在一開始打開 能得到比較好的效果但到了 中後半段效果會變的很差

(35)

5-2 Area Minimization

我們的實驗數據與其他已發表的表示法間的數據比較,可以看出 GPE Chart 11 Fig. 24 由這一張數據我們可 以看出 SSwap 的威力所在,其 實它並不具有很大的威力,但 是當 SA 落入 Local Optimal 時 它的效果立刻顯現出來

(36)

所限制,但是 GPE 不但承襲了 PE 的優點之外也可以表示 non-slicing 的 floorplan,因此比較容易能夠找到好解

5-3Boundary Constraint

這是我們的實驗數據,將 PE 上用 D.F. Wong 的 boundary constraint

Chart 12 Fig. 25

(37)

的完整演算法與我們的 GPE 的 boundary constraint 的演算法跑出來的 數據,有一點要提的就是原來 D.F. Wong 的 boundary constraint 的完 整演算法是作用在 soft module 上,不過我們 GPE 尚未完成 soft module 因此把它的方法用在 hard module,因此與他論文的實驗數據有所差 別。在我們所跑的輸入資料之下,我們可以看出在 hard module 下, GPE 的 boundary constraint 可以得到比較好的結果,原因在於 GPE 的 bica 可以找到完整的 boundary information 而 D.F. Wong 的會有所缺 失,在來是 suffle 的機制,GPE 是採用把比較相似的 module 作交換, 比較不容易造成因為交換造成面積突然的大幅度變化,而 D.F. Wong 的方式則是採用拓樸的方式來作修正因此再交換過程中很容易造成 面積的突然劇烈變動。

(38)

第六章 結論

6-1 工作成果

我們的系統所作出的實驗數據上了兩篇論文

Chang-Tzu Lin, De-Sheng Chen and Yi-Wen Wang,“GPE: A New Representation for VLSI Floorplan Problem,”Proc. ICCD, to appear, 2002.

Chang-Tzu Lin, De-Sheng Chen and Yi-Wen Wang ,“VLSI Floorplanning with Boundary Constraints Based on

Generalized Polish Expression”,Proc. 2002

6-2 心得感想

這一次的專題應該算是在大學所寫的程式中算大的,不過這只能算是 小型系統而已,這是我們第一次以分工的方式來組合出的系統,在工 作當中常常出現問題,尤其是以資料結構不一致最為常見,而且一開 始的時候未對整個問題作全盤的詳細分析,因此先以 tree base 來實 作,然而在最後完成的時候發現整體效率低落,為了不要動到大結構 因此只修改部分的資料結構,但是動到的程式碼部分還是很多而且 雜,大家弄得很痛苦,而且以時間的觀點來看效率感覺很差,於是換 成 array base,由於有前車之鑑,因此在 array base 的版本中對於資料 結構一開始就先行定義清楚,免的將來又要痛苦,在完成之後時間大 幅度的降低,終於可以算是大公告成,由這次的實作中也讓我們得到 了不少經驗,可以作為以後撰寫系統的經驗。

(39)

6-3 未來展望

Floorplan 中的 constraint 有很多,例如 wire evaluate、abutment constraint、preplace constraint、alignment constraint、route、power 等 等,我們這一次只接觸到 area 及 boundary constraint 而已,希望將來 能把所有的 constraint 都加入,以及有一套 GPE 專用的搜尋引擎,成 為一套完整的 floorplan CAD Tool。

(40)

第七章 參考文獻

[1] Chang-Tzu Lin, De-Sheng Chen and Yi-Wen Wang,“GPE: A New Representation for VLSI Floorplan Problem,”Proc.

ICCD, to appear, 2002.

[2] D. F. Wong, and C. L. Liu, “A New Algorithm for Floorplan Design,” Proc. DAC, pp.101–107, 1986.

[3] H. Murata, K. Fujiyoshi, S. Nakataka, and Y.

Kajitani,“Rectangle-Packing-Based Module Placement,”

Proc.IEEE/ACM International Conf. on Computer-Aided Design,pp. 472-479, 1995.

[4] S. Nakatake, K. Fujiyoshi, H. Murata, and Y.

Kajitani,“Module placement on BSG-structure and IC layout applications,” Proc. ICCAD, pp. 484–491, Nov. 1996.

[5] X. Hong, G. Huang, Y. Cai, J. Gu, S. Dong, C.-K. Cheng, and J. Gu, “Corner block list: an effective and efficient topological representation of non-slicing floorplan,” Proc.

ICCAD, pp. 8-12, 2000.

[6] P.-N. Guo, C.-K. Cheng, and T. Yoshimura, “An O-Tree Representation of Non-Slicing Floorplan and Its

Applications,”Proc. DAC, pp. 268–273, 1999.

[7] F. Y. Young, D. F. Wong, and H. H. Yang, “Slicing floorplans with boundary constraints,” IEEE Trans.

Computer-Aided Design, pp. 1385–1389, 1999.

[8] S. Kirkpatrick, C. D. Gelatt, and M. P. Vecchi,

“Optimization by simulated annealing,” Science, vol. 220, no. 4598, pp.671–680, May, 1983.

[9] Yun-Chih Chang; Yao-Wen Chang; Guang-Ming Wu; Shu-Wei Wu, “B*-trees: A New Representation for Non-slicing

(41)

Floorplans,” Proc. DAC,pp. 458 –463, 2000.

[10] R.H.J.M. Otten, “Automatic floorplan design,” Proc. DAC, pp. 261–267,1982.

[11] Nakaya S., Koide T. and Wakabayashi S., “An adaptive genetic algorithm for VLSI floorplanning based on

sequence-pair,” Proc. ISCAS, pp.65 -68, 2000. [12] S. Kirkpatrick, C. D. Gelatt, and M. P. Vecchi,

“Optimization bysimulated annealing,” Science, pp.671–680, 1983.

[13] X. Tang and D. F. Wong, ”FAST-SP: A Fast Algorithm for Block Placement based on Sequence Pair,” Proc. ASP-DAC, pp. 521-526, 2001.

[14] Y. Pang, C.K. Cheng, and T. Yoshimura, “An enhanced perturbing algorithm for floorplan design using the O-tree representation,” Proc. ISPD, pp. 168-173, 2000.

[15] X. Hong, G. Huang, Y. Cai, J. Gu, S. Dong, C.-K. Cheng, and J. Gu, “Corner block list: an effective and efficient

topological representation of non-slicing floorplan,” Proc.

ICCAD, pp. 8-12, 2000.

[16] Jai-Ming Lin and Yao-Wen Chang, “TCG: A Transitive Closure Graph-Based Representation for Non-Slicing Floorplans,” Proc. DAC, pp. 764-769, 2001.

[17] Chang-Tzu Lin, De-Sheng Chen and Yi-Wen Wang ,“VLSI Floorplanning with Boundary Constraints Based on

Generalized Polish Expression”,Proc. 2002

[18] Shinn-Ying Ho and Yi-Kuang Lin , "OSA: An Orthogonal Simulated Annealing Algorithm for Floorplan Area

Minimization," Submitted to IEEE Trans Computer-Aided Design , (SCI) [NSC 90-2213-E-035-023]

(42)

誌謝

深深的感謝在做專題期間我的指導教授 陳德生老師和 王益文老師以及 VLSI 實驗室博士班學長 林昌賜對我們在專題研究期間之指導與帶領。 感謝 何信瑩老師所授的基因演算法的課程,若無此課程,我們不可能對演化式 計算有更深層的認知。以及其已畢業的學長林益廣,他對我們的 GPE 面積最佳 化問題有重要的啟發。 感謝在過去教過我們課業的所有老師黃溪春、李維聰、黃秀芬、徐弘洋、劉振緒、 劉嘉政、林志敏教授,無論他們教授的是什麼科目,都對我們有所啟發以及影響, 系上的老師都是我們的知識啟蒙者,而成就了我們的專題。 感謝在 VLSI 實驗室一起努力的學長們以及所有曾經幫助過我們的專題的人。

數據

Graphic User Interface

參考文獻

相關文件

• cY 代表因所得水準不同而產生的誘發性消費 支出(induced consumption expenditure). •

由不同的物 料製成同樣重量的 降落傘的降落速度 也會不一樣。. 風力、拋擲的方法 、懸墜物的重量等

按計算機得到 log 2 的近似值的確是十分簡便,但不免有學生會好奇,以前的數學家 是怎麼求出 log

才有這樣的結果 ( idaṁ hoti ) 。累次有同樣的事實可現觀或驗證,由例 證推理,就可以記說:處於有這一些因緣具足時( imasmiṁ sati ),肯定 有這樣的結果(

 不過以上所提的內容幾乎都會被現在的智慧型手機取 代,因此我們覺得這些功能能夠運用在一個沒有網路

如圖,空間中所有平行的直線,投影在 image 上面,必會相交於一點(圖中的 v 點),此點即為 Vanishing Point。由同一個平面上的兩組平行線會得到兩個

由於 DEMATEL 可以讓我們很有效的找出各準則構面之因果關係,因此國內外 有許多學者皆運用了 DEMATEL

表 4-4-5 彙整了不同教育程度的民眾對祭品用品電子化的接受度之 單因子變異數分析統計結果。由表 4-4-5 的整體量表的 F