本發(fa)明涉及(ji)VLSI物理設計(ji)自動化(hua)技術領域,特別是一種(zhong)用于求解給定邊(bian)框(kuang)約束的VLSI版圖設計(ji)方法(fa)。
背景技術:
近年來,隨著集(ji)成(cheng)電(dian)路制造工藝(yi)的(de)(de)迅速發展,集(ji)成(cheng)電(dian)路產業已經進入了納米工藝(yi)時代,芯(xin)片(pian)的(de)(de)集(ji)成(cheng)度進一步提高(gao)(gao),一塊芯(xin)片(pian)上所能(neng)集(ji)成(cheng)的(de)(de)電(dian)路元(yuan)件越來越多,對(dui)VLSI設計(ji)方(fang)法提出了更高(gao)(gao)的(de)(de)要(yao)(yao)求。版(ban)(ban)(ban)圖規(gui)劃(hua)是(shi)VLSI物(wu)理設計(ji)過程(cheng)中非(fei)常重要(yao)(yao)的(de)(de)一個環節,對(dui)集(ji)成(cheng)電(dian)路的(de)(de)性(xing)(xing)能(neng)指(zhi)標,如可(ke)布通性(xing)(xing)、時延特性(xing)(xing)、功(gong)耗、電(dian)路可(ke)靠性(xing)(xing)等有重大影響。隨著版(ban)(ban)(ban)圖規(gui)劃(hua)問題(ti)的(de)(de)約束不斷(duan)增多和芯(xin)片(pian)上單(dan)元(yuan)個數(shu)的(de)(de)快(kuai)速增長,對(dui)VLSI版(ban)(ban)(ban)圖規(gui)劃(hua)問題(ti)的(de)(de)算法設計(ji)提出了巨(ju)大的(de)(de)挑戰。因此,尋求更高(gao)(gao)效、更實用(yong)的(de)(de)集(ji)成(cheng)電(dian)路版(ban)(ban)(ban)圖規(gui)劃(hua)設計(ji)算法具有重要(yao)(yao)的(de)(de)意義。
在(zai)是(shi)否(fou)考慮將模(mo)塊(kuai)(kuai)(kuai)放置(zhi)到(dao)給(gei)定的(de)(de)區域(yu)約束(shu)(shu)時,版(ban)(ban)圖(tu)(tu)規劃(hua)(hua)問(wen)(wen)題(ti)分為(wei)傳(chuan)統版(ban)(ban)圖(tu)(tu)規劃(hua)(hua)問(wen)(wen)題(ti)和(he)fixed-outline版(ban)(ban)圖(tu)(tu)規劃(hua)(hua)問(wen)(wen)題(ti)。傳(chuan)統版(ban)(ban)圖(tu)(tu)規劃(hua)(hua)問(wen)(wen)題(ti)主要(yao)在(zai)滿(man)足任(ren)何(he)模(mo)塊(kuai)(kuai)(kuai)都不重疊(die)約束(shu)(shu)下(xia),確定模(mo)塊(kuai)(kuai)(kuai)的(de)(de)位(wei)置(zhi),使得布局的(de)(de)面積和(he)模(mo)塊(kuai)(kuai)(kuai)間(jian)的(de)(de)互(hu)(hu)連線長(chang)最(zui)(zui)小(xiao)(xiao)。Fixed-outline版(ban)(ban)圖(tu)(tu)規劃(hua)(hua)問(wen)(wen)題(ti)是(shi)在(zai)給(gei)定邊框(kuang)約束(shu)(shu)和(he)任(ren)何(he)模(mo)塊(kuai)(kuai)(kuai)都不重疊(die)約束(shu)(shu)條件下(xia)確定模(mo)塊(kuai)(kuai)(kuai)的(de)(de)位(wei)置(zhi),使得最(zui)(zui)終的(de)(de)布局面積和(he)模(mo)塊(kuai)(kuai)(kuai)間(jian)的(de)(de)互(hu)(hu)連線長(chang)度最(zui)(zui)小(xiao)(xiao)。換而(er)言之,fixed-outline版(ban)(ban)圖(tu)(tu)規劃(hua)(hua)問(wen)(wen)題(ti)不僅要(yao)滿(man)足任(ren)何(he)模(mo)塊(kuai)(kuai)(kuai)都不重疊(die)的(de)(de)約束(shu)(shu),而(er)且還要(yao)滿(man)足所有的(de)(de)模(mo)塊(kuai)(kuai)(kuai)都要(yao)放置(zhi)到(dao)給(gei)定的(de)(de)邊框(kuang)內。目前(qian)已(yi)經證明了fixed-outline版(ban)(ban)圖(tu)(tu)規劃(hua)(hua)比(bi)傳(chuan)統版(ban)(ban)圖(tu)(tu)規劃(hua)(hua)更加(jia)復雜(za)。
用來(lai)解決(jue)VLSI版(ban)(ban)圖(tu)規(gui)(gui)劃問題的(de)(de)算(suan)(suan)法(fa)(fa)可分(fen)為(wei)以下兩類:基于(yu)(yu)迭代的(de)(de)版(ban)(ban)圖(tu)規(gui)(gui)劃設(she)計(ji)(ji)(ji)方法(fa)(fa)和(he)基于(yu)(yu)分(fen)析的(de)(de)版(ban)(ban)圖(tu)規(gui)(gui)劃設(she)計(ji)(ji)(ji)方法(fa)(fa)。在(zai)(zai)這(zhe)兩類方向中(zhong)(zhong),通過實(shi)驗(yan)結(jie)果(guo)(guo)的(de)(de)對比(bi),基于(yu)(yu)迭代的(de)(de)版(ban)(ban)圖(tu)規(gui)(gui)劃設(she)計(ji)(ji)(ji)方法(fa)(fa)取得(de)(de)的(de)(de)布(bu)(bu)局效果(guo)(guo)較(jiao)好,因而成為(wei)當前(qian)主流布(bu)(bu)局工具(ju)所采(cai)用的(de)(de)方法(fa)(fa)。由于(yu)(yu)VLSI布(bu)(bu)局問題的(de)(de)規(gui)(gui)模很(hen)(hen)大,現有的(de)(de)基于(yu)(yu)構造的(de)(de)版(ban)(ban)圖(tu)規(gui)(gui)劃設(she)計(ji)(ji)(ji)工具(ju)很(hen)(hen)難(nan)直(zhi)接求解。在(zai)(zai)迭代方法(fa)(fa)的(de)(de)VLSI版(ban)(ban)圖(tu)規(gui)(gui)劃設(she)計(ji)(ji)(ji)算(suan)(suan)法(fa)(fa)中(zhong)(zhong),主要(yao)采(cai)用啟(qi)發式(shi)策略(lve),如模擬(ni)退(tui)火算(suan)(suan)法(fa)(fa)、遺傳算(suan)(suan)法(fa)(fa)和(he)粒子群算(suan)(suan)法(fa)(fa)等等。在(zai)(zai)基于(yu)(yu)啟(qi)發式(shi)策略(lve)的(de)(de)迭代方法(fa)(fa)中(zhong)(zhong),實(shi)驗(yan)結(jie)果(guo)(guo)證明模擬(ni)退(tui)火算(suan)(suan)法(fa)(fa)在(zai)(zai)處理(li)版(ban)(ban)圖(tu)規(gui)(gui)劃設(she)計(ji)(ji)(ji)問題時,能夠得(de)(de)到較(jiao)好的(de)(de)版(ban)(ban)圖(tu)規(gui)(gui)劃結(jie)果(guo)(guo)。因此,模擬(ni)退(tui)火算(suan)(suan)法(fa)(fa)被認(ren)為(wei)是啟(qi)發式(shi)策略(lve)迭代法(fa)(fa)中(zhong)(zhong)比(bi)較(jiao)有效的(de)(de)一種算(suan)(suan)法(fa)(fa)。
目前,基于分析方(fang)法的(de)版(ban)圖規劃(hua)算法主(zhu)要采(cai)用線性規劃(hua)算法及混合(he)線性規劃(hua)算法處理(li)VLSI不(bu)可二(er)劃(hua)分版(ban)圖規劃(hua)問(wen)題。根據(ju)學術上和工業界布局器的(de)比(bi)較(jiao),基于迭(die)代(dai)方(fang)法的(de)版(ban)圖規劃(hua)布局工具(ju)取得的(de)實驗結果(guo)最好。
技術實現要素:
本發(fa)明的目的在于提供(gong)一種(zhong)用于求解給定(ding)邊框約束的VLSI版圖設計方法,以克服現有技術中存在的缺陷。
為實現(xian)上述目的,本發明的技術方案是:一(yi)(yi)種(zhong)一(yi)(yi)種(zhong)用于(yu)求解給定邊(bian)框約束(shu)的VLSI版圖設計方法,按照如下步(bu)驟(zou)實現(xian):
步驟S1:將版圖(tu)規劃(hua)表(biao)示為B*-tree;
步(bu)驟(zou)S2:初(chu)(chu)始化所述步(bu)驟(zou)S1獲取的B*-tree為(wei)完全二叉樹,記為(wei)初(chu)(chu)始解I;
步(bu)驟(zou)S3:設(she)置算法迭代次(ci)數iterative=0,設(she)置最大的迭代數目;
步驟S4:判斷所述初(chu)始解(jie)I是否為可行(xing)解(jie);
步驟S5:通過一系列(lie)B*-tree擾(rao)動產生鄰居解;
步驟(zou)S6:對所述步驟(zou)S5中的鄰居解(jie)采用可行解(jie)策略(lve),使得鄰居解(jie)滿足邊框約束(shu);
步驟S7:采(cai)用混合模擬退(tui)火(huo)算法在解空間中搜索最(zui)優解;
步(bu)驟S8:令iterative=iterative+1;
步驟S9:重復所述(shu)步驟S5至所述(shu)步驟S8,直到迭(die)代次數iterative大于(yu)預設(she)的(de)迭(die)代數目。
在(zai)本發(fa)明(ming)一(yi)實施例中(zhong),在(zai)所述步驟S1中(zhong)將版圖規劃表示為B*-tree,其中(zhong),樹形結構(gou)中(zhong)的每個節點都代表一(yi)個模塊(kuai),而且每個節點至多有(you)兩個子節點。
在(zai)本發(fa)明(ming)一實(shi)施例(li)中(zhong),在(zai)所述(shu)步驟(zou)S2中(zhong),所述(shu)初(chu)始化所述(shu)步驟(zou)S1獲取的(de)B*-tree為(wei)完全(quan)二(er)叉樹(shu)包括:除(chu)了樹(shu)結構(gou)中(zhong)的(de)最后兩行(xing)的(de)節點,每個父(fu)節點有兩個子節點。
在本發明一實施例中,在所述(shu)步驟S5中,對于解空(kong)間中每個(ge)解都(dou)由B*-tree表示,且所述(shu)一系列B*-tree的擾動方式包括:模(mo)塊(kuai)旋(xuan)轉、移動模(mo)塊(kuai)到另一個(ge)區域以及交換兩個(ge)模(mo)塊(kuai)。
在本發(fa)明(ming)一(yi)實(shi)施例中,在所(suo)述(shu)(shu)步驟(zou)(zou)S6中,通過可(ke)(ke)行(xing)解(jie)策略(lve)算法使(shi)所(suo)述(shu)(shu)所(suo)述(shu)(shu)步驟(zou)(zou)S5中獲(huo)取的鄰居解(jie)為可(ke)(ke)行(xing)解(jie),且所(suo)述(shu)(shu)可(ke)(ke)行(xing)解(jie)策略(lve)算法采用如下步驟(zou)(zou)實(shi)現:
步驟S61:令j==0;
步驟S62:while(初始(shi)解S是(shi)不可行的(de)(de)or j≤給定的(de)(de)數值);
步驟S63:令j++;
步驟S64:通過一系列B*-tree的擾動產生新的解S1。
其中,j表示可行(xing)解策略在實行(xing)過(guo)程中的迭代次數。
在本發(fa)明一實施例中(zhong),在所述(shu)步驟S7中(zhong),還包括如(ru)下步驟:
步驟S71:通過B*-tree擾動產生(sheng)新的(de)解I',并(bing)將對應(ying)的(de)B*-tree記為J;
步驟S72:基于新(xin)的(de)(de)罰函數計(ji)算新(xin)解I'的(de)(de)費用值,并計(ji)算新(xin)的(de)(de)解和(he)上一步解的(de)(de)費用差;
步(bu)驟S73:判斷是否接受J;
步驟S74:通過一新(xin)的溫度改變(bian)公式搜索最優解。
在(zai)本發(fa)明一(yi)實(shi)施例(li)中(zhong),所述新的罰函數包括兩(liang)部分:面積函數A和(he)過度長度
函數L';所(suo)述A面(mian)積函數通過計算包含候選版圖規劃F結果的最小矩形(xing)的面(mian)
積(ji)來獲得,計算公(gong)式為:
其中,W0,H0分別(bie)表示給(gei)定邊框的寬和(he)高;候選版(ban)圖(tu)規劃(hua)F的寬和(he)高分別(bie)記
為W和H;
所述過度長度函數L'通過計算每個模塊超出給定邊框的長度來獲得;若第i個模塊超出給定邊框的長度記為Li,則其計算公式為:
其中,(xi,yi)表示第i個模塊的左下角坐標;第i個模塊的寬和高分別記為wi和hi;
則過(guo)度(du)長度(du)函(han)數的(de)計(ji)算公式為:
其中(zhong),S表示超出給定邊框的(de)(de)所有模塊的(de)(de)集合。
在(zai)本發明一實施例中,所(suo)述新的溫(wen)度改變公式包括三部(bu)分:高溫(wen)隨機搜(sou)索階(jie)(jie)段、局(ju)部(bu)搜(sou)索階(jie)(jie)段以及(ji)溫(wen)度上升階(jie)(jie)段。
在本發(fa)明一實施例中,所(suo)述新的溫度改(gai)變公(gong)式通(tong)過如下步驟獲取:
步驟S741:Tn=avg/(log(P));
步驟S742:if(n==給定的數值);
步驟S743:Tn=Tn×avgcost/(λ×n);
步驟S744:Tn=Tn×Pm;
步驟S745:Tactual=estimateavg/Tn;
步驟(zou)S746:if(n>給定的數(shu)值);
步驟S747:Tn=Tn×avgcost/n;
步驟S748:Tactual=estimateavg/Tn。
其中,Tn=avg/(log(P))用來計算初始溫度,n是模擬退火算法中的迭代數目,Tn是第n步的溫度;m是用來控制在當前溫度下進行局部搜索的次數,且為一常數;P是接受較差的解的初始概率;平均上山費用,也即費用值增大的方向,記為avg;當前溫度下的平均費用差記為avgcost;λ是用戶定義的參數,用于令溫度能夠快速降低,estimateavg是用來控制溫度的常數,Tactual是實際溫度。
相較于現有(you)技術(shu),本發明具有(you)以(yi)下有(you)益效果:
(1)在計算(suan)模塊(kuai)是否超(chao)出(chu)給定(ding)邊(bian)(bian)(bian)框(kuang)約束階段,本(ben)發明采(cai)用(yong)懲罰函(han)(han)數方(fang)法(fa)(fa)。該懲罰函(han)(han)數是由包含候選布局結(jie)果的最小矩(ju)形超(chao)出(chu)邊(bian)(bian)(bian)框(kuang)的面積違背函(han)(han)數和各個(ge)模塊(kuai)超(chao)出(chu)給定(ding)邊(bian)(bian)(bian)框(kuang)約束的長度函(han)(han)數組成(cheng)。此(ci)函(han)(han)數方(fang)法(fa)(fa)可有(you)效地限制模塊(kuai)在B*-tree擾動過程(cheng)中(zhong)朝向邊(bian)(bian)(bian)框(kuang)移動。
(2)在B*-tree產(chan)生新的(de)解階段,本發明采用可(ke)行解策略。此策略使得(de)經過一系列B*-tree擾(rao)動產(chan)生的(de)解都(dou)是滿(man)足給定邊框(kuang)約束的(de)可(ke)行解。
(3)在(zai)解(jie)搜(sou)索(suo)階(jie)段(duan)(duan),本發(fa)明(ming)采用混合模(mo)擬退火(huo)算(suan)法。在(zai)該(gai)混合算(suan)法中(zhong),溫(wen)度改變分(fen)為三階(jie)段(duan)(duan):快速(su)降(jiang)溫(wen)階(jie)段(duan)(duan),局部(bu)搜(sou)索(suo)階(jie)段(duan)(duan)和溫(wen)度上升(sheng)階(jie)段(duan)(duan)。此(ci)溫(wen)度改變公式首先快速(su)的降(jiang)低溫(wen)度,使得冗(rong)雜(za)的解(jie)空間(jian)不被搜(sou)索(suo)。在(zai)局部(bu)搜(sou)索(suo)階(jie)段(duan)(duan),由于溫(wen)度逼(bi)近與0,因此(ci)很(hen)少接受較差的解(jie)。溫(wen)度上升(sheng)階(jie)段(duan)(duan),較多的差的解(jie)被接受,這樣(yang)防止了(le)搜(sou)索(suo)的最優解(jie)或(huo)次優解(jie)是局部(bu)解(jie)。經與測(ce)試例(li)子進行實(shi)(shi)驗(yan)比較,比較結果(guo)(guo)表(biao)明(ming)本發(fa)明(ming)的版(ban)圖(tu)規(gui)劃方(fang)法是有效的。實(shi)(shi)驗(yan)結果(guo)(guo)表(biao)明(ming)該(gai)方(fang)法可以提(ti)供高效實(shi)(shi)用的版(ban)圖(tu)規(gui)劃結果(guo)(guo),可滿(man)足目前VLSI的版(ban)圖(tu)規(gui)劃設計的需求。
附圖說明
圖1為本發明一(yi)實施例(li)中一(yi)種用(yong)于求解給(gei)定邊框(kuang)約束的VLSI版(ban)圖設計方(fang)法(fa)的流程(cheng)圖。
圖2為本發明一實施例(li)中(zhong)一種用于(yu)使得由(you)B*-tree產生(sheng)的鄰居解(jie)滿足邊(bian)框約束的可行解(jie)策略的流程圖。
圖3為本(ben)發明(ming)一實施例中用于溫度更新的(de)公式的(de)流程圖。
圖4為本(ben)發明一實施例中(zhong)在寬高(gao)比(bi)為1時(shi)優(you)化測試例子n300面積和線長的結果圖。
具體實施方式
下(xia)面結合附圖,對本發明的技術方(fang)案進行具體說明。
本發(fa)明提(ti)供一(yi)種用(yong)于求解(jie)(jie)給定(ding)邊框約束(shu)(shu)的(de)(de)(de)VLSI版圖(tu)(tu)(tu)設計方法(fa),目的(de)(de)(de)在(zai)于將(jiang)采用(yong)混合模擬退火(huo)算(suan)法(fa)處理VLSI不(bu)可二劃分的(de)(de)(de)給定(ding)邊框約束(shu)(shu)的(de)(de)(de)版圖(tu)(tu)(tu)規劃問題(ti)。該算(suan)法(fa)采用(yong)基(ji)于面積違背(bei)函數(shu)和長度(du)違背(bei)函數(shu)相結(jie)合的(de)(de)(de)懲(cheng)罰(fa)函數(shu),再利用(yong)可行解(jie)(jie)策略使得產生(sheng)的(de)(de)(de)新(xin)解(jie)(jie)都是(shi)滿足(zu)邊框約束(shu)(shu)的(de)(de)(de)可行解(jie)(jie),最后再采用(yong)混合模擬退火(huo)算(suan)法(fa)來搜索問題(ti)的(de)(de)(de)解(jie)(jie)空間,從而得到一(yi)種性能優越的(de)(de)(de)基(ji)于迭代方法(fa)的(de)(de)(de)給定(ding)邊框約束(shu)(shu)的(de)(de)(de)版圖(tu)(tu)(tu)規劃結(jie)果。
進一步的(de)(de)(de)(de)(de)(de)(de),本發明針(zhen)對(dui)不可(ke)二分超大規(gui)(gui)模集成電路給定(ding)邊(bian)框(kuang)約(yue)束的(de)(de)(de)(de)(de)(de)(de)版(ban)圖(tu)規(gui)(gui)劃(hua)問題,提(ti)出(chu)了(le)(le)基于(yu)混合(he)的(de)(de)(de)(de)(de)(de)(de)模擬退火的(de)(de)(de)(de)(de)(de)(de)VLSI版(ban)圖(tu)規(gui)(gui)劃(hua)算(suan)(suan)法(fa)(fa)。首先,考(kao)(kao)(kao)慮到(dao)初始(shi)解(jie)(jie)(jie)對(dui)布局(ju)結果(guo)的(de)(de)(de)(de)(de)(de)(de)影響(xiang),采用(yong)隨(sui)機化的(de)(de)(de)(de)(de)(de)(de)策(ce)略(lve),即將一個隨(sui)機初始(shi)布局(ju)作為混合(he)模擬退火算(suan)(suan)法(fa)(fa)的(de)(de)(de)(de)(de)(de)(de)初始(shi)解(jie)(jie)(jie)。考(kao)(kao)(kao)慮到(dao)所(suo)要解(jie)(jie)(jie)決的(de)(de)(de)(de)(de)(de)(de)是給定(ding)邊(bian)框(kuang)約(yue)束的(de)(de)(de)(de)(de)(de)(de)版(ban)圖(tu)規(gui)(gui)劃(hua)問題,因此提(ti)出(chu)了(le)(le)將邊(bian)框(kuang)約(yue)束作為目標函(han)數的(de)(de)(de)(de)(de)(de)(de)違背懲罰函(han)數。該函(han)數在(zai)(zai)(zai)考(kao)(kao)(kao)慮圍住(zhu)候(hou)選布圖(tu)結果(guo)的(de)(de)(de)(de)(de)(de)(de)最(zui)(zui)小矩形超出(chu)給定(ding)邊(bian)框(kuang)的(de)(de)(de)(de)(de)(de)(de)面積(ji)函(han)數基礎(chu)之(zhi)上,引入(ru)了(le)(le)考(kao)(kao)(kao)慮各個模塊超出(chu)給定(ding)邊(bian)框(kuang)的(de)(de)(de)(de)(de)(de)(de)長度(du)函(han)數。在(zai)(zai)(zai)加入(ru)了(le)(le)混合(he)模擬退火算(suan)(suan)法(fa)(fa)的(de)(de)(de)(de)(de)(de)(de)基礎(chu)上,又引入(ru)了(le)(le)可(ke)行解(jie)(jie)(jie)策(ce)略(lve)。這個策(ce)略(lve)使得(de)(de)(de)經過一系(xi)列B*-tree擾(rao)動產生的(de)(de)(de)(de)(de)(de)(de)解(jie)(jie)(jie)都是可(ke)行解(jie)(jie)(jie),從而使得(de)(de)(de)本算(suan)(suan)法(fa)(fa)能夠(gou)得(de)(de)(de)到(dao)較(jiao)(jiao)優的(de)(de)(de)(de)(de)(de)(de)解(jie)(jie)(jie)。在(zai)(zai)(zai)加入(ru)可(ke)行解(jie)(jie)(jie)策(ce)略(lve)的(de)(de)(de)(de)(de)(de)(de)基礎(chu)之(zhi)上,進一步引入(ru)了(le)(le)混合(he)模擬退火算(suan)(suan)法(fa)(fa)來搜(sou)索最(zui)(zui)優解(jie)(jie)(jie),在(zai)(zai)(zai)該算(suan)(suan)法(fa)(fa)中,新(xin)的(de)(de)(de)(de)(de)(de)(de)溫度(du)更(geng)新(xin)公式被采用(yong)。新(xin)的(de)(de)(de)(de)(de)(de)(de)溫度(du)更(geng)新(xin)公式大大節省(sheng)解(jie)(jie)(jie)空間(jian)(jian)搜(sou)索階段的(de)(de)(de)(de)(de)(de)(de)時間(jian)(jian),將更(geng)多的(de)(de)(de)(de)(de)(de)(de)時間(jian)(jian)用(yong)于(yu)在(zai)(zai)(zai)溫度(du)上升階段尋找較(jiao)(jiao)優的(de)(de)(de)(de)(de)(de)(de)解(jie)(jie)(jie),增大了(le)(le)找到(dao)最(zui)(zui)優解(jie)(jie)(jie)的(de)(de)(de)(de)(de)(de)(de)概率。
進(jin)一步的(de),如圖(tu)1所示,具體包括如下步驟:
步驟S1:把版(ban)圖規劃表示為(wei)B*-tree;
步驟S2:初始化B*-tree為完全二叉樹,記(ji)為初始解I;
步驟S3:設(she)置算法迭代次數iterative=0,設(she)置最大的迭代數目;
步(bu)驟S4:判(pan)斷I是否為可行解;
步驟S5:通(tong)過(guo)一系列B*-tree擾動(dong)產生鄰居(ju)解;
步驟S6:對(dui)(5)中(zhong)的(de)鄰居解(jie)采用可行解(jie)策略,使得鄰居解(jie)滿足邊框約束;
步驟S7:用(yong)混(hun)合模(mo)擬(ni)退火算法在解(jie)空(kong)間中搜索(suo)最優解(jie);
步驟S8:iterative=iterative+1;
步驟S9:重(zhong)復(fu)步驟S5~步驟S8,直到iterative大于給定(ding)的迭代數(shu)目(mu);
進一步的,在步驟S1中,把版圖規劃表示為B*-tree,其(qi)中,樹形結(jie)構中的每個(ge)節點(dian)(dian)都代表一個(ge)模塊,而且每個(ge)節點(dian)(dian)最多有兩個(ge)子(zi)節點(dian)(dian)。
進(jin)一步的(de)(de),在(zai)模擬退火算(suan)法(fa)操作(zuo)中(zhong),解的(de)(de)多樣(yang)性(xing)(xing)對(dui)超(chao)大規模集成電路給(gei)定邊(bian)框(kuang)約束的(de)(de)版(ban)圖(tu)規劃結(jie)果有很(hen)大的(de)(de)影響,為了保持解的(de)(de)多樣(yang)性(xing)(xing),通(tong)過對(dui)完(wan)全二(er)叉樹(shu)進(jin)行單(dan)個(ge)節(jie)(jie)點(dian)移動、旋轉(zhuan)和(he)兩(liang)個(ge)節(jie)(jie)點(dian)交換操作(zuo),可得到一個(ge)B*-tree,即初(chu)始(shi)解。在(zai)本(ben)實施例(li)中(zhong),在(zai)步驟S2中(zhong),初(chu)始(shi)化B*-tree的(de)(de)方法(fa)是:除了樹(shu)結(jie)構中(zhong)的(de)(de)最后兩(liang)行的(de)(de)節(jie)(jie)點(dian),每(mei)個(ge)父節(jie)(jie)點(dian)有兩(liang)個(ge)子(zi)節(jie)(jie)點(dian)。
進(jin)一(yi)步(bu)的,在(zai)步(bu)驟S5中,對于解(jie)空間中每個解(jie)都(dou)由B*-tree表示,而且新的鄰(lin)居解(jie)是通過B*-tree的一(yi)系列擾(rao)動產生,其中,B*-tree的擾(rao)動方式包括:模塊(kuai)旋轉(zhuan)、移動模塊(kuai)到另一(yi)個區域以及交換兩個模塊(kuai)。
進一步的(de)(de)(de),由于新(xin)(xin)(xin)的(de)(de)(de)鄰居(ju)解(jie)(jie)是經過B*-tree擾動產(chan)生(sheng)的(de)(de)(de),而且擾動方(fang)式是隨(sui)機選取的(de)(de)(de),這樣可能導致產(chan)生(sheng)的(de)(de)(de)新(xin)(xin)(xin)解(jie)(jie)不滿足固(gu)定(ding)邊框約束,因此在本(ben)實施例中(zhong),對產(chan)生(sheng)的(de)(de)(de)鄰居(ju)解(jie)(jie)采用可行解(jie)(jie)策(ce)略,該策(ce)略使得B*-tree產(chan)生(sheng)的(de)(de)(de)新(xin)(xin)(xin)解(jie)(jie)為可行解(jie)(jie)。如(ru)(ru)圖2所示,具(ju)體的(de)(de)(de)實現方(fang)式如(ru)(ru)下:
開始
1.j==0;
2.while(初(chu)始解S是(shi)不可行的(de)or j≤給定的(de)數值(zhi));
3.j++;
4.由B*-tree的擾動產生新的解S1;
5.end while
結束。
其中,j表示可行(xing)解(jie)策略在實行(xing)過程(cheng)中的迭代次數。
進一步(bu)的(de)(de),在(zai)(zai)步(bu)驟S7中,采(cai)用混合模擬退火算法(fa),該混合算法(fa)采(cai)用新的(de)(de)溫(wen)度(du)降(jiang)低公式操作,導(dao)致冗雜的(de)(de)解(jie)空間(jian)不被搜索(suo),加(jia)快(kuai)了算法(fa)搜索(suo)速度(du),而(er)且在(zai)(zai)溫(wen)度(du)上升階段,使得較(jiao)多差的(de)(de)解(jie)被接(jie)受,這(zhe)樣可以防(fang)止搜索(suo)的(de)(de)最(zui)優(you)解(jie)或次最(zui)優(you)解(jie)是局部最(zui)優(you)解(jie),最(zui)終使得搜索(suo)到最(zui)優(you)解(jie)的(de)(de)可能(neng)性(xing)增大。從而(er)該操作可以用來進行大規模給定邊框約束的(de)(de)版圖規劃優(you)化問題的(de)(de)全局搜索(suo)。具(ju)體的(de)(de)實現方(fang)式包(bao)括以下操作:
步驟(zou)S71:通(tong)過B*-tree擾動產生新的解I',對應的B*-tree記(ji)為J;
步(bu)驟S72:基于新的罰函數(shu)計(ji)算新解(jie)的費用值(zhi),并(bing)計(ji)算新解(jie)和上一步(bu)解(jie)的費用差;
步驟S73:判斷是(shi)否接受新的(de)解J;
步驟S74:通過一新得溫(wen)度改變公式搜索最(zui)優解。
進(jin)一(yi)步的(de)(de),本(ben)實施例(li)中采用的(de)(de)混合模(mo)擬(ni)退火算法,是為了在解(jie)(jie)空(kong)間中搜(sou)索較好的(de)(de)解(jie)(jie)。給(gei)一(yi)個(ge)(ge)初始的(de)(de)B*-tree,在每個(ge)(ge)溫(wen)度下,搜(sou)索方法通(tong)過將模(mo)塊(kuai)旋轉90度,把一(yi)個(ge)(ge)模(mo)塊(kuai)移動到其他區域,或是交換兩個(ge)(ge)模(mo)塊(kuai)來搜(sou)索最優解(jie)(jie)。如果這(zhe)三個(ge)(ge)操作中的(de)(de)任何(he)一(yi)種使得布(bu)局帶有更(geng)優的(de)(de)費用值(zhi)或是滿足(zu)一(yi)定的(de)(de)可接受率,這(zhe)種布(bu)局結構就(jiu)會被接受。局部(bu)搜(sou)索算法的(de)(de)偽(wei)代(dai)碼如下所示。
開始
1.初始解S;
2.設(she)置m=0;uphill=0;reject=0;并記錄(lu)當前最優的(de)個(ge)體bestsolution=S;
3.N=t×modulesize;emptylistL;
4.whilereject_rate>conv_rateandT_actual<T_term;
5.whileuphill<30×Nandm<60×Ndo;
6.隨(sui)機(ji)選擇B*-tree的(de)一種擾動操(cao)作,得到新的(de)解S',基于新的(de)罰函數計算
它的費(fei)用并將其放到L中;
7.m=m+1;D=S'的(de)費用-S的(de)費用;
8.if D≤0;then S=S';bestsolution=S';
9.else隨機產生一個0-1之間(jian)的數(shu)R;
10.if R<exp(-D/T);then S=S';uphill=uphill+1;
11.elsereject=reject+1;
12.end while;
13.updateT;
14.reject_rate=reject/m;
15.end while;
16.return bestsolution.
其(qi)中(zhong),modulesize是(shi)模塊(kuai)的(de)(de)(de)數(shu)量,t和N是(shi)用來控制B*-tree擾動(dong)操作執行次數(shu)的(de)(de)(de)參數(shu),m是(shi)截止當(dang)前局部搜索已經執行三種操作的(de)(de)(de)次數(shu),reject是(shi)不(bu)被接受的(de)(de)(de)解的(de)(de)(de)個數(shu)。
進一步(bu)的(de),上述(shu)局(ju)部(bu)搜索偽代(dai)碼第6步(bu)中的(de)新的(de)罰函(han)(han)數由(you)兩部(bu)分構成。面積函(han)(han)數A提供全局(ju)搜索方向;過度(du)長度(du)函(han)(han)數L'提供局(ju)部(bu)搜索方向。面積函(han)(han)數A通過計(ji)算包含(han)候(hou)選版(ban)圖規劃F結果的(de)最小矩形的(de)面積來獲得,它(ta)的(de)計(ji)算公式為:
其中,W0,H0分(fen)(fen)別表示給定邊框的(de)寬和(he)高;候(hou)選版圖規(gui)劃(hua)F的(de)寬和(he)高分(fen)(fen)別記為W和(he)H。
過度長度函數L'通過計算每個模塊超出給定邊框的長度來獲得。這里,若第i個模塊超出給定邊框的長度記為Li,則它(ta)的計算公(gong)式定義為:
其中,(xi,yi)表示第i個模塊的左下角坐標;第i個模塊的寬和高分別記為wi和hi。
故過度(du)長(chang)度(du)函數的(de)計算公式為:
其中,S表示超(chao)出給定邊框的所有模塊的集(ji)合。
進一步的(de),本實施例中采用的(de)混合(he)模擬退火算(suan)法,它的(de)偽代碼第13步中的(de)溫(wen)(wen)度(du)更(geng)新(xin)(xin)公(gong)式由三部(bu)分構成。高溫(wen)(wen)隨機搜(sou)索階段(duan),在這部(bu)分,較(jiao)(jiao)差的(de)解(jie)的(de)接受概(gai)率很(hen)高,因(yin)此(ci)類似隨機搜(sou)索。局部(bu)搜(sou)索階段(duan),由于溫(wen)(wen)度(du)很(hen)低(di),因(yin)此(ci)只有很(hen)少(shao)一部(bu)分較(jiao)(jiao)差的(de)解(jie)被接受,因(yin)此(ci)這個階段(duan)與貪(tan)心(xin)算(suan)法類似。溫(wen)(wen)度(du)上(shang)升(sheng)階段(duan),在這部(bu)分,溫(wen)(wen)度(du)上(shang)升(sheng),接受較(jiao)(jiao)差的(de)解(jie)概(gai)率增大,因(yin)此(ci)它防止(zhi)了搜(sou)索的(de)最優解(jie)是(shi)局部(bu)最優解(jie)。如圖(tu)3所示,溫(wen)(wen)度(du)更(geng)新(xin)(xin)公(gong)式具體(ti)包括(kuo)如下(xia)步驟:
開始
1.Tn=avg/(log(P));
2.if(n==給定的(de)數值);
3.Tn=Tn×avgcost/(λ×n);
4.Tn=Tn×Pm;
5.Tactual=estimateavg/Tn;
6.end if
7.if(n>給定(ding)的數(shu)值);
8.Tn=Tn×avgcost/n;
9.Tactual=estimateavg/Tn;
10.end if
結束。
其中,Tn=avg/(log(P))用來計算初始溫度,n是模擬退火算法中的迭代數目,Tn是第n步的溫度;m是用來控制在當前溫度下進行局部搜索的次數,且為一常數,在本實施例中,m取值為步驟S742和步驟S746中的給定的數值;P是接受較差的解的初始概率,平均上山(費用值增大的方向)費用記為avg,當前溫度下的平均費用差記為avgcost;λ是用戶定義的參數,它使得溫度能夠快速降低;estimateavg是用來控制溫度的常數,Tactual是實際溫度。
以上是本發(fa)明(ming)的(de)較佳實施例,凡(fan)依(yi)本發(fa)明(ming)技(ji)術方案(an)所(suo)作的(de)改變,所(suo)產生的(de)功能作用未超出本發(fa)明(ming)技(ji)術方案(an)的(de)范(fan)圍時,均屬(shu)于本發(fa)明(ming)的(de)保護范(fan)圍。