專利名稱:消除由耦合電感引起串?dāng)_的標(biāo)準(zhǔn)單元總體布線方法
技術(shù)領(lǐng)域:
消除由耦合電感引起串?dāng)_的標(biāo)準(zhǔn)單元總體布線方法屬于集成電路計(jì)算機(jī)輔助設(shè)計(jì)即ICCAD技術(shù)領(lǐng)域,尤其涉及標(biāo)準(zhǔn)單元(SC)總體布線設(shè)計(jì)領(lǐng)域。
背景技術(shù):
在集成電路(IC)設(shè)計(jì)中,物理設(shè)計(jì)是IC設(shè)計(jì)過(guò)程中主要的一環(huán),也是其中最耗時(shí)的一步。與物理設(shè)計(jì)相關(guān)的計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)稱為布圖設(shè)計(jì)。在布圖設(shè)計(jì)中,總體布線是一個(gè)極為重要的環(huán)節(jié),它的結(jié)果對(duì)最后詳細(xì)布線的成功與否和芯片的性能影響極大。
集成電路的制造工藝目前正從超深亞微米(VDSM)進(jìn)入到納米(nanometer)階段;集成電路的設(shè)計(jì)規(guī)模也正由超大規(guī)模(VLSI)、甚大規(guī)模(ULSI)向G大規(guī)模(GSI)方向發(fā)展;芯片的工作主頻也已經(jīng)達(dá)到1GHz乃至更高。在這種情況下,互連線之間的串?dāng)_、尤其是由耦合電感引起的串?dāng)_不可忽略。串?dāng)_將使電路不能正常工作,已經(jīng)成為影響芯片性能的重要因素。目前技術(shù)發(fā)展的情況下,在總體布線時(shí)很有必要考慮布線結(jié)果中由耦合電感引起的串?dāng)_是否達(dá)到了影響電路功能和性能的程度,要研究消除這種串?dāng)_的總體布線方法。
在已報(bào)導(dǎo)和所能查閱到的國(guó)內(nèi)外相關(guān)研究中,我們列舉、分析、總結(jié)如下在消除串?dāng)_研究的早期,采用的方法一般都是在總體布線過(guò)程之后(1)文獻(xiàn)[K.Chaudhary,A.Oniozawa,E.S.Kuh.“A spacing algorithm for performance enhancementand crosstalk reduction”,inProc IEEE/ACM ICCAD,1993,pp.697.]中使用了加大相鄰線網(wǎng)之間距離的簡(jiǎn)單方式來(lái)減小串?dāng)_;(2)第二類方法采用改變線網(wǎng)之間的相鄰關(guān)系或者相對(duì)位置來(lái)減小串?dāng)_,文獻(xiàn)[T.Gao,C.L.Liu.“Minimum crosstalk channel routing”,IEEETrans CAD,1996,15(5)pp.465.]中的“通道交換”方法適用于有網(wǎng)格的詳細(xì)布線,它通過(guò)調(diào)換線網(wǎng)的順序,使原本相鄰的線網(wǎng)不再相鄰來(lái)減少串?dāng)_;文獻(xiàn)[P.Saxena,C.L.Liu.“Crosstalk minimization using wire perturbations”,inProc ACM/IEEE DAC,NewOrleans,USA,1999,pp.100.]中的“線段擾動(dòng)”方法適用于無(wú)網(wǎng)格的詳細(xì)布線,它根據(jù)某個(gè)線段周圍的布線情況計(jì)算出該線段的串?dāng)_最小位置,從而達(dá)到減小串?dāng)_的目的。以上這些方法在計(jì)算串?dāng)_時(shí)僅僅考慮了耦合電容,沒(méi)有考慮耦合電感,且只能應(yīng)用在詳細(xì)布線之中。但在詳細(xì)布線時(shí)線網(wǎng)的大致走線方式已經(jīng)基本確定,優(yōu)化范圍有限,因此優(yōu)化的效果受到影響。
后來(lái),研究者們認(rèn)為有必要在總體布線時(shí)就力求減小串?dāng)_,因此又提出了以下方法(1)采用在總體布線后進(jìn)行單獨(dú)的串?dāng)_消除的方法。這類方法首先在不考慮串?dāng)_的情況下得出一個(gè)初始的總體布線解,然后對(duì)初始解進(jìn)行單獨(dú)的優(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.“Postglobal routing RLC crosstalk budgeting”,inProc IEEE/ACM ICCAD,San Jose,USA,2002,pp.-.](考慮了耦合電感)均采用了這類方法。這類方法相對(duì)簡(jiǎn)單,容易實(shí)現(xiàn),但是在優(yōu)化不易滿足要求的時(shí)候,會(huì)出現(xiàn)反復(fù)的迭代。(2)采用在構(gòu)造總體布線樹(shù)的時(shí)候?qū)⒋當(dāng)_加入布線樹(shù)費(fèi)用函數(shù)中的方法。這類方法可以將減小串?dāng)_作為多個(gè)優(yōu)化目標(biāo)中的一個(gè),在總體布線時(shí)進(jìn)行統(tǒng)一考慮。文獻(xiàn)[H.Zhou,D.F.Wong.“Global Routing with crosstalk constraints”,IEEE Trans CAD,1999,18(11)pp.1683.](未考慮耦合電感)和文獻(xiàn)[J.Ma,L.He.“TowardsGlobal routing with RLC crosstalk constraints”,inProc ACM/IEEE DAC,New Orleans,USA,2002,pp.669.](考慮了耦合電感)均采用了這類方法。這類方法比(1)具有更小的盲目性,但是對(duì)于總體布線應(yīng)用來(lái)說(shuō),時(shí)間復(fù)雜度過(guò)大。
除了上述各類減小串?dāng)_的方法以外,計(jì)算串?dāng)_的模型可以分為兩種(1)Sakurai模型。該模型在文獻(xiàn)[T.Sakurai,C.Kobayashi,M.Node.“Simple expressions forinterconnecting delay,coupling and crosstalk in VLSI’s”,IEEE Trans Electron Devices,1993,40(1)pp.118.]和文獻(xiàn)[T.Sakurai,K.Tanaru.“Simple formulas for two and threedimensional capacitance”,IEEE Trans Electron Devices,1983,pp.183.]中被提出。該模型計(jì)算簡(jiǎn)單,但是沒(méi)有考慮耦合電感,所以在目前技術(shù)發(fā)展的情況下不再適用。(2)LSK模型。該模型在文獻(xiàn)[L.He,K.M.Lepak.“Simultaneous shield insertion and net orderingfor capacitive and inductive coupling minimization”,inProc ACM ISPD,San Diego,USA,2000,pp.56.]中提出。該模型適合估算連線之間的耦合電感,計(jì)算簡(jiǎn)單。
還有文獻(xiàn)[已申請(qǐng)的國(guó)家發(fā)明專利洪先龍,經(jīng)彤,許靜字,張凌,胡昱.發(fā)明名稱標(biāo)準(zhǔn)單元總體布線過(guò)程中用的減少串?dāng)_的方法.申請(qǐng)日期2003/05/01.申請(qǐng)?zhí)枮?3124095.X.已于2004/02/04被公開(kāi)。],是我們以前提出的消除串?dāng)_的方法。這種方法是在總體布線階段以消除由耦合電容引起的串?dāng)_為目標(biāo),采用增加線間距的技術(shù)策略,與本發(fā)明的目的、方法不同。該文獻(xiàn)和我們?cè)?001年的綜述性文獻(xiàn)[經(jīng)彤,洪先龍,蔡懿慈,鮑海云,許靜宇.性能驅(qū)動(dòng)總體布線的關(guān)鍵技術(shù)及研究進(jìn)展。軟件學(xué)報(bào).2001,12(5)677-688.]對(duì)于與串?dāng)_相關(guān)的研究工作進(jìn)行了非常詳細(xì)的分析、介紹。所有那些被提到的相關(guān)工作或者是基于印刷線路板(PCB)而不是基于IC芯片的、或者是研究串?dāng)_計(jì)算模型的、或者是串?dāng)_優(yōu)化工作分別進(jìn)行在詳細(xì)布線之后或詳細(xì)布線之中或總體布線之后等的布圖階段。而少數(shù)在總體布線過(guò)程之中進(jìn)行串?dāng)_優(yōu)化工作的也全部是在計(jì)算串?dāng)_時(shí)僅僅考慮了耦合電容,沒(méi)有考慮耦合電感。并且它們不能同時(shí)實(shí)現(xiàn)消除串?dāng)_、減少電路時(shí)延、布線擁擠等優(yōu)化工作。
本發(fā)明的串?dāng)_消除工作是在總體布線過(guò)程之中進(jìn)行的,是以耦合電感引起的串?dāng)_為目標(biāo),采用插入屏蔽線(即shield)的技術(shù)策略,同時(shí)實(shí)現(xiàn)了消除串?dāng)_、減少電路時(shí)延、布線擁擠等優(yōu)化工作。所進(jìn)行的優(yōu)化工作比上述文獻(xiàn)中的新穎、廣泛、全面,采用的技術(shù)策略和優(yōu)化方法也與它們不同,優(yōu)化速度很快。
已進(jìn)行過(guò)“新穎性檢索”,檢索報(bào)告見(jiàn)附件1。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種消除由耦合電感引起串?dāng)_的標(biāo)準(zhǔn)單元總體布線方法。本發(fā)明的總體思路是首先利用現(xiàn)有技術(shù)產(chǎn)生總體布線的初始解,并對(duì)布線擁擠、電路時(shí)延進(jìn)行優(yōu)化;然后依照用戶設(shè)定的串?dāng)_約束,根據(jù)本發(fā)明提出的方法對(duì)布線初始解進(jìn)行串?dāng)_消除;再對(duì)新的布線解檢查布線擁擠、電路時(shí)延等指標(biāo),進(jìn)行迭代調(diào)整。
本發(fā)明的特征在于它是一種在已經(jīng)經(jīng)過(guò)布線擁擠、電路時(shí)延優(yōu)化而得到的總體布線初始解的基礎(chǔ)上,根據(jù)用戶設(shè)定的串?dāng)_約束來(lái)進(jìn)行串?dāng)_消除的方法,它通過(guò)計(jì)算機(jī)依次按以下步驟實(shí)現(xiàn)(1).把總體布線的初始解和用戶設(shè)定的在所有線網(wǎng)漏點(diǎn)處允許的最大互感系數(shù)值輸入計(jì)算機(jī)中;(2).分配串?dāng)_約束,即把用戶給出的漏點(diǎn)處的約束轉(zhuǎn)化為相應(yīng)線網(wǎng)在所經(jīng)過(guò)的每個(gè)GRG,即總體布線圖邊上的最大互感系數(shù)的約束,可以從以下兩種已知的方法中任選一種(2.1).把漏點(diǎn)處的約束值平均地分配到這個(gè)源漏對(duì)所經(jīng)過(guò)的每個(gè)GRG邊上;(2.2).利用線性規(guī)劃分配串?dāng)_約束,即考慮不同的GRG邊上擁擠度不同會(huì)影響互感系數(shù),給擁擠的GRG邊上的約束值寬松一些,不擁擠的GRG邊上約束值嚴(yán)格一些,在約束總值不變的情況下更有利于整體的優(yōu)化;所述的擁擠度是指GRG邊上被線網(wǎng)占用的通道數(shù)與通道總數(shù)的比值,即擁擠度越大,說(shuō)明該邊上所經(jīng)過(guò)的線網(wǎng)越多;(3).應(yīng)用禁忌搜索方法在GRG的各條邊上消除串?dāng)_,即尋找一個(gè)串?dāng)_在約束范圍內(nèi)的線網(wǎng)排列順序,它次按含有以下步驟;(3.1).設(shè)定xcur當(dāng)前解,即當(dāng)前GRG邊上的線網(wǎng)順序;xnew當(dāng)前解鄰域中的一個(gè)合法候選解,即處于鄰域中的未被禁忌的可以作為新解的解的集合,稱為合法候選解集,所述鄰域是指當(dāng)前解經(jīng)過(guò)一次移動(dòng)后所能達(dá)到的解的集合;xtmp禁忌搜索方法從合法候選解集中挑出的最好的解,即在當(dāng)前合法候選解集中所能找到的費(fèi)用函數(shù)最小的解;xmin禁忌搜索方法在整個(gè)搜索過(guò)程中曾經(jīng)到達(dá)過(guò)的最優(yōu)解,即曾經(jīng)到達(dá)過(guò)的費(fèi)用函數(shù)最小的解;cost(xnew)xnew的費(fèi)用函數(shù);tmpcostxtmp的費(fèi)用函數(shù);Na在最優(yōu)解無(wú)改進(jìn)的條件下,上述方法的迭代次數(shù),系設(shè)定值,為正整數(shù),100≤Na≤500;Nb在當(dāng)前鄰域的合法候選解集中隨機(jī)移動(dòng)地挑選的合法候選解的個(gè)數(shù),系設(shè)定值,為正整數(shù),10≤Nb≤200;Nc為找到一個(gè)合法候選解而搜索的最大次數(shù),系設(shè)定值,為正整數(shù),5≤Nc≤50;所述的禁忌是指把滿足一定條件的解記錄在一個(gè)表,即禁忌表H內(nèi),使它們?cè)谒阉骷吹倪^(guò)程中不能作為新解而被選中;禁忌長(zhǎng)度T,系正整數(shù),它表示一個(gè)解遭到禁忌后,在T輪迭代次數(shù)內(nèi)不能被選中,超過(guò)禁忌長(zhǎng)度T后,原本遭到禁忌的解可以重新參與挑選過(guò)程,T=1~60;所述費(fèi)用函數(shù),即評(píng)價(jià)某個(gè)解優(yōu)劣的定量標(biāo)準(zhǔn),它的表達(dá)式為cost(x)=w1c1+w2c2+w3c3+w4c4,同時(shí)設(shè)定被禁忌的費(fèi)用值,其中,w1、w2、w3、w4為權(quán)重,系設(shè)定值,均為0到5之間的實(shí)數(shù);c1為該GRG邊中與敏感線網(wǎng)相鄰的線網(wǎng)總數(shù),c2為該GRG邊上屏蔽線的數(shù)目,所述屏蔽線是指能起到屏蔽相互敏感線網(wǎng)之間耦合電感和耦合電容作用的電源線或地線,c3的表達(dá)式如下Σi(Keff-Kth),]]>i,滿足Keff>KthKeff為某個(gè)線網(wǎng)i在該GRG邊上實(shí)際的互感系數(shù),即所有對(duì)線網(wǎng)i敏感的線網(wǎng)j在線網(wǎng)i的互感系數(shù)的總和,可用下式表示 其中,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的距離;Kth為該線網(wǎng)i在該GRG邊上所分配到的互感系數(shù)的約束值,c4是該GRG邊中滿足Keff>Kth的線網(wǎng)的總的個(gè)數(shù);所述的隨機(jī)移動(dòng)是指從當(dāng)前解的鄰域中找到一個(gè)新解xnew的方法,它包括以下四種情況隨機(jī)調(diào)換兩個(gè)線網(wǎng)的位置,權(quán)重為w5,隨機(jī)移動(dòng)一個(gè)線網(wǎng)的位置,權(quán)重為w6,隨機(jī)插入一條屏蔽線,權(quán)重為w7,隨機(jī)刪除一條屏蔽線,權(quán)重為w8,
每一次隨機(jī)移動(dòng)操作都會(huì)從這四種移動(dòng)中隨機(jī)選擇一種,并各用一個(gè)權(quán)重表示其被選幾率,而w5+w6+w7+w8=1;(3.2).取當(dāng)前GRG邊上的線網(wǎng)順序xcur為當(dāng)前解,且初始化xmin=xcur;同時(shí),初始化禁忌表H,清空搜索次數(shù)計(jì)數(shù)器a和統(tǒng)計(jì)Nc次數(shù)的計(jì)數(shù)器c;(3.3).判斷計(jì)數(shù)器a的值是否小于設(shè)定的Na若a的值不小于參數(shù)Na,則搜索結(jié)束;否則轉(zhuǎn)入下一步(3.4);(3.4).把tmpcost變量置為無(wú)窮大,清空統(tǒng)計(jì)Nb值的計(jì)數(shù)器b;(3.5).判斷計(jì)數(shù)器b的值是否小于Nb若b的值不小于參數(shù)Nb,則轉(zhuǎn)入步驟(3.10);否則,轉(zhuǎn)入步驟(3.6);(3.6).隨機(jī)移動(dòng)產(chǎn)生新解xnew,判斷其費(fèi)用函數(shù)是否遭到禁忌,即費(fèi)用函數(shù)計(jì)算出的費(fèi)用是否等于被禁忌的費(fèi)用若沒(méi)有遭到禁忌,轉(zhuǎn)步驟(3.8);否則,轉(zhuǎn)步驟(3.7);(3.7).統(tǒng)計(jì)Nc次數(shù)的計(jì)數(shù)器c加1,判斷c的值是否小于Nc若c的值不小于Nc,則停止搜索,清空計(jì)數(shù)器c,轉(zhuǎn)步驟(3.8);否則,轉(zhuǎn)入步驟(3.6),重新搜索一個(gè)合法候選解;(3.8).判斷新解xnew的費(fèi)用函數(shù)cost(xnew)的值是否小于變量tmpcost若是,則把xnew記錄為xtmp,并把它的費(fèi)用記錄為tmpcost;否則,不做記錄;(3.9).把計(jì)數(shù)器b的值加1,轉(zhuǎn)步驟(3.5),重新尋找一個(gè)合法候選解;(3.10).判斷步驟(3.9)得到的新解xnew的費(fèi)用函數(shù)的值是否小于新的變量tmpcost,若是,則把xtmp選用為xcur,并比較xcur的費(fèi)用函數(shù)cost(xcur)和最優(yōu)解xmin的費(fèi)用函數(shù)cost(xmin)若cost(xcur)小于費(fèi)用函數(shù)cost(xmin),則找到新的最優(yōu)解,把xcur記為xmin,同時(shí)清空計(jì)數(shù)器a;否則,不作記錄,a的值加1;(3.11).更新禁忌表,即對(duì)所有被禁忌的費(fèi)用函數(shù),禁忌長(zhǎng)度減1,再轉(zhuǎn)步驟(3.3),重復(fù)以上過(guò)程,一直到禁忌長(zhǎng)度減為零,則解除禁忌;(4).結(jié)果優(yōu)化檢查每個(gè)GRG邊是否存在殘余串?dāng)_,再盡可能減少屏蔽線數(shù)量。
具體而言,它依次包含如下步驟(1)利用現(xiàn)有技術(shù)產(chǎn)生總體布線的初始解這個(gè)步驟以總線長(zhǎng)最小為目標(biāo),同時(shí)進(jìn)行布線擁擠和時(shí)延優(yōu)化,產(chǎn)生總體布線的初始解。
(2)消除布線初始解中的串?dāng)_,具體分為如下幾步A.讀入總體布線的初始解和用戶設(shè)定的串?dāng)_約束
初始解中包含如下信息總體布線圖(GRG)網(wǎng)格的行數(shù)和列數(shù);線網(wǎng)數(shù);源漏對(duì)數(shù)(一個(gè)線網(wǎng)有一個(gè)源點(diǎn)和多個(gè)漏點(diǎn),這個(gè)源點(diǎn)和每個(gè)漏點(diǎn)分別構(gòu)成源漏對(duì));每個(gè)源漏對(duì)在GRG網(wǎng)格上所經(jīng)過(guò)的邊的集合;每條GRG邊上所經(jīng)過(guò)的線網(wǎng)的集合。
用戶設(shè)定的串?dāng)_約束規(guī)定了在所有線網(wǎng)漏點(diǎn)處允許的最大互感系數(shù)值。一旦最終結(jié)果中,漏點(diǎn)處的互感系數(shù)值超過(guò)這個(gè)約束,就認(rèn)為該線網(wǎng)存在串?dāng)_。
B.分配串?dāng)_約束分配串?dāng)_約束的目的在于將用戶給出的漏點(diǎn)處的約束轉(zhuǎn)化為相應(yīng)線網(wǎng)在所經(jīng)過(guò)的每個(gè)GRG邊上的最大互感系數(shù)的約束,從而進(jìn)行下一步串?dāng)_的消除。具體的分配方案有以下兩種a)平均分配串?dāng)_約束的方案該方案采用一種最為自然直接的想法,將漏點(diǎn)處的約束值平均地分配到這個(gè)源漏對(duì)所經(jīng)過(guò)的每個(gè)GRG邊上。
b)利用線性規(guī)劃分配串?dāng)_約束的方案該方案考慮到不同的GRG邊上擁擠度不同會(huì)影響互感系數(shù),越擁擠的GRG邊上線網(wǎng)的間距越小,那么互感系數(shù)就會(huì)越大;相反,不擁擠的邊上線網(wǎng)稀疏,互感系數(shù)會(huì)比較小。如果給擁擠的GRG邊上的約束值寬松一些,不擁擠的GRG邊上約束值嚴(yán)格一些,那么約束總值不變的情況下,會(huì)更有利于整體的優(yōu)化。這個(gè)基本思路可以用列寫(xiě)一個(gè)線性規(guī)劃問(wèn)題來(lái)實(shí)現(xiàn),具體如下最小化目標(biāo)hmax(最擁擠的GRG邊的擁擠度)約束條件該邊的線網(wǎng)數(shù)+屏蔽線數(shù)+障礙數(shù)≤hmax,任取一個(gè)GRG邊;該源漏對(duì)在所有所經(jīng)過(guò)GRG邊上的串?dāng)_約束的和≤該漏點(diǎn)處的串?dāng)_約束,任取一個(gè)漏點(diǎn);該邊上的屏蔽線數(shù)≥0,任取一個(gè)GRG邊;該線網(wǎng)在該GRG邊上的串?dāng)_約束≤某一個(gè)上界,任取一個(gè)GRG邊上的任何一個(gè)線網(wǎng)。
在上面的線性規(guī)劃方法中,擁擠度是指GRG邊上被線網(wǎng)占用的通道數(shù)與通道總數(shù)的比值,即擁擠度越大,說(shuō)明該邊上所經(jīng)過(guò)的線網(wǎng)越多;屏蔽線是指能夠起到屏蔽相互敏感線網(wǎng)之間耦合電感和耦合電容作用的電源線或地線,屏蔽線的位置一般位于普通信號(hào)線之間,寬度和普通信號(hào)線相等;障礙是指布線區(qū)域中禁止走線的區(qū)域,映射到GRG邊上,這些區(qū)域會(huì)占用一定的通道,也就是障礙數(shù);上界可以根據(jù)每個(gè)GRG邊上敏感線網(wǎng)全部達(dá)到最近距離時(shí)的互感系數(shù)來(lái)確定。
在這個(gè)步驟結(jié)束后,每個(gè)線網(wǎng)在每個(gè)GRG邊上都會(huì)得到一個(gè)串?dāng)_約束值Kit,其中下標(biāo)i為線網(wǎng)編號(hào),t為GRG邊的編號(hào)。
C.在每個(gè)GRG邊上消除串?dāng)_在消除過(guò)程中,我們認(rèn)為線網(wǎng)之間的互感系數(shù)直接決定了串?dāng)_的大小,并采用LSK模型來(lái)計(jì)算線網(wǎng)之間的互感系數(shù)。假設(shè)在一個(gè)左右分別為屏蔽線L和R的區(qū)域內(nèi),計(jì)算兩個(gè)互相敏感的線網(wǎng)i,j(i在j的左邊)之間的互感系數(shù)kij,具體的計(jì)算公式如下kij=12(lLilLj+lRjlRi)]]>其中l(wèi)Li為線網(wǎng)i到左側(cè)屏蔽線L的距離,lLj為線網(wǎng)j到左側(cè)屏蔽線L的距離,lRi為線網(wǎng)i到右側(cè)屏蔽線R的距離,lRj為線網(wǎng)j到右側(cè)屏蔽線R的距離。其示意圖如圖1所示。
每一個(gè)GRG邊實(shí)際上都是一個(gè)左右為屏蔽線的區(qū)域,其中的兩兩敏感線網(wǎng)間都存在互感系數(shù),對(duì)于線網(wǎng)i,其實(shí)際的互感系數(shù)Keff為 另外,我們主要采用公知的禁忌搜索技術(shù)(技術(shù)的詳細(xì)描述請(qǐng)參見(jiàn)文獻(xiàn)[F.Glover.“Future paths for integer programming and links to artificial intelligence”,Computers and Operations research,Vol.13,pp.533,1986.]),通過(guò)加入屏蔽線的方式來(lái)尋找一個(gè)能夠滿足約束,并且面積最小的線網(wǎng)排列方案。
禁忌搜索技術(shù)的幾個(gè)核心要素包括(1)解空間,即優(yōu)化問(wèn)題所有可能解的集合;(2)費(fèi)用函數(shù),即評(píng)價(jià)某個(gè)解優(yōu)劣的定量標(biāo)準(zhǔn),費(fèi)用函數(shù)值越大,解的質(zhì)量也越差;(3)解的移動(dòng)方式,即如何從一個(gè)當(dāng)前解得到一個(gè)新解;(4)鄰域,即當(dāng)前解經(jīng)過(guò)一次移動(dòng)后所能達(dá)到的解的集合;(5)禁忌,即將滿足一定條件的解記錄在一個(gè)表(禁忌表)內(nèi),使它們?cè)谒阉鞯倪^(guò)程中不能作為新解被選中;(5)禁忌長(zhǎng)度T,它是一個(gè)正整數(shù),表示一個(gè)解遭到禁忌后,在T輪搜索過(guò)程(即T次迭代)內(nèi)不能被選中,超過(guò)禁忌長(zhǎng)度后,原本遭到禁忌的解可以重新參與挑選過(guò)程;(6)禁忌表H,即記錄被禁忌的解及其相應(yīng)禁忌長(zhǎng)度的列表,禁忌表內(nèi)容是隨搜索過(guò)程動(dòng)態(tài)變化的,在搜索過(guò)程中,禁忌表中隨時(shí)有可能添加新的被禁忌的解,另外,每輪搜索(即迭代一次)結(jié)束后,表中所有被禁忌的解的禁忌長(zhǎng)度都會(huì)減1,新的禁忌長(zhǎng)度為零的被禁忌的解會(huì)被從禁忌表中刪除,也就是解除禁忌,這個(gè)過(guò)程稱為禁忌表的更新。禁忌搜索的基本思想就是不斷地從當(dāng)前的解出發(fā),在其鄰域中挑選一定數(shù)目的候選解,并在這些候選解中選一個(gè)未被禁忌的最佳解,即費(fèi)用函數(shù)最小的解作為新解,重復(fù)這個(gè)過(guò)程,以期望得到一個(gè)問(wèn)題的滿意解。
在本發(fā)明中,解空間為當(dāng)前GRG邊中線網(wǎng)集合可能構(gòu)成的所有排列,某一種排列則對(duì)應(yīng)一個(gè)解x。每個(gè)解都對(duì)應(yīng)一個(gè)費(fèi)用函數(shù),其計(jì)算公式為cost(x)=w1c1+w2c2+w3c3+w4c4;其中c1為該GRG邊中與敏感線網(wǎng)相鄰的線網(wǎng)總數(shù);c2為該GRG邊上的屏蔽線數(shù)目;c3的表達(dá)式如下Σi(Keff-Kth),]]>i,滿足Keff>Kth其中Keff為某個(gè)線網(wǎng)i在該GRG邊上實(shí)際的互感系數(shù),由LSK模型根據(jù)當(dāng)前的線網(wǎng)排列狀況算出;Kth為該線網(wǎng)i在該GRG邊上所分配到的互感系數(shù)約束值,上式對(duì)該GRG邊中所有Keff大于Kth的線網(wǎng)求(Keff-Kth)的值并取總和;c4是該GRG邊中滿足Keff>Kth的線網(wǎng)的總的個(gè)數(shù);w1,w2,w3,w4為權(quán)重因子,都是0到5的小實(shí)數(shù)??梢钥闯?,這個(gè)費(fèi)用函數(shù)綜合考慮了耦合電感、耦合電容和面積的因素。禁忌對(duì)象為該費(fèi)用函數(shù)值,即凡是費(fèi)用與被禁忌的費(fèi)用相等的解,都會(huì)遭到禁忌。
本發(fā)明中,在每個(gè)GRG邊上應(yīng)用禁忌搜索方法來(lái)消除串?dāng)_,也就是尋找一個(gè)串?dāng)_在約束范圍內(nèi)的線網(wǎng)排列順序,具體流程如圖2所示,其中涉及到的變量和術(shù)語(yǔ)具有如下含義●xcur當(dāng)前GRG邊上的線網(wǎng)順序,即當(dāng)前解;●xnew當(dāng)前解鄰域中的一個(gè)合法候選解,即處于鄰域中的未被禁忌的可以作為新解的解,這樣的解的集合稱為合法候選解集;●xtmp方法從合法候選解集中挑出的最好的解,也就是在當(dāng)前合法候選解集中所能找到的費(fèi)用函數(shù)最小的解;●xmin方法在整個(gè)搜索過(guò)程中曾經(jīng)到達(dá)過(guò)的最優(yōu)解,也就是曾經(jīng)達(dá)到的費(fèi)用函數(shù)最小的解;●cost(xnew)xnew的費(fèi)用函數(shù);●tmpcostxtmp的費(fèi)用函數(shù);●Na在最優(yōu)解xmin無(wú)改進(jìn)情況下方法的迭代次數(shù);●Nb在當(dāng)前鄰域的合法候選解集中挑選候選解的個(gè)數(shù)。根據(jù)我們的定義,當(dāng)前解是GRG邊上線網(wǎng)的排列順序,其鄰域中包含的解的個(gè)數(shù)是相當(dāng)龐大的,合法候選解集,即鄰域中未被禁忌的解的集合,也是相當(dāng)龐大的,不可能對(duì)合法候選解集中所有的解計(jì)算費(fèi)用函數(shù)然后挑選最小的,而只能從中隨機(jī)選取若干個(gè)解,挑選費(fèi)用函數(shù)最小的。參數(shù)Nb就代表了方法從合法候選解集中挑選多少個(gè)解;●Nc為了找到一個(gè)合法候選解而搜索的最大次數(shù)。在禁忌搜索中,被禁忌的解是不能被選中作為新解的,如果當(dāng)前鄰域中大部分的解都被禁忌了,那么方法應(yīng)當(dāng)選擇適當(dāng)?shù)乃阉魃疃?,以確保在較短時(shí)間內(nèi)取得較好的效果,參數(shù)Nc就是用來(lái)控制這個(gè)搜索深度的。
●禁忌長(zhǎng)度被禁忌的對(duì)象經(jīng)過(guò)多少次迭代后可以解除禁忌。
●禁忌表H記錄被禁忌的費(fèi)用函數(shù)及其禁忌長(zhǎng)度的表。凡是費(fèi)用函數(shù)與在禁忌表中的費(fèi)用函數(shù)相等的解,均不能被選中。
●隨機(jī)移動(dòng)即從當(dāng)前解xcur的鄰域中找到一個(gè)新解xnew的方法,包括(1)隨機(jī)調(diào)換兩個(gè)線網(wǎng)的位置;(2)隨機(jī)移動(dòng)一個(gè)線網(wǎng)的位置;(3)隨機(jī)插入一個(gè)屏蔽線;(4)隨機(jī)刪除一個(gè)屏蔽線。每一次隨機(jī)移動(dòng)操作都會(huì)從這四種移動(dòng)中隨機(jī)選擇一種,這四種移動(dòng)都被賦予了一定的權(quán)重,用來(lái)控制某種移動(dòng)被選中的幾率,其中(1)的權(quán)重為w5,(2)的權(quán)重為w6,(3)的權(quán)重為w7,(4)的權(quán)重為w8,滿足w5+w6+w7+w8=1。
在每個(gè)GRG邊上應(yīng)用禁忌搜索方法來(lái)消除串?dāng)_,即尋找一個(gè)串?dāng)_在約束范圍內(nèi)的線網(wǎng)排列順序,基本思路是以當(dāng)前的解xcur為出發(fā)點(diǎn),在其鄰域內(nèi)尋找一定個(gè)數(shù)(Nb)的合法候選解xnew,從中選擇費(fèi)用函數(shù)最小的解作為新解替代當(dāng)前解,然后繼續(xù)迭代。每次找到一個(gè)新解,都將它的費(fèi)用函數(shù)值與整個(gè)迭代過(guò)程中曾經(jīng)達(dá)到過(guò)的最優(yōu)解xmin的費(fèi)用函數(shù)值相比較,若比xmin的費(fèi)用函數(shù)值更小,則更新xmin。這樣,當(dāng)整個(gè)迭代過(guò)程結(jié)束的時(shí)候,xmin就是最后得到的優(yōu)化結(jié)果。我們?cè)O(shè)定,經(jīng)過(guò)Na次迭代后,若xmin沒(méi)有改善,則迭代過(guò)程結(jié)束;另外,在尋找一個(gè)合法候選解時(shí),若經(jīng)過(guò)Nc次移動(dòng)仍沒(méi)有找到合法的候選解,則直接接受最近一個(gè)被禁忌的解作為新解xnew。
整個(gè)禁忌搜索過(guò)程的具體步驟如下a)取當(dāng)前GRG邊上的線網(wǎng)順序xcur為當(dāng)前解,設(shè)定參數(shù)Na,Nb,Nc,w1,w2,w3,w4,w5,w6,w7,w8,以及禁忌長(zhǎng)度;同時(shí)初始化禁忌表H(即清空為Null),清空計(jì)數(shù)器a和c,初始化xmin=xcur。
b)判斷計(jì)數(shù)器a的值是否小于參數(shù)Na,參數(shù)Na為正整數(shù),若數(shù)值越大,則迭代的次數(shù)也越多,發(fā)現(xiàn)更好的解的可能性也越大,但是消耗時(shí)間也越多。參數(shù)Na的合理取值范圍為100到500之間。若a的值不小于參數(shù)Na,則已經(jīng)達(dá)到了迭代次數(shù)的上界,搜索結(jié)束;否則轉(zhuǎn)步驟c)。
c)將tmpcost變量置為無(wú)窮大,清空計(jì)數(shù)器b。
d)判斷計(jì)數(shù)器b的值是否小于參數(shù)Nb,參數(shù)Nb為正整數(shù),Nb越大,挑選的解越多,越有可能找到更好的解,但是時(shí)間復(fù)雜度也會(huì)越大,Nb的合理取值范圍在10到200之間。若b的值不小于參數(shù)Nb,則說(shuō)明已經(jīng)挑選過(guò)足夠多的候選解,轉(zhuǎn)步驟i),否則轉(zhuǎn)步驟e)。
e)通過(guò)隨機(jī)移動(dòng)產(chǎn)生新解xnew,并判斷其費(fèi)用函數(shù)是否遭到禁忌,若沒(méi)有遭禁忌,轉(zhuǎn)步驟g),若遭到禁忌,轉(zhuǎn)步驟f)。
f)計(jì)數(shù)器c的值加1,并判斷c的值是否小于參數(shù)Nc,參數(shù)Nc為正整數(shù),Nc越大,為找到一個(gè)合法候選解方法迭代的次數(shù)越多,越有可能找到合法候選解,同時(shí)時(shí)間復(fù)雜度也越大,Nc的合理取值范圍是5到50之間。若c的值不小于Nc,說(shuō)明已經(jīng)達(dá)到了預(yù)定的搜索深度,不要再繼續(xù)搜索,則將計(jì)數(shù)器c清空,并轉(zhuǎn)步驟g),否則說(shuō)明應(yīng)當(dāng)重新搜索一個(gè)合法候選解,則轉(zhuǎn)步驟e)。
g)判斷新解xnew的費(fèi)用函數(shù)cost(xnew)是否小于變量tmpcost,若是,則將xnew記錄為xtmp,并將其費(fèi)用記錄為tmpcost,否則不做記錄。
h)計(jì)數(shù)器b的值加1,并轉(zhuǎn)步驟d),重新尋找一個(gè)合法候選解。
i)禁忌xnew的費(fèi)用函數(shù)cost(xnew),并選取xtmp為當(dāng)前解xcur,并比較xcur的費(fèi)用函數(shù)cost(xcur)和最優(yōu)解xmin的費(fèi)用函數(shù)cost(xmin)。若cost(xcur)小于cost(xmin),說(shuō)明找到了新的最優(yōu)解,則將xcur記錄為xmin,同時(shí)清空計(jì)數(shù)器a;否則不作記錄,計(jì)數(shù)器a的值加1。
j)更新禁忌表H,即對(duì)所有被禁忌的費(fèi)用函數(shù),禁忌長(zhǎng)度減1,禁忌長(zhǎng)度減為零的則解除禁忌。禁忌長(zhǎng)度的選取同樣會(huì)影響到方法的結(jié)果和時(shí)間復(fù)雜度,其合理取值范圍為1到60,同時(shí)轉(zhuǎn)步驟b)。
D.結(jié)果優(yōu)化檢查每個(gè)GRG邊是否存在殘余的串?dāng)_,并且盡可能減少屏蔽線的數(shù)量。
(3)根據(jù)上面的結(jié)果再次進(jìn)行總體布線對(duì)于在步驟(2)中插入了屏蔽線的那些GRG邊,根據(jù)屏蔽線的個(gè)數(shù)減小GRG邊的容量,然后仍采用步驟(1)中的技術(shù)進(jìn)行總體布線,以進(jìn)一步減少擁擠。
實(shí)驗(yàn)證明,該方法可以在較短的時(shí)間內(nèi),消除原有總體布線結(jié)果中由耦合電感引起的串?dāng)_,同時(shí)對(duì)布線結(jié)果的擁擠度和總線長(zhǎng)沒(méi)有明顯影響,布線結(jié)果的時(shí)延也能夠滿足約束要求。具體的實(shí)驗(yàn)數(shù)據(jù)在本發(fā)明的實(shí)驗(yàn)結(jié)果部分給出。
本發(fā)明的實(shí)驗(yàn)結(jié)果我們采用表1中的測(cè)試電路,將本發(fā)明中的方法和最新的文獻(xiàn)[L.He and K.M.Lepak.“Simultaneous shield insertion and net ordering for capacitive and inductive couplingminimization”,inProc.ACM ISPD,San Diego,CA,USA,2000,pp.56-61.]以及文獻(xiàn)[J.Ma and L.He.“Towards Global routing with RLC crosstalk constraints”,inProcACM/IEEE DAC,New Orleans,Louisiana,USA,2002,pp.669-672.]中的方法分別實(shí)驗(yàn)并加以比較,可得到表二到表四的數(shù)據(jù)表格表一測(cè)試電路的基本參數(shù)
表二術(shù)語(yǔ)說(shuō)明
表三本發(fā)明方法(采用禁忌搜索方法)和原有方法(采用模擬退火方法)的時(shí)間比較
表四本發(fā)明方法(采用禁忌搜索方法)和原有方法(采用模擬退火方法)的結(jié)果比較
表五P1和P0-GR的結(jié)果比較
從表三第四行中可以看出,XSINO步驟中,禁忌搜索的速度是模擬退火速度的大約20倍;從表三第十行也可能看到,運(yùn)算的總時(shí)間有很大縮短。結(jié)果優(yōu)化,即前文中的(3)步驟,雖然沒(méi)有改變,但是運(yùn)算時(shí)間也稍有縮短,這可以從表三的第七行看到,也就是說(shuō)禁忌搜索方法并未對(duì)后續(xù)的優(yōu)化步驟產(chǎn)生不良影響。
從表四中可以看出,禁忌搜索方法可以得到和模擬退火方法相近的結(jié)果,即屏蔽線的數(shù)目幾乎沒(méi)有增加。
表五的第四行顯示,與串?dāng)_消除之前相比,采用禁忌搜索方法消除串?dāng)_的布線結(jié)果,其總線長(zhǎng)增量不超過(guò)4.65%,對(duì)布線長(zhǎng)度沒(méi)有重大的影響;同時(shí),采用模擬退火方法消除串?dāng)_的布線結(jié)果,其總線長(zhǎng)增量為10%,(參見(jiàn)文獻(xiàn)[J.Ma and L.He.“Towards Global routingwith RLC crosstalk constraints”,inProc ACM/IEEE DAC,New Orleans,Louisiana,USA,2002,pp.669-672.],因此,與串?dāng)_消除之前的線長(zhǎng)情況相比,禁忌搜索方法比原有的模擬退火方法減少了一半左右的線長(zhǎng)增加。
圖1LSK模型的示意圖。
圖2本發(fā)明中使用的禁忌搜索方法的示意圖。
圖3總體布線的示意圖。
圖4考慮耦合電感并進(jìn)行串?dāng)_消除的總體布線方法框圖。
圖534號(hào)線網(wǎng)在消除串?dāng)_前后的拓?fù)湫螤顚?duì)比示意圖5apair34在步驟(3)優(yōu)化前的形狀;5bpair34在步驟(3)優(yōu)化后的形狀。
具體實(shí)施例方式
為了實(shí)現(xiàn),或者說(shuō)是具體實(shí)施本項(xiàng)發(fā)明,我們給出以下關(guān)于發(fā)明實(shí)施的描述。
實(shí)施本發(fā)明的計(jì)算機(jī)系統(tǒng)本發(fā)明所設(shè)計(jì)的總體布線軟件要在一個(gè)具體的計(jì)算機(jī)系統(tǒng)上得以實(shí)施,該計(jì)算機(jī)系統(tǒng)具體描述如下。
一臺(tái)Sun公司的V880型工作站;Unix操作系統(tǒng);標(biāo)準(zhǔn)C編程語(yǔ)言;Vi編輯器、gcc編譯器、gdb調(diào)試工具等。
對(duì)于目前IC設(shè)計(jì)中的多層布線技術(shù),可布線區(qū)域不再是單元間的一條條的布線通道,而是一個(gè)完整的芯片平面??刹捎镁W(wǎng)格方式,把整個(gè)芯片平面按行和列劃分為若干個(gè)稱為總體布線單元GRC的區(qū)域,然后生成GRC的對(duì)偶圖,即如圖3所示的總體布線圖GRG。GRG由Nnr×Nnc個(gè)節(jié)點(diǎn)和連接這些節(jié)點(diǎn)的邊構(gòu)成。與GRCnr,nc對(duì)應(yīng)的節(jié)點(diǎn)vnr,nc的坐標(biāo)為GRCnr,nc的中心點(diǎn)。連接兩節(jié)點(diǎn)vnr1,nc1和vnr1,nc2的邊稱為ek,這個(gè)邊實(shí)際上代表了相鄰兩個(gè)GRC布線區(qū)域之間可以用來(lái)布線的一系列布線通道;1k表示兩節(jié)點(diǎn)vnr1,nc1和vnr1,nc2之間的距離,稱為ek的長(zhǎng)度;Ck表示兩節(jié)點(diǎn)vnr1,nc1和vnr1,nc2對(duì)應(yīng)的兩個(gè)GRC相鄰的邊能夠通過(guò)的線網(wǎng)的連線數(shù),稱為ek的容量。于是,線網(wǎng)中要連通的引腳點(diǎn)Pin就映射成為其所在的GRG中對(duì)應(yīng)的一系列節(jié)點(diǎn)。這樣,GRG中的一個(gè)線網(wǎng)就可以用節(jié)點(diǎn)的集合表示,而對(duì)一個(gè)線網(wǎng)的布線問(wèn)題則對(duì)應(yīng)于求解GRG中節(jié)點(diǎn)集{vnr,nc}的Steiner樹(shù)問(wèn)題。
本布線方法的流程框圖如圖4所示。
現(xiàn)在采用一個(gè)MCNC電路實(shí)例c2作為本發(fā)明的一個(gè)實(shí)施例,結(jié)合圖4的程序流程用本發(fā)明的總體布線方法進(jìn)行布線。它依次有如下步驟(1)利用現(xiàn)有技術(shù)產(chǎn)生總體布線的初始解采用已公開(kāi)的“基于搜索空間遍歷技術(shù)(SSTT)技術(shù)的布線擁擠優(yōu)化算法”來(lái)消除擁擠邊。該方法已公開(kāi)發(fā)表于2003年的英文刊物J.of Computer Science and Technology(JCST)Tong Jing,Xian-Long Hong,Hai-Yun Bao,Jing-Yu Xu,Jun Gu.SSTTEfficient LocalSearch for GSI Global Rout ing.J.of Computer Science and Technology(JCST),2003,18(5)632-639.
在時(shí)延的分析和優(yōu)化方面,采用已公開(kāi)的“基于關(guān)鍵線網(wǎng)的時(shí)延優(yōu)化算法”,該技術(shù)已公開(kāi)發(fā)表于2002年的國(guó)際學(xué)術(shù)會(huì)議“T.Jing,X.L.Hong,H.Y.Bao,Y.C.Cai,J.Y.Xuet al.“A Novel and Efficient Timing-Driven Global Router for Standard Cell LayoutDesign Based on Critical Network Concept”,InProceedings of IEEE ISCAS,Scottsdale,Arizona,USA,pp.I165-I168,2002.”(2)消除這個(gè)初始布線解中存在的串?dāng)_A.讀入總體布線的初始解和用戶設(shè)定的串?dāng)_約束對(duì)于c2這個(gè)實(shí)施例,經(jīng)過(guò)步驟(1)的總體布線之后,得到初始布線解的信息為GRG的規(guī)模為9×11,即Nnr=9,Nnc=11;一共有588個(gè)線網(wǎng),即netnum=588;一共有854個(gè)源漏對(duì),即srcsinkpair=854;每個(gè)源漏對(duì)在GRG網(wǎng)格上所經(jīng)過(guò)的邊的集合,其具體的表示方法如下pair 34 9 8 10 3 1 5hbd 9 3 274.000000vbd 9 3 176.000000vbd 9 4 168.000000vbd 9 5 168.000000vbd 9 6 164.000000vbd 9 7 156.000000以上表示34號(hào)線網(wǎng)中的一個(gè)源漏對(duì)(pair),其源點(diǎn)坐標(biāo)為(9,8),漏點(diǎn)坐標(biāo)為(10,3),所有經(jīng)過(guò)的GRG邊中有1條水平邊,5條垂直邊。第一條水平邊的坐標(biāo)為(9,3),長(zhǎng)度為274.000000,第一條垂直邊的坐標(biāo)為(9,3),長(zhǎng)度為176.000000,依此類推。這個(gè)源漏對(duì)的圖示如圖5中的左圖5a所示。這里的坐標(biāo)是基于GRG網(wǎng)格的,水平邊的坐標(biāo)指示的是GRG邊的左邊頂點(diǎn),垂直邊的坐標(biāo)指示的是GRG邊的下邊頂點(diǎn)。上述表示方法的通用格式可以寫(xiě)為pair線網(wǎng)編號(hào)源點(diǎn)橫坐標(biāo)源點(diǎn)縱坐標(biāo)漏點(diǎn)橫坐標(biāo)漏點(diǎn)縱坐標(biāo)水平邊數(shù)垂直邊數(shù)hbd水平邊橫坐標(biāo)水平邊縱坐標(biāo)邊長(zhǎng).......
vbd垂直邊橫坐標(biāo)垂直邊縱坐標(biāo)邊長(zhǎng)每條GRG邊上所經(jīng)過(guò)的線網(wǎng)的集合,其具體的表示方法如下bd 5 9 H 0 18 274.00000010 2 13 25 26 31 45 100 137 185 244以上表示坐標(biāo)為(5,9)的水平邊,邊上的障礙個(gè)數(shù)為0,通道容量為18,邊長(zhǎng)為274.000000(um),該邊上通過(guò)的線網(wǎng)編號(hào)分別為10,2,13,25,26,31,45,100,137,185,244。上述表示方法的通用格式可以寫(xiě)為bd邊的橫坐標(biāo)邊的縱坐標(biāo)水平/垂直障礙個(gè)數(shù)邊的容量邊長(zhǎng)線網(wǎng)號(hào)線網(wǎng)號(hào)......線網(wǎng)號(hào)在c2實(shí)施例中,我們根據(jù)源漏對(duì)的長(zhǎng)度來(lái)人工設(shè)定串?dāng)_的約束值 比如,長(zhǎng)度小于1000的源漏對(duì), 設(shè)為1000,長(zhǎng)度在(1000,2000)的, 設(shè)為2000,依此類推。
B.分配串?dāng)_約束若在c2實(shí)施例中采用平均分配串?dāng)_約束的方案,則會(huì)將漏點(diǎn)處的約束值平均地分配到這個(gè)源漏對(duì)所經(jīng)過(guò)的每個(gè)GRG邊上。具體的計(jì)算方法是水平邊上分配到的串?dāng)_約束,Kth‾=Kij‾LH(NH+NV)]]>其中NH為該源漏對(duì)中水平邊的總數(shù),Nv為垂直邊的總數(shù),LH為水平邊的平均長(zhǎng)度;相應(yīng)地,垂直邊上分配到的串?dāng)_約束。例如對(duì)于Kth‾=Kij‾LV(NH+NV)]]>下面的源漏對(duì)pair 34 9 8 10 3 1 5hbd 9 3 274.000000vbd 9 3 176.000000vbd 9 4 168.000000vbd 9 5 168.000000vbd 9 6 164.000000vbd 9 7 156.000000平均分配串?dāng)_約束的方案會(huì)得出如下的結(jié)果Kth(9,6)‾=2000274*(1+5)=1.216545]]>
Kth(9,3)‾=Kth(9,4)‾=Kth(9,5)‾=Kth(9,6)‾=Kth(9,7)‾=2000166.4*(1+5)=2.003205]]>對(duì)該源漏對(duì)的這些邊,線性規(guī)劃分配串?dāng)_約束的方案得出的結(jié)果則全是0,這是因?yàn)榭紤]到其他邊上的擁擠情況和線網(wǎng)敏感程度,線性規(guī)劃將這些約束資源分配給了可能產(chǎn)生更大串?dāng)_的區(qū)域。
C.在每個(gè)GRG邊上消除串?dāng)_在C和后面的D步驟中,我們都采用LSK模型來(lái)計(jì)算線網(wǎng)之間實(shí)際的互感系數(shù)值Keff。
仍舊以上面的源漏對(duì)為例,在進(jìn)行串?dāng)_消除之前,pair 34源漏對(duì)在其經(jīng)過(guò)的很多邊上都存在超過(guò)約束的串?dāng)_,例如在邊bd_V(9,4)上,一共有20個(gè)線網(wǎng),它們的串?dāng)_信息如下bd_V(9,4),segnum,20netid(kth,keff)33(1.472754,1.943228),34(2.003205,3.384242),37(1.472754,5.856291),74(1.288660,4.645071),78(1.288660,3.585473),98(1.288660,5.436918),101(1.030928,3.709323),122(1.030928,4.504981),130(2.577320,4.265444),179(1.718213,5.619171),181(2.577320,5.153641),186(1.718213,3.848466),188(1.288660,6.087175),193(1.718213,3.593720),196(1.718213,5.000307),289(1.718213,6.291788),652(1.718213,6.005395),653(1.718213,3.190311),677(1.718213,1.921127),678(1.718213,2.615915)其中bd_V的“V”表示該邊為垂直邊,坐標(biāo)為(9,4),segnum為邊中的線網(wǎng)數(shù),netid為線網(wǎng)的序號(hào),kth為該線網(wǎng)在該邊上的串?dāng)_約束,keff為該線網(wǎng)在該邊上的實(shí)際串?dāng)_值。第三行的線網(wǎng)序列表示了當(dāng)前這些線網(wǎng)在bd_V(9,4)這條邊上的排列順序,最左邊是33號(hào)線網(wǎng),其串?dāng)_約束為1.472754,實(shí)際的串?dāng)_值為1.943228,然后是34號(hào)線網(wǎng),以此類推,最右邊是678號(hào)線網(wǎng)。上述表示方法的通用格式可以寫(xiě)為bd_邊的方向(橫坐標(biāo),縱坐標(biāo)),邊中的線網(wǎng)數(shù),xx線網(wǎng)序號(hào)(串?dāng)_約束,實(shí)際串?dāng)_值)可以看到,pair 34的實(shí)際串?dāng)_值為3.384242,大于約束值2.003205。
本實(shí)施例中,費(fèi)用函數(shù)的四個(gè)權(quán)重取值分別為w1=0.5,w2=0.5,w3=1.5,w4=1.5。也就是對(duì)互感系數(shù)的有關(guān)項(xiàng)賦予更大的權(quán)重。
本實(shí)施例中,bd_V(9,4)中各線網(wǎng)的敏感信息如下所示,每個(gè)括號(hào)內(nèi)的一對(duì)線網(wǎng)都是互相敏感的(33,37),(33,74),(33,122),(33,196),(33,652),(33,677);(34,74),(34,78),(34,101),(34,122),(34,130),(34,193),(34,289),(34,653),(34,678);(37,74),(37,78),(37,101),(37,122),(37,130),(37,181),(37,186),(37,188),(37,193),(37,196),(37,653),(37,677);(74,98),(74,130),(74,181),(74,186),(74,677),(74,678);
(78,98),(78,179),(78,289),(78,652),(78,678);(98,101),(98,188),(98,193),(98,196),(98,289),(98,652);(101,179),(101,289),(101,652),(101,678);(122,179),(122,181),(122,188),(122,678);(130,181),(130,186),(130,289),(130,652),(130,678);(179,188),(179,193),(179,196),(179,289),(179,652),(179,653);(181,188),(181,196),(181,289);(186,188),(186,196),(186,289);(188,196),(188,289),(188,652);(193,289),(193,652),(193,678);(196,652),(196,677);(289,653);(652,653),(652,677);(653,678)。
利用前文給出的費(fèi)用函數(shù)公式cost(x)=w1c1+w2c2+w3c3+w4c4和本實(shí)施例中權(quán)重的取值,我們可以計(jì)算bd_V(9,4)在串?dāng)_消除前的費(fèi)用函數(shù)cost=0.5*7+0.5*0+1.5*53.87422+1.5*20=87.37422;其中c1的值為7,即有7個(gè)線網(wǎng)和它們的敏感線網(wǎng)相鄰;c2的值為0,即屏蔽線個(gè)數(shù)為零,c3的值為53.87422,即對(duì)所有Keff大于Kit的線網(wǎng)求(Keff-Kit)的值并取總和。c4的值為20,即有20個(gè)線網(wǎng)的Keff大于Kit。
采用禁忌搜索技術(shù)對(duì)bd_V(9,4)邊進(jìn)行串?dāng)_消除時(shí),搜索過(guò)程中四種隨機(jī)移動(dòng)的權(quán)重w5,w6,w7,w8均取為0.25,也就是四種移動(dòng)方式被用到的幾率完全相等,移動(dòng)的總次數(shù)是一個(gè)很大的數(shù)目,根據(jù)前文的敘述以及圖2的示意流程,移動(dòng)總次數(shù)的一個(gè)下界是Nb*Na,在至少這么多次的移動(dòng)中,每一次移動(dòng)采用的都是四種移動(dòng)方式中的某一種,而具體采用哪一種,則是隨機(jī)選取的。例如第一次選取了隨機(jī)插入一根屏蔽線的移動(dòng)方式,則在bd_V(9,4)中隨機(jī)選擇一個(gè)合理的位置,在74號(hào)線網(wǎng)和78號(hào)線網(wǎng)之間,插入一根屏蔽線,編號(hào)為-3;第二次選取了隨機(jī)移動(dòng)一個(gè)線網(wǎng)位置的移動(dòng)方式,則在bd_V(9,4)中隨機(jī)選擇一個(gè)線網(wǎng),是37號(hào)線網(wǎng),將它隨機(jī)移動(dòng)到另外的位置,在179號(hào)線網(wǎng)右側(cè),以此類推。
本實(shí)施例中,取Na=350,Nb=40,Nc=10,T=4。
經(jīng)過(guò)很多次的移動(dòng)進(jìn)行串?dāng)_消除后,同一個(gè)邊的線網(wǎng)串?dāng)_信息變?yōu)閎d_V(9,4),segnum,20,shldnum,333(1.472754,0.666667),34(2.003205,0.416667),652(1.718213,0.416667),74(1.288660,0.666667),-3(0.000000,0.000000),101(1.030928,0.166667),122(1.030928,0.000000),130(2.577320,0.550000),78(1.288660,0.500000),186(1.718213,0.550000),98(1.288660,0.666667),-3(0.000000,0.000000),188(1.288660,0.991667),193(1.718213,0.825000),181(2.577320,0.933333),179(1.718213,0.825000),37(1.472754,0.991667),-3(0.000000,0.000000),289(1.718213,0.666667),196(1.718213,0.500000),653(1.718213,0.933333),677(1.718213,0.500000),678(1.718213,0.666667)上面的shldnum表示經(jīng)過(guò)串?dāng)_消除后,在該邊插入的屏蔽線數(shù)目。
可以看到,經(jīng)過(guò)串?dāng)_消除步驟,bd_V(9,4)這條邊上的線網(wǎng)排列順序發(fā)生了改變,34號(hào)線網(wǎng)右邊不再是37號(hào)線網(wǎng),而變成了652號(hào)線網(wǎng),pair34的實(shí)際串?dāng)_值也減小為0.416667,已經(jīng)在約束的范圍之內(nèi)了,同時(shí),在該GRG邊上插入了3個(gè)屏蔽線(其線網(wǎng)編號(hào)設(shè)為-3),同時(shí),該變對(duì)應(yīng)的費(fèi)用函數(shù)值也發(fā)生了變化。新解的費(fèi)用函數(shù)為cost=0.5*0+0.5*3+1.5*0+1.5*0=1.5D.結(jié)果優(yōu)化結(jié)果優(yōu)化步驟對(duì)上面得到的結(jié)果進(jìn)行檢查和面積優(yōu)化,仍以上面這個(gè)GRG邊為例bd_V(9,4),segnum,20,shldnum,2188(1.288660,0.200000),677(1.718213,0.500000),653(1.718213,0.466667),33(1.472754,0.500000),289(1.718213,0.666667),-3(0.000000,0.000000),196(1.718213,0.000000),122(1.030928,0.000000),78(1.288660,0.000000),101(1.030928,0.000000),74(1.288660,0.523810),193(1.718213,0.000000),130(2.577320,0.523810),-3(0.000000,0.000000),98(1.288660,0.321429),678(1.718213,0.380952),37(1.472754,0.904167),179(1.718213,0.485714),186(1.718213,0.633333),34(2.003205,0.380952),652(1.718213,0.682143),181(2.577320,0.395833)可以看到,屏蔽線數(shù)目減小為2個(gè),線網(wǎng)的排列順序也隨之改變,34號(hào)線網(wǎng)左邊變成了186號(hào)線網(wǎng),右邊仍是652號(hào)線網(wǎng),仍然滿足串?dāng)_約束。費(fèi)用函數(shù)cost=0.5*0+0.5*2+1.5*0+1.5*0=1。
(3)根據(jù)上面的結(jié)果再次進(jìn)行總體布線將屏蔽線占用的布線資源統(tǒng)計(jì)在內(nèi)之后再進(jìn)行布線,會(huì)有相當(dāng)?shù)木€網(wǎng)改變其原來(lái)的拓?fù)渥呔€,還以上面的pair34為例,經(jīng)過(guò)步驟(3)后,其拓?fù)渥優(yōu)閜air 34 9 8 10 3 1 5hbd 9 6 274.000000vbd 10 3 176.000000vbd 10 4 168.000000vbd 10 5 168.000000vbd 9 6 164.000000vbd 9 7 156.000000pair34所經(jīng)過(guò)的邊中,bd_V(9,4)中經(jīng)過(guò)了20個(gè)線網(wǎng)和2個(gè)屏蔽線,擁擠度很大,因此,步驟(3)中進(jìn)行優(yōu)化后,pair34避開(kāi)了bd_V(9,4)而選擇了其他的邊,如圖5中的右圖5b所示。邊Bd_V(9,4)也在圖5中標(biāo)出。
權(quán)利要求
1.消除由耦合電感引起串?dāng)_的標(biāo)準(zhǔn)單元總體布線方法,其特征在于它是一種在已經(jīng)經(jīng)過(guò)布線擁擠、電路時(shí)延優(yōu)化而得到的總體布線初始解的基礎(chǔ)上,根據(jù)用戶設(shè)定的串?dāng)_約束來(lái)進(jìn)行串?dāng)_消除的方法,它通過(guò)計(jì)算機(jī)依次按以下步驟實(shí)現(xiàn)(1).把總體布線的初始解和用戶設(shè)定的在所有線網(wǎng)漏點(diǎn)處允許的最大互感系數(shù)值輸入計(jì)算機(jī)中;(2).分配串?dāng)_約束,即把用戶給出的漏點(diǎn)處的約束轉(zhuǎn)化為相應(yīng)線網(wǎng)在所經(jīng)過(guò)的每個(gè)GRG,即總體布線圖邊上的最大互感系數(shù)的約束,可以從以下兩種已知的方法中任選一種(2.1).把漏點(diǎn)處的約束值平均地分配到這個(gè)源漏對(duì)所經(jīng)過(guò)的每個(gè)GRG邊上;(2.2).利用線性規(guī)劃分配串?dāng)_約束,即考慮不同的GRG邊上擁擠度不同會(huì)影響互感系數(shù),給擁擠的GRG邊上的約束值寬松一些,不擁擠的GRG邊上約束值嚴(yán)格一些,在約束總值不變的情況下更有利于整體的優(yōu)化;所述的擁擠度是指GRG邊上被線網(wǎng)占用的通道數(shù)與通道總數(shù)的比值,即擁擠度越大,說(shuō)明該邊上所經(jīng)過(guò)的線網(wǎng)越多;(3).應(yīng)用禁忌搜索方法在GRG的各條邊上消除串?dāng)_,即尋找一個(gè)串?dāng)_在約束范圍內(nèi)的線網(wǎng)排列順序,它次按含有以下步驟;(3.1).設(shè)定xcur當(dāng)前解,即當(dāng)前GRG邊上的線網(wǎng)順序;xnew當(dāng)前解鄰域中的一個(gè)合法候選解,即處于鄰域中的未被禁忌的可以作為新解的解的集合,稱為合法候選解集,所述鄰域是指當(dāng)前解經(jīng)過(guò)一次移動(dòng)后所能達(dá)到的解的集合;xtmp禁忌搜索方法從合法候選解集中挑出的最好的解,即在當(dāng)前合法候選解集中所能找到的費(fèi)用函數(shù)最小的解;xmin禁忌搜索方法在整個(gè)搜索過(guò)程中曾經(jīng)到達(dá)過(guò)的最優(yōu)解,即曾經(jīng)到達(dá)過(guò)的費(fèi)用函數(shù)最小的解;cost(xnew)xnew的費(fèi)用函數(shù);tmpcostxtmp的費(fèi)用函數(shù);Na在最優(yōu)解無(wú)改進(jìn)的條件下,上述方法的迭代次數(shù),系設(shè)定值,為正整數(shù),100≤Na≤500;Nb在當(dāng)前鄰域的合法候選解集中隨機(jī)移動(dòng)地挑選的合法候選解的個(gè)數(shù),系設(shè)定值,為正整數(shù),10≤Nb≤200;Nc為找到一個(gè)合法候選解而搜索的最大次數(shù),系設(shè)定值,為正整數(shù),5≤Nc≤50;所述的禁忌是指把滿足一定條件的解記錄在一個(gè)表,即禁忌表H內(nèi),使它們?cè)谒阉骷吹倪^(guò)程中不能作為新解而被選中;禁忌長(zhǎng)度T,系正整數(shù),它表示一個(gè)解遭到禁忌后,在T輪迭代次數(shù)內(nèi)不能被選中,超過(guò)禁忌長(zhǎng)度T后,原本遭到禁忌的解可以重新參與挑選過(guò)程,T=1~60;所述費(fèi)用函數(shù),即評(píng)價(jià)某個(gè)解優(yōu)劣的定量標(biāo)準(zhǔn),它的表達(dá)式為cost(x)=w1c1+w2c2+w3c3+w4c4,同時(shí)設(shè)定被禁忌的費(fèi)用值,其中,w1、w2、w3、w4為權(quán)重,系設(shè)定值,均為0到5之間的實(shí)數(shù);c1為該GRG邊中與敏感線網(wǎng)相鄰的線網(wǎng)總數(shù),c2為該GRG邊上屏蔽線的數(shù)目,所述屏蔽線是指能起到屏蔽相互敏感線網(wǎng)之間耦合電感和耦合電容作用的電源線或地線,c3的表達(dá)式如下Σi(Keff-Kth),∀i,]]>滿足Keff>KthKeff為某個(gè)線網(wǎng)i在該GRG邊上實(shí)際的互感系數(shù),即所有對(duì)線網(wǎng)i敏感的線網(wǎng)j在線網(wǎng)i的互感系數(shù)的總和,可用下式表示 其中,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的距離;Kth為該線網(wǎng)i在該GRG邊上所分配到的互感系數(shù)的約束值,c4是該GRG邊中滿足Keff>Kth的線網(wǎng)的總的個(gè)數(shù);所述的隨機(jī)移動(dòng)是指從當(dāng)前解的鄰域中找到一個(gè)新解xnew的方法,它包括以下四種情況隨機(jī)調(diào)換兩個(gè)線網(wǎng)的位置,權(quán)重為w5,隨機(jī)移動(dòng)一個(gè)線網(wǎng)的位置,權(quán)重為w6,隨機(jī)插入一條屏蔽線,權(quán)重為w7,隨機(jī)刪除一條屏蔽線,權(quán)重為w8,每一次隨機(jī)移動(dòng)操作都會(huì)從這四種移動(dòng)中隨機(jī)選擇一種,并各用一個(gè)權(quán)重表示其被選幾率,而w5+w6+w7+w8=1;(3.2).取當(dāng)前GRG邊上的線網(wǎng)順序xcur為當(dāng)前解,且初始化xmin=xcur;同時(shí),初始化禁忌表H,清空搜索次數(shù)計(jì)數(shù)器a和統(tǒng)計(jì)Nc次數(shù)的計(jì)數(shù)器c;(3.3).判斷計(jì)數(shù)器a的值是否小于設(shè)定的Na若a的值不小于參數(shù)Na,則搜索結(jié)束;否則轉(zhuǎn)入下一步(3.4);(3.4).把tmpcost變量置為無(wú)窮大,清空統(tǒng)計(jì)Nb值的計(jì)數(shù)器b;(3.5).判斷計(jì)數(shù)器b的值是否小于Nb若b的值不小于參數(shù)Nb,則轉(zhuǎn)入步驟(3.10);否則,轉(zhuǎn)入步驟(3.6);(3.6).隨機(jī)移動(dòng)產(chǎn)生新解xnew,判斷其費(fèi)用函數(shù)是否遭到禁忌,即費(fèi)用函數(shù)計(jì)算出的費(fèi)用是否等于被禁忌的費(fèi)用若沒(méi)有遭到禁忌,轉(zhuǎn)步驟(3.8);否則,轉(zhuǎn)步驟(3.7);(3.7).統(tǒng)計(jì)Nc次數(shù)的計(jì)數(shù)器c加1,判斷c的值是否小于Nc若c的值不小于Nc,則停止搜索,清空計(jì)數(shù)器c,轉(zhuǎn)步驟(3.8);否則,轉(zhuǎn)入步驟(3.6),重新搜索一個(gè)合法候選解;(3.8).判斷新解xnew的費(fèi)用函數(shù)cost(xnew)的值是否小于變量tmpcost若是,則把xnew記錄為xtmp,并把它的費(fèi)用記錄為tmpcost;否則,不做記錄;(3.9).把計(jì)數(shù)器b的值加1,轉(zhuǎn)步驟(3.5),重新尋找一個(gè)合法候選解;(3.10).判斷步驟(3.9)得到的新解xnew的費(fèi)用函數(shù)的值是否小于新的變量tmpcost,若是,則把xtmp選用為xcur,并比較xcur的費(fèi)用函數(shù)cost(xcur)和最優(yōu)解xmin的費(fèi)用函數(shù)cost(xmin)若cost(xcur)小于費(fèi)用函數(shù)cost(xmin),則找到新的最優(yōu)解,把xcur記為xmin,同時(shí)清空計(jì)數(shù)器a;否則,不作記錄,a的值加1;(3.11).更新禁忌表,即對(duì)所有被禁忌的費(fèi)用函數(shù),禁忌長(zhǎng)度減1,再轉(zhuǎn)步驟(3.3),重復(fù)以上過(guò)程,一直到禁忌長(zhǎng)度減為零,則解除禁忌;(4).結(jié)果優(yōu)化檢查每個(gè)GRG邊是否存在殘余串?dāng)_,再盡可能減少屏蔽線數(shù)量。
全文摘要
消除由耦合電感引起串?dāng)_的標(biāo)準(zhǔn)單元總體布線方法屬于標(biāo)準(zhǔn)單元集成電路計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)領(lǐng)域,其特征在于它是一種在已經(jīng)經(jīng)過(guò)布線擁擠、電路時(shí)延優(yōu)化而得到的總體布線初始解的基礎(chǔ)上,根據(jù)用戶設(shè)定的串?dāng)_約束來(lái)進(jìn)行串?dāng)_消除的方法。在消除串?dāng)_時(shí),它經(jīng)過(guò)常規(guī)的分配串?dāng)_約束后,應(yīng)用禁忌搜索方法在GRG的各條邊上消除串?dāng)_,具體而言,它以構(gòu)造的費(fèi)用函數(shù)作為判斷準(zhǔn)則,以當(dāng)前解為出發(fā)點(diǎn),不斷地從其鄰域的合法候選解集中進(jìn)行搜索,一直地迭代,直到規(guī)定的迭代次數(shù)為止,再在此基礎(chǔ)上進(jìn)行優(yōu)化。它能夠得到和模擬退火方法相近的屏蔽線插入數(shù)目的結(jié)果,但執(zhí)行時(shí)間大大縮短,線長(zhǎng)的增加減少了一半。
文檔編號(hào)G06F17/50GK1564164SQ200410009030
公開(kāi)日2005年1月12日 申請(qǐng)日期2004年4月20日 優(yōu)先權(quán)日2004年4月20日
發(fā)明者洪先龍, 經(jīng)彤, 張凌, 許靜宇, 梁敬弘 申請(qǐng)人:清華大學(xué)