專利名稱:基于電源/地網(wǎng)格與行對齊的消除串?dāng)_的總體布線方法
技術(shù)領(lǐng)域:
集成電路計算機輔助設(shè)計(IC CAD)領(lǐng)域,尤其涉及標(biāo)準(zhǔn)單元(SC)總體布線領(lǐng)域。
背景技術(shù):
在集成電路(IC)設(shè)計中,物理設(shè)計是IC設(shè)計過程中主要的一環(huán),也是其中最耗時的一步。與物理設(shè)計相關(guān)的計算機輔助設(shè)計技術(shù)稱為布圖設(shè)計。在布圖設(shè)計中,總體布線是一個極為重要的環(huán)節(jié),它的結(jié)果對最后詳細(xì)布線的成功與否和芯片的性能影響極大。
集成電路的制造工藝目前正從超深亞微米(VDSM)進(jìn)入到納米(nanometer)階段;集成電路的設(shè)計規(guī)模也正由超大規(guī)模(VLSI)、甚大規(guī)模(ULSI)向G大規(guī)模(GSI)方向發(fā)展;芯片的工作主頻也已經(jīng)達(dá)到1GHz乃至更高。在這種情況下,互連線之間的串?dāng)_,尤其是由耦合電感引起的串?dāng)_不可忽略。串?dāng)_將使電路不能正常工作,已經(jīng)成為影響芯片性能的重要因素。目前技術(shù)發(fā)展的情況下,在總體布線時很有必要考慮布線結(jié)果中由耦合電感引起的串?dāng)_是否達(dá)到了影響電路功能和性能的程度,要研究消除這種串?dāng)_的總體布線方法。
在已報導(dǎo)和所能查閱到的國內(nèi)外相關(guān)研究中,我們列舉、分析、總結(jié)如下在消除串?dāng)_研究的早期,采用的方法一般都是在總體布線過程之后(1)文獻(xiàn)[K.Chaudhary,A.Oniozawa,E.S.Kuh.“A spacing algori thm for performance enhancementand crosstalk reduction”,inProc IEEE/ACM ICCAD,1993,pp.697.]中使用了加大相鄰線網(wǎng)之間距離的簡單方式來減小串?dāng)_;(2)第二類方法采用改變線網(wǎng)之間的相鄰關(guān)系或者相對位置來減小串?dāng)_,文獻(xiàn)[T.Gao,C.L.Liu.“Minimum crosstalk channel routing”,IEEE Trans CAD,1996,15(5)pp.465.]中的“通道交換”方法適用于有網(wǎng)格的詳細(xì)布線,它通過調(diào)換線網(wǎng)的順序,使原本相鄰的線網(wǎng)不再相鄰來減少串?dāng)_;文獻(xiàn)[P.Saxena,C.L.Liu.“Crosstalk minimization using wire perturbations”,inProc ACM/IEEE DAC,NewOrleans,USA,1999,pp.100.]中的“線段擾動”方法適用于無網(wǎng)格的詳細(xì)布線,它根據(jù)某個線段周圍的布線情況計算出該線段的串?dāng)_最小位置,從而達(dá)到減小串?dāng)_的目的。以上這些方法在計算串?dāng)_時僅僅考慮了耦合電容,沒有考慮耦合電感,且只能應(yīng)用在詳細(xì)布線之中。但在詳細(xì)布線時線網(wǎng)的大致走線方式已經(jīng)基本確定,優(yōu)化范圍有限,因此優(yōu)化的效果受到影響。
后來,研究者們認(rèn)為有必要在總體布線時就力求減小串?dāng)_,因此又提出了以下方法(1)采用在總體布線后進(jìn)行單獨的串?dāng)_消除的方法。這類方法首先在不考慮串?dāng)_的情況下得出一個初始的總體布線解,然后對初始解進(jìn)行單獨的優(yōu)化,從而減小串?dāng)_。文獻(xiàn)[T.X.Xue,E.S.Kuh,D.S.Wang.“Post global routing crosstalk synthesis”,IEEE Trans CAD,1997,16(12)pp.1418.](未考慮耦合電感)和文獻(xiàn)[J.J.Xiong,J.Chen,J.Ma,L.He.“Post global routing RLC crosstalk budgeting”,inProc IEEE/ACM ICCAD,San Jose,USA,2002,pp.-.](考慮了耦合電感)均采用了這類方法。這類方法相對簡單,容易實現(xiàn),但是在優(yōu)化不易滿足要求的時候,會出現(xiàn)反復(fù)的迭代。(2)采用在構(gòu)造總體布線樹的時候?qū)⒋當(dāng)_加入布線樹費用函數(shù)中的方法。這類方法可以將減小串?dāng)_作為多個優(yōu)化目標(biāo)中的一個,在總體布線時進(jìn)行統(tǒng)一考慮。文獻(xiàn)[H.Zhou,D.F.Wong.“Global Routing with crosstalkconstraints”,IEEE Trans CAD,1999,18(11)pp.1683.](未考慮耦合電感)和文獻(xiàn)[J.Ma,L.He.“Towards Global routing with RLC crosstalk constraints”,inProc ACM/IEEEDAC,New Orleans,USA,2002,pp.669.](考慮了耦合電感)均采用了這類方法。這類方法比(1)具有更小的盲目性,但是對于總體布線應(yīng)用來說,時間復(fù)雜度過大。
除了上述各類減小串?dāng)_的方法以外,計算串?dāng)_的模型可以分為兩種(1)Sakurai模型。該模型在文獻(xiàn)[T.Sakurai,C.Kobayashi,M.Node.“Simple expressions forinterconnecting delay,coupling and crosstalk in VLSI’s”,IEEE Trans ElectronDevices,1993,40(1)pp.118.]和文獻(xiàn)[T.Sakurai,K.Tanaru.“Simple formulas fortwo and three dimensional capacitance”,IEEE Trans Electron Devices,1983,pp.183.]中被提出。該模型計算簡單,但是沒有考慮耦合電感,所以在目前技術(shù)發(fā)展的情況下不再適用。(2)LSK模型。該模型在文獻(xiàn)[L.He,K.M.Lepak.“Simul taneous shield insertionand net ordering for capacitive and inductive coupling minimization”;inProc ACMISPD,San Diego,USA,2000,pp.56.]中提出。該模型適合估算連線之間的耦合電感,計算簡單。
還有文獻(xiàn)[已申請的國家發(fā)明專利洪先龍,經(jīng)彤,許靜宇,張凌,胡昱.發(fā)明名稱標(biāo)準(zhǔn)單元總體布線過程中用的減少串?dāng)_的方法.申請日期2003/05/01.申請?zhí)枮?3124095.X.已于2004/02/04被公開。],是我們以前提出的消除串?dāng)_的方法。這種方法是在總體布線階段以消除由耦合電容引起的串?dāng)_為目標(biāo),采用增加線間距的技術(shù)策略,與本發(fā)明的目的、方法不同。
該文獻(xiàn)和我們在2001年的綜述性文獻(xiàn)[經(jīng)彤,洪先龍,蔡懿慈,鮑海云,許靜宇.性能驅(qū)動總體布線的關(guān)鍵技術(shù)及研究進(jìn)展.軟件學(xué)報.2001,12(5)677-688.]對于與串?dāng)_相關(guān)的研究工作進(jìn)行了非常詳細(xì)的分析、介紹。所有那些被提到的相關(guān)工作或者是基于印刷線路板(PCB)而不是基于IC芯片的、或者是研究串?dāng)_計算模型的、或者是串?dāng)_優(yōu)化工作分別進(jìn)行在詳細(xì)布線之后或詳細(xì)布線之中或總體布線之后等的布圖階段。而少數(shù)在總體布線過程之中進(jìn)行串?dāng)_優(yōu)化工作的也全部是在計算串?dāng)_時僅僅考慮了耦合電容,沒有考慮耦合電感。并且它們不能同時實現(xiàn)消除串?dāng)_、減少電路時延、布線擁擠等優(yōu)化工作。
還有文獻(xiàn)[已申請的國家發(fā)明專利洪先龍,經(jīng)彤,張凌,許靜宇,梁敬弘.發(fā)明名稱消除由耦合電感引起串?dāng)_的標(biāo)準(zhǔn)單元總體布線方法.申請日期2004/04/20日.申請?zhí)枮?00410009030.5],該發(fā)明的目的在于提出一種消除由耦合電感引起串?dāng)_的標(biāo)準(zhǔn)單元總體布線方法。該發(fā)明是首先利用現(xiàn)有技術(shù)產(chǎn)生總體布線的初始解,并對布線擁擠、電路時延進(jìn)行優(yōu)化;然后依照用戶設(shè)定的串?dāng)_約束,根據(jù)本發(fā)明提出的方法對布線初始解進(jìn)行串?dāng)_消除;再對新的布線解檢查布線擁擠、電路時延等指標(biāo),進(jìn)行迭代調(diào)整。
文獻(xiàn)[Tong Jing,Ling Zhang,Jinghong Liang,Jingyu Xu,Xianlong Hong,JinjunXiong.Lei He.A Min-area Solution to Performance and RLC Crosstalk Driven GlobalRouting Problem.InProceedings of IEEE/ACM ASP-DAC,2005,Shanghai,China,115-120.]。該文獻(xiàn)把串?dāng)_信息也作為一種權(quán)重,分配給每個總體布線圖GRG邊,可以在一定程度上減少串?dāng)_消除部分加入的屏蔽線shield(屏蔽線指由電源/地引出的導(dǎo)線,可以消除屏蔽線兩側(cè)線網(wǎng)邊之間的串?dāng)_噪聲。)數(shù)目,從而減少總面積。
以上工作并沒有考慮實際布線中的電源/地網(wǎng)絡(luò)問題,同時沒有為下一步的詳細(xì)布線提供指導(dǎo)。
本發(fā)明的串?dāng)_消除工作是在總體布線過程之中進(jìn)行的,是以耦合電感引起的串?dāng)_為目標(biāo),考慮實際的電源/地網(wǎng)絡(luò)和潛在的通孔最小化問題,同時實現(xiàn)了消除串?dāng)_、減少電路時延、布線擁擠等優(yōu)化工作。所進(jìn)行的優(yōu)化工作比上述文獻(xiàn)中的新穎、廣泛、全面,解決了一些原來沒有考慮的問題。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出了一種基于電源/地(P/G)網(wǎng)格和行的串?dāng)_驅(qū)動布線問題解決方案,同時考慮了可布通性和時間因素。本發(fā)明的總體思路是首先利用現(xiàn)有技術(shù)產(chǎn)生總體布線的初始解,迭代總體布線進(jìn)行優(yōu)化,消除串?dāng)_;然后對得到的結(jié)果,考慮行問題,以解決行對齊問題;最后考慮不一致的網(wǎng)格問題,進(jìn)行屏蔽線分配,得到最終解。
本發(fā)明的總體流程圖如圖2所示。
本發(fā)明的特征在于它依次包含如下步驟步驟1向該計算機輸入給定的考慮耦合電容的總體布線的初始解GRG網(wǎng)格的行數(shù)和列數(shù);線網(wǎng)數(shù);源漏對數(shù);每個源漏對在GRG網(wǎng)格上所經(jīng)過的邊的集合;每條GRG邊上所經(jīng)過的線網(wǎng)的集合;其中源漏對是指,一個線網(wǎng)有一個源點和多個漏點,由這個源點和每個漏點分別構(gòu)成的對;步驟2對當(dāng)前的總體布線初始解進(jìn)行不斷迭代消除布線初始解中的串?dāng)_,在經(jīng)過一定迭代次數(shù)或串?dāng)_現(xiàn)象沒有減輕時,結(jié)束迭代,每一次迭代依次含有以下步驟步驟2A讀入總體布線的解和用戶設(shè)定的串?dāng)_約束所選用戶設(shè)定的串?dāng)_約束規(guī)定了在所有線網(wǎng)漏點處允許的最大互感系數(shù)值;步驟2B分配串?dāng)_約束,以便把用戶給出的漏點處的約束轉(zhuǎn)化為相應(yīng)線網(wǎng)在所經(jīng)過的每個漏點的GRG邊上的最大互感系數(shù)的約束,下面定義了一個加入串?dāng)_信息后的GRG邊權(quán)wt來進(jìn)行具體分配wt=ft+δct+δ+nvtct+δ]]>其中,ft為GRG邊t的通道占用量,該通道占用量指GRG邊的實際通過的線網(wǎng)數(shù);ct為邊t的通道容量,該通道容量指GRG邊容許通過的最大線網(wǎng)數(shù);δ為一個小實數(shù),保證當(dāng)ct為0時該定義仍有意義,nvt為該邊上違反串?dāng)_約束(串?dāng)_約束指的是一條GRG邊容許的最大串?dāng)_值,由總體布線時的輸入給定;)的線網(wǎng)段個數(shù);wt表示了邊t的實際擁擠度;由于上式的定義引入了nvt,這使得GRG邊上各個線網(wǎng)的串?dāng)_信息也成為權(quán)重的一部分,這樣在總體布線時就能兼顧到串?dāng)_約束的因素;在這個步驟結(jié)束后,每個線網(wǎng)在每個GRG邊上都會得到一個串?dāng)_約束值wit,其中下標(biāo)i為線網(wǎng)編號,t為GRG邊的編號;步驟2C在每個GRG邊上消除串?dāng)_,首先采用LSK模型來計算線網(wǎng)之間的互感系數(shù),再用已知的禁忌搜索技術(shù)加入屏蔽線來尋找一個能夠滿足約束,并且面積最小的線網(wǎng)排列方案設(shè)定在一個左右分別為屏蔽線L和屏蔽線R的區(qū)域內(nèi),有兩個互相敏感的線網(wǎng)i和j,而i在j的左邊;則線網(wǎng)i和j之間的互感系數(shù)kij為kij=12(lLilLj+lRjlRi)]]>其中,lLi為線網(wǎng)i到左側(cè)屏蔽線L的距離,lLj為線網(wǎng)j到左側(cè)屏蔽線L的距離,lRi為線網(wǎng)i到右側(cè)屏蔽線R的距離,lRj為線網(wǎng)j到右側(cè)屏蔽線R的距離;同時,對于線網(wǎng)i,其實際的互感系數(shù)Keff為 ,j為所有與i敏感的線網(wǎng);接著,利用公知的禁忌搜索方法來產(chǎn)生一個串?dāng)_在約束范圍內(nèi)的線網(wǎng)排列順序,其具體步驟依次表達(dá)如下步驟a)取當(dāng)前GRG邊上的線網(wǎng)順序xcur為當(dāng)前解,同時設(shè)定以下參數(shù)Na,在最優(yōu)解xmin無改進(jìn)的情況下算法的迭代次數(shù),為正整數(shù),取值在100到500之間,所述最優(yōu)解是指曾經(jīng)到達(dá)的費用函數(shù)最小的解;Nb,在當(dāng)前解鄰域的合法候選解集中隨機挑選候選解的個數(shù),為正整數(shù),取值在100到200之間,所述合法候選解集即鄰域中未被禁忌的解的集合;Nc,為了找到一個合法候選解而搜索的最大次數(shù),Nc是用于控制當(dāng)前領(lǐng)域中大部分的解;解空間,為當(dāng)前GRG邊中線網(wǎng)集合可能構(gòu)成的所有排列,其中某一種排列對應(yīng)一個解x;費用函數(shù),評定某個解x優(yōu)劣的定量標(biāo)準(zhǔn),用cost(x)表示,費用函數(shù)值越大,則解的質(zhì)量就越差cost(x)=w1c1+w2c2+w3c3+w4c4;其中,c1為該GRG邊中與敏感線網(wǎng)相鄰的線網(wǎng)總數(shù);c2為該GRG邊上的屏蔽線數(shù)目;c3為該GRG邊中所有Keff大于Kth的線網(wǎng)求(Keff-Kth)的絕對值并取總和,所述Keff為某個線網(wǎng)i在該GRG邊上實際的互感系數(shù),Kth為該線網(wǎng)i在該GRG邊上所分配到的互感系數(shù)約束值,c3的表達(dá)式如下∑(Keff-Kth)i,滿足Keff>Kthc4i為該GRG邊中滿足Keff>Kth的線網(wǎng)的總的個數(shù);w1,w2,w3,w4為權(quán)重因子,為0到5的小實數(shù);禁忌,是指把費用函數(shù)值所設(shè)定的被禁忌的費用函數(shù)值相等的解記錄在一個被稱為禁忌表H的表內(nèi),使它們在搜索的過程中不能作為新解被選中;禁忌長度T,是一個正整數(shù),取值在1到60之間,表示一個解遭到禁忌后,在T次迭代內(nèi)不能被選中,超過禁忌長度后,原本遭到禁忌的解可以重新參與挑選過程;禁忌表H,記錄被禁忌的解及其相應(yīng)禁忌長度的列表,在完成一次迭代后,該表中所有被禁忌的解的禁忌長度都會減1,新的禁忌長度為零的被禁忌的解會被從禁忌表中刪除,重新考慮挑選過程;在設(shè)定以上參數(shù)及費用函數(shù)后,初始化禁忌表H,計數(shù)器a和c清空,初始化xmin=xcur;步驟b)判斷計數(shù)器a的迭代次數(shù)是否小于Na,若a的值不小于參數(shù)Na,則已經(jīng)達(dá)到了迭代次數(shù)的上界,搜索結(jié)束;否則轉(zhuǎn)步驟c);步驟c)將tmpcost變量置為無窮大,清空計數(shù)器b,所述tmpcost是xtmp的費用函數(shù),而tmpcost是從合法候選集中所能夠找到的費用函數(shù)最小的解;步驟d)判斷計數(shù)器b的值是否小于數(shù)Nb,若b的值不小于參數(shù)Nb,則說明已經(jīng)挑選過足夠多的候選解,轉(zhuǎn)步驟i),否則轉(zhuǎn)步驟e);步驟e)通過隨機移動產(chǎn)生新解xnew,并判斷其費用函數(shù)是否遭到禁忌,若沒有遭禁忌,轉(zhuǎn)步驟g),若遭到禁忌,轉(zhuǎn)步驟f);所述的隨機移動即從當(dāng)前解xcur的鄰域中找到一個新解xnew的方法,包括隨機調(diào)換兩個線網(wǎng)的位置,其權(quán)重為w5;隨機移動一個線網(wǎng)的位置,其權(quán)重為w6;隨機插入一個屏蔽線,其權(quán)重為w7;隨機刪除一個屏蔽線,其權(quán)重為w8;滿足w5+w6+w7+w8=1;所有權(quán)重值事先設(shè)定,每次隨機操作時從這四種移動中選擇一種;步驟f)計數(shù)器c的值加1,并判斷c的值是否小于參數(shù)Nc,Nc為正整數(shù),取值在5到50之間;若c的值不小于Nc,說明已經(jīng)達(dá)到了預(yù)定的搜索深度,不要再繼續(xù)搜索,則將計數(shù)器c清空,并轉(zhuǎn)步驟g),否則轉(zhuǎn)步驟e),重新搜索一個合法候選解;步驟g)判斷新解xnew的費用函數(shù)cost(xnew)是否小于變量tmpcost,若是,則將xnew記錄為xtmp,并將其費用記錄為tmpcost,否則不做記錄;步驟h)計數(shù)器b的值加1,并轉(zhuǎn)步驟d),重新尋找一個合法候選解;步驟i)禁忌xnew的費用函數(shù)cost(xnew),并選取xtmp為當(dāng)前解xcur,并比較xcur的費用函數(shù)cost(xcur)和最優(yōu)解xmin的費用函數(shù)cost(xmin);若cost(xcur)小于cost(xmin),說明找到了新的最優(yōu)解,則將xcur記錄為xmin,同時清空計數(shù)器a;否則不作記錄,計數(shù)器a的值加1;步驟j)更新禁忌表H,即對所有被禁忌的費用函數(shù),禁忌長度減1,禁忌長度減為零的則解除禁忌;禁忌長度的選取同樣會影響到算法的結(jié)果和時間復(fù)雜度,其合理取值范圍為1到60,同時轉(zhuǎn)步驟b);步驟3利用隨機優(yōu)化策略的總體布線程序Gr(見文獻(xiàn)[Tong Jing,Ling Zhang,Jinghong Liang,Jingyu Xu,Xianlong Hong,Jinjun Xiong,Lei He.A Min-area Solutionto Performance and RLC Crosstalk Driven Global Routing Problem.InProceedingsof IEEE/ACM ASP-DAC,2005,Shanghai,China,115-120.];)對由2得到的串?dāng)_最小的解進(jìn)行布線并得到結(jié)果X1;這里的X1包括了SSTT技術(shù)(見文獻(xiàn)[Tong Jing,Xian-Long Hong,Hai-Yun Bao,Jing-Yu Xu,Jun Gu.SSTTEfficient Local Search for GSI Global Routing.J.of Computer Science and Technology(JCST),2003,18(5)632-639.];)中的三種不同優(yōu)化策略,也同時考慮了時延的約束;Gr包含以下步驟3.a.初始化總體布線參數(shù);3.b.讀總體布線樹初始解;3.c.統(tǒng)計總的資源使用情況,以及關(guān)鍵路徑情況;4.c.進(jìn)行一系列優(yōu)化,以得到近似最優(yōu)解,具體步驟如下4.c.a.重新計算當(dāng)前解的擁擠度;4.c.b.如果當(dāng)前解可以接受,返回,否則進(jìn)入4.c.c;4.c.c.建立待優(yōu)化線網(wǎng)數(shù)組tmpNets;4.c.d.當(dāng)優(yōu)化循環(huán)小于給定的次數(shù),或結(jié)束標(biāo)志沒來時先將tmpNets中的線網(wǎng)順序打亂;然后對每個線網(wǎng)將該線網(wǎng)在GRG網(wǎng)格中占用的資源釋放;重新計算那些用量有改變的的邊的權(quán)重,也就是擁擠度;利用SSTT策略對該線網(wǎng)進(jìn)行拆線重布;隨后,采用調(diào)換線網(wǎng)順序同時插入屏蔽線shield的方法(不同線網(wǎng)在同一GRG邊上的排列是有順序的,它們之間的位置關(guān)系變化會改變GRG邊的串?dāng)_值;而在它們之間插入屏蔽線會消除屏蔽線兩側(cè)線網(wǎng)之間的串?dāng)_;)消除X1中的串?dāng)_,并得到結(jié)果X2;步驟4得到基于行對齊原則的費用函數(shù)計算公式我們采用禁忌搜索算法來消除串?dāng)_噪聲;但是我們考慮了行對齊問題;所謂行對齊問題,是指同一線網(wǎng)的邊,處在相鄰GRG邊上,但是不位于同樣的通道,這可能在詳細(xì)布線階段造成更多的通孔;(通道指的是一條GRG邊上通過的線網(wǎng)邊,在實際布線過程中,所走的位置;如果兩條線網(wǎng)邊走的實際位置在同一水平或垂直位置,就說它們在同一通道上,這由總體布線階段給出的順序決定;圖5給出了一個例子,圖中上半部黑色的粗線代表兩條相鄰的水平GRG邊,它們實際上都包含了多條通道,如圖下半部所示;其中Netl代表1個線網(wǎng),它分別經(jīng)過了兩條GRG邊,在左邊的GRG邊上,它走的是第1條通道;而在右邊的GRG邊上,它走的是第3條通道;Netl的兩條邊不在同樣的通道上,這樣在實際布線中,就要打兩個通孔來連接Netl的這兩條邊;)對GRG邊采用新的費用計算公式,如下cost′(x)=w1′c1+w2′c2+w3′c3+w4′c4+w9c9(1)其中w1′,w2′,w3′和w4′是權(quán)重,分別等于13,2,13和10;c1是敏感線網(wǎng)(凡是能夠影響線網(wǎng)i上信號性能的其他線網(wǎng),都稱之為與線網(wǎng)i敏感;這些線網(wǎng)也就是線網(wǎng)i的敏感線網(wǎng);)相鄰的數(shù)目,c2是插入的屏蔽線個數(shù),c3是違反串?dāng)_約束的值之和,c4是違反串?dāng)_約束的線網(wǎng)個數(shù);w1′,w2′,w3′,w4′以及c1,c2,c3,c4的定義和第3步中提到的禁忌搜索中采用費用計算公式的定義相同,的和原有的公式相比,我們增加了w9和c9;w9是權(quán)重,等于15,c9=(1-p/q),p是同一線網(wǎng)相鄰邊在同一通道位置的邊的個數(shù),q是GRG邊的容量(GRG邊的容量指的是GRG邊在實際走線時容許布的最大通道數(shù));步驟5設(shè)定的水平方向屏蔽線長度下,解決在屏蔽線達(dá)不到設(shè)定長度時引發(fā)的網(wǎng)格不連續(xù)問題設(shè)定水平方向的屏蔽線長度等于3條GRG邊的長度,在調(diào)整相鄰的3條GRG邊線網(wǎng)布線水平順序時,依次含有以下步驟5.A.GRG的同一水平坐標(biāo)的水平邊按水平順序,每3條GRG邊分為一組,最后若不足3條,也歸入同一組;5.B.在同一組內(nèi),計算每一條GRG邊含有的屏蔽線個數(shù),將屏蔽線最多的GRG邊定為關(guān)鍵邊;接著,我們讓其余2條GRG邊上與關(guān)鍵邊的屏蔽線在同一通道的線網(wǎng)邊改為屏蔽線,將原有的線網(wǎng)邊暫時移動到通道上還沒有占用的位置上;5.C.最后,我們調(diào)整非關(guān)鍵邊中的線網(wǎng)順序,使費用最小化;我們采用了公式(1)作為邊的費用函數(shù),并采用禁忌搜索算法,找到使費用最小的解。
實驗證明,該方法在滿足原有總體布線的串?dāng)_約束條件下,解決行對齊問題,并使屏蔽線分配更貼近實際要求,同時對布線結(jié)果的擁擠度和總線長沒有明顯影響,布線結(jié)果的時延也能夠滿足約束要求;具體的實驗數(shù)據(jù)在隨后給出。
我們采用表1中的測試電路,將本發(fā)明中的方法和最新的文獻(xiàn)[T.Jing,L.Zhang,J.H.Liang,J.Y.Xu,X.L.Hong,J.J.Xiong,L.He.“A Min-Area Solution to Performanceand RLC Cros stalk Driven Global Routing Problem”,InProc.IEEE/ACM ASP-DAC,2005,Shanghai,China,pp.115-120.]中的方法分別實驗并加以比較,可得到表3到表5的數(shù)據(jù)表格表1測試電路的基本參數(shù)
表2術(shù)語說明
表3相鄰邊擁有相同線網(wǎng)邊的數(shù)目的比較
表4線長的比較
表5運行時間的比較
表6面積的比較
我們比較表3中,相鄰線網(wǎng)邊位置相同的數(shù)目。表3顯示與AT-PO-GR相比,RB得到了平均72.84%的改進(jìn),這表明我們的算法是有效的,減少了詳細(xì)布線中潛在的行對齊和通孔數(shù)量。我們注意到IG得到了平均159.85%的改善,這是因為我們加入了空閑通道,使得線網(wǎng)的邊更可能得到調(diào)整。
如表4所示,RB和IG的總線長與AT-PO-GR的幾乎是一樣的,這是因為我們的目標(biāo)是最小化線長。
從表5中,我們看出RB的運行時間比AT-PO-GR的稍微短些,因為RB的面積增大了,我們在布線時,有更大的靈活性。IG的運行時間比RB的增加了大約20%,因為我們增加了一個長屏蔽線調(diào)整的階段。
表6顯示,RB的面積比AT-PO-GR增加了大約3%到8%。這是因為我們使用了新的費用函數(shù),面積在費用中占的比重比以前更小。IG的面積比RB稍微大些,這是因為在某些情況下,由于長屏蔽線調(diào)整,GRG邊的最大通道數(shù)目可能會增加。
圖1LSK模型的示意圖。
圖2本發(fā)明的總體流程圖。
圖3本發(fā)明中使用的禁忌搜索方法的示意圖。
圖4帶P/G網(wǎng)的GRG。
圖5行對齊問題。
圖6一個局部的P/G網(wǎng)和GRG邊。
圖7總體布線的初始解。
圖8迭代消除串?dāng)_之后的結(jié)果。
圖9采用調(diào)整順序和插入屏蔽線之后的結(jié)果。
圖10得到基于行問題和不連續(xù)網(wǎng)格問題的結(jié)果具體實施系統(tǒng)方式為了實現(xiàn),或者說是具體實施本項發(fā)明,我們給出以下關(guān)于發(fā)明實施的描述。
實施本發(fā)明的計算機系統(tǒng)本發(fā)明所設(shè)計的總體布線軟件要在一個具體的計算機系統(tǒng)上得以實施,該計算機系統(tǒng)具體描述如下。
一臺Sun公司的Enterprise 450型工作站;Unix操作系統(tǒng);標(biāo)準(zhǔn)C編程語言;Vi編輯器、gcc編譯器、gdb調(diào)試工具等。
如圖所示,現(xiàn)在采用一個MCNC電路實例c2作為本發(fā)明的一個實施例,結(jié)合本發(fā)明的算法,進(jìn)行布線處理,圖4顯示了一個帶P/G的GRG,圖6給出了一個局部的P/G網(wǎng)和GRG邊,如下有3條GRG邊,邊0,1和2。我們用褐色的線表示屏蔽線,黑線表示線網(wǎng)邊,虛線表示空閑的邊,因為P/G網(wǎng)提供的屏蔽線有3條GRG邊那么長,我們應(yīng)改進(jìn)早先的布線結(jié)果以滿足實際應(yīng)用的需求。
1.利用現(xiàn)有技術(shù)得到的總體布線的初始解圖7顯示了該解,我們看到GRG邊0上經(jīng)過的線網(wǎng)邊有3條,分別為180、194和426;邊1上經(jīng)過的線網(wǎng)邊有9條,分別為152、153、180、190、194、235、285、426和445;邊2上經(jīng)過的線網(wǎng)邊有8條,分別為152、153、180、190、194、235、319、336和337。根據(jù)原有的GRG費用計算公式計算出3條邊的費用分別是11、50.5和41.5。
2.對當(dāng)前的布線解進(jìn)行不斷迭代消除布線初始解中的串?dāng)_,所得到的結(jié)果圖8顯示了該解,我們看到GRG邊0上經(jīng)過的線網(wǎng)邊為180、194和426。邊1上經(jīng)過的線網(wǎng)邊為152、194、180、190、235、426、285、153和445;邊2上經(jīng)過的線網(wǎng)邊為319、194、153、337、180、336、152和235。根據(jù)原有的GRG費用計算公式計算出3條邊的費用分別是11、35和31。
3.利用總體布線程序Gr對由2得到的串?dāng)_最小的解進(jìn)行布線并得到結(jié)果X1,采用調(diào)換線網(wǎng)順序和插入shield的方法消除X1中的串?dāng)_,并得到結(jié)果X2,如下圖9顯示了該解,我們看到GRG邊0上經(jīng)過的線網(wǎng)邊為180、194和426。邊1上經(jīng)過的線網(wǎng)邊為152、445、180、190、235、屏蔽線、426、285、153和194;邊2上經(jīng)過的線網(wǎng)邊為319、194、337、153、屏蔽線、235、336、152和180。根據(jù)原有的GRG費用計算公式計算出3條邊的費用分別是11、20.5和13.5。
4.得到基于行問題和不連續(xù)網(wǎng)格問題的結(jié)果圖10顯示了該解,我們看到GRG邊0上經(jīng)過的線網(wǎng)邊為180、屏蔽線、426和194;邊1上經(jīng)過的線網(wǎng)邊為152、445、180、190、235、屏蔽線、426、285、153和194;邊2上經(jīng)過的線網(wǎng)邊為152、337、180、235、屏蔽線、319、336、153和194。根據(jù)新的GRG費用計算公式計算出3條邊的費用分別是3、20.5和12.4。
從圖9中,我們看到,邊0中的線網(wǎng)邊只能在前3條通道內(nèi)移動。但是在圖10中,在長屏蔽線調(diào)整階段,邊0上的空閑邊可以被利用,所以我們可以把線網(wǎng)邊194移動到與邊1同樣的位置。這樣,相鄰邊的同樣通道數(shù)就增加了。
權(quán)利要求
1.基于電源/地網(wǎng)格與行對齊的消除串?dāng)_的總體布線方法,其特征在于,所述方法是在計算機中依次按以下步驟實施的步驟1向該計算機輸入給定的考慮耦合電容的總體布線的初始解GRG網(wǎng)格的行數(shù)和列數(shù);線網(wǎng)數(shù);源漏對數(shù);每個源漏對在GRG網(wǎng)格上所經(jīng)過的邊的集合;每條GRG邊上所經(jīng)過的線網(wǎng)的集合;其中源漏對是指,一個線網(wǎng)有一個源點和多個漏點,由這個源點和每個漏點分別構(gòu)成的對;步驟2對當(dāng)前的總體布線初始解進(jìn)行不斷迭代消除布線初始解中的串?dāng)_,在經(jīng)過一定迭代次數(shù)或串?dāng)_現(xiàn)象沒有減輕時,結(jié)束迭代,每一次迭代依次含有以下步驟步驟2A讀入總體布線的解和用戶設(shè)定的串?dāng)_約束所選用戶設(shè)定的串?dāng)_約束規(guī)定了在所有線網(wǎng)漏點處允許的最大互感系數(shù)值;步驟2B分配串?dāng)_約束,以便把用戶給出的漏點處的約束轉(zhuǎn)化為相應(yīng)線網(wǎng)在所經(jīng)過的每個漏點的GRG邊上的最大互感系數(shù)的約束,下面定義了一個加入串?dāng)_信息后的GRG邊權(quán)wt來進(jìn)行具體分配wt=ft+δct+δ+nvtct+δ]]>其中,ft為GRG邊t的通道占用量,該通道占用量指GRG邊的實際通過的線網(wǎng)數(shù);ct為邊t的通道容量,該通道容量指GRG邊容許通過的最大線網(wǎng)數(shù);δ為一個小實數(shù),保證當(dāng)ct為0時該定義仍有意義,nvt為該邊上違反串?dāng)_約束,串?dāng)_約束指的是一條GRG邊容許的最大串?dāng)_值,由總體布線時的輸入給定;的線網(wǎng)段個數(shù);wt表示了邊t的實際擁擠度;由于上式的定義引入了nvt,這使得GRG邊上各個線網(wǎng)的串?dāng)_信息也成為權(quán)重的一部分,這樣在總體布線時就能兼顧到串?dāng)_約束的因素;在這個步驟結(jié)束后,每個線網(wǎng)在每個GRG邊上都會得到一個串?dāng)_約束值wit,其中下標(biāo)i為線網(wǎng)編號,t為GRG邊的編號;步驟2C在每個GRG邊上消除串?dāng)_,首先采用LSK模型來計算線網(wǎng)之間的互感系數(shù),再用已知的禁忌搜索技術(shù)加入屏蔽線來尋找一個能夠滿足約束,并且面積最小的線網(wǎng)排列方案設(shè)定在一個左右分別為屏蔽線L和屏蔽線R的區(qū)域內(nèi),有兩個互相敏感的線網(wǎng)i和j,而i在j的左邊;則線網(wǎng)i和j之間的互感系數(shù)kij為kij=12(lLilLj+lRjlRi)]]>其中,lLi為線網(wǎng)i到左側(cè)屏蔽線L的距離,lLj為線網(wǎng)j到左側(cè)屏蔽線L的距離,lRi為線網(wǎng)i到右側(cè)屏蔽線R的距離,lRj為線網(wǎng)j到右側(cè)屏蔽線R的距離;同時,對于線網(wǎng)i,其實際的互感系數(shù)Keff為 j為所有與i敏感的線網(wǎng);接著,利用公知的禁忌搜索方法來產(chǎn)生一個串?dāng)_在約束范圍內(nèi)的線網(wǎng)排列順序,其具體步驟依次表達(dá)如下步驟a)取當(dāng)前GRG邊上的線網(wǎng)順序xcur為當(dāng)前解,同時設(shè)定以下參數(shù)Na,在最優(yōu)解xmin無改進(jìn)的情況下算法的迭代次數(shù),為正整數(shù),取值在100到500之間,所述最優(yōu)解是指曾經(jīng)到達(dá)的費用函數(shù)最小的解;Nb,在當(dāng)前解鄰域的合法候選解集中隨機挑選候選解的個數(shù),為正整數(shù),取值在100到200之間,所述合法候選解集即鄰域中未被禁忌的解的集合;Nc,為了找到一個合法候選解而搜索的最大次數(shù),Nc是用于控制當(dāng)前領(lǐng)域中大部分的解;解空間,為當(dāng)前GRG邊中線網(wǎng)集合可能構(gòu)成的所有排列,其中某一種排列對應(yīng)一個解x;費用函數(shù),評定某個解x優(yōu)劣的定量標(biāo)準(zhǔn),用cost(x)表示,費用函數(shù)值越大,則解的質(zhì)量就越差cost(x)=wici+w2c2+w3c3+w4c4;其中,c1為該GRG邊中與敏感線網(wǎng)相鄰的線網(wǎng)總數(shù);c2為該GRG邊上的屏蔽線數(shù)目;c3為該GRG邊中所有Keff大于Kth的線網(wǎng)求Keff-Kth的絕對值并取總和,所述Keff為某個線網(wǎng)i在該GRG邊上實際的互感系數(shù),Kth為該線網(wǎng)i在該GRG邊上所分配到的互感系數(shù)約束值,c3的表達(dá)式如下 滿足Kefff>Kthc4為該GRG邊中滿足Keff>Kth的線網(wǎng)的總的個數(shù);w1,w2,w3,w4為權(quán)重因子,為0到5的小實數(shù);禁忌,是指把費用函數(shù)值所設(shè)定的被禁忌的費用函數(shù)值相等的解記錄在一個被稱為禁忌表H的表內(nèi),使它們在搜索的過程中不能作為新解被選中;禁忌長度T,是一個正整數(shù),取值在1到60之間,表示一個解遭到禁忌后,在T次迭代內(nèi)不能被選中,超過禁忌長度后,原本遭到禁忌的解可以重新參與挑選過程;禁忌表H,記錄被禁忌的解及其相應(yīng)禁忌長度的列表,在完成一次迭代后,該表中所有被禁忌的解的禁忌長度都會減1,新的禁忌長度為零的被禁忌的解會被從禁忌表中刪除,重新考慮挑選過程;在設(shè)定以上參數(shù)及費用函數(shù)后,初始化禁忌表H,計數(shù)器a和c清空,初始化xmin=xcur;步驟b)判斷計數(shù)器a的迭代次數(shù)是否小于Na,若a的值不小于參數(shù)Na,則已經(jīng)達(dá)到了迭代次數(shù)的上界,搜索結(jié)束;否則轉(zhuǎn)步驟c);步驟c)將tmpcost變量置為無窮大,清空計數(shù)器b,所述tmpcost是xtmp的費用函數(shù),而tmpcost是從合法候選集中所能夠找到的費用函數(shù)最小的解;步驟d)判斷計數(shù)器b的值是否小于數(shù)Nb,若b的值不小于參數(shù)Nb,則說明已經(jīng)挑選過足夠多的候選解,轉(zhuǎn)步驟i),否則轉(zhuǎn)步驟e);步驟e)通過隨機移動產(chǎn)生新解xnew,并判斷其費用函數(shù)是否遭到禁忌,若沒有遭禁忌,轉(zhuǎn)步驟g),若遭到禁忌,轉(zhuǎn)步驟f);所述的隨機移動即從當(dāng)前解xcur的鄰域中找到一個新解xnew的方法,包括隨機調(diào)換兩個線網(wǎng)的位置,其權(quán)重為w5;隨機移動一個線網(wǎng)的位置,其權(quán)重為w6;隨機插入一個屏蔽線,其權(quán)重為w7;隨機刪除一個屏蔽線,其權(quán)重為w8;滿足w5+w6+w7+w8=1;所有權(quán)重值事先設(shè)定,每次隨機操作時從這四種移動中選擇一種;步驟f)計數(shù)器c的值加1,并判斷c的值是否小于參數(shù)Nc,Nc為正整數(shù),取值在5到50之間;若c的值不小于Nc,說明已經(jīng)達(dá)到了預(yù)定的搜索深度,不要再繼續(xù)搜索,則將計數(shù)器c清空,并轉(zhuǎn)步驟g),否則轉(zhuǎn)步驟e),重新搜索一個合法候選解;步驟g)判斷新解xnew的費用函數(shù)cost(xnew)是否小于變量tmpcost,若是,則將xnew記錄為xtmp,并將其費用記錄為tmpcost,否則不做記錄;步驟h)計數(shù)器b的值加1,并轉(zhuǎn)步驟d),重新尋找一個合法候選解;步驟i)禁忌xnew的費用函數(shù)cost(xnew),并選取xtmp為當(dāng)前解xcur,并比較xcur的費用函數(shù)cost(xcur)和最優(yōu)解xmin的費用函數(shù)cost(xmin);若cost(xcur)小于cost(xmin),說明找到了新的最優(yōu)解,則將xcur記錄為xmin,同時清空計數(shù)器a;否則不作記錄,計數(shù)器a的值加1;步驟j)更新禁忌表H,即對所有被禁忌的費用函數(shù),禁忌長度減1,禁忌長度減為零的則解除禁忌;禁忌長度的選取同樣會影響到算法的結(jié)果和時間復(fù)雜度,其合理取值范圍為1到60,同時轉(zhuǎn)步驟b);步驟3利用性能和串?dāng)_驅(qū)動的最小化面積的總體布線程序Gr,對由步驟2得到的串?dāng)_最小的解進(jìn)行布線并得到結(jié)果X1;Gr包含以下步驟3.a.初始化總體布線參數(shù);3.b.讀總體布線樹初始解;3.c.統(tǒng)計總的資源使用情況,以及關(guān)鍵路徑情況;4.c.進(jìn)行一系列優(yōu)化,以得到近似最優(yōu)解,具體步驟如下4.c.a.重新計算當(dāng)前解的擁擠度;4.c.b.如果當(dāng)前解可以接受,返回,否則進(jìn)入4.c.c;4.c.c.建立待優(yōu)化線網(wǎng)數(shù)組tmpNets;4.c.d.當(dāng)優(yōu)化循環(huán)小于給定的次數(shù),或結(jié)束標(biāo)志沒來時先將tmpNets中的線網(wǎng)順序打亂;然后對每個線網(wǎng)將該線網(wǎng)在GRG網(wǎng)格中占用的資源釋放;重新計算那些用量有改變的的邊的權(quán)重,也就是擁擠度;對該線網(wǎng)進(jìn)行拆線重布;隨后,由于不同線網(wǎng)在同一GRG邊上的排列是有順序的,它們之間的位置關(guān)系變化會改變GRG邊的串?dāng)_值;而在它們之間插入屏蔽線會消除屏蔽線兩側(cè)線網(wǎng)之間的串?dāng)_;本發(fā)明采用調(diào)換線網(wǎng)順序同時插入屏蔽線shield的方法,消除X1中的串?dāng)_,并得到結(jié)果X2;步驟4得到基于行對齊原則的費用函數(shù)計算公式我們采用禁忌搜索算法來消除串?dāng)_噪聲;但是我們考慮了行對齊問題;所謂行對齊問題,是指同一線網(wǎng)的邊,處在相鄰GRG邊上,但是不位于同樣的通道,這可能在詳細(xì)布線階段造成更多的通孔;對GRG邊采用新的費用計算公式,如下cost′(x)=w1′c1+w2′c2+w3′c3+w4′c4+w9c9其中w1′,w2′,w3′和w4′是權(quán)重,分別等于13,2,13和10;c1是敏感線網(wǎng),凡是能夠影響線網(wǎng)i上信號性能的其他線網(wǎng),都稱之為與線網(wǎng)i敏感;這些線網(wǎng)也就是線網(wǎng)i的敏感線網(wǎng);相鄰的數(shù)目,c2是插入的屏蔽線個數(shù),c3是違反串?dāng)_約束的值之和,c4是違反串?dāng)_約束的線網(wǎng)個數(shù);w1′,w2′,w3′,w4′以及c1,c2,c3,c4的定義和第3步中提到的禁忌搜索中采用費用計算公式的定義相同,的和原有的公式相比,我們增加了w9和c9;w9是權(quán)重,等于15,c9=1-p/q,p是同一線網(wǎng)相鄰邊在同一通道位置的邊的個數(shù),q是GRG邊的容量,GRG邊的容量指的是GRG邊在實際走線時容許布的最大通道數(shù);步驟5設(shè)定的水平方向屏蔽線長度下,解決在屏蔽線達(dá)不到設(shè)定長度時引發(fā)的網(wǎng)格不連續(xù)問題設(shè)定水平方向的屏蔽線長度等于3條GRG邊的長度,在調(diào)整相鄰的3條GRG邊線網(wǎng)布線水平順序時,依次含有以下步驟5.A.GRG的同一水平坐標(biāo)的水平邊按水平順序,每3條GRG邊分為一組,最后若不足3條,也歸入同一組;5.B.在同一組內(nèi),計算每一條GRG邊含有的屏蔽線個數(shù),將屏蔽線最多的GRG邊定為關(guān)鍵邊;接著,我們讓其余2條GRG邊上與關(guān)鍵邊的屏蔽線在同一通道的線網(wǎng)邊改為屏蔽線,將原有的線網(wǎng)邊暫時移動到通道上還沒有占用的位置上;5.C.最后,我們調(diào)整非關(guān)鍵邊中的線網(wǎng)順序,使費用最小化;我們采用了步驟4中基于行對齊原則的費用函數(shù)計算公式作為邊的費用函數(shù),并采用禁忌搜索算法,找到使費用最小的解。
全文摘要
本發(fā)明屬于標(biāo)準(zhǔn)單元之總體布線的計算機輔助設(shè)計領(lǐng)域,其特征在于首先利用現(xiàn)有技術(shù)產(chǎn)生總體布線的初始解,著重考慮了電感干擾約束的費用函數(shù),通過迭代總體布線進(jìn)行優(yōu)化,消除串?dāng)_;然后再參考已有費用函數(shù),提出了一個考慮了解決行對齊問題的新費用函數(shù),得到了一個同時考慮行對齊和不一致網(wǎng)格問題來進(jìn)行屏蔽線分配的最終解。本發(fā)明解決了基于電源/地網(wǎng)格的串?dāng)_消除的問題,同時實現(xiàn)了減少電路的延時的布線的優(yōu)化。
文檔編號G06F17/50GK1731406SQ200510086339
公開日2006年2月8日 申請日期2005年9月2日 優(yōu)先權(quán)日2005年9月2日
發(fā)明者洪先龍, 經(jīng)彤, 梁敬弘 申請人:清華大學(xué)