一種針對(duì)軟模塊的固定邊框的集成電路布圖規(guī)劃方法
【專利摘要】本發(fā)明公開了一種針對(duì)軟模塊的固定邊框的集成電路布圖規(guī)劃方法,該方法先采用SA算法以固定邊框和總線長(zhǎng)為目標(biāo)搜索布圖解的解空間,布圖解采用NPE表示,對(duì)每個(gè)所得的布圖解,應(yīng)用形狀曲線相加算法來(lái)獲得其最優(yōu)的布圖實(shí)現(xiàn);然后對(duì)SA搜索到的布圖解進(jìn)行判斷;如果布圖解已滿足固定邊框約束,則直接對(duì)其進(jìn)行總線長(zhǎng)優(yōu)化,將線長(zhǎng)優(yōu)化后的布圖解作為最終的布圖解輸出,完成布圖規(guī)劃;如果布圖解不滿足固定邊框約束,則先應(yīng)用IAD算子對(duì)其進(jìn)行后布圖優(yōu)化,然后再進(jìn)行總線長(zhǎng)優(yōu)化;優(yōu)點(diǎn)是新增了后布圖優(yōu)化步驟,放寬了SA優(yōu)化時(shí)對(duì)解的苛刻的固定邊框約束,從而有效提高了算法速度和布圖成功率;同時(shí)對(duì)總線長(zhǎng)進(jìn)行了二次優(yōu)化,可以獲得較低的總線長(zhǎng)的布圖結(jié)果。
【專利說明】一種針對(duì)軟模塊的固定邊框的集成電路布圖規(guī)劃方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種集成電路布圖規(guī)劃方法,尤其是涉及一種針對(duì)軟模塊的固定邊框的集成電路布圖規(guī)劃方法。
【背景技術(shù)】
[0002]布圖規(guī)劃(Floorplanning)是集成電路物理設(shè)計(jì)中的一個(gè)重要步驟。隨著SoC(系統(tǒng)級(jí)芯片)設(shè)計(jì)規(guī)模和復(fù)雜性的日益增長(zhǎng),基于可復(fù)用IP核的層次化設(shè)計(jì)已成為當(dāng)今SoC設(shè)計(jì)的主要手段。在層次化設(shè)計(jì)中,集成電路的形狀和面積通常在更高層設(shè)計(jì)中就已確定,因此,現(xiàn)代布圖規(guī)劃實(shí)際上是一種固定邊框的布圖規(guī)劃(Fixed-Outline Floorplaning,FOF),FOF已成為當(dāng)前集成電路物理設(shè)計(jì)的一個(gè)研究熱點(diǎn)。在布圖規(guī)劃中,有兩種類型的模塊:軟模塊和硬模塊,軟模塊指的是模塊面積不變,高寬比可以在一定范圍內(nèi)變化的模塊;硬模塊指的是模塊面積和高寬比均不能變化的固定模塊。相對(duì)于硬模塊,軟模塊具有更強(qiáng)的靈活性,在布圖規(guī)劃取得了廣泛的應(yīng)用。
[0003]在FOF問題中,不僅要求所有模塊不重疊的放置到指定邊框的區(qū)域內(nèi),而且需要同時(shí)優(yōu)化線長(zhǎng)和功耗等指標(biāo),因此,它要比傳統(tǒng)的自由邊框(Outline-free)的布圖規(guī)劃復(fù)雜得多。目前為了解決FOF問題,研究人員提出了很多方法,其中比較常用的有以下幾種方法:第一種方法是文獻(xiàn) IAdya S N and Markov I L.Fixed-outline foorplanning:enablinghierarchical design[J].1EEE Transactions on Very Large Scale Integration(VLSI)Systems, 2003,11 (6):1120-1135.(Adya S N 和 Markov I L.固定邊框的布圖規(guī)劃使層次化設(shè)計(jì)成為可能[J].1EEE超大規(guī)模集成系統(tǒng)學(xué)報(bào),2003,11 (6):1120-1135)中提出的一種基于序列對(duì)表示和模擬退火算法(Simulated Annealing, SA)的固定邊框布圖規(guī)劃算法,該方法將固定邊框約束作為懲罰項(xiàng)加入到目標(biāo)函數(shù)。然而,在對(duì)軟模塊進(jìn)行布圖規(guī)劃時(shí),由于給定的邊框約束非??量?芯片空白面積率低于1%),單純依賴SA算法難以保證獲得較高的布圖成功率。第二種方法是文獻(xiàn)2He 0u, Dong She-qin, and BianJ1-nian.A novel fixed-outline floorplanner with zero deadspace for hierarchicaldesign [C].1EEE/ACM International Conference on Computer-Aided Design,SanJose, California, USA, 2008, 16-23.(何El,董社勤,邊計(jì)年.一種新的用于層次化設(shè)計(jì)的零空白面積的固定邊框布圖規(guī)劃器[J],IEEE/ACM計(jì)算機(jī)輔助設(shè)計(jì)國(guó)際會(huì)議,圣何塞,加利福尼亞,美國(guó),2008,16-23)中提出的基于有序四叉樹(Ordered Quadtree)布圖表示,它通過迭代構(gòu)建和求解一組四變量的二次方程組來(lái)處理固定邊框約束,實(shí)現(xiàn)了 100%的面積利用率,但耗時(shí)較長(zhǎng)。第三種方法是文獻(xiàn)3Zhan Yong, Feng Yan, and Sapatnekar S S.Afixed-die floorplanning algorithm using an analytical approach[C].Ilth Asia andSouth Pacific Design Automation Conference, Yokohama, Japan, 2006, 771-776.(ZhanYong, Feng Yan, and Sapatnekar S S.一種基于分析的固定芯片布圖規(guī)劃方法[C].第11屆亞洲和南太平洋設(shè)計(jì)自動(dòng)化會(huì)議,橫濱,日本,2006, 771-776)中提出的一種基于二次分析的方法,在10%空白面積率下實(shí)現(xiàn)了 90%以上的布圖成功率,但由于該方法將模塊位置限制在芯片的某個(gè)子區(qū)域內(nèi),減少了總線長(zhǎng)優(yōu)化的空間,難以獲得較低的總線長(zhǎng)。第四種方法是文獻(xiàn) 4Lin Ja1-ming and Hung Zh1-xiong.SKB-Tree:A fixed-outline drivenrepresentation for modern floorplanning problems[J].1EEE Transactions on VeryLarge Scale Integration(VLSI)Systems, 2012, 20(3):473-484.(Lin Ja1-ming and HungZh1-xiong.SKB樹:一種固定邊框驅(qū)動(dòng)的用于現(xiàn)代布圖規(guī)劃問題的布圖表示方法,IEEE超大規(guī)模集成系統(tǒng)學(xué)報(bào),2012, 20(3):473-484)中提出的一種布圖表示——SKB(SKewedB*-tree),通過不斷的將所有模塊分割到若干子樹,再將每個(gè)子樹放置在指定寬度的區(qū)域內(nèi)來(lái)實(shí)現(xiàn)固定邊框約束,但這種布圖表示方法由于搜索過程中易導(dǎo)致解結(jié)構(gòu)變動(dòng)過大,因此存在算法收斂速度慢的問題。
[0004]綜上所述,現(xiàn)有針對(duì)軟模塊的集成電路布圖規(guī)劃方法布圖成功率較高的則布圖時(shí)間較長(zhǎng),而布圖時(shí)間較短的則布圖成功率較低或總線長(zhǎng)較長(zhǎng),因此,研究一種可在較短時(shí)間內(nèi)獲得較高布圖成功率和較低總線長(zhǎng)的集成電路布圖規(guī)劃算法具有重要意義。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所要解決的技術(shù)問題是提供一種可在較短時(shí)間內(nèi)獲得較高布圖成功率和較低總線長(zhǎng)的針對(duì)軟模塊的固定邊框的集成電路布圖規(guī)劃方法。
[0006]本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案為:一種針對(duì)軟模塊的集成電路布圖規(guī)劃方法,包括以下步驟:
[0007]①讀入集成電路的模塊和互連信息文件,隨機(jī)產(chǎn)生NPE表示的初始布圖解;
[0008]②以總線長(zhǎng)和固定邊框約束為目標(biāo)采用SA算法搜索解空間,并將搜索到的布圖解記為S1 ;
[0009]③對(duì)布圖解S1進(jìn)行判定:如果布圖解S1滿足指定的固定邊框約束,將所得的布圖解作為固定邊框約束下的最優(yōu)布圖解輸出;如果布圖解S1不滿足固定邊框約束,則對(duì)布圖解S1進(jìn)行后布圖優(yōu)化,后布圖優(yōu)化的具體過程為:
[0010]③-1如果布圖解中兩個(gè)操作數(shù)運(yùn)算后產(chǎn)生的空白面積大于等于Ath,則這兩個(gè)操作數(shù)之間的組合稱為非優(yōu)組合,其中操作數(shù)為組成集成電路的獨(dú)立軟模塊或由多個(gè)獨(dú)立軟模塊運(yùn)算得到的復(fù)合模塊(獨(dú)立軟模塊對(duì)應(yīng)布圖解的Slicing Tree中的葉節(jié)點(diǎn),復(fù)合模塊對(duì)應(yīng)布圖解的Slicing Tree中的分支節(jié)點(diǎn)),A/400 ( Ath ( A/500,其中A為集成電路中所有軟模塊的總面積,找出S1中所有的非優(yōu)組合,按照所產(chǎn)生空白面積從大到小順序?qū)⒚總€(gè)非優(yōu)組合中面積較小的操作數(shù)保存到列表Delete_0p_List中,Delete_0p_List (j)表示該列表的第j個(gè)元素,j=l,2,……,k,k為S1中非優(yōu)組合的總數(shù);
[0011]③-2將S1賦予S2,將S2作為后布圖優(yōu)化的初始解,對(duì)S2進(jìn)行優(yōu)化:
[0012]a.取出列表 Delete_0p_List 中的第一個(gè)操作數(shù) Delete_0p_List(l),從32 中刪除Delete_0p_List (I)及其對(duì)應(yīng)的運(yùn)算符,得到S2’ ;
[0013]b.將Delete_0p_List (I)與S2’中除列表Delete_0p_List中操作數(shù)以外的其他操作數(shù)分別進(jìn)行和“ + ”組合,每一次組合產(chǎn)生一個(gè)新的布圖解,對(duì)每個(gè)所得的布圖解,應(yīng)用形狀曲線相加算法計(jì)算出其形狀曲線 ,在1’上找出最接近固定邊框的頂點(diǎn)作為該布圖解的布圖實(shí)現(xiàn);
[0014]c.將函數(shù)Cost=W+ H/ λ作為目標(biāo)函數(shù)來(lái)評(píng)估每一種組合下所得到布圖解的質(zhì)量,其中W為布圖解的寬度,H為布圖解的高度,λ為固定邊框的高寬比,將其中Cost取值最小的布圖解作為優(yōu)化解,記為S3 ;
[0015]d.判定Delete_0p_LiSt (I)是否是復(fù)合模塊:如果不是,則將S3作為對(duì)S2第1次優(yōu)化后的布圖解;如果是,則將Delete_0p_LiSt(l)拆分為多個(gè)獨(dú)立軟模塊,并將它們按照面積從大到小的順序逐一插入到S2’中,每個(gè)獨(dú)立軟模塊的插入方法與步驟b和步驟c所示的Delete_0p_LiSt(l)的插入方法相同,并且后一個(gè)獨(dú)立軟模塊是插入到前一位獨(dú)立軟模塊插入后得到的優(yōu)化解中,由此得到第1次優(yōu)化的布圖解S4,將&和S4進(jìn)行比較,將兩者中Cost更小的布圖解作為對(duì)S2第1次優(yōu)化后的布圖解;
[0016] e.將對(duì)S2經(jīng)I次優(yōu)化后得到的布圖解重新賦給S2,按照步驟a~步驟d中的相同的方法依次對(duì)列表Delete_0p_List保存中的其他操作數(shù)進(jìn)行優(yōu)化處理,由此得到S2經(jīng)k次優(yōu)化后的布圖解作為固定邊框約束條件下的最優(yōu)布圖解輸出;
[0017]④對(duì)所得的固定邊框約束下的最優(yōu)布圖解,通過交換同一運(yùn)算符下兩個(gè)操作數(shù)位置進(jìn)行總線長(zhǎng)優(yōu)化,得到最終布圖解。
[0018]所述的步驟b中,對(duì)Delete_0p_List (I)與S2’中除列表Delete_0p_List中保存的操作數(shù)以外的其他操作數(shù)每進(jìn)行一次或“ + ”組合運(yùn)算所得到的布圖解,應(yīng)用形狀曲線相加算法計(jì)算出其相應(yīng)的形狀曲線后,對(duì)形狀曲線進(jìn)行插值處理后然后找出形狀曲線上最接近固定邊框的頂點(diǎn)作為該布圖解的布圖實(shí)現(xiàn)。
[0019]與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:(1)采用NPE表示布圖解,不僅計(jì)算簡(jiǎn)便,而且可以利用形狀曲線相加技術(shù)獲得每個(gè)布圖解所有可能的布圖實(shí)現(xiàn),從而可以減少算法搜索的次數(shù),提高算法的運(yùn)行速度;(2)采用了一種改進(jìn)的布圖規(guī)劃流程,在傳統(tǒng)的布圖規(guī)劃流程之后增加了一個(gè)后布圖優(yōu)化步驟,有效提高了固定邊框約束下布圖規(guī)劃的成功率;本發(fā)明方法先通過SA算法來(lái)搜索整個(gè)布圖解空間,然后對(duì)所得的布圖解進(jìn)行判斷,當(dāng)它滿足固定邊框約束時(shí),就將該布圖解作為固定邊框約束下的最優(yōu)布圖解輸出,完成布圖規(guī)劃;當(dāng)它不滿足固定邊框約束時(shí),提出了一種基于IAD算子的后布圖優(yōu)化方法對(duì)其進(jìn)行優(yōu)化,后優(yōu)化過程將SA所求得布圖解作為后布圖優(yōu)化的初始解,先找出該解中存在的非優(yōu)組合,然后將這些非優(yōu)組合中面積較小的操作數(shù)采用刪除后再插入算子進(jìn)行優(yōu)化,最終得到合法的布圖解,采用刪除后插入算子來(lái)消除一對(duì)非優(yōu)組合最多需進(jìn)行2 (η-l)次插入操作,η為軟模塊的數(shù)量;由于經(jīng)過SA算法優(yōu)化后,所得布圖解中存在的非優(yōu)組合的數(shù)目并不多,因此,新增的后布圖優(yōu)化步驟所需的計(jì)算量和前面SA算法相比基本上可以忽略,由此,通過SA算法和后布圖優(yōu)化過程,可以在保證布圖成功率較高的基礎(chǔ)上,布圖時(shí)間較短;
[0020]當(dāng)采用插值技術(shù)來(lái)獲得每一種組合下所得布圖解的最優(yōu)實(shí)現(xiàn)時(shí),可以進(jìn)一步減少所得布圖的空白面積,同時(shí)一定程度上提高布圖方法的速度。
【專利附圖】
【附圖說明】
[0021]圖1(a)為布圖示例;
[0022]圖1(b)為I (a)中布圖的切分樹(Slicing Tree, ST)表示;
[0023]圖2(a)為含有第I種非優(yōu)組合的布圖F1及其對(duì)應(yīng)的ST表示;
[0024]圖2(b)為對(duì)圖2 Ca)進(jìn)行布圖后優(yōu)化后的結(jié)果;
[0025]圖3(a)為含有第2種非優(yōu)組合的布圖F2及其對(duì)應(yīng)的ST表示;[0026]圖3 (b)為圖3 (a)的優(yōu)化布圖;
[0027]圖4為軟模塊采用形狀曲線表示示意圖;
[0028]圖5 (a)為兩個(gè)軟模塊Hi1和m2相應(yīng)的形狀曲線橫向相加得到軟模塊組合m3的示意圖;
[0029]圖5 (b)為兩個(gè)軟模塊Hi1和m2相應(yīng)的形狀曲線縱向相加得到軟模塊組合m3的示意圖;
[0030]圖6為對(duì)形狀曲線進(jìn)行插值技術(shù)處理示意圖;
[0031]圖7為λ =1時(shí)本發(fā)明的方法和文獻(xiàn)I中Parquet4.0在Y =10%下GSRC和MCNC中5個(gè)最大的電路的布圖成功率(Success Rate, SR)的比較圖;
[0032]圖8為λ =1時(shí)本發(fā)明的方法和文獻(xiàn)I中Parquet4.0在Y =1%下GSRC和MCNC中5個(gè)最大的電路的布圖成功率(Success Rate, SR)的比較圖;
[0033]圖9為n300在λ =1~4時(shí)的布圖結(jié)果。
【具體實(shí)施方式】
[0034]以下結(jié)合附圖實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
[0035]實(shí)施例:一種針對(duì)軟模塊的集成電路固定邊框的布圖規(guī)劃方法,包括以下步驟:
[0036]①讀入集成電路的模塊和互連信息文件,隨機(jī)產(chǎn)生NPE表示的初始布圖解;
[0037]②以總線長(zhǎng)和固定邊框約束為目標(biāo)采用SA算法搜索解空間,并將搜索到的布圖解記為S1 ;
[0038]③對(duì)布圖解S1進(jìn)行判定:如果布圖解S1滿足指定的固定邊框約束,將所得的布圖解作為固定邊框約束下的最優(yōu)布圖解輸出;如果布圖解S1不滿足固定邊框約束,則對(duì)布圖解S1進(jìn)行后布圖優(yōu)化,后布圖優(yōu)化的具體過程為:
[0039]③-1如果布圖解中兩個(gè)操作數(shù)運(yùn)算后產(chǎn)生的空白面積大于等于Ath,則這兩個(gè)操作數(shù)之間的組合稱為非優(yōu)組合,其中操作數(shù)為組成集成電路的獨(dú)立軟模塊或由多個(gè)獨(dú)立軟模塊運(yùn)算得到的復(fù)合模塊(獨(dú)立軟模塊對(duì)應(yīng)布圖解的Slicing Tree中的葉節(jié)點(diǎn),復(fù)合模塊對(duì)應(yīng)布圖解的Slicing Tree中的分支節(jié)點(diǎn)),A/400 ( Ath ( A/500,其中A為集成電路中所有軟模塊的總面積,找出S1中所有的非優(yōu)組合,按照所產(chǎn)生空白面積從大到小順序?qū)⒚總€(gè)非優(yōu)組合中面積較小的操作數(shù)保存到列表Delete_0p_List中,Delete_0p_List (j)表示該列表的第j個(gè)元素,j=l,2,……,k,k為S1中非優(yōu)組合的總數(shù);
[0040]③-2將S1賦予S2,將S2作為后布圖優(yōu)化的初始解,對(duì)S2進(jìn)行優(yōu)化:
[0041]a.取出列表 Delete_0p_List 中的第一個(gè)操作數(shù) Delete_Op_List(l),從32 中刪除Delete_0p_List (I)及其對(duì)應(yīng)的運(yùn)算符,得到S2’ ;
[0042]b.將Delete_0p_List (I)與S2’中除列表Delete_0p_List中操作數(shù)以外的其他操作數(shù)分別進(jìn)行和“ + ”組合,每一次組合產(chǎn)生一個(gè)新的布圖解,對(duì)每個(gè)所得的布圖解,應(yīng)用形狀曲線相加算法計(jì)算出其形狀曲線 ,在 上找出最接近固定邊框的頂點(diǎn)作為該布圖解的布圖實(shí)現(xiàn);
[0043]c.將函數(shù)Cost=W+H/ λ作為目標(biāo)函數(shù)來(lái)評(píng)估每一種組合下所得到布圖解的質(zhì)量,其中W為布圖解的寬度,H為布圖解的高度,λ為固定邊框的高寬比,將其中Cost取值最小的布圖解作為優(yōu)化解,記為S3 ;[0044]d.判定Delete_0p_LiSt (I)是否是復(fù)合模塊:如果不是,則將S3作為對(duì)S2第1次優(yōu)化后的布圖解;如果是,則將Delete_0p_LiSt(l)拆分為多個(gè)獨(dú)立軟模塊,并將它們按照面積從大到小的順序逐一插入到S2’中,每個(gè)獨(dú)立軟模塊的插入方法與步驟b和步驟c所示的Delete_0p_LiSt(l)的插入方法相同,并且后一個(gè)獨(dú)立軟模塊是插入到前一位獨(dú)立軟模塊插入后得到的優(yōu)化解中,由此得到第1次優(yōu)化的布圖解S4,將&和S4進(jìn)行比較,將兩者中Cost更小的布圖解作為對(duì)S2第1次優(yōu)化后的布圖解;
[0045]e.將對(duì)S2經(jīng)I次優(yōu)化后得到的布圖解重新賦給S2,按照步驟a~步驟d中的相同的方法依次對(duì)列表Delete_0p_List保存中的其他操作數(shù)進(jìn)行優(yōu)化處理,由此得到S2經(jīng)k次優(yōu)化后的布圖解作為固定邊框約束條件下的最優(yōu)布圖解輸出;
[0046]④對(duì)所得的固定邊框約束下的最優(yōu)布圖解,通過交換同一運(yùn)算符下兩個(gè)操作數(shù)位置進(jìn)行總線長(zhǎng)優(yōu)化,得到最終布圖解。
[0047]本發(fā)明的設(shè)計(jì)原理如下所述:
[0048]現(xiàn)有的針對(duì)基于軟模塊的FOF問題的輸入包括:
[0049](I) 一個(gè)包含η個(gè)軟模塊的集合M=Im1, m2,…,Iiii,…,mn}, Hii表示第i個(gè)軟模塊,
n,軟模塊Hii的面積為a1、高度為Iii和寬度為Wi ;
[0050](2)軟模塊 Ini 的高 寬比約束=Ii ( VVi ( Vi, Ii=0.3,ri=3 ;
[0051](3)各個(gè)軟模塊之間的N個(gè)線網(wǎng)連接,線網(wǎng)連接用net」表示,j=l,2,…,N;
[0052](4)集成電路芯片的固定邊框約束λ (固定邊框的高寬比)及允許的最大空白面積率Y。
[0053]在FOF問題中,要求確定每個(gè)軟模塊的尺寸及其在芯片中的坐標(biāo),使這些軟模塊互不重疊地放置在指定的固定邊框內(nèi),同時(shí)優(yōu)化芯片的面積和總線長(zhǎng),其中軟模塊Hli的尺寸為(Wphi),其在芯片中的坐標(biāo)為(Xi,yi)。
[0054]由此可知,固定邊框約束下的合法布圖須滿足下式(I):
[0055]W ^ Wf, H ^ Hf(I)
[0056]式(I)中W為所得布圖的寬度,H所得布圖的高度;Wf為固定邊框的寬度,Hf固定邊框的高度,可由其中式(2)計(jì)算:
[0057]W1 = yj(\ +/)/1/λ,H, =^/(1+/) I/(2)
[0058]式(2)中A為M中所有軟模塊的總面積;若所得布圖不能同時(shí)滿足式⑴中的兩個(gè)條件,則該布圖為非法布圖。迄今已提出多種有效的布圖表示方法,如B*_tree、SP、約束圖、SKB和NPE等,其中NPE表示具有計(jì)算簡(jiǎn)單和便于處理軟模塊形狀上的靈活性等優(yōu)點(diǎn),故本發(fā)明中米用NPE表不布圖解。NPE表不一般形式為:
[0059]E=Gp2…en, ei e {1,2,…,η, *,+},I < i < 2n_l(3)
[0060]式(3)中,I~η分別表示芯片中的η個(gè)獨(dú)立軟模塊,和“ + ”表示操作數(shù)之間的運(yùn)算符(Operator,簡(jiǎn)稱op),其中操作數(shù)(Operand)可以是一個(gè)獨(dú)立的軟模塊,也可以是由多個(gè)獨(dú)立軟模塊運(yùn)算后產(chǎn)生的復(fù)合模塊:“*”表示兩個(gè)操作數(shù)橫向或水平組合,“ + ”表示兩個(gè)操作數(shù)縱向或垂直組合。例如,如圖1 (a)中所示布圖可表示成NPE:E=13+24+*,也可用與NPE——對(duì)應(yīng)的切分樹(Slicing Tree, ST)表示,如圖1(b)所示。
[0061]通過考察不滿足固定邊框約束的SA算法所得的布圖解和與之對(duì)應(yīng)的布圖,發(fā)現(xiàn)其之所以違反邊框約束,是因?yàn)槭窃赟A算法所得的布圖解中存在以下兩種或其中之一的軟模塊組合:
[0062](I) 一個(gè)面積較小的獨(dú)立的軟模塊(操作數(shù)I)和一個(gè)面積較大的軟模塊(操作數(shù)
2)之間的組合運(yùn)算;
[0063](2) 一個(gè)面積較小的復(fù)合模塊(操作數(shù)I)和一個(gè)面積較大的軟模塊(操作數(shù)2)之間的組合運(yùn)算。
[0064]在上述兩種情況下,由于參與運(yùn)算的兩個(gè)操作數(shù)之間尺寸相差較大,組合后在布圖中會(huì)產(chǎn)生較大的空白面積,由此導(dǎo)致所得布圖超出指定的固定邊框,我們將它們稱為非優(yōu)組合。
[0065]我們可以通過消除布圖中的非優(yōu)組合來(lái)對(duì)布圖進(jìn)行優(yōu)化使其滿足固定邊框條件,由此我們可以找出布圖中的所有非優(yōu)組合并將這些非優(yōu)組合中面積較小的操作數(shù)按序先從布圖中刪除然后再將其插入布圖其他的合適地方來(lái)實(shí)現(xiàn)布圖的優(yōu)化。為了判定非優(yōu)組合中面積較小的操作數(shù)被刪除后再插入布圖中的最優(yōu)位置,我們引入函數(shù)Cost=W+H/λ作為目標(biāo)函數(shù)來(lái)進(jìn)行評(píng)估,其中W為布圖解的寬度,H為布圖解的高度,λ為固定邊框的高寬比,非優(yōu)組合中面積較小的操作數(shù)插入布圖中不同位置會(huì)得到不同的布圖解,我們將這些布圖解中Cost最小的布圖解作為優(yōu)化解,由此確定非優(yōu)組合中面積較小的操作數(shù)在布圖中的最優(yōu)位置。
[0066]如圖2 Ca)所示的含有第I種非優(yōu)組合的布圖F1及其對(duì)應(yīng)的ST表示,圖中的虛線框表不固定邊框,標(biāo)號(hào)為O~9對(duì)應(yīng)布圖F1中10個(gè)軟模塊Iiici~m9。如圖2 (a)中布圖F1的高度已滿足約束條件,但在寬度上超過了約束,其原因在于布圖解中存在一對(duì)非優(yōu)組合運(yùn)算,即根節(jié)點(diǎn)(*)下左孩子m2和右孩子T1之間的橫向組合。如果能設(shè)法消除布圖解中存在的類似的非優(yōu)組合,就有可能將一個(gè)接近于滿足固定邊框的近似解(SA算法搜索到的布圖解)轉(zhuǎn)化為合法的布圖解。從圖2(a)不難發(fā)現(xiàn),若將軟模塊Hi2WF1刪除,然后將其重新插入到F1中的合適位置,并適當(dāng)調(diào)整其它軟模塊的尺寸,就有可能得到一個(gè)合法的布圖,如圖2(b)所示。這是因?yàn)?(1)軟模塊m2刪除后所得到的較大空白區(qū)域給其它軟模塊的尺寸調(diào)整提供了空間;(2)由于軟模塊m2面積較小,將它重新插入后不至于對(duì)原有已接近于滿足邊框約束的布圖產(chǎn)生過大的改變。可見,通過這樣一種先刪除后插入操作,可以有效的消除布圖解中的非優(yōu)組合。本申請(qǐng)對(duì)SA算法搜索到的布圖解進(jìn)行后優(yōu)化的方法正是基于這一思想,本申請(qǐng)中將這種新的用于后布圖優(yōu)化的操作方法稱為IAD算子。
[0067]如何確定布圖中的非優(yōu)組合,本申請(qǐng)中以空白面積作為判定標(biāo)準(zhǔn),判定方法如下:若兩個(gè)操作數(shù)(0Pl,OP2)橫向或縱向組合后產(chǎn)生的空白面積ds(0Pl,OP2)滿足下式:
[0068]ds (Op1, op2) >=Ath⑷
[0069]式⑷中Ath是一個(gè)經(jīng)驗(yàn)參數(shù),需經(jīng)多次試驗(yàn)來(lái)確定其合適值,本申請(qǐng)中取A/400 ( Ath ( A/500。找出布圖解中的非優(yōu)組合后,即可將其中尺寸較小的操作數(shù)(設(shè)為md)從原位置刪除,然后將其重新插入到布圖解的合適位置。由于沒有直觀的方法來(lái)確定md在布圖解中最佳的插入位置,因此采用了枚舉法,即通過將md和布圖解中其他操作數(shù)依次進(jìn)行和“ + ”組合,然后比較每種組合下的目標(biāo)函數(shù)(Cost=W+H/A)來(lái)確定叫在布圖解中最佳的插入位置。利用該方法消除一對(duì)非優(yōu)組合最多需進(jìn)行2 (η-l)次插入操作。由于經(jīng)過SA算法優(yōu)化后,布圖解中非優(yōu)組合的數(shù)目并不多,因此后布圖優(yōu)化所需的計(jì)算量和前面的SA算法相比基本上可以忽略。[0070]在非優(yōu)組合中,尺寸較小的操作數(shù)既可能是獨(dú)立的軟模塊,也可能是多個(gè)(兩個(gè)或者兩個(gè)以上)獨(dú)立軟模塊組成的復(fù)合模塊,如圖3 (a)所示的含有第2種非優(yōu)組合的布圖F2及其對(duì)應(yīng)的ST表示,圖中的虛線框表示固定邊框,標(biāo)號(hào)為O~9對(duì)應(yīng)布圖FZ1中10個(gè)軟模塊Hitl~m9,此時(shí)尺寸較小的操作數(shù)對(duì)應(yīng)ST中的一顆子樹,如圖3(a)中T2所示。而軟模塊組合的尺寸一般較獨(dú)立的軟模塊要大,插入后會(huì)較大程度的改變?cè)呀咏诠潭ㄟ吙虻牟紙D,若直接應(yīng)用IAD算子來(lái)進(jìn)行處理,不一定能得到合法的布圖解。針對(duì)這一情況,采取了兩種處理方式:一是將該非優(yōu)組合中面積較小的操作數(shù)作為一個(gè)整體,將其從布圖中刪除后直接進(jìn)行插入操作;二是將該操作數(shù)拆分成一個(gè)個(gè)的獨(dú)立軟模塊,然后按面積從大到小順序?qū)⑺鼈冎鹨徊迦氲讲紙D中,如圖3 (b)所示,最后將兩種方式下所得結(jié)果的更優(yōu)者作為最終的布圖。
[0071]由于所給定軟模塊的尺寸可變,一個(gè)NPE對(duì)應(yīng)多種可能的布圖實(shí)現(xiàn)。我們先將每個(gè)軟模塊表示為一條形狀曲線,然后通過對(duì)各個(gè)軟模塊對(duì)應(yīng)的形狀曲線進(jìn)行相加來(lái)獲得每個(gè)NPE所有可能的布圖實(shí)現(xiàn),然后從中找出最接近固定邊框和且產(chǎn)生空白面積最小的頂點(diǎn)作為該布圖解的最優(yōu)實(shí)現(xiàn)。由FOF問題的輸入可知,任意模塊Hii的高度Wi和寬度Iii滿足式(5):
【權(quán)利要求】
1.一種針對(duì)軟模塊的固定邊框的集成電路布圖規(guī)劃方法,其特征在于包括以下步驟: ①讀入集成電路的模塊和互連信息文件,隨機(jī)產(chǎn)生NPE表示的初始布圖解; ②以總線長(zhǎng)和固定邊框約束為目標(biāo)采用SA算法搜索解空間,并將搜索到的布圖解記為S1 ; ③對(duì)布圖解S1進(jìn)行判定:如果布圖解S1滿足指定的固定邊框約束,將所得的布圖解作為固定邊框約束下的最優(yōu)布圖解輸出;如果布圖解S1不滿足固定邊框約束,則對(duì)布圖解S1進(jìn)行后布圖優(yōu)化,后布圖優(yōu)化的具體過程為: ③-1如果布圖解中兩個(gè)操作數(shù)運(yùn)算后產(chǎn)生的空白面積大于等于Ath,則這兩個(gè)操作數(shù)之間的組合稱為非優(yōu)組合,其中操作數(shù)為組成集成電路的獨(dú)立軟模塊或由多個(gè)獨(dú)立軟模塊運(yùn)算得到的復(fù)合模塊(獨(dú)立軟模塊對(duì)應(yīng)布圖解的Slicing Tree中的葉節(jié)點(diǎn),復(fù)合模塊對(duì)應(yīng)布圖解的Slicing Tree中的分支節(jié)點(diǎn)),A/400 ≤ Ath ≤ A/500,其中A為集成電路中所有軟模塊的總面積,找出S1中所有的非優(yōu)組合,按照所產(chǎn)生空白面積從大到小順序?qū)⒚總€(gè)非優(yōu)組合中面積較小的操作數(shù)保存到列表Delete_Op_List中,Delete_Op_List (j)表示該列表的第j個(gè)元素,j=l,2,......,k,k為S1中非優(yōu)組合的總數(shù); ③-2將S1賦予S2,將S2作為后布圖優(yōu)化的初始解,對(duì)S2進(jìn)行優(yōu)化: a.取出列表Delete_Op_List中的第一個(gè)操作數(shù)Delete_Op_List(l),從32中刪除Delete_Op_List (I)及其 對(duì)應(yīng)的運(yùn)算符,得到S2’ ; b.將Delete_Op_List(I)與S2’中除列表Delete_Op_List中操作數(shù)以外的其他操作數(shù)分別進(jìn)行和“ + ”組合,每一次組合產(chǎn)生一個(gè)新的布圖解,對(duì)每個(gè)所得的布圖解,應(yīng)用形狀曲線相加算法計(jì)算出其形狀曲線gamma,在gamma上找出最接近固定邊框的頂點(diǎn)作為該布圖解的布圖實(shí)現(xiàn); c.將函數(shù)Cost=W+H/X作為目標(biāo)函數(shù)來(lái)評(píng)估每一種組合下所得到布圖解的質(zhì)量,其中W為布圖解的寬度,H為布圖解的高度,λ為固定邊框的高寬比,將其中Cost取值最小的布圖解作為優(yōu)化解,記為S3; d.判定Delete_Op_LiSt(I)是否是復(fù)合模塊:如果不是,則將S3作為對(duì)S2第1次優(yōu)化后的布圖解;如果是,則將Delete_Op_LiSt(l)拆分為多個(gè)獨(dú)立軟模塊,并將它們按照面積從大到小的順序逐一插入到S2’中,每個(gè)獨(dú)立軟模塊的插入方法與步驟b和步驟c所示的Delete_Op_List(l)的插入方法相同,并且后一個(gè)獨(dú)立軟模塊是插入到前一位獨(dú)立軟模塊插入后得到的優(yōu)化解中,由此得到第1次優(yōu)化的布圖解S4,將S3和S4進(jìn)行比較,將兩者中Cost更小的布圖解作為對(duì)S2第1次優(yōu)化后的布圖解; e.將對(duì)S2經(jīng)I次優(yōu)化后得到的布圖解重新賦給S2,按照步驟a~步驟d中的相同的方法依次對(duì)列表Delete_Op_LiSt保存中的其他操作數(shù)進(jìn)行優(yōu)化處理,由此得到S2經(jīng)k次優(yōu)化后的布圖解作為固定邊框約束條件下的最優(yōu)布圖解輸出; ④對(duì)所得的固定邊框約束下的最優(yōu)布圖解,通過交換同一運(yùn)算符下兩個(gè)操作數(shù)位置進(jìn)行總線長(zhǎng)優(yōu)化,得到最終布圖解。
2.根據(jù)權(quán)利要求1所述的一種針對(duì)軟模塊的固定邊框的集成電路布圖規(guī)劃方法,其特征在于所述的步驟b中,對(duì)Delete_Op_List (I)與S2’中除列表Delete_Op_List中保存的操作數(shù)以外的其他操作數(shù)每進(jìn)行一次或“ + ”組合運(yùn)算所得到的布圖解,應(yīng)用形狀曲線相加算法計(jì)算出其相應(yīng)的形狀曲線后,對(duì)形狀曲線進(jìn)行插值處理后然后找出形狀曲線上最接近固定邊框的頂 點(diǎn)作為該布圖解的布圖實(shí)現(xiàn)。
【文檔編號(hào)】G06F17/50GK103984794SQ201410130262
【公開日】2014年8月13日 申請(qǐng)日期:2014年4月2日 優(yōu)先權(quán)日:2014年4月2日
【發(fā)明者】杜世民, 夏銀水, 儲(chǔ)著飛, 黃誠(chéng), 楊潤(rùn)萍 申請(qǐng)人:寧波大學(xué)