欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于模塊變形和概率局部搜索的集成電路模塊級(jí)布局方法

文檔序號(hào):6394993閱讀:500來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):基于模塊變形和概率局部搜索的集成電路模塊級(jí)布局方法
技術(shù)領(lǐng)域
本發(fā)明屬于集成電路計(jì)算機(jī)輔助設(shè)計(jì)CAD技術(shù)領(lǐng)域,尤其涉及BBL(Building Block Layout)宏模塊布圖規(guī)劃和布局技術(shù)領(lǐng)域。
背景技術(shù)
在集成電路的布局中,層次式布圖設(shè)計(jì),模塊重用技術(shù),知識(shí)產(chǎn)權(quán)模塊的大量應(yīng)用,片上系統(tǒng)尤其是數(shù)?;旌掀舷到y(tǒng)的設(shè)計(jì),以及模擬電路器件級(jí)布圖問(wèn)題等,這些問(wèn)題都可以歸結(jié)為集成電路宏模塊的布圖規(guī)劃和布局問(wèn)題,即Building Block LayoutBBL模式的布圖問(wèn)題,它已成為當(dāng)前的研究熱點(diǎn)。上述模塊級(jí)的布局問(wèn)題可以轉(zhuǎn)化成一個(gè)大規(guī)模組合優(yōu)化問(wèn)題。該模塊級(jí)的布局(BBL)可簡(jiǎn)單描述為設(shè)有一個(gè)n個(gè)矩形模塊的集合,模塊的高和寬均為給定的實(shí)數(shù),并且模塊具有一定的方向,n個(gè)模塊的一個(gè)布局就是在模塊互不重疊的情況下,將模塊放置在平面上,平面上包含這n個(gè)模塊的最小矩形區(qū)域被稱(chēng)為芯片。模塊級(jí)布局就是尋找一個(gè)最優(yōu)布局或近似最優(yōu)布局,使得芯片面積或是其它優(yōu)化目標(biāo)組成的目標(biāo)函數(shù)值達(dá)到最優(yōu)。
迄今為止有很多方法被應(yīng)用于BBL布圖模式,例如最小割方法、構(gòu)造法、力向量法、分級(jí)設(shè)計(jì)方法、2D邊界搜索方法、分支限界法、解析型算法、模擬退火算法和遺傳算法、機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)算法等等。其中一些方法是由原先的標(biāo)準(zhǔn)單元布局方法借用而來(lái)。這些方法要么處理問(wèn)題的規(guī)模非常有限,要么方法的穩(wěn)定性很差。從得到的結(jié)果來(lái)看,與實(shí)際應(yīng)用還有非常大的差距。還有基于模塊變形的方法具有很好的穩(wěn)定性,結(jié)果也較為實(shí)用,但是在該方法中采用局部搜索的方法求解,具有一定的局限性。

發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種較迄今為止該領(lǐng)域的其它算法更為穩(wěn)定、高效,且取得了目前最好的結(jié)果的基于模塊變形和概率局部搜索的集成電路模塊級(jí)布局方法來(lái)作為解決宏模塊布圖問(wèn)題的工業(yè)工具。
本發(fā)明的思路是它以原問(wèn)題為基礎(chǔ),通過(guò)改變模塊大小和相應(yīng)引線(xiàn)端位置即模塊變形來(lái)生成一系列逐步逼近原問(wèn)題的簡(jiǎn)單的布局問(wèn)題,再逐步求解這一系列逼近原問(wèn)題的簡(jiǎn)單布局問(wèn)題獲取原問(wèn)題的解。在逐步逼近過(guò)程中,用近似因子α控制模塊變形的程度,按照近似問(wèn)題的近似程度遞增的順序即近似因子α遞減的順序,從最簡(jiǎn)單的近似問(wèn)題開(kāi)始,并把當(dāng)前近似問(wèn)題的解的結(jié)構(gòu)即模塊間位置關(guān)系作為下一個(gè)近似問(wèn)題的初始解的結(jié)構(gòu),逐步應(yīng)用概率局部搜索方法求解這一系列近似問(wèn)題,直到近似因子α為1時(shí),各模塊大小等于原始各模塊大小,近似問(wèn)題即為原問(wèn)題。其中的步驟依次如下本發(fā)明的特征在于它以計(jì)算機(jī)為工具,依次采用以下步驟來(lái)實(shí)現(xiàn)(1).初始化,設(shè)置近似因子的初始值,也就是αmax,α>1;求解近似問(wèn)題時(shí)用的局部搜索次數(shù)NOIMPUP;設(shè)置最終布局的目標(biāo)寬長(zhǎng)比R及其權(quán)重ω;設(shè)置目標(biāo)函數(shù)Cost中總線(xiàn)長(zhǎng)TotalWirelength的權(quán)重λ。
(2).計(jì)算機(jī)從模塊描述文件依次讀入以下模塊及線(xiàn)網(wǎng)信息(2.1).讀入模塊四角坐標(biāo),并根據(jù)模塊四角坐標(biāo)計(jì)算模塊的寬w、高h(yuǎn);(2.2).讀入模塊上引線(xiàn)端坐標(biāo),并將其轉(zhuǎn)化為相對(duì)模塊左下角的坐標(biāo);(2.3).按讀入順序?yàn)槟K編號(hào)i,計(jì)算總模塊數(shù)n、a各模塊面積之總和;(2.4).按下列公式計(jì)算讀入的所有n個(gè)模塊的寬、高平均值w、h;w‾=1nΣiwi,]]>h‾=1nΣiwi]]>(3).構(gòu)造初始布局的拓?fù)浣Y(jié)構(gòu)即模塊間的位置關(guān)系,并記為A它是指按照模塊編號(hào)i由小到大的順序,從任意設(shè)定的起始位置沿矩形網(wǎng)格由下向上,然后由左向右的順序,依次安置模塊到矩形網(wǎng)格的方法構(gòu)造初始布局的拓?fù)浣Y(jié)構(gòu);(4).計(jì)算布局問(wèn)題最優(yōu)或近似最優(yōu)解(4.1).根據(jù)近似因子αk的值按下列公式計(jì)算模塊i在近似問(wèn)題中的實(shí)際尺寸wi(αk),hi(αk); 其中wi、hi分別為模塊i的寬、高,wi(αk),hi(αk)分別為模塊i在近似因子α下的實(shí)際的寬、高,pw,ph為歸一化參數(shù),其取值滿(mǎn)足max(wi)/10pwi∈{1,...,n}∈(0,1],max(hi)/10phi∈{1,...,n}∈(0,1],]]>(4.2).根據(jù)模塊間拓?fù)潢P(guān)系A(chǔ),建立對(duì)應(yīng)于拓?fù)浣Y(jié)構(gòu)A的布局Q它是指從網(wǎng)格左下角坐標(biāo)頂點(diǎn)所在的網(wǎng)格開(kāi)始,從右下角向左上角作一條對(duì)角線(xiàn)(135°對(duì)角線(xiàn)),依次從上述左下角坐標(biāo)頂點(diǎn)向x方向右移一個(gè)網(wǎng)格,再?gòu)男碌挠蚁陆窍蛐碌淖笊辖亲饕粭l也是135度的對(duì)角線(xiàn),如此重復(fù),一直做到右上角的網(wǎng)格為止;再?gòu)牡谝粭l對(duì)角線(xiàn)開(kāi)始,依次兩兩連接相鄰對(duì)角線(xiàn)的左上角,且每條對(duì)角線(xiàn)只被連接一次;從第二條對(duì)角線(xiàn)開(kāi)始,依次兩兩連接對(duì)角線(xiàn)的右下角,且每條對(duì)角線(xiàn)也只被連接一次;然后從上述左下角坐標(biāo)頂點(diǎn)所在的網(wǎng)格開(kāi)始,建立相應(yīng)的布局,在計(jì)算過(guò)程中,各模塊左面和下面的模塊的坐標(biāo)都已經(jīng)先期計(jì)算過(guò);同時(shí)計(jì)算芯片的寬長(zhǎng)比;
(4.3).用下列公式根據(jù)當(dāng)前各模塊大小計(jì)算相應(yīng)引線(xiàn)端相對(duì)該模塊左下角頂點(diǎn)的坐標(biāo)(pin_xji(α),pin_yji(α));]]> 其中pin_xji,pin_yji是原問(wèn)題中第i個(gè)模塊第j個(gè)引線(xiàn)端相對(duì)模塊左下角頂點(diǎn)的坐標(biāo);wi、hi原問(wèn)題中模塊i的寬和高;再用下述公式并根據(jù)布局中模塊i的右上角坐標(biāo)xi,yi計(jì)算引線(xiàn)端在布局中的位置即引線(xiàn)端對(duì)矩形網(wǎng)格左下角頂點(diǎn)的坐標(biāo)(p_xji(α),p_yij(α));]]> 其中xi,yi,為本布局中模塊i的右上角坐標(biāo)。
(4.4).根據(jù)下述公式計(jì)算各線(xiàn)網(wǎng)線(xiàn)長(zhǎng)估計(jì)值,及總線(xiàn)長(zhǎng)估計(jì)值,單個(gè)線(xiàn)網(wǎng)是由相互之間存在連接關(guān)系的引線(xiàn)端構(gòu)成的,單個(gè)線(xiàn)網(wǎng)的線(xiàn)長(zhǎng)根據(jù)線(xiàn)網(wǎng)中的引線(xiàn)端位置用下述半周長(zhǎng)模型進(jìn)行估計(jì)設(shè)某線(xiàn)網(wǎng)N的m個(gè)引線(xiàn)端p1(x1,y1),…,pm(xm,ym),則該線(xiàn)網(wǎng)的線(xiàn)長(zhǎng)WireLength(N)用下述公式估計(jì),WireLength(N)=(maxl∈{1,...,m}(xl)-minl∈{1,...,m}(xl))+(maxl∈{1,...,m}(yl)-minl∈{1,...,m}(yl))]]>總線(xiàn)長(zhǎng)估計(jì)值為T(mén)otalWireLength=ΣN=1LWireLength(N),]]>L為線(xiàn)網(wǎng)的個(gè)數(shù)(4.5).用下列公式評(píng)價(jià)布局Q,得到目標(biāo)函數(shù)值CostQ;CostQ=Area+λ×TotalWireLength+ω×Rs2;其中Area=max{xi}i∈[1...n]×max{yi}i∈[1...n]]]>Rs=/R-max(ration,1/ration)/;其中R為期望的芯片寬長(zhǎng)比,ration為芯片實(shí)際寬長(zhǎng)比;(4.6).運(yùn)用概率局部搜索的方法,求取當(dāng)前近似問(wèn)題實(shí)例的近似最優(yōu)解從循環(huán)變量R=0開(kāi)始,當(dāng)R<NOIMPUP時(shí),依次重復(fù)以下步驟(4.6.1).用下列方法從當(dāng)前布局產(chǎn)生新的布局,把新的拓?fù)浣Y(jié)構(gòu)記為A1要改變布局的拓?fù)浣Y(jié)構(gòu),用下列方法之一a.交換兩個(gè)模塊的位置;b.把一個(gè)模塊移動(dòng)到另外一個(gè)位置;要改變模塊方向以有利于優(yōu)化線(xiàn)長(zhǎng)時(shí),用下列方法之一a.隨機(jī)選擇一個(gè)模塊進(jìn)行旋轉(zhuǎn),旋轉(zhuǎn)角度通過(guò)隨機(jī)函數(shù)選取為90°,或180°,或270°;b.隨機(jī)選擇一個(gè)模塊進(jìn)行翻轉(zhuǎn),翻轉(zhuǎn)軸通過(guò)隨機(jī)函數(shù)選取為水平軸,或垂直軸或模塊對(duì)角線(xiàn);(4.6.2).建立對(duì)應(yīng)于拓?fù)浣Y(jié)構(gòu)A1的布局Q1,即計(jì)算各模塊的右上角坐標(biāo),并計(jì)算芯片的寬長(zhǎng)比;(4.6.3).根據(jù)當(dāng)前各模塊大小計(jì)算用上述已知公式計(jì)算相應(yīng)引線(xiàn)端相對(duì)相應(yīng)模塊左下角的坐標(biāo);并根據(jù)模塊右上角坐標(biāo)用上面已述公式計(jì)算引線(xiàn)端在新布局Q1中的位置。
(4.6.4).根據(jù)上面已述公式計(jì)算各線(xiàn)網(wǎng)的線(xiàn)長(zhǎng)估計(jì)值,及總線(xiàn)長(zhǎng)估計(jì)值;(4.6.5).用上面已述的目標(biāo)函數(shù)計(jì)算公式計(jì)算新布局Q1的目標(biāo)函數(shù)值CostQ1;(4.6.6).按下列公式計(jì)算接受所產(chǎn)生新解的概率APα 其中costsmooth取值為步驟(4.5)中所計(jì)算的目標(biāo)函數(shù)值;costα的初始值設(shè)為costsmooth,以后每次使用的值在步驟(4.6.7)中計(jì)算;如果CostQ1<=CostQ則接受新解A1,令A(yù)←A1,Q←Q1,R←0,CostQ←CostQ1;如果CostQ1>CostQ,則依據(jù)計(jì)算的概率Aα按如下方法接收新解a.在0~C之間隨機(jī)地選取一個(gè)cr,C為不同的常數(shù),通常為100000,b.使r=cr/C;c.若r<Aα則接收新解A1令A(yù)←A1,Q←Q1,R←0,CostQ←CostQ1;否則拋棄新解,R←R+1;(4.6.7).保持模塊間拓?fù)浣Y(jié)構(gòu)不變,恢復(fù)各模塊在原問(wèn)題中的尺寸即原始尺寸,重復(fù)上述(4.6.2)~(4.6.5)的步驟,計(jì)算目標(biāo)函數(shù)值作為下一次計(jì)算新解接受概率的Costα;(4.6.8).轉(zhuǎn)步驟(4.6.1);(5).輸出當(dāng)前布局Q;(6).用下述公式計(jì)算下一個(gè)近似問(wèn)題的近似因子αk 若α≥1,則以當(dāng)前的拓?fù)浣Y(jié)構(gòu)A作為初始布局的拓?fù)浣Y(jié)構(gòu),求解下一個(gè)近似問(wèn)題;若α<1,則當(dāng)前布局即為最終布局,作為原問(wèn)題實(shí)例的最終解輸出。
所述的步驟(4.1)中計(jì)算模塊i在近似問(wèn)題中的實(shí)際大小wi(αk),hi(αk)可按下式中的任一式計(jì)算



在sun公司的v880(750M)計(jì)算機(jī)上通過(guò)實(shí)驗(yàn)證明基于模塊變形的集成電路布圖規(guī)劃和布局方法(Shaping)與基于模塊變形和概率接收的局部搜索的集成電路布圖規(guī)劃和布局方法(prob-shaping)比較;為了突出在模塊變形的集成電路布圖規(guī)劃和布局方法中引入概率接收的局部搜索方法的有效性,在保證其它運(yùn)行條件(諸如初始解,解的生成方式等)一致的條件下,我們分別提取這兩種方法連續(xù)運(yùn)行10次的結(jié)果進(jìn)行了比較,如下表所示。

從表中可以看出,引入概率接受后,布局結(jié)果的線(xiàn)長(zhǎng)相近,面積平均值及最小值均有較大改進(jìn)。


圖1實(shí)施例1提出的4個(gè)模塊的布局問(wèn)題。
圖2構(gòu)造圖1所述實(shí)施例1的初始布局的拓?fù)浣Y(jié)構(gòu)的方法。
圖3圖1所示的實(shí)施例1的4個(gè)模塊的初始布局拓?fù)浣Y(jié)構(gòu)。
圖4計(jì)算得到的圖1所示的實(shí)施例1的初始布局在近似問(wèn)題中的實(shí)際尺寸。
圖5根據(jù)模塊間拓?fù)潢P(guān)系A(chǔ),建立對(duì)應(yīng)于拓?fù)浣Y(jié)構(gòu)A的布局Q的順序示意圖。
圖6根據(jù)實(shí)施例1當(dāng)前拓?fù)浣Y(jié)構(gòu)A中各模塊大小計(jì)算出的引線(xiàn)端在最終布局中的位置。
圖7通過(guò)把一個(gè)模塊移動(dòng)到另外一個(gè)位置的方法把圖3所示的拓?fù)潢P(guān)系進(jìn)行改變后得到的新的拓?fù)潢P(guān)系。
圖8本發(fā)明用到的概率局部搜索方法的程序流程圖。
圖9求解實(shí)施例2提出的ami33.yal(國(guó)際標(biāo)準(zhǔn)測(cè)試用例)問(wèn)題實(shí)例的主程序流程圖。
圖10圖10.0為構(gòu)造的初始布局圖;在實(shí)施過(guò)程中,當(dāng)α從α=6遞減至α=1,獲得近似最優(yōu)解過(guò)程中相應(yīng)于不同的α值而得到的部分近似問(wèn)題的布局結(jié)果圖。從圖10.1-圖10.10中,α值分別為6.0、1.550915、1.282808、1.074526、1.004437、1.001003、1.000226、1.000051、1.000013、1.0。在圖10.9中,保持圖10.8的拓?fù)洳蛔?,恢?fù)原始模塊大小,計(jì)算相應(yīng)的布局作為初始布局,求得原始問(wèn)題的解。
表1近似因子α=6的近似問(wèn)題的最終布局中的模塊寬度、高度和坐標(biāo)。
表2原始模塊大小及最終布局坐標(biāo)。
表3對(duì)應(yīng)于圖10.1中α=6時(shí)部分模塊的引線(xiàn)端坐標(biāo)表4對(duì)應(yīng)于圖10.10中α=1時(shí)部分模塊的引線(xiàn)端坐標(biāo)。
具體實(shí)施例方式本方法具體實(shí)施中使用的硬件環(huán)境均為sun公司的v880工作站,4個(gè)750M的cpu,8G內(nèi)存。
實(shí)施實(shí)例1用以說(shuō)明如何根據(jù)原問(wèn)題構(gòu)造初始拓?fù)浣Y(jié)構(gòu)及相應(yīng)的布局,并計(jì)算出線(xiàn)長(zhǎng)估計(jì)值。
設(shè)n個(gè)模塊的布局問(wèn)題模塊集合M={Mi(wi,hi)|i∈[1..n]},(wi,hi)為模塊Mi的寬和高;設(shè)共有m個(gè)引線(xiàn)端(位于模塊邊界),所有引線(xiàn)端集合PIN={pji(pin_xji,pin_yji)|j∈[1...m],]]>i∈[1...n]},]]>其中j為引線(xiàn)端標(biāo)號(hào),i為該引線(xiàn)端所屬的模塊編號(hào),(pin_xji,pin_yji)為pji相對(duì)于其所在模塊i左下角的坐標(biāo);NET={(pi,...,pk),...,(pj,...,pl)},位于同一個(gè)括號(hào)內(nèi)的引線(xiàn)端屬于同一個(gè)線(xiàn)網(wǎng),也就是說(shuō)同一括號(hào)內(nèi)的引線(xiàn)端之間存在連接關(guān)系。在實(shí)施例1中,M={M1(6,3),M2(2,5),M3(4,5),M4(2,8)},PIN={p11(1,3),p21(2,0),p32(0,3),p42(2,1),p53(2,0),p63(4,3),p74(0,1),p84(2,4),p94(1,8)},其中p11,p21表示引線(xiàn)端p1、p2都屬于模塊1,后面括號(hào)內(nèi)的數(shù)據(jù)是它們對(duì)模塊1左下角頂點(diǎn)的坐標(biāo);NET={(p1,p3,p9),(p2,p4,p8),(p5,p6,p7)}。接著用上面所述方法,根據(jù)設(shè)定的起始位置按照模塊編號(hào)由小到大的順序,從模塊M1開(kāi)始,沿著網(wǎng)格由下向上,然后由左向右的順序依次安置模塊到矩形網(wǎng)格的方法構(gòu)造初始布局的拓?fù)浣Y(jié)構(gòu),如圖2所示,并記為A。接著,求取當(dāng)前近似問(wèn)題最優(yōu)解或近似最優(yōu)解。首先根據(jù)給定的近似因子α的值和歸一化參數(shù)pw,ph,即α=2,pw=10,ph=10,用公式w‾=14Σiwi,]]>h‾=14Σiwi]]>計(jì)算各模塊寬、高的平均值w、h,再用計(jì)算wi(α)、hi(α)的第一種可供選擇的公式計(jì)算模塊在近似問(wèn)題中的實(shí)際尺寸,如圖4所示。接著再按圖5所示的順序,計(jì)算模塊右上角坐標(biāo),建立相應(yīng)于拓?fù)潢P(guān)系A(chǔ)的布局Q并計(jì)算芯片的寬長(zhǎng)比,其結(jié)果見(jiàn)圖6。在計(jì)算每一個(gè)模塊的右上角坐標(biāo)時(shí),該模塊左面和下面的模塊的坐標(biāo)都是已被計(jì)算過(guò)的。各模塊右上角坐標(biāo)分別為M1’(4.13,4.74),M2’(3.28,9.98),M3’(7.65,5.24),M4’(7.41,11.25),相應(yīng)的布局如圖6所示。接著,再用上面所述的公式根據(jù)當(dāng)前模塊的大小計(jì)算相應(yīng)引線(xiàn)端相對(duì)于該模塊左下角頂點(diǎn)的坐標(biāo),并根據(jù)模塊右上角坐標(biāo)計(jì)算引線(xiàn)端在該α值時(shí)在最終布局中的位置,請(qǐng)見(jiàn)圖6。然后,再根據(jù)上面所述公式計(jì)算個(gè)線(xiàn)網(wǎng)線(xiàn)長(zhǎng)估計(jì)值及總線(xiàn)長(zhǎng)估計(jì)值,在圖6所示的布局實(shí)例中,三個(gè)線(xiàn)網(wǎng)的估計(jì)值分別為L(zhǎng)(p1,p3,p9)=(5.77-0)+(11.25-4.74)=12.28;L(p2,p4,p8)=(7.41-1.38)+(8.24-0)=14.27;L(p5,p6,p7)=(7.65-4.13)+(5.99-0)=9.51;總線(xiàn)長(zhǎng)估計(jì)值為L(zhǎng)=L(p1,p3,p9)+L(p2,p4,p8)+L(p5,p6,p7)=36.06實(shí)施例2用國(guó)際基準(zhǔn)測(cè)試電路實(shí)例MCNC ami33.yal做實(shí)例結(jié)合圖9用本發(fā)明的方法進(jìn)行模塊布局。圖10中給出了求解過(guò)程中,所有近似問(wèn)題的解。起初試布局見(jiàn)圖10.0,對(duì)應(yīng)的模塊大小及坐標(biāo)見(jiàn)表1。近似因子α=6的近似問(wèn)題的最終布局中的模塊坐標(biāo)見(jiàn)表2。原始模塊尺寸大小及最終布局坐標(biāo)見(jiàn)表3。α=6的布局中部分模塊上引線(xiàn)端坐標(biāo)見(jiàn)表4。α=1的部分模塊的引線(xiàn)端坐標(biāo)見(jiàn)表5。在本實(shí)施例中,計(jì)算了α=6的近似問(wèn)題中模塊的尺寸以及該近似問(wèn)題的解中模塊坐標(biāo)及部分引線(xiàn)端坐標(biāo),當(dāng)求解α=5的近似問(wèn)題時(shí),將保持圖10.1的拓?fù)浣Y(jié)構(gòu)不變,計(jì)算相應(yīng)的布局作為初始布局,再往下的求解過(guò)程從略,最終結(jié)果用表1,表5表示,它依次有以下步驟1.初始化設(shè)置(1).近似因子的初始值,也就是α的最大值;(2).求解近似問(wèn)題時(shí)局部搜索次數(shù)NOIMPUP;(3).設(shè)置最終布局的目標(biāo)寬長(zhǎng)比及其權(quán)重;(4).設(shè)置目標(biāo)函數(shù)中總線(xiàn)長(zhǎng)的權(quán)重。
2.以下步驟按圖8、圖9所示的流程圖進(jìn)行,具體結(jié)果見(jiàn)圖10及表1-表5。
本發(fā)明提出的方法已如上所述,它有如下優(yōu)點(diǎn)(1).用一系列近似問(wèn)題逐漸逼近原問(wèn)題,使得在求解原問(wèn)題時(shí)可以獲得一個(gè)較好的初始解;(2).所采用的模塊變形策略和近似因子控制策略在不降低效率的條件下能夠產(chǎn)生相對(duì)其它隨機(jī)優(yōu)化方法更為穩(wěn)定的解;(3).調(diào)整模塊變形策略和問(wèn)題的近似策略,可以進(jìn)一步改進(jìn)原問(wèn)題的解的質(zhì)量。
(4).具有工業(yè)應(yīng)用價(jià)值,可以用于集成電路設(shè)計(jì)過(guò)程中包含知識(shí)產(chǎn)權(quán)模塊的模塊布局;分級(jí)設(shè)計(jì)中的模塊布局。
(5)采用概率局部搜索方法,進(jìn)一步改善了布局結(jié)果的質(zhì)量表格1近似因子α=6的近似問(wèn)題中模塊尺寸及最終布局的模塊坐標(biāo)。

表格2原始模塊大小及最終布局坐標(biāo)

表格3對(duì)應(yīng)于圖10.1的布局中部分模塊的引線(xiàn)端坐標(biāo)m模塊編號(hào)m_x、m_y引線(xiàn)端相對(duì)于所屬模塊左下角的橫坐標(biāo)和縱坐標(biāo)x、y引線(xiàn)端在近似問(wèn)題的最終布局中的橫坐標(biāo)和縱坐標(biāo)

表格4最終布局(圖10.9)中部分模塊的引線(xiàn)端坐標(biāo)(標(biāo)簽說(shuō)明同表4)

權(quán)利要求
1.基于模塊變形和概率局部搜索的集成電路模塊級(jí)布局方法,其特征在于,它以計(jì)算機(jī)為工具,依次采用以下步驟來(lái)實(shí)現(xiàn)(1).初始化,設(shè)置近似因子的初始值,也就是αmax,α>1;求解近似問(wèn)題時(shí)用的局部搜索次數(shù)NOIMPUP;設(shè)置最終布局的目標(biāo)寬長(zhǎng)比R及其權(quán)重ω;設(shè)置目標(biāo)函數(shù)Cost中總線(xiàn)長(zhǎng)TotalWirelength的權(quán)重λ。(2).計(jì)算機(jī)從模塊描述文件依次讀入以下模塊及線(xiàn)網(wǎng)信息(2.1).讀入模塊四角坐標(biāo),并根據(jù)模塊四角坐標(biāo)計(jì)算模塊的寬w、高h(yuǎn);(2.2).讀入模塊上引線(xiàn)端坐標(biāo),并將其轉(zhuǎn)化為相對(duì)模塊左下角的坐標(biāo);(2.3).按讀入順序?yàn)槟K編號(hào)i,計(jì)算總模塊數(shù)n、a各模塊面積之總和;(2.4).按下列公式計(jì)算讀入的所有n個(gè)模塊的寬、高平均值w、h;w‾=1nΣiwi,h‾=1nΣiwi]]>(3).構(gòu)造初始布局的拓?fù)浣Y(jié)構(gòu)即模塊間的位置關(guān)系,并記為A它是指按照模塊編號(hào)i由小到大的順序,從任意設(shè)定的起始位置沿矩形網(wǎng)格由下向上,然后由左向右的順序,依次安置模塊到矩形網(wǎng)格的方法構(gòu)造初始布局的拓?fù)浣Y(jié)構(gòu);(4).計(jì)算布局問(wèn)題最優(yōu)或近似最優(yōu)解(4.1).根據(jù)近似因子αk的值按下列公式計(jì)算模塊i在近似問(wèn)題中的實(shí)際尺寸wi(αk),hi(αk); 其中wi、hi分別為模塊i的寬、高,wi(αk),hi(αk)分別為模塊i在近似因子α下的實(shí)際的寬、高,pw,ph為歸一化參數(shù),其取值滿(mǎn)足max(wi)i∈{1,...,n}/10pw∈(0,1],max(hi)i∈{1,...,n}/10ph∈(0,1],]]>(4.2).根據(jù)模塊間拓?fù)潢P(guān)系A(chǔ),建立對(duì)應(yīng)于拓?fù)浣Y(jié)構(gòu)A的布局Q它是指從網(wǎng)格左下角坐標(biāo)頂點(diǎn)所在的網(wǎng)格開(kāi)始,從右下角向左上角作一條對(duì)角線(xiàn)(135°對(duì)角線(xiàn)),依次從上述左下角坐標(biāo)頂點(diǎn)向x方向右移一個(gè)網(wǎng)格,再?gòu)男碌挠蚁陆窍蛐碌淖笊辖亲饕粭l也是135度的對(duì)角線(xiàn),如此重復(fù),一直做到右上角的網(wǎng)格為止;再?gòu)牡谝粭l對(duì)角線(xiàn)開(kāi)始,依次兩兩連接相鄰對(duì)角線(xiàn)的左上角,且每條對(duì)角線(xiàn)只被連接一次;從第二條對(duì)角線(xiàn)開(kāi)始,依次兩兩連接對(duì)角線(xiàn)的右下角,且每條對(duì)角線(xiàn)也只被連接一次;然后從上述左下角坐標(biāo)頂點(diǎn)所在的網(wǎng)格開(kāi)始,建立相應(yīng)的布局,在計(jì)算過(guò)程中,各模塊左面和下面的模塊的坐標(biāo)都已經(jīng)先期計(jì)算過(guò);同時(shí)計(jì)算芯片的寬長(zhǎng)比;(4.3).用下列公式根據(jù)當(dāng)前各模塊大小計(jì)算相應(yīng)引線(xiàn)端相對(duì)該模塊左下角頂點(diǎn)的坐標(biāo)(pin_xji(α),pin_yji(α));]]> 其中pin_xji,pin_yji是原問(wèn)題中第i個(gè)模塊第j個(gè)引線(xiàn)端相對(duì)模塊左下角頂點(diǎn)的坐標(biāo);wi、hi原問(wèn)題中模塊i的寬和高;再用下述公式并根據(jù)布局中模塊i的右上角坐標(biāo)xi,yi計(jì)算引線(xiàn)端在布局中的位置即引線(xiàn)端對(duì)矩形網(wǎng)格左下角頂點(diǎn)的坐標(biāo)(p_xji(α),p_yij(α));]]> 其中xi,yi,為本布局中模塊i的右上角坐標(biāo)。(4.4).根據(jù)下述公式計(jì)算各線(xiàn)網(wǎng)線(xiàn)長(zhǎng)估計(jì)值,及總線(xiàn)長(zhǎng)估計(jì)值,單個(gè)線(xiàn)網(wǎng)是由相互之間存在連接關(guān)系的引線(xiàn)端構(gòu)成的,單個(gè)線(xiàn)網(wǎng)的線(xiàn)長(zhǎng)根據(jù)線(xiàn)網(wǎng)中的引線(xiàn)端位置用下述半周長(zhǎng)模型進(jìn)行估計(jì)設(shè)某線(xiàn)網(wǎng)N的m個(gè)引線(xiàn)端p1(x1,y1),…,pm(xm,ym),則該線(xiàn)網(wǎng)的線(xiàn)長(zhǎng)WireLength(N)用下述公式估計(jì),WireLength(N)=(maxl∈{1,...,m}(xl)-maxl∈{1,...,m}(xl))+(maxl∈{1,...,m}(yl)-maxl∈{1,...,m}(yl))]]>總線(xiàn)長(zhǎng)估計(jì)值為 (4.5).用下列公式評(píng)價(jià)布局Q,得到目標(biāo)函數(shù)值CostQ;CostQ=Areα+λ×TotalWireLength+ω×Rs2;其中Area=max{xi}i∈[1...n]×max{yi}i∈[1...n]]]>Rs=/R-max(ration,1/ration)/;其中R為期望的芯片寬長(zhǎng)比,ration為芯片實(shí)際寬長(zhǎng)比;(4.6).運(yùn)用概率局部搜索的方法,求取當(dāng)前近似問(wèn)題實(shí)例的近似最優(yōu)解從循環(huán)變量R=0開(kāi)始,當(dāng)R<NOIMPUP時(shí),依次重復(fù)以下步驟(4.6.1).用下列方法從當(dāng)前布局產(chǎn)生新的布局,把新的拓?fù)浣Y(jié)構(gòu)記為A1要改變布局的拓?fù)浣Y(jié)構(gòu),用下列方法之一a.交換兩個(gè)模塊的位置;b.把一個(gè)模塊移動(dòng)到另外一個(gè)位置;要改變模塊方向以有利于優(yōu)化線(xiàn)長(zhǎng)時(shí),用下列方法之一a.隨機(jī)選擇一個(gè)模塊進(jìn)行旋轉(zhuǎn),旋轉(zhuǎn)角度通過(guò)隨機(jī)函數(shù)選取為90°,或180°,或270°;b.隨機(jī)選擇一個(gè)模塊進(jìn)行翻轉(zhuǎn),翻轉(zhuǎn)軸通過(guò)隨機(jī)函數(shù)選取為水平軸,或垂直軸或模塊對(duì)角線(xiàn);(4.6.2).建立對(duì)應(yīng)于拓?fù)浣Y(jié)構(gòu)A1的布局Q1,即計(jì)算各模塊的右上角坐標(biāo),并計(jì)算芯片的寬長(zhǎng)比;(4.6.3).根據(jù)當(dāng)前各模塊大小計(jì)算用上述已知公式計(jì)算相應(yīng)引線(xiàn)端相對(duì)相應(yīng)模塊左下角的坐標(biāo);并根據(jù)模塊右上角坐標(biāo)用上面已述公式計(jì)算引線(xiàn)端在新布局Q1中的位置。(4.6.4).根據(jù)上面已述公式計(jì)算各線(xiàn)網(wǎng)的線(xiàn)長(zhǎng)估計(jì)值,及總線(xiàn)長(zhǎng)估計(jì)值;(4.6.5).用上面已述的目標(biāo)函數(shù)計(jì)算公式計(jì)算新布局Q1的目標(biāo)函數(shù)值CostQ1;(4.6.6).按下列公式計(jì)算接受所產(chǎn)生新解的概率APα 其中costsmooth取值為步驟(4.5)中所計(jì)算的目標(biāo)函數(shù)值;costα的初始值設(shè)為costsmooth,以后每次使用的值在步驟(4.6.7)中計(jì)算;如果CostQ1<=CostQ則接受新解A1,令A(yù)←A1,Q←Q1,R←0,CostQ←CostQ1;如果CostQ1>CostQ,則依據(jù)計(jì)算的概率Aα按如下方法接收新解a.在0~C之間隨機(jī)地選取一個(gè)cr,C為不同的常數(shù),通常為100000,b.使r=cr/C;c.若r<Aα則接收新解A1令A(yù)←A1,Q←Q1,R←0,CostQ←CostQ1;否則拋棄新解,R←R+1;(4.6.7).保持模塊間拓?fù)浣Y(jié)構(gòu)不變,恢復(fù)各模塊在原問(wèn)題中的尺寸即原始尺寸,重復(fù)上述(4.6.2)~(4.6.5)的步驟,計(jì)算目標(biāo)函數(shù)值作為下一次計(jì)算新解接受概率的Costα;(4.6.8).轉(zhuǎn)步驟(4.6.1);(5).輸出當(dāng)前布局Q;(6).用下述公式計(jì)算下一個(gè)近似問(wèn)題的近似因子αk 若α≥1,則以當(dāng)前的拓?fù)浣Y(jié)構(gòu)A作為初始布局的拓?fù)浣Y(jié)構(gòu),求解下一個(gè)近似問(wèn)題;若α<1,則當(dāng)前布局即為最終布局,作為原問(wèn)題實(shí)例的最終解輸出。
2.根據(jù)權(quán)利要求1所述的基于模塊變形和概率局部搜索的集成電路模塊級(jí)布局方法,其特征在于所述的步驟(4.1)中計(jì)算模塊i在近似問(wèn)題中的實(shí)際大小wi(αk),hi(αk)可按下式中的任一式計(jì)算
全文摘要
基于模塊變形和概率局部搜索的集成電路模塊級(jí)布局方法屬于集成電路CAD技術(shù)領(lǐng)域,其特征在于它以原問(wèn)題為基礎(chǔ),通過(guò)模塊變形來(lái)生成一系列逐步逼近原問(wèn)題的簡(jiǎn)單的布局問(wèn)題,再逐步求解這些問(wèn)題來(lái)得到原問(wèn)題的解;在逐步逼近過(guò)程中,用近似因子α控制模塊變形的程度,從最簡(jiǎn)單的近似問(wèn)題開(kāi)始,把當(dāng)前解作為下一個(gè)近似問(wèn)題的初始解,逐步應(yīng)用概率局部搜索方法求解這一系列近似的問(wèn)題,直到α=1時(shí),使各模塊大小等于原始各模塊大小,該近似問(wèn)題即為原問(wèn)題。在引入概率接受后,布局結(jié)果的線(xiàn)長(zhǎng)相近,面積平均值及最小值均比單一使用模塊變形的方法有較大改善,具有廣泛工業(yè)應(yīng)用價(jià)值。
文檔編號(hào)G06F17/50GK1560771SQ20041003078
公開(kāi)日2005年1月5日 申請(qǐng)日期2004年4月9日 優(yōu)先權(quán)日2004年2月20日
發(fā)明者董社勤, 洪先龍, 陳松, 王銳杰, 齊鑫 申請(qǐng)人:清華大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
安阳市| 墨竹工卡县| 元氏县| 柏乡县| 土默特左旗| 迭部县| 上饶县| 会同县| 襄汾县| 遂宁市| 汉中市| 广河县| 周至县| 昭平县| 双柏县| 普格县| 柳州市| 隆尧县| 连南| 鲁甸县| 宣城市| 平遥县| 龙胜| 临沭县| 正蓝旗| 乐业县| 永济市| 武川县| 登封市| 女性| 精河县| 铁力市| 大庆市| 来安县| 五河县| 孙吴县| 通江县| 汽车| 沈阳市| 安达市| 垦利县|