第五章 多模組晶片的跳脫繞線
5.3 繞線演算法
類及界定繞線邊界分隔線,之後再考量有無產生繞線衝突區,直到所有繞線層的 接合點分配之後均無產生任何繞線衝突區存在,即可順利完成所有接合點的繞 線,若任一繞線層繼續存在繞線衝突區時,則代表有可能產生無法繞線之情形,
則重做此步驟,直到每層繞線層均無繞線衝突區存在,所有接合點即可順利繞線 成功。
列通道之影響,而能完成繞線。
(a) (b) (c) 圖 5.12 LRLR 排列
若在繞線衝突區內的接合點排列方式為 LRRL 排列方式如圖 5.13 所示,會因 為接合點繞線方向與繞線所使用的水平通道不同而產生不同的繞線結果,如圖(c) 與圖(d)所示。若選擇圖(c)繞線方式則產生向左及向右繞線各一點無法遶線成 功,若選擇圖(d)繞線方式則產生向右繞線一點無法繞線成功,所以以 LRRL 排列 方式以圖(d)繞線方式較佳。故在相同排列方式而因繞線選擇不同的水平通道而產 生不同結果時,本論文均選擇較佳的繞線方式來討論。
(a) (b) (c)
(d)
圖 5.13 LRRL 排列
圖 5.14 RRLL 排列
在繞線衝突區接合點排列方式若為圖 5.14RRLL 排列方式,則此種方式無論上 列水平通道有無被佔用均比其它排列方式的繞線完成率差,所需要的繞線層數也 較多,這是因為繞線方向與接合點排列位置相反之緣故,即向左繞線的接合點排 列於右側,而向右繞線的接合點排列於左側,往左右兩側繞線時在水平繞線區域 產生交叉衝突的機會增加,故在安排向左及向右繞線的接合點時應儘量避免此種 現象,以增加同一層的可繞度,減少繞線所需要的層數。而其它的排列方式為圖 5.15RLRL 排列與圖 5.16RLLR 排列方式,均屬於此種左右對調的情況。
(a) (b) (c) 圖 5.15 RLRL 排列
(a) (b) (c) 圖 5.16 RLLR 排列
從圖 5.11LLRR 與圖 5.12LRLR 排列排列方式可知,無論上列通道有無被佔用,
在 LLRR 排列與 LRLR 排列中四個接合點均可順利完成繞線,而無產生無法繞線的 接合點,須將安排於它層中。而圖 5.13LRRL 排列方式無論如何調整繞線均有一個 接合點無法繞線,同樣的結果也出現於 RLRL 排列與 RLLR 排列方式。在圖 5.13 中 若定義 NR為向右繞的接合點數,NL為向左繞的接合點數,將 NL-1 則變成 LRR 排列,
可完成三條繞線,若將 NR-1 則變成 LRL 排列,也可完成三條繞線,至於應該是 NL-1 或 NR-1 應視 NL與 NR之大小來決定,若 NL>NR則 NL-1,有利將多數向左繞的接合點
先完成繞線,而較少的向右繞的接合點數較慢完成,最後一定可將所有在繞線衝 突區的接合點完成繞線,同樣方法也適用於其它排列方式,決定向右繞與向左繞 的優先順序,完成繞線衝突區的可能繞線分析。
利用在繞線衝突區產生的可能狀況加以分析之後,針對繞線衝突區與上述 討論在衝突區內的左右接合點排列方式加以比較,一定可以找到相同的排列方 式,再利用相同的排列方式繞線,最後得到在繞線衝突區的最佳解,如圖 5.17 衝突區比對圖所示。
圖 5.17 衝突區比對圖
根據衝突區比對之後的圖型可知,在同一列中同時考慮向左繞線與向右繞線 雙方向時,同一列的右繞線邊界分隔線最大值等於左邊界分隔線,而向右繞線時,
其繞線邊界最大值等於右邊界分隔線,所以在左邊界向左到晶片邊緣所圍成的區 域接合點與右邊界向右到晶片邊緣所圍成的區域接合點,因無繞線衝突區存在,
不會產生交叉衝突現象,均可分配於同一層,繞線均可利用上下行水平通道順利 完成繞線,如下圖 5.18(a)第 0 行所示,向左繞線二條線與向右繞線二條線無繞線 衝突區存在,可分配於第一層繞線層。第 1 行因產生繞線衝突區且在衝突區的接 合點排列方式為 RRL 方式與圖 5.14RRLL 排列相同,又第 1 行上行水平通道無任何 跳脫繞線經過,故選擇圖 5.14 之圖(a)繞線方式套入第 1 行繞線中,得到第 1 行 的繞線結果,而其它一樣產生繞線衝突區的水平行如第 3、5、6、7 等行均可用相 同方式得到該列最佳之繞線方法,最後經繞線衝突區與所有衝突區可能排列方式
相互比較之後,可得下列繞線演算法:
輸入:n*n 的多模組晶片跳脫繞線接合點圖 輸出:跳脫繞線層數與繞線圖
For K=1 To LayerNum For J=1 TO n
For I=1 to n
將接合點分成向右繞線與向左繞線兩類
將向左繞線接合點由左向右取(Nw+1)個接合點,並記錄坐標 將向右繞線接合點由右向左取(Nw+1)個接合點,並記錄坐標 Next I,J
For J=1 TO n For I=1 to n
if left borderline >right borderline then 比對繞線衝突區的排列方式並決定繞線 Else
將向左(向右)繞線接合點分別置於同一層繞線 End if
Next I,J Next k
在上述演算法中,K 代表繞線層數,J 代表六角化陣列的行數,I 代表六角化 陣列的列數,在第一個迴圈中主要將接合點做歸類與依繞線數取左右兩邊(Nw+1) 個接合點並記錄接合點之座標與左、右邊界分隔線之位置。在第二個迴圈中判斷 每一行的左、右邊界分隔線是否相交產生繞線衝突區的現象,若產生繞線衝突區 即比較衝突區的接合點排列方式,並決定在繞線衝突區的繞線方式,若在衝突區 中無法繞線的接合點,將其置於下一層中;若無繞線衝突區則將向左(向右)繞線 接合點分別置於同一層繞線,其繞線方式依列對列水平跳脫繞線來完成繞線。根 據上述演算法中利用每列的接合點比較繞線邊界分隔線是否產生繞線衝突區,若 產生繞線衝突區時再比對可能繞線,最後得到完整繞線圖如圖 5.18 繞線完成圖所 示:
(a)第一層 (b)第二層
圖 5.18 繞線完成圖