• 沒有找到結果。

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

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

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]

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

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

由於我們都是在四方格中,考慮邊上的擁擠度機率值,所以線段的連線 狀態不像在二維度格子切割的繞線平面中如此複雜,在四方格中,連線的狀 態只有兩種情況,如圖 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 四方格模式下的連線狀態

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

有線段經過,若線段通過的機率值為零,則代表此邊上並無任何的線段經 過,接著再將線段通過的機率值除以此邊上所允許通過的線段數目即為此邊 上的擁擠度機率值,如果擁擠度機率值大於 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 所示。

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]中,有詳細的計算過

程,圖 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 端點後,會使格子邊上的擁擠度機率值 得到平衡,此時在依據格子邊上的擁擠度機率值,作整體的路徑分派,將跨

越格子邊上任何有連線關係的腳位都以大致的路徑來連線,在完成此步驟 後,跨越格子邊上任何有連線關係的腳位都會存在著一條大致的路徑,然而 在每次分派完路徑後,都必須重新修正格子邊上的擁擠度機率值,如此可確 保每一次的路徑分派都是依據最新的擁擠度機率值來完成分派,因此每次的 路徑分派都能避開較擁擠的區域來完成連線。

如圖 4.8 所示,在此階層的四方格中共有六條線段 w1、w2、w3、w4、w5 及 w6跨越四個方格 G1、G2、G3及 G4的邊上,假設每個格子邊上所允許通過 的線段為兩條,依據 4.1.1 節所討論的機率的擁擠度計算來求出格子邊上的 擁擠度機率值,如圖 4.8 (a)。然而線段連線的方式也如同 4.1.1 節所提到 兩種連線方法,分別是相鄰格子的連線及對角格子的連線,首先分派相鄰格 子的連線線段,因為此種連線的選擇只有一種,若不先完成路徑分派則連線 的資源可能會被佔據,而造成擁擠的狀況,故必須先分派路徑連線選擇只有 一種的線段,以線段 w1的路徑分派為例,線段 w1的兩端腳位分別落在 G1、 G2兩個相鄰的格子中,所以連線的可能選擇只有一種,因此直接將 G1、G2 兩個相鄰格子中的腳位連接起來完成路徑分派,接著將線段 w2、w3、w4以 相同的方式完成路徑分派,如圖 4.8 (a)。

完成相鄰格子連線線段的路徑分派後,重新修正格子邊上的擁擠度機率 值,如圖 4.8 (b),接著再隨機選擇一條對角格子的連線線段來執行路徑分 派,以線段條線段 w5的路徑,線段 w5的兩端腳位分別落在 G1、G3兩個對角 的格子中,故連線的可能選擇有兩種,一條是從 G3經過 G2到 G1,另一條是 從 G3經過 G4到 G1,兩條線段所經過的格子邊上擁擠度機率值總和皆為 2,

原本為選擇擁擠度機率值總和較小的來做為連線路徑,但因為擁擠度機率值 總和相同,所以隨機的選擇一種路徑來分派,在此選擇 w5的路徑是從 G3經 過 G2到 G1,完成線段 w5的路徑分派後,再重新修正格子邊上的擁擠度機率 值,由於 G2到 G1的格子邊上已分派兩條線段經過,達到格子邊上所允許通 過線段的數目,故格子邊上擁擠度機率值會修正成無限大,如圖 4.8 (c)所

示,以防止未來還有線段的路徑被分派到此格子邊上。

最後分派同樣是對角格子的連線線段 w6,方法如上述所提,依此類推,

在不同階層中,都可完成所有線段的路徑分派。

w 1 : G

2

0.5 G

1

w 2 : G

3

0.5 G

4

w 3 : G

3

0.5 G

2

w 4 : G

4

0.5 G

1

G

2

G

1

G

3 0.5

G

4

0.5 0.5

0.5

w

1

w

2

w

3

w

4

G

2

G

1

G

3

G

4

0.33 0.33 0.33

0.33

w 5 :

0.33

0.33 0.33

0.33

w

1

w

2

w

3

w

4

w

5

G

2

G

1

G

3

G

4

0.25 0.16 0.25

0.16

w 6 :

0.16

0.25 0.16

0.25

w

1

w

2

w

3

w

4

w

5

w

6

(a) (b) (c) 圖 4.8 整體的路徑分派

相關文件