專利名稱:基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法
技術(shù)領(lǐng)域:
一種基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法屬于集成電路計(jì)算機(jī)輔助設(shè)計(jì)領(lǐng)域,尤其涉及標(biāo)準(zhǔn)單元總體布線領(lǐng)域。
較早期的一些方法或者只是簡(jiǎn)單地將最小化線網(wǎng)互連線延遲的概念轉(zhuǎn)化為最短線網(wǎng)長(zhǎng)度的布線;或者只是采用優(yōu)先級(jí)分配的方法通過(guò)靜態(tài)時(shí)延分析產(chǎn)生出關(guān)鍵線網(wǎng),再給這些關(guān)鍵線網(wǎng)分配較高的優(yōu)先級(jí),盡量使它們的長(zhǎng)度最小。事實(shí)上,只有在兩端點(diǎn)線網(wǎng)的情況下,或連線電阻與輸出驅(qū)動(dòng)電阻相比可以忽略不計(jì)的情況下,最短線網(wǎng)連接才能保證最短的互連線延遲。但對(duì)于多端點(diǎn)線網(wǎng),在DSM、VDSM工藝下,連線電阻與輸出驅(qū)動(dòng)電阻相比不能忽略不計(jì),線網(wǎng)的漏點(diǎn)延遲不僅與線網(wǎng)總連線總長(zhǎng)度有關(guān),而且與線網(wǎng)布線樹(shù)的結(jié)構(gòu)有關(guān),因此,上述方法就不適用了。
以后發(fā)現(xiàn)電路的最長(zhǎng)關(guān)鍵路徑時(shí)延決定著芯片的電性能。于是,在標(biāo)準(zhǔn)單元設(shè)計(jì)上出現(xiàn)了以下兩類方法(1)基于線網(wǎng)的時(shí)延優(yōu)化總體布線。它是把關(guān)鍵路徑上的互連線延遲約束分配到各個(gè)相關(guān)線網(wǎng)中,作為對(duì)線網(wǎng)的延遲約束。它的控制策略簡(jiǎn)單,易于實(shí)現(xiàn)。(2)基于關(guān)鍵路徑的時(shí)延優(yōu)化總體布線。它并不單一考慮每條線網(wǎng)的延遲約束,而是把線網(wǎng)的延遲約束檢查放到與其相關(guān)的關(guān)鍵路徑的延遲約束檢查中,只要關(guān)鍵路徑上總的延遲約束滿足,線網(wǎng)的新布線結(jié)果就可行。它可力求避免不合理的時(shí)延分配,放寬線網(wǎng)的布線約束,提高布線質(zhì)量。方法(1)在時(shí)延約束分配上有一定盲目性,往往時(shí)延分配結(jié)果與實(shí)際布線需求不符,使擁擠線網(wǎng)無(wú)法改善。方法(2)要用貪婪試探的方法去確定需改進(jìn)時(shí)延的線網(wǎng)存在盲目性,無(wú)法實(shí)現(xiàn)主動(dòng)控制。同時(shí),關(guān)鍵路徑的總數(shù)一般很多,重布每個(gè)線網(wǎng)后都要判斷所有的關(guān)鍵路徑,大大降低了求解速度。它們的共同缺點(diǎn)是對(duì)中間布線結(jié)果的約束較為苛刻,從而對(duì)總體布線的其他優(yōu)化目標(biāo)如布線擁擠會(huì)有較大影響;它們的關(guān)鍵路徑是靜態(tài)的,不能反映求解過(guò)程中電路新產(chǎn)生的超時(shí)情況。
已進(jìn)行過(guò)“新穎性檢索”,檢索報(bào)告見(jiàn)附件1。
本發(fā)明的特征在于它依次包含如下步驟(1)初始化設(shè)置GRC(總體布線單元)的行數(shù)Nnr,列數(shù)Nnc,GRG(總體布線圖)中所有頂點(diǎn)即GRC中心點(diǎn)的坐標(biāo)vnr,nc(x,y),其中,nr,nc分別代表行和列,x,y是芯片平面的坐標(biāo);GRG中每條邊ek的容量Ck,電路中線網(wǎng)的總數(shù)Nsum,每條線網(wǎng)的網(wǎng)表NetlistIndex,每條線網(wǎng)的源點(diǎn)s,漏點(diǎn)t,電路的所有電學(xué)性能參數(shù),用戶給定的時(shí)延約束指標(biāo)參數(shù);(2)生成GRG讀入在多層布線芯片上劃分GRC所必需的Nnr,Nnc,讀入在多層布線芯片上生成GRG所必需的各頂點(diǎn)的坐標(biāo)值,給頂點(diǎn)以及連接每?jī)蓚€(gè)相鄰頂點(diǎn)的邊ek編號(hào);(3)讀入電路詳細(xì)連接關(guān)系即網(wǎng)表讀入電路中線網(wǎng)的總數(shù)目Nsum,讀入每條線網(wǎng)網(wǎng)表,按讀入順序,為每條線網(wǎng)編號(hào);(4)讀入電路的所有電學(xué)性能參數(shù)與約束指標(biāo),賦到相應(yīng)的變量和數(shù)組中;(5)構(gòu)造初始布線樹(shù)即Steiner樹(shù),即在每條線網(wǎng)不受任何約束條件下構(gòu)造長(zhǎng)度最短的Steiner樹(shù);(6)統(tǒng)計(jì)總的可用布線資源,標(biāo)記擁擠區(qū)域根據(jù)步驟(5)執(zhí)行后得到的初始解,統(tǒng)計(jì)每條GRG邊的被使用量dk,比較Ck與dk,若Ck<dk,表示出現(xiàn)布線擁擠,得出擁擠區(qū)域,對(duì)布線擁擠的GRG邊進(jìn)行標(biāo)記,有標(biāo)記的線網(wǎng)即為擁擠線網(wǎng);
(7)優(yōu)化布線擁擠,消除擁擠邊;(8)用Update_Timing_Para.cpp程序統(tǒng)計(jì)電路時(shí)延信息,分析關(guān)鍵pin,關(guān)鍵邊根據(jù)步驟(7)執(zhí)行后的布線結(jié)果,用公知的“Sakurai時(shí)延計(jì)算公式”計(jì)算并統(tǒng)計(jì)每條電信號(hào)傳輸路徑從輸入PI到輸出PO的時(shí)延值;對(duì)于一個(gè)樹(shù)型的多端點(diǎn)線網(wǎng),各節(jié)點(diǎn)的時(shí)延可根據(jù)上一級(jí)節(jié)點(diǎn)的時(shí)延來(lái)確定,根據(jù)步驟(4)讀入數(shù)組之中的用戶時(shí)延約束指標(biāo),與上述計(jì)算出的每條電路的時(shí)延值進(jìn)行比較,得出此時(shí)的關(guān)鍵pin,關(guān)鍵邊,其判別準(zhǔn)則如下a.若tQ(i)>tL(i),則pin i為關(guān)鍵pin其中tQ(i)為信號(hào)從虛擬源點(diǎn)vs到達(dá)pin i的最短時(shí)延;tL(i)為信號(hào)從虛擬源點(diǎn)vs到達(dá)pin i的約束時(shí)延,它可表述如下 delay(i,k)信號(hào)從pin i到pin k的約束時(shí)延,單位為ns,tL(k)信號(hào)從虛擬源點(diǎn)vs到pin k的約束時(shí)延;b.若(i,k)∈E,且tQ(i)+delay(i,k)>tL(k),則邊(i,k)為關(guān)鍵邊;其中tL(k)為信號(hào)從虛擬源點(diǎn)vs到pin k的約束時(shí)延,tQ(i)為信號(hào)從虛擬源點(diǎn)vs到達(dá)pin i的最短時(shí)延;(9)構(gòu)造關(guān)鍵網(wǎng)絡(luò),優(yōu)化電路時(shí)延若TQ>TL,TL整個(gè)電路要求的總時(shí)延,TQ整個(gè)電路實(shí)際的總時(shí)延;則關(guān)鍵網(wǎng)絡(luò)N=(V,E,d,vs,vt),V關(guān)鍵pin的集合;E關(guān)鍵邊的集合;d每條有向邊的權(quán)值,即delay(i,k),用dik表示;vs虛擬源點(diǎn),vt虛擬匯點(diǎn);用“圖與網(wǎng)絡(luò)規(guī)劃理論”中的最大流與最小割關(guān)系定理,在最大流≠∝條件下,求出最大流所對(duì)應(yīng)的最小割,從中得到一組邊,重新構(gòu)造最小割中的得到的一組邊所對(duì)應(yīng)線網(wǎng)的布線樹(shù),減小時(shí)延;(10)判斷布線時(shí)延是否滿足約束指標(biāo)若延遲優(yōu)化結(jié)果>時(shí)延約束指標(biāo),則繼續(xù)執(zhí)行時(shí)延優(yōu)化程序;若延遲優(yōu)化結(jié)果≤時(shí)延約束指標(biāo),則程序終止。
實(shí)驗(yàn)證明它達(dá)到了預(yù)期目的。
圖2本發(fā)明的流程框圖。
圖3一個(gè)簡(jiǎn)單的邏輯電路圖。
圖4與圖3對(duì)應(yīng)的時(shí)延傳遞網(wǎng)絡(luò)。
圖5一個(gè)小型電路中關(guān)鍵網(wǎng)絡(luò)的一個(gè)局部。
圖6在多層布線的芯片平面上生成的GRG。
圖7一個(gè)具體的包含548個(gè)關(guān)鍵pin、274條關(guān)鍵邊的關(guān)鍵網(wǎng)絡(luò),它的一個(gè)局部有44個(gè)關(guān)鍵pin、22條關(guān)鍵邊,如圖7所示。
圖8對(duì)圖7所示的局部的關(guān)鍵網(wǎng)絡(luò)實(shí)行時(shí)延優(yōu)化后的結(jié)果圖。
本布線方法的流程框圖如圖2所示。
現(xiàn)在采用國(guó)際基準(zhǔn)測(cè)試電路實(shí)例MCNC C2作為本發(fā)明的一個(gè)實(shí)施例,結(jié)合圖2的程序流程用本發(fā)明的總體布線方法進(jìn)行布線。它依次有如下步驟(1)初始化設(shè)行數(shù)Nnr=9,列數(shù)Nnc=11。此時(shí),GRG圖中共有99個(gè)頂點(diǎn),每個(gè)頂點(diǎn)都有一個(gè)對(duì)應(yīng)的位置坐標(biāo)(x,y),例如在圖6中,v1,1頂點(diǎn)的位置坐標(biāo)是(10,96),v1,2頂點(diǎn)的位置坐標(biāo)是(156,96),即可用vnr,nc(x,y)表示,nr表示GRG上第幾行,nc表示GRG上第幾列,坐標(biāo)(x,y)是相對(duì)芯片平面的坐標(biāo)原點(diǎn)而言的;共有178條邊,每條邊都有一個(gè)用戶給定的容量,從15~17,例如連接v1,1與v1,2的邊的容量為15,連接v1,2與v1,3的邊的容量為15。
設(shè)線網(wǎng)的總數(shù)Nsum為745條,方塊電阻=0.0125Ω/um,方塊電容=0.00013pf/um,用戶給出的時(shí)延約束指標(biāo),如其中一個(gè)時(shí)延值為0.496281ns。
(2)生成GRG讀入Nnr=9,Nnc=11;按照先行后列的順序,給99個(gè)頂點(diǎn)全部編號(hào),分別為1~99號(hào);再按照先行后列的順序,從1號(hào)頂點(diǎn)開(kāi)始,把178條GRG邊全部編號(hào),分別為1~178號(hào)。
(3)讀入電路詳細(xì)連接關(guān)系即網(wǎng)表
讀入電路中線網(wǎng)總數(shù)Nsum=745。按照網(wǎng)表讀入的順序,給745條線網(wǎng)全部編號(hào),分別為net1~net745。于是得到每條線網(wǎng)包含源點(diǎn)、漏點(diǎn)信息在內(nèi)的網(wǎng)表,其具體形式描述如下1號(hào)線網(wǎng)的網(wǎng)表表示是(net1(VertexList 75 2 72 2 71 1),745號(hào)線網(wǎng)的網(wǎng)表表示是(net745(VertexList 48 2 3 1))。
以net1為例它表示的是第75號(hào)頂點(diǎn)是漏點(diǎn),第72號(hào)頂點(diǎn)是漏點(diǎn),第71號(hào)頂點(diǎn)是源點(diǎn)。它們的通式可表示為(net號(hào)(VertexList 頂點(diǎn)號(hào) 源點(diǎn)/漏點(diǎn) ……)),其中數(shù)字1表示源點(diǎn),數(shù)字2表示漏點(diǎn)。
(4)讀入電路的所有電學(xué)性能參數(shù)與約束指標(biāo),賦到相應(yīng)的變量和數(shù)組之中讀入方塊電阻rr1=0.0125Ω/um,方塊電容cc1=0.00013pf/um;讀入用戶給出的時(shí)延約束指標(biāo)參數(shù)賦到數(shù)組中,其中一個(gè)時(shí)延約束指標(biāo)(從PI到PO)=0.017021ns。
(5)構(gòu)造初始布線樹(shù)采用Tree.cpp程序完成。其中采用1998年《微電子學(xué)與計(jì)算機(jī)》增刊41~44頁(yè)中的由鮑海云、洪先龍、蔡懿慈等署名的名為“基于Dreyfus-Wagner算法的Steiner樹(shù)分層構(gòu)造算法”來(lái)實(shí)現(xiàn)這一步驟。用該算法求出的初始布線樹(shù)其形式如下#Init_Steiner_Tree 1((connect 71 72)(connect 72 73)(connect 73 74)(connect 74 75))……………………#Init_Steiner_Tree 745((connect 3 14)(connect 14 25)(connect 25 36)(connect 36 47)(connect 47 48))其通用表達(dá)式為#Init_Steiner_Tree XXX
((connect頂點(diǎn)號(hào) 頂點(diǎn)號(hào))…………(connect頂點(diǎn)號(hào) 頂點(diǎn)號(hào)))(6)統(tǒng)計(jì)總的可用布線資源,標(biāo)記擁擠區(qū)域采用Update_Resources.cpp程序完成。統(tǒng)計(jì)每條GRG邊的被使用量(即有多少線網(wǎng)通過(guò)了該邊)dk,再把它與允許容量Ck比較,若Ck<dk,則表明出現(xiàn)布線擁擠,把它在結(jié)構(gòu)EdgeIndex中標(biāo)記為1;把所有經(jīng)過(guò)標(biāo)記為1的GRG邊的線網(wǎng)確定為擁擠線網(wǎng)。
本實(shí)施例中,共標(biāo)記出121條布線擁擠的GRG邊,345個(gè)擁擠線網(wǎng)。
(7)優(yōu)化布線擁擠,消除擁擠邊采用SSTT.cpp程序完成。其中采用了“基于搜索空間遍歷技術(shù)(SSTT)的布線擁擠優(yōu)化算法”,它已公開(kāi)發(fā)表于2001年的國(guó)際學(xué)術(shù)會(huì)議“Tong Jing,Xian-Long Hong,Hai-Yun Bao,et al.‘An Efficient Congestion Optimization Algorithm for Global Routing Based onSearch Space Traversing Technology’.In Proceedings of IEEE ASICON,2001,114~117”。
在本實(shí)施例中,進(jìn)行布線擁擠的優(yōu)化后,消除了全部擁擠邊。
(8)用Update_Timing_Para.cpp程序統(tǒng)計(jì)電路時(shí)延信息,分析關(guān)鍵pin,關(guān)鍵邊本發(fā)明采用時(shí)延傳遞網(wǎng)絡(luò)方式來(lái)描述電信號(hào)在集成電路中傳播的延遲以及信號(hào)到達(dá)各個(gè)引腳點(diǎn)(pin)的時(shí)刻。
在集成電路中,電信號(hào)的傳遞有2種形式(1)信號(hào)在單元內(nèi)部傳遞信號(hào)由單元的一個(gè)或多個(gè)輸入pin傳遞到單元的輸出pin;(2)信號(hào)在單元之間傳遞以單元的輸出pin為源點(diǎn),經(jīng)過(guò)線網(wǎng)對(duì)應(yīng)的布線樹(shù)傳遞到其他一些單元的輸入pin。
圖3給出了一個(gè)簡(jiǎn)單的邏輯電路,其中A、B、C為電路中的單元,PI、PO分別為電路的輸入的和輸出的pin。
圖4給出了與圖3對(duì)應(yīng)的時(shí)延傳遞網(wǎng)絡(luò),每條有向邊旁所標(biāo)的權(quán)值dik表示信號(hào)傳遞的時(shí)延delay(i,k),單位是ns。帶箭頭細(xì)線表示單元內(nèi)部的信號(hào)傳遞,帶箭頭粗線表示單元之間的信號(hào)傳遞。vs為虛擬源點(diǎn),vt為虛擬匯點(diǎn),分別表示虛擬的電路總輸入和總輸出。在圖4中,信號(hào)從vs到達(dá)pin 5的最短時(shí)延為max(d13+d35,d24+d45)。以pin k為例,可以用pin k的最早時(shí)間tQ(k)表示信號(hào)從vs到達(dá)k的最短時(shí)延,則tQ(k)即為時(shí)延傳遞網(wǎng)絡(luò)中從vs到k的一條最長(zhǎng)路的權(quán),可得遞推公式 于是,可以設(shè)想虛擬匯點(diǎn)vt的最早時(shí)間tQ(vt)對(duì)應(yīng)的是整個(gè)電路的總時(shí)延,它決定了整個(gè)電路的速度,記為TQ。電路設(shè)計(jì)者提出的總時(shí)延要求,稱為要求的總時(shí)延,記為TL。
在總體布線中,時(shí)延優(yōu)化的目標(biāo)就是要為每個(gè)線網(wǎng)構(gòu)造合適的布線樹(shù)最終滿足TQ≤TL。為此,信號(hào)必須在tL(i)時(shí)刻之前到達(dá)pin i,tL(i)稱為pin i的最遲時(shí)間,其值由下式?jīng)Q定 基于上述時(shí)延傳遞網(wǎng)絡(luò)描述方式,可以定義若tQ(i)>tL(i),則pin i為關(guān)鍵pin。
若(i,k)∈E,且tQ(i)+delay(i,k)>tL(k),則稱邊(i,k)為關(guān)鍵邊。
再對(duì)步驟(7)執(zhí)行后的布線結(jié)果進(jìn)行計(jì)算并統(tǒng)計(jì)每條電信號(hào)傳輸路徑從輸入PI到輸出PO的時(shí)延值。所采用的公式是1983年發(fā)表于國(guó)際刊物“IEEE Journal of Solid-StateCircuits”中的“Sakurai時(shí)延計(jì)算公式”。它把互連線視為具有分布電阻和分布電容的傳輸線,可表達(dá)為T=αclre+β(czrs+czre+rscl)其中T為時(shí)延;re為總的連線電阻,等于方塊電阻r乘以連線的長(zhǎng)度;cl是總的連線電容,等于方塊電容c乘以連線長(zhǎng)度;rs是驅(qū)動(dòng)晶體管的等效電阻;cz是負(fù)載電容;α=1.02;β=2.21,α和β的取值表示計(jì)算的是輸出電壓Vo從0增加到0.9高電平VDD時(shí)的時(shí)延值。
對(duì)于一個(gè)樹(shù)型的多端點(diǎn)線網(wǎng),各節(jié)點(diǎn)的時(shí)延可根據(jù)上一級(jí)節(jié)點(diǎn)的時(shí)延來(lái)確定。具體公式為T(s)=βrscs;T(q)=T(v)+αrcLvq2+βrLvqcq;]]>其中節(jié)點(diǎn)v為節(jié)點(diǎn)q的前驅(qū)節(jié)點(diǎn),Lvq為節(jié)點(diǎn)v到節(jié)點(diǎn)q的連線長(zhǎng)度,Cq為節(jié)點(diǎn)q之后的總電容,Cs為該線網(wǎng)所有漏點(diǎn)總的負(fù)載電容,s為線網(wǎng)源點(diǎn)。
然后,把用戶時(shí)延約束指標(biāo)與上述計(jì)算出的每條電信號(hào)傳輸路徑的時(shí)延值進(jìn)行比較,從而得到此時(shí)的關(guān)鍵pin,關(guān)鍵邊。為了便于計(jì)算,我們?cè)诖颂峁┮韵滤臈l定理,證明見(jiàn)附件。
定理1關(guān)鍵邊的兩個(gè)端點(diǎn)都是關(guān)鍵pin。表明關(guān)鍵邊的兩個(gè)端點(diǎn)必為關(guān)鍵pin。
定理2設(shè)pin i為關(guān)鍵pin,且i≠vt,則ヨ(i,k)∈E使(i,k)為關(guān)鍵邊,且tQ(k)-tL(k)≥tQ(i)-tL(i)。即除虛擬匯點(diǎn)vt以外的關(guān)鍵pin必有以其為起點(diǎn)的關(guān)鍵邊。
定理3設(shè)k為關(guān)鍵端口,且k≠vs,則ヨ(i,k)∈E使(i,k)為關(guān)鍵邊,且tQ(i)-tL(i)≥tQ(k)-tL(k)。即除虛擬源點(diǎn)vs以外的關(guān)鍵pin必有以其為終點(diǎn)的關(guān)鍵邊。
定理4若TQ>TL,則tQ(vs)>tL(vs),且tQ(vs)-tL(vs)=TQ-TL。即虛擬源點(diǎn)vs和虛擬匯點(diǎn)vt的超時(shí)值(最早時(shí)間長(zhǎng)于最遲時(shí)間的值)是相等的。
標(biāo)記這些關(guān)鍵pin、關(guān)鍵邊涉及到的所有線網(wǎng)。
在本實(shí)施例中,確定出548個(gè)關(guān)鍵pin,274條關(guān)鍵邊;共標(biāo)記出這些關(guān)鍵pin、關(guān)鍵邊涉及到的線網(wǎng)236個(gè)。
根據(jù)本實(shí)施例所形成的關(guān)鍵網(wǎng)絡(luò)的局部結(jié)構(gòu)如圖5所示。
(9)構(gòu)造關(guān)鍵網(wǎng)絡(luò),優(yōu)化電路時(shí)延用Timing_CN.cpp程序完成。如TQ>TL,則時(shí)延傳遞網(wǎng)絡(luò)中存在著由且僅由關(guān)鍵pin和關(guān)鍵邊構(gòu)成的子網(wǎng)絡(luò)N,N=(V,E,d,vs,vt)。其中V為關(guān)鍵pin的集合,E為關(guān)鍵邊的集合,d為步驟(8)中定義的每條有向邊的權(quán)值,該子網(wǎng)絡(luò)即關(guān)鍵網(wǎng)絡(luò)。
在本實(shí)施例中,該關(guān)鍵網(wǎng)絡(luò)包含548個(gè)關(guān)鍵pin,274條關(guān)鍵邊。其局部結(jié)構(gòu)如圖7所示,共有44個(gè)關(guān)鍵pin,22條關(guān)鍵邊。圖中,從PI到PO的延遲為17532×10-6ns,而時(shí)延約束指標(biāo)為17021×10-6ns,超出了511×10-6ns。
要實(shí)現(xiàn)TQ≤TL的目標(biāo),僅僅縮短一、兩條邊的時(shí)延是不夠的。我們可以找出關(guān)鍵網(wǎng)絡(luò)N中從vs到vt的所有路徑,再?gòu)拿織l路徑上選取至少一條邊,然后縮短這些邊的時(shí)延,則總時(shí)延必然會(huì)被縮短。也即找到每條路徑上那一條合適的邊,去縮短它的時(shí)延。我們具體采用“求割”的方法在上述關(guān)鍵網(wǎng)絡(luò)中,每條有向邊的權(quán)值d即信號(hào)的傳輸延遲,因此,關(guān)鍵網(wǎng)絡(luò)中的網(wǎng)絡(luò)流即為信號(hào)傳輸?shù)臅r(shí)延流。根據(jù)“圖與網(wǎng)絡(luò)規(guī)劃理論”中的“最大流與最小割關(guān)系定理”(王永縣編著,《運(yùn)籌學(xué)——規(guī)劃論及網(wǎng)絡(luò)》,清華大學(xué)出版社,1993)得到網(wǎng)絡(luò)的最大流等于其最小割的容量。于是,在最大流≠∝的條件下,求出最大流所對(duì)應(yīng)的最小割。從求出的關(guān)鍵網(wǎng)絡(luò)N的最小割中就能得到一組邊,它就是我們要找的“位于每條路徑上的那一條合適的邊”。最后,重新構(gòu)造從最小割中得到的這組邊所對(duì)應(yīng)線網(wǎng)的布線樹(shù),采用時(shí)延更佳的布線樹(shù)來(lái)代替當(dāng)前的布線樹(shù)以實(shí)現(xiàn)時(shí)延的減小。這也用Timing_CN.cpp程序完成。
經(jīng)過(guò)“求割”方法的時(shí)延優(yōu)化后,可得到圖8所示的時(shí)延優(yōu)化結(jié)果。這時(shí),從PI到PO的延遲為17016×10-6ns,小于時(shí)延約束指標(biāo)17021×10-6ns。于是,實(shí)現(xiàn)了電路的時(shí)延優(yōu)化。
(10)判斷各條從PI到PO的電信號(hào)傳輸路徑上的時(shí)延是否滿足給定的所有時(shí)延約束指標(biāo),若延遲優(yōu)化結(jié)果>時(shí)延約束指標(biāo),則繼續(xù)執(zhí)行時(shí)延優(yōu)化程序,當(dāng)全部滿足時(shí),輸出電路中745條線網(wǎng)的布線結(jié)果。
本發(fā)明使用的硬件是一臺(tái)Sun公司的Enterprise 450型工作站;使用Unix操作系統(tǒng)。
由此可見(jiàn),本發(fā)明所述關(guān)鍵網(wǎng)絡(luò)技術(shù)有以下優(yōu)點(diǎn)(1)在總體布線過(guò)程中能隨時(shí)延傳遞網(wǎng)絡(luò)的變化動(dòng)態(tài)更新,可及時(shí)、準(zhǔn)確地反映當(dāng)前對(duì)整個(gè)電路總時(shí)延影響最大的子網(wǎng)絡(luò)的情況;(2)它可用較小內(nèi)存從全局角度表示出集成電路中最關(guān)鍵部分的時(shí)延情況,避免枚舉關(guān)鍵路徑引發(fā)的龐大組合規(guī)模問(wèn)題;(3)它真實(shí)地反映了電路中的時(shí)延傳遞關(guān)系,通過(guò)分析關(guān)鍵網(wǎng)絡(luò)能從全局得到縮短哪些線網(wǎng)的連線延遲就可改進(jìn)電路總時(shí)延,而不必對(duì)每條關(guān)鍵路徑進(jìn)行貪婪分析,提高了優(yōu)化效率。
權(quán)利要求
1.一種基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法,含有優(yōu)化布線擁擠、消除擁擠邊的步驟,其特征在于它依次包含如下步驟(1)初始化設(shè)置GRC(總體布線單元)的行數(shù)Nnr,列數(shù)Nnc,GRG(總體布線圖)中所有頂點(diǎn)即GRC中心點(diǎn)的坐標(biāo)Vnr,nc(x,y),其中,nr,nc分別代表行和列,x,y是芯片平面的坐標(biāo);GRG中每條邊ek的容量Ck,電路中線網(wǎng)的總數(shù)Nsum,每條線網(wǎng)的網(wǎng)表NetlistIndex,每條線網(wǎng)的源點(diǎn)s,漏點(diǎn)t,電路的所有電學(xué)性能參數(shù),用戶給定的時(shí)延約束指標(biāo)參數(shù);(2)生成GRG讀入在多層布線芯片上劃分GRC所必需的Nnr,Nnc,讀入在多層布線芯片上生成GRG所必需的各頂點(diǎn)的坐標(biāo)值,給頂點(diǎn)以及連接每?jī)蓚€(gè)相鄰頂點(diǎn)的邊ek編號(hào);(3)讀入電路詳細(xì)連接關(guān)系即網(wǎng)表讀入電路中線網(wǎng)的總數(shù)目Nsum,讀入每條線網(wǎng)網(wǎng)表,按讀入順序,為每條線網(wǎng)編號(hào);(4)讀入電路的所有電學(xué)性能參數(shù)與約束指標(biāo),賦到相應(yīng)的變量和數(shù)組中;(5)構(gòu)造初始布線樹(shù)即Steiner樹(shù),即在每條線網(wǎng)不受任何約束條件下構(gòu)造長(zhǎng)度最短的Steiner樹(shù);(6)統(tǒng)計(jì)總的可用布線資源,標(biāo)記擁擠區(qū)域根據(jù)步驟(5)執(zhí)行后得到的初始解,統(tǒng)計(jì)每條GRG邊的被使用量dk,比較Ck與dk,若Ck<dk,表示出現(xiàn)布線擁擠,得出擁擠區(qū)域,對(duì)布線擁擠的GRG邊進(jìn)行標(biāo)記,有標(biāo)記的線網(wǎng)即為擁擠線網(wǎng);(7)優(yōu)化布線擁擠,消除擁擠邊;(8)用Update_Timing_Para.cpp程序統(tǒng)計(jì)電路時(shí)延信息,分析關(guān)鍵pin,關(guān)鍵邊根據(jù)步驟(7)執(zhí)行后的布線結(jié)果,用公知的“Sakurai時(shí)延計(jì)算公式”計(jì)算并統(tǒng)計(jì)每條電信號(hào)傳輸路徑從輸入PI到輸出PO的時(shí)延值;對(duì)于一個(gè)樹(shù)型的多端點(diǎn)線網(wǎng),各節(jié)點(diǎn)的時(shí)延可根據(jù)上一級(jí)節(jié)點(diǎn)的時(shí)延來(lái)確定,根據(jù)步驟(4)讀入數(shù)組之中的用戶時(shí)延約束指標(biāo),與上述計(jì)算出的每條電路的時(shí)延值進(jìn)行比較,得出此時(shí)的關(guān)鍵pin,關(guān)鍵邊,其判別準(zhǔn)則如下a.若tQ(i)>tL(i),則pin i為關(guān)鍵pin其中tQ(i)為信號(hào)從虛擬源點(diǎn)vs到達(dá)pin i的最短時(shí)延;tL(i)為信號(hào)從虛擬源點(diǎn)vs到達(dá)pin i的約束時(shí)延,它可表述如下 delay(i,k)信號(hào)從pin i到pin k的約束時(shí)延,單位為ns,tL(k)信號(hào)從虛擬源點(diǎn)vs到pin k的約束時(shí)延;b.若(i,k)∈E,且tQ(i)+delay(i,k)>tL(k),則邊(i,k)為關(guān)鍵邊;其中tL(k)為信號(hào)從虛擬源點(diǎn)vs到pin k的約束時(shí)延,tQ(i)為信號(hào)從虛擬源點(diǎn)vs到達(dá)pin i的最短時(shí)延;(9)構(gòu)造關(guān)鍵網(wǎng)絡(luò),優(yōu)化電路時(shí)延若TQ>TL,TL整個(gè)電路要求的總時(shí)延,TQ整個(gè)電路實(shí)際的總時(shí)延;則關(guān)鍵網(wǎng)絡(luò)N=(V,E,d,vs,vt),V關(guān)鍵pin的集合;E關(guān)鍵邊的集合;d每條有向邊的權(quán)值,即delay(i,k),用dik表示;vs虛擬源點(diǎn),vt虛擬匯點(diǎn);用“圖與網(wǎng)絡(luò)規(guī)劃理論”中的最大流與最小割關(guān)系定理,在最大流≠∝條件下,求出最大流所對(duì)應(yīng)的最小割,從中得到一組邊,重新構(gòu)造最小割中的得到的一組邊所對(duì)應(yīng)線網(wǎng)的布線樹(shù),減小時(shí)延;(10)判斷布線時(shí)延是否滿足約束指標(biāo)若延遲優(yōu)化結(jié)果>時(shí)延約束指標(biāo),則繼續(xù)執(zhí)行時(shí)延優(yōu)化程序;若延遲優(yōu)化結(jié)果≤時(shí)延約束指標(biāo),則程序終止。
2.根據(jù)權(quán)利要求1所述的基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法,其特征在于所述的步驟(2)用Build_GRG.cpp程序完成。
3.根據(jù)權(quán)利要求1所述的基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法,其特征在于所述的步驟(3)用Build_Net.cpp程序完成。
4.根據(jù)權(quán)利要求1所述的基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法,其特征在于所述的步驟(4)用Build_Parameter.cpp程序完成。
5.根據(jù)權(quán)利要求1所述的基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法,其特征在于所述的步驟(5)用Tree.cpp程序完成,其中,采用了公知的“分層Dreyfus-Wagner算法”。
6.根據(jù)權(quán)利要求1所述的基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法,其特征在于所述的步驟(6)采用Update_Resources.cpp程序完成。
7.根據(jù)權(quán)利要求1所述的基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法,其特征在于所述的步驟(7)采用SSTT.cpp程序完成,其中采用了公知的“基于搜索空間遍歷技術(shù)(SSTT)的布線擁擠優(yōu)化算法”。
8.根據(jù)權(quán)利要求1所述的基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法,其特征在于所述的步驟(9)采用Timing_CN.cpp程序完成。
全文摘要
基于關(guān)鍵網(wǎng)絡(luò)技術(shù)優(yōu)化時(shí)延的標(biāo)準(zhǔn)單元總體布線方法,含有優(yōu)化布線擁擠的步驟,其特征在于:在生成總體布線圖,不受容量、時(shí)延等任何約束的條件下構(gòu)造長(zhǎng)度最短的初始布線樹(shù),再優(yōu)化布線擁擠等公知技術(shù)基礎(chǔ)上,提出了關(guān)鍵引腳、關(guān)鍵邊的概念,據(jù)此構(gòu)造出由關(guān)鍵引腳的和關(guān)鍵邊的集合,各條有向邊的權(quán)值、虛擬的源點(diǎn)和匯點(diǎn)構(gòu)成的關(guān)鍵網(wǎng)絡(luò),用最大流與最小割的關(guān)系,從最小割的一組邊中,重構(gòu)其所對(duì)應(yīng)線網(wǎng)的布線樹(shù),從而縮短關(guān)鍵網(wǎng)絡(luò)中從虛擬的源點(diǎn)到匯點(diǎn)的總時(shí)延。最后用給定的時(shí)延約束數(shù)據(jù)組與優(yōu)化的時(shí)延相比,通過(guò)迭代得出一組滿足優(yōu)化目標(biāo)的全部線網(wǎng)的布線樹(shù)。它及時(shí)準(zhǔn)確反映當(dāng)前對(duì)總時(shí)延影響最大的子網(wǎng)絡(luò),避免時(shí)延優(yōu)化的盲目性,提高優(yōu)化效率。
文檔編號(hào)G06F17/50GK1360268SQ0210035
公開(kāi)日2002年7月24日 申請(qǐng)日期2002年1月15日 優(yōu)先權(quán)日2002年1月15日
發(fā)明者洪先龍, 經(jīng)彤, 鮑海云, 蔡懿慈, 許靜宇 申請(qǐng)人:清華大學(xué)