• 沒有找到結果。

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

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

4.2.3 擾亂函式

本論文提出了兩個擾亂的函式,在模擬退火演算法中,作擾亂的運算,

Steiner 端點的重新分派及重新繞線(Steiner Point Reassignment and Reroute)、線 段繞路的分派及重新繞線(Detour Assignment and Reroute),使用這兩個擾亂函 式,將初始結果作擾亂的運算,由於在本論文的繞線系統中,所有的繞線都 是符合時序限制的,所以在擾亂函式中的所有繞線動作也都必須符合時序限

制,以下將分別討論這兩個擾亂函式。

(1) Steiner 端點的重新分派及重新繞線

本論文中,Steiner 端點的移動位置是以平衡格子邊上的擁擠度機率值和 降低格子邊上最大擁擠度機率值為最佳位置,但處理的方式為一個一個依序 考慮 Steiner 端點的移動位置,故在移動 Steiner 端點時只考量到區域性的擁 擠度,因此 Steiner 端點所移動到的新位置不一定是整個繞線平面最好的位 置,所以本論文提出 Steiner 端點的重新分派及重新繞線的擾亂函式,在模 擬退火演算法中,經過不斷地重新分派 Steiner 端點及重新繞線,來萃取出 更好的結果。

在 Steiner 端點的重新分派及重新繞線的擾亂函式中,主要的方法是將 Steiner 端點重新移動到新的位置,移動的範圍為 4.1.2 節所算出來的時序限 制下 Steiner 端點的移動範圍,而移動的方式是採取隨機的移動,也就是將 Steiner 端點在不超過時序限制的移動範圍內,任意地移動到新的位置上,當 Steiner 端點被重新分派後,與其相關的連線線段也都必須重新繞線,也就是 所有的線段都要重新執行 4.1.3 節中所討論的整體路徑分派,Steiner 端點的 重新分派及重新繞線如圖 4.10 所示。

Steiner端點的重新分派

圖 4.10 Steiner 端點的重新分派

若 Steiner 端點在移動後,所在的位置與其連接的腳位位置相同,則必

須移除 Steiner 端點,並將其連接的腳位重新連線,然而在移除 Steiner 端點 後,連線的線段也會因為少了 Steiner 端點而減少,因此原本有擁擠情況發 生的格子邊,在減少連線的線段後,可能就無擁擠的情況發生,如圖 4.11 所示,假設格子邊上所允許通過的線段數目為二,則原本會有兩個格子邊造 成擁擠的情形,然而在經過 Steiner 端點的重新分派後,Steiner 端點所移動的 新位置恰好與腳位位置相同,故將 Steiner 端點移除,並重新建構相關腳位 的連線關係,因此格子邊上都已無任何擁擠的情況發生。

Steiner端點 的移除 Steiner端點

的重新分派

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

(2) 線段繞路的分派及重新繞線

除了將 Steiner 端點重新分派及重新繞線外,還有一個擾亂的函式為線 段繞路的分派及重新繞線,主要就是以線段繞遠路的方式來避開區域性的擁 擠狀況。一般而言,線段在繞線時都是以最短路徑做為連線的原則,而最短 路徑的定義為任兩端點之間的連線一定包含在此兩端點所構成的邊界矩形 範圍(Bounding Box)內,如圖 4.12 所示,然而在線段繞路的分派及重新繞線 的擾亂函式中,線段的連線不再是最短路徑的連線,而是超出邊界矩形範圍 的連線,但在本論文裡,所有繞線的動作都必須符合時序限制,故在此步驟 中,也必須在時序的限制下,完成線段繞路的動作。因此,當線段可執行繞 路動作時,則代表此線段的延遲時間小於系統所要求的延遲時間,然而在繞 路時,線段的延遲時間也要小於系統所要求的延遲時間,故我們必須先計算 出所有連線線段的繞路範圍。

邊界矩形範圍 Bounding Box

圖 4.12 繞線的邊界矩形範圍

所有連線線段的繞路範圍計算,也就是繞路彈性計算,必須符合圖 4.13 的兩個條件,簡單來說就是不論線段為最短連線或最長連線,都必須使其後 所連接的腳位及線段符合系統所要求的時序限制,再代入 4.1.2 節所提到的 Elmore 延遲時間模式,即可算出每個線段的連線最短路徑 Lminw及連線最長路 徑 Lmaxw,而時序限制下的繞路彈性即為 Lmaxw-Lminw,也就是線段可繞遠路的距 離長度。

B T

B

S T

S

A w L

minw

線段w連線為最長路徑的條件

t’ B (i) ≤ t req (i)

線段w連線為最短路徑的條件

t B (i) ≤ t req (i)

L

maxw

圖 4.13 線段連線的條件

在得知繞路彈性 Lmaxw-Lminw後,我們將定義出兩端點連線(Two-pin wire) 的線段繞路距離,如圖 4.14 所示,假設線段 w 的兩個端點分別為 A 和 B,

則線段 w 的上方繞路延伸距離為 2*(dL,H+dL,V),由於繞路延伸距離必須小於繞 路彈性,故我們可推得 dL,H+dL,V ≦ (Lmaxw-Lminw)/2,其中 dL,H和 dL,V分別為水平 及垂直的繞路距離,同理線段 w 的下方繞路延伸距離也必須符合此式。

B

A

w

線段上方的繞路延伸距離

線段下方的繞路延伸距離

B

A

w d

L,V

d

L,H

B

A w d

L,V

d

L,H

圖 4.14 線段繞路的延伸距離

相關文件