本發(fā)明屬于電路布線(xiàn),特別是涉及一種考慮布線(xiàn)區(qū)域粒度的布線(xiàn)時(shí)間優(yōu)化方法。
背景技術(shù):
1、布線(xiàn)是整個(gè)超大規(guī)模集成電路(vlsi)物理設(shè)計(jì)流程中最復(fù)雜也最耗時(shí)的一步。現(xiàn)如今,為了降低布線(xiàn)的復(fù)雜度,整個(gè)布線(xiàn)過(guò)程被分為兩個(gè)階段,即1)全局布線(xiàn);和2)詳細(xì)布線(xiàn)。全局布線(xiàn)的主要目標(biāo)是為后續(xù)的詳細(xì)布線(xiàn)提供指導(dǎo),從而降低布線(xiàn)問(wèn)題的復(fù)雜程度,以減少整體的時(shí)間開(kāi)銷(xiāo),其最后的輸出是各個(gè)線(xiàn)網(wǎng)的全局單元(gcell)級(jí)路徑,此路徑僅僅在較粗粒度的全局布線(xiàn)單元間進(jìn)行走線(xiàn),為后續(xù)的詳細(xì)布線(xiàn)提供走線(xiàn)指導(dǎo)。由于全局布線(xiàn)中的gcell之間的連接還不能直接表示成金屬線(xiàn),需要對(duì)gcell之間的連接進(jìn)行軌道分配,在軌道分配后,詳細(xì)布線(xiàn)要在局部范圍內(nèi)滿(mǎn)足可布性、設(shè)計(jì)規(guī)則違例等關(guān)鍵約束,并盡量降低線(xiàn)長(zhǎng)和通孔數(shù)。
2、在布線(xiàn)之前,軌道分配會(huì)將全局布線(xiàn)解決方案(guide文件)中的連接線(xiàn)大致分配到布線(xiàn)區(qū)域中的不同軌道上,對(duì)布線(xiàn)金屬線(xiàn)預(yù)處理。目前最新的軌道分配算法是基于協(xié)商的軌道分配算法,該方法中,將布線(xiàn)金屬線(xiàn)稱(chēng)為iroute。在軌道分配之前,將iroute經(jīng)過(guò)的多個(gè)gcell合并在一起,作為一個(gè)panel,而軌道分配則在每個(gè)不同的panel中進(jìn)行。軌道分配的初始階段使用貪婪算法來(lái)有效識(shí)別允許iroute重疊的初始軌道分配結(jié)果,接著是重疊減少階段,該階段會(huì)迭代地執(zhí)行拆線(xiàn)重布,以盡可能地消除iroute重疊。在常用的nta算法中,金屬線(xiàn)會(huì)以更小的重疊成本被布線(xiàn)到不同的軌道中,但在更為擁塞的區(qū)域中,其對(duì)重疊成本的減少可能并不顯著。同時(shí),在減少重疊階段的拆線(xiàn)重布過(guò)程完成后,panel中仍然有相當(dāng)一部分的重疊區(qū)域,這可能導(dǎo)致局部區(qū)域的短路,而在后續(xù)的拆線(xiàn)重布階段會(huì)重復(fù)地嘗試重布這些短路的金屬線(xiàn),從而造成大量的時(shí)間上的消耗;而在由這些重疊導(dǎo)致的擁塞發(fā)生時(shí),即使當(dāng)前布線(xiàn)區(qū)域相鄰的上下層中有額外的布線(xiàn)資源,也不會(huì)被當(dāng)前層的金屬線(xiàn)利用到,因此,這在一定程度上還造成了布線(xiàn)資源的浪費(fèi)。
3、軌道分配完成后,每一條金屬線(xiàn)都將有屬于自己的軌道,緊隨其后的詳細(xì)布線(xiàn)階段,會(huì)將所有還未完成連接的相關(guān)金屬線(xiàn),以及相關(guān)引腳等組件進(jìn)行互連,從而使電路的完整功能得以實(shí)現(xiàn)。在目前最新的布線(xiàn)器tritonroute-wxl的算法中,布線(xiàn)采用的仍然是傳統(tǒng)的廣度優(yōu)先的a*路徑搜索算法,但由于軌道分配階段的“重疊”問(wèn)題,以及其在布線(xiàn)過(guò)程中所帶入的龐大的冗余數(shù)據(jù)信息,導(dǎo)致其布線(xiàn)特別耗時(shí),雖然創(chuàng)新性地提出了基于隊(duì)列的拆線(xiàn)重布算法,但其所需拆線(xiàn)重布的金屬線(xiàn)數(shù)量仍然過(guò)于龐大,從而進(jìn)一步影響其布線(xiàn)的時(shí)間消耗。
4、在該布線(xiàn)器的拆線(xiàn)重布方法中,將沖突線(xiàn)網(wǎng)和被沖突線(xiàn)網(wǎng)分別稱(chēng)為“攻擊者”和“受害者”,并設(shè)置了一個(gè)拆線(xiàn)重布隊(duì)列(也是初始布線(xiàn)所使用的隊(duì)列)。在布線(xiàn)開(kāi)始時(shí),所有的布線(xiàn)線(xiàn)網(wǎng)都將被加入到布線(xiàn)隊(duì)列中,從隊(duì)列中依次取出隊(duì)頭的線(xiàn)網(wǎng),來(lái)完成布線(xiàn)操作。然而在各種不同布線(xiàn)成本的約束下,部分線(xiàn)網(wǎng)會(huì)因?yàn)槌杀具^(guò)高而“不得不錯(cuò)誤”地進(jìn)行布線(xiàn),如跨過(guò)當(dāng)前已布線(xiàn)網(wǎng)直接布線(xiàn)等,從而導(dǎo)致布線(xiàn)沖突。當(dāng)前錯(cuò)誤布線(xiàn)的線(xiàn)網(wǎng)被稱(chēng)為“受害者”,而導(dǎo)致受害者錯(cuò)誤布線(xiàn)的線(xiàn)網(wǎng)則被稱(chēng)為“攻擊者”,其意義是,攻擊者的出現(xiàn)侵占了原本能進(jìn)行布線(xiàn)的受害者的路徑,從而導(dǎo)致受害者布線(xiàn)失敗,最終產(chǎn)生布線(xiàn)違例。當(dāng)布線(xiàn)出現(xiàn)沖突時(shí),攻擊者與受害者所屬線(xiàn)網(wǎng)都將被完全拆除,并重新加入到拆線(xiàn)重布隊(duì)列的末尾,以等待重新布線(xiàn)。當(dāng)布線(xiàn)隊(duì)列布線(xiàn)到攻擊者與受害者所屬線(xiàn)網(wǎng)時(shí),會(huì)嘗試重新將受害者布線(xiàn)后,再對(duì)攻擊者進(jìn)行重新布線(xiàn),從而盡可能地減少布線(xiàn)違例。
5、在tritonroute-wxl的算法中,通過(guò)基于隊(duì)列的拆線(xiàn)重布方法,能夠使最終的設(shè)計(jì)規(guī)則違例降低到接近0的水平,基本上解決了布線(xiàn)的設(shè)計(jì)規(guī)則違例問(wèn)題。但由于布線(xiàn)問(wèn)題的高復(fù)雜性和布線(xiàn)規(guī)模的龐大,整個(gè)布線(xiàn)階段的總體時(shí)間仍然沒(méi)有被減少,且由于在布線(xiàn)過(guò)程中的每一步都考慮了更多的約束情況,其數(shù)據(jù)結(jié)構(gòu)極為龐大,每一步都會(huì)產(chǎn)生大量的冗余數(shù)據(jù),這更加地加重了布線(xiàn)的時(shí)間消耗。
6、除此以外,在傳統(tǒng)的布線(xiàn)算法中,幾乎都未考慮到布線(xiàn)網(wǎng)格的構(gòu)造問(wèn)題,布線(xiàn)網(wǎng)格從設(shè)計(jì)文件中的軌道中提取,而提取不同跨度的軌道,其所構(gòu)造的網(wǎng)格粒度的粗細(xì)便完全不同,從而在后續(xù)布線(xiàn)階段,其布線(xiàn)時(shí)的搜索空間會(huì)完全不同,進(jìn)而影響到布線(xiàn)的布通率等。更小的搜索空間會(huì)帶來(lái)更快的收斂速度,同時(shí)也會(huì)導(dǎo)致違例的風(fēng)險(xiǎn)增加,而平衡好布線(xiàn)網(wǎng)格的粒度及布線(xiàn)速度之間對(duì)最終布線(xiàn)質(zhì)量的影響,將會(huì)在現(xiàn)有布線(xiàn)質(zhì)量的基礎(chǔ)上帶來(lái)更大的提升。
技術(shù)實(shí)現(xiàn)思路
1、為了解決上述問(wèn)題,本發(fā)明提出了一種考慮布線(xiàn)區(qū)域粒度的布線(xiàn)時(shí)間優(yōu)化方法,布線(xiàn)過(guò)程的高效、通用且人為可控。
2、為達(dá)到上述目的,本發(fā)明采用的技術(shù)方案是:一種考慮布線(xiàn)區(qū)域粒度的布線(xiàn)時(shí)間優(yōu)化方法,包括步驟:
3、s10,數(shù)據(jù)處理:讀入guide文件后,通過(guò)步長(zhǎng)公式為布線(xiàn)區(qū)域的網(wǎng)格進(jìn)行處理,以將布線(xiàn)網(wǎng)格進(jìn)行粗化,減少不必要的冗余搜索空間;在構(gòu)建網(wǎng)格的同時(shí),將障礙區(qū)域標(biāo)記出來(lái),構(gòu)造初始的考慮布線(xiàn)阻礙的布線(xiàn)網(wǎng)格;
4、s20,對(duì)布線(xiàn)金屬線(xiàn)進(jìn)行軌道分配,在劃分了panel后,軌道進(jìn)行分配,但在分配的同時(shí),為每個(gè)panel區(qū)域開(kāi)放其相鄰層布線(xiàn)空間的讀寫(xiě)權(quán)限;當(dāng)金屬線(xiàn)產(chǎn)生沖突時(shí),首先查詢(xún)當(dāng)前布線(xiàn)區(qū)域的相鄰層的布線(xiàn)區(qū)域是否有多余的布線(xiàn)資源,若有布線(xiàn)資源,且將當(dāng)前布線(xiàn)段分配到相鄰層后并未引起設(shè)計(jì)規(guī)則違例,則當(dāng)前布線(xiàn)段的軌道分配即為成功;
5、s30,進(jìn)行布線(xiàn),使用數(shù)據(jù)處理階段所提取出來(lái)的布線(xiàn)網(wǎng)格,對(duì)布線(xiàn)段進(jìn)行布線(xiàn),同時(shí)采用多線(xiàn)程的雙向布線(xiàn)方法在當(dāng)前提取出來(lái)的布線(xiàn)數(shù)組中進(jìn)行迷宮布線(xiàn),當(dāng)前布線(xiàn)后的數(shù)組即可作為路徑存儲(chǔ)數(shù)組,對(duì)后續(xù)的拆線(xiàn)重布提供了路徑查找的支持。
6、進(jìn)一步的是,在數(shù)據(jù)處理過(guò)程中,包括步驟:
7、從guide文件中獲取所有的布線(xiàn)段信息,同時(shí)從全局?jǐn)?shù)據(jù)庫(kù)中獲取從設(shè)計(jì)文件中讀取到的預(yù)定的軌道信息,所有布線(xiàn)金屬線(xiàn)的中心線(xiàn)與軌道對(duì)齊;在讀取了guide文件的數(shù)據(jù)后便獲取到了金屬線(xiàn)在不同軌道的分布情況,即金屬線(xiàn)布線(xiàn)的引導(dǎo)信息;
8、同時(shí),使用lut查找表來(lái)對(duì)當(dāng)前區(qū)域的所有引腳和阻礙進(jìn)行查找,并計(jì)算其占用的軌道信息,以此作為后續(xù)布線(xiàn)數(shù)組提取的依據(jù);
9、當(dāng)所有金屬線(xiàn)路徑引導(dǎo)信息、引腳和阻礙對(duì)象的信息計(jì)算完畢后,計(jì)算跨步k;跨步k用于確定選定的兩條軌道之間的跨度;
10、在跨度k確定后,對(duì)當(dāng)前布線(xiàn)區(qū)域所表示的軌道進(jìn)行提取,從而獲得布線(xiàn)路徑圖。
11、進(jìn)一步的是,所述跨步k的計(jì)算公式為:
12、;
13、其中,p表示當(dāng)前布線(xiàn)區(qū)域的引腳個(gè)數(shù);t表示當(dāng)前布線(xiàn)區(qū)域的軌道條數(shù),其中包含優(yōu)先方向和非優(yōu)先方向的軌道數(shù);參數(shù)a表示當(dāng)前布線(xiàn)區(qū)域中阻礙面積與整個(gè)布線(xiàn)區(qū)域面積之比,用于計(jì)算阻礙對(duì)當(dāng)前布線(xiàn)區(qū)域的影響;參數(shù)和參數(shù)由用戶(hù)自定義,滿(mǎn)足和的要求;
14、當(dāng)用戶(hù)自定義參數(shù)越接近1時(shí),引腳個(gè)數(shù)對(duì)當(dāng)前布線(xiàn)軌道的影響越小,引腳個(gè)數(shù)對(duì)當(dāng)前布線(xiàn)軌道的影響越小;當(dāng)用戶(hù)自定義參數(shù)越接近1時(shí),占用軌道的障礙金屬,對(duì)布線(xiàn)軌道的影響越小。
15、進(jìn)一步的是,用一個(gè)二維的平面數(shù)組來(lái)表示布線(xiàn)路徑圖三維結(jié)構(gòu),稱(chēng)之為布線(xiàn)數(shù)組,所述布線(xiàn)數(shù)組的提取過(guò)程,包括步驟:
16、從第一條軌道t=1開(kāi)始,當(dāng)跨度為3時(shí),所選取的軌道序列為<1,4,7,10,……>,被引腳和阻礙對(duì)象所占用的軌道,作為布線(xiàn)數(shù)組的候選路徑;同時(shí),從guide中讀取的所有金屬線(xiàn)導(dǎo)引所占用的軌道,以及布線(xiàn)算法的起終點(diǎn)對(duì)象所占用的軌道也作為布線(xiàn)數(shù)組的候選路徑;從布線(xiàn)數(shù)組的候選路徑中,提取最終布線(xiàn)數(shù)組。
17、進(jìn)一步的是,所述軌道分配階段,包括步驟:
18、根據(jù)數(shù)據(jù)處理所提取出的布線(xiàn)數(shù)組,將整個(gè)布線(xiàn)平面劃分成不同的panel,并在每個(gè)panel內(nèi)部,使用nta算法的初始分配,使用貪婪算法為每個(gè)panel內(nèi)部的布線(xiàn)引導(dǎo)信息所指示的金屬線(xiàn)分配初始的軌道;
19、在初始分配完成后,進(jìn)入重疊減少階段的算法流程,為當(dāng)前布線(xiàn)層開(kāi)放其相鄰層對(duì)應(yīng)布線(xiàn)區(qū)域的讀寫(xiě)權(quán)限,以此來(lái)更加合理的利用布線(xiàn)資源。
20、進(jìn)一步的是,進(jìn)入重疊減少階段,當(dāng)前布線(xiàn)區(qū)域?qū)ζ湎噜弻拥淖x寫(xiě)權(quán)限被打開(kāi),因而在軌道上的金屬線(xiàn)產(chǎn)生重疊時(shí),首先在相鄰布線(xiàn)層尋找是否有無(wú)重疊的解決方案,若嘗試將當(dāng)前金屬線(xiàn)試分配到相鄰層布線(xiàn)區(qū)域中后,并未產(chǎn)生重疊,則將當(dāng)前嘗試方案作為該布線(xiàn)金屬線(xiàn)的最終解決方案。
21、進(jìn)一步的是,在所述重疊減少階段中:
22、當(dāng)前層的重疊成本ci的計(jì)算公式:
23、;
24、式中,是金屬線(xiàn)i在當(dāng)前層上與其他金屬線(xiàn)重疊的區(qū)域面積,根據(jù)布線(xiàn)區(qū)域的幾何關(guān)系計(jì)算得到;是金屬線(xiàn)i的長(zhǎng)度,和用于調(diào)整不同因素對(duì)重疊成本的影響;其中,強(qiáng)調(diào)重疊區(qū)域的影響,強(qiáng)調(diào)金屬線(xiàn)長(zhǎng)度。
25、金屬線(xiàn)分配到相鄰層后的成本pi的計(jì)算公式:
26、;
27、式中,為金屬線(xiàn)i在相鄰層的重疊成本,表示分配到相鄰層后的懲罰成本,是一個(gè)小于等于1的常數(shù),pi用于控制懲罰成本對(duì)最后總成本的影響;
28、是否選擇移動(dòng)到相鄰區(qū)域的選擇公式:
29、;
30、其中,是一個(gè)二進(jìn)制變量,=1表示在相鄰層有重疊,公式中的相鄰層移動(dòng)成本被禁止,即該金屬線(xiàn)不能移動(dòng)到相鄰層;=0表示在相鄰層沒(méi)有重疊。即當(dāng)時(shí),才允許當(dāng)前金屬線(xiàn)移動(dòng)到相鄰層;
31、若當(dāng)前布線(xiàn)金屬線(xiàn)在嘗試分配到相鄰層的相同布線(xiàn)區(qū)域后,發(fā)現(xiàn)仍然有重疊或設(shè)計(jì)違例情況,則視為相鄰層分配失敗;在所有金屬線(xiàn)嘗試分配到相鄰層的階段結(jié)束后,再為這些分配失敗的金屬線(xiàn)執(zhí)行迭代的拆線(xiàn)重布,以找到使重疊成本更小的解決方案。
32、進(jìn)一步的是,在步驟s30中采用多線(xiàn)程的雙向多路徑迷宮布線(xiàn)方法,將所有的金屬線(xiàn)、引腳相關(guān)聯(lián)的組件,通過(guò)迷宮布線(xiàn)算法找到一條互連的線(xiàn)路,從而實(shí)現(xiàn)組件之間的互連,得到最后的布線(xiàn)結(jié)果。
33、進(jìn)一步的是,從當(dāng)前布線(xiàn)起點(diǎn)s出發(fā),對(duì)布線(xiàn)數(shù)組的每個(gè)可布線(xiàn)位置進(jìn)行曼哈頓距離的計(jì)算,對(duì)每個(gè)網(wǎng)格進(jìn)行擴(kuò)散式的計(jì)算,從而得到當(dāng)前布線(xiàn)數(shù)組的每個(gè)位置的曼哈頓距離;
34、將當(dāng)前布線(xiàn)數(shù)組更進(jìn)一步地拆分成不同大小范圍的更小的布線(xiàn)區(qū)域,使用多線(xiàn)程的方式在每個(gè)區(qū)域內(nèi)計(jì)算曼哈頓距離;
35、在計(jì)算完整個(gè)數(shù)組的每個(gè)網(wǎng)格的曼哈頓距離后,使用多線(xiàn)程的方式從起點(diǎn)s和終點(diǎn)t開(kāi)始相向而行,從而找到可能的布線(xiàn)路徑。
36、進(jìn)一步的是,起終點(diǎn)完全被阻礙隔開(kāi)的情況下,當(dāng)前布線(xiàn)區(qū)域中不存在能夠使起終點(diǎn)連通的有效路徑,且通過(guò)路徑回溯算法也不能找到任何可用路徑,則當(dāng)前線(xiàn)網(wǎng)被標(biāo)記為布線(xiàn)失敗;
37、在后處理階段,將完全找不到通路的互連對(duì)象進(jìn)行最后的拆線(xiàn)重布處理。
38、采用本技術(shù)方案的有益效果:
39、本發(fā)明能夠高效、通用且人為可控的布線(xiàn)網(wǎng)格粗化算法以減小布線(xiàn)搜索空間提升布線(xiàn)速度。
40、本發(fā)明提出高效、通用且在軌道分配階段進(jìn)行多層級(jí)軌道分配的算法,從而減少后處理階段的重復(fù)迭代次數(shù),以進(jìn)一步提升布線(xiàn)速度。
41、本發(fā)明提出高效,通用的基于粗化布線(xiàn)網(wǎng)格的多線(xiàn)程雙向多路徑迷宮布線(xiàn),以減少布線(xiàn)時(shí)的冗余數(shù)據(jù),從而加速路徑回溯過(guò)程,提升整體布線(xiàn)速度。