本發(fā)明涉及vlsi物理設(shè)計自動化技術(shù)領(lǐng)域,特別是一種基于直接求解技術(shù)的vlsi標(biāo)準(zhǔn)單元布局方法。
背景技術(shù):
在當(dāng)前的vlsi布局中,集成電路規(guī)模的不斷增大及工藝上的要求越來越高,對vlsi布局優(yōu)化目標(biāo)及優(yōu)化方法提出了更高的要求,布局結(jié)果的好壞直接影響著整個芯片的性能。隨著芯片上單元個數(shù)的快速增長,尤其是百萬門級芯片的普遍應(yīng)用,對vlsi布局設(shè)計自動化提出了巨大的挑戰(zhàn)。因此,尋求更高效、更實用的集成電路布局算法具有重要的意義
用來解決vlsi布局問題的算法可分為以下三類:基于劃分的布局方法、基于劃分技術(shù)的方法和基于分析的布局方法。在這三類方向中,基于分析的布局方法取得的布局效果較好,因而成為當(dāng)前主流布局工具所采用的方法。由于vlsi布局問題的規(guī)模很大,現(xiàn)有的基于解析的布局工具很難直接求解。在分析方法的vlsi布局算法中,主要分三個步驟處理:全局布局(globalplacement)、合法化布局(legalization)和詳細(xì)布局(detailedplacement)。全局布局中,在允許有少數(shù)單元互相重疊的情況下,找到每個單元的最佳位置,使得總線長最短。由于全局布局大體上決定了布局的質(zhì)量,全局布局被認(rèn)為是分析法中最重要的一步。
目前,基于分析方法的全局布局算法可以分為兩類:(1)直接法,該方法被應(yīng)用于kraftwerk2,fastplace3,rql,simpl等布局工具中;(2)非線性方法,該方法被應(yīng)用于aplace2,ntuplace3,mpl6,eplace等布局工具中。根據(jù)學(xué)術(shù)上和工業(yè)界布局器的比較,基于非線性規(guī)劃方法的布局工具取得的實驗結(jié)果最好。
但是,現(xiàn)有的基于分析方法的全局布局方法存在下列兩個問題:(1)在全局布局過程中,均使用對布局區(qū)域均勻劃分為bin的方法進(jìn)行密度的近似計算,由于密度函數(shù)是非光滑的,還需要進(jìn)行光滑化近似。因此近似后計算出來的密度約束與實際密度分布存在較大的誤差,不是對布局實際密度很好的反映,從而不能保證布局的質(zhì)量;(2)已有的布局工具有將布局問題類比為靜電場模型的方法,但間接的求解對解的質(zhì)量也有一定的影響。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于直接求解技術(shù)的vlsi標(biāo)準(zhǔn)單元布局方法,以克服現(xiàn)有技術(shù)中存在的缺陷。
為實現(xiàn)上述目的,本發(fā)明的技術(shù)方案是:一種基于直接求解技術(shù)的vlsi標(biāo)準(zhǔn)單元布局方法,包括如下步驟:
步驟s1:把電路表示為超圖h={v,e};
步驟s2:計算全局密度函數(shù);
步驟s3:通過所述全局密度函數(shù)構(gòu)造密度約束條件;
步驟s4:采用以修改的高斯函數(shù)對所述全局密度函數(shù)進(jìn)行卷積光滑化;
步驟s5:采用無約束二次規(guī)劃方法初始化單元的位置;
步驟s6:計算線長以及線長梯度;
步驟s7:采用罰函數(shù)方法將vlsi全局布局的線長目標(biāo)及密度約束轉(zhuǎn)化為無約束的非線性規(guī)劃問題;
步驟s8:利用優(yōu)化方法求解所述步驟s7中的非線性規(guī)劃問題,得到新的單元位置;
步驟s9:修改所述步驟s4中卷積光滑化過程中的高斯光滑參數(shù)以及所述步驟s7中罰函數(shù)中的罰參數(shù);
步驟s10:循環(huán)所述步驟s6至所述步驟s9,直到溢出率滿足要求。
在本發(fā)明一實施例中,在所述步驟s1中,所述超圖h={v,e}中,v={v1,v2,…,vn}表示電路元件或單元的集合,e={e1,e2,…,en}表示線網(wǎng)集合。
在本發(fā)明一實施例中,在所述步驟s2中,所述全局密度函數(shù)為一連續(xù)的全局密度函數(shù),記為ρ(u,l),x方向上的表示如下:
其中,對于電路元件或單元vi(i=1,2,…,n),記wi為其寬度,hi為其高度,ai為其面積,(xi,yi)為其中心坐標(biāo),(u,l)表示布局區(qū)域的一個二維變量,θi表示單元i和整個布局區(qū)域的重疊,θi(u)表示u點的密度;y方向上的定義同理,則
在本發(fā)明一實施例中,在所述步驟s3中,利用所述全局密度函數(shù)構(gòu)建一近似的密度約束條件:
令
則:
即每個單元的中點不在其他單元中,令
在本發(fā)明一實施例中,在所述步驟s3中,通過高斯函數(shù)對所述全局密度函數(shù)進(jìn)行卷積光滑化處理:
二維的卷積公式如下:
采用的二維的高斯函數(shù)如下
對該布局問題有
令
其中,
同理,
則光滑的密度函數(shù)為:
光滑后的約束條件為
在本發(fā)明一實施例中,在所述步驟s6中,對于vlsi標(biāo)準(zhǔn)單元布局問題,布局區(qū)域是矩形薄板,它的左下角坐標(biāo)為(0,0),右上角坐標(biāo)為(w,h);對于電路元件或單元vi(i=1,2,…,n),記wi為其寬度,hi為其高度,ai為其面積,(xi,yi)為其中心坐標(biāo),(u,l)表示布局區(qū)域的一個二維變量,則采用半周長線長計算的總線長為:
在本發(fā)明一實施例中,在所述步驟s7中,所述全局布局是一個約束優(yōu)化問題,將布局區(qū)域均勻劃分為長寬個數(shù)相等的直角坐標(biāo)網(wǎng),也即bin,令ρb表示每個網(wǎng)格的密度,db(x,y)表示每個網(wǎng)格內(nèi)單元占據(jù)的總面積,則一個全局布局的目標(biāo)為:滿足所有網(wǎng)格的密度小于等于一個預(yù)設(shè)的目標(biāo)布局密度ρt的約束,使得總hpwl最小,且問題模型如下:
minw(x,y)
s.tρb≤ρtforeachbin
采用直接求解的方法,將約束改寫為如下一個全局密度約束
minwl1(x,y)
使用罰方法將約束整合到目標(biāo)函數(shù)中,通過一個罰參數(shù)λ,將上述約束優(yōu)化問題轉(zhuǎn)化為無約束的優(yōu)化問題:
對上式進(jìn)行微分可得梯度矢量如下:
在本發(fā)明一實施例中,在所述步驟s8中,令:
輸入:基于單元的位置的解mk、參考解rk、優(yōu)化參數(shù)ak;
輸出:mk+1,rk+1;
通過如下步驟獲?。?/p>
步驟s81:當(dāng)k=1時,r1=m1,r0任意取一個向量,a0=1;
步驟s82:梯度向量
步驟s83:步長
步驟s84:
步驟s85:
步驟s86:rk+1=mk+1+(ak-1)(mk+1-mk)/ak+1。
在本發(fā)明一實施例中,在所述步驟s10中,通過如下步驟判斷溢出率是否滿足要求:
步驟s101:將布局區(qū)域劃分為均勻的bin;
步驟s102:計算溢出率
步驟s103:重復(fù)所述步驟s6至所述步驟s9,直到所述溢出率overflow_ratio<o(jì)verflowmin或overflow_ratio相對于前一次計算結(jié)果沒有進(jìn)一步減少。
相較于現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:本發(fā)明所提出的一種基于直接求解技術(shù)的vlsi標(biāo)準(zhǔn)單元布局方法,摒棄離散計算密度分布與將布局問題進(jìn)行類比的方法,采用全局密度函數(shù)來直接構(gòu)造密度約束條件,進(jìn)而選擇利普西斯步長預(yù)測的nesterov’s方法進(jìn)行求解得到高質(zhì)量的布局結(jié)果。結(jié)合全局密度函數(shù)和不需要線搜索的利普西斯步長預(yù)測的nesterov’s方法,運用修改的高斯光滑化技術(shù),從而得到一種性能優(yōu)越的基于分析方法的全局布局方法。本發(fā)明直接計算全局密度函數(shù),避免了因劃分bin產(chǎn)生的質(zhì)量損失;本發(fā)明利用修改的高斯光滑化技術(shù)對密度函數(shù)進(jìn)行光滑化,得到了一個便于計算的光滑化密度函數(shù);本發(fā)明使用基于利普西斯步長預(yù)測的nesterov’s方法,避免了線搜索的大量計算,這樣本發(fā)明可以解決大規(guī)模集成電路布局問題。
附圖說明
圖1為本發(fā)明中基于直接求解技術(shù)的超大規(guī)模集成電路標(biāo)準(zhǔn)單元布局方法的流程圖。
圖2為本發(fā)明一實施例中兩個函數(shù)在設(shè)定的參數(shù)下的函數(shù)圖像。
具體實施方式
下面結(jié)合附圖,對本發(fā)明的技術(shù)方案進(jìn)行具體說明。
本發(fā)明提供一種基于直接求解技術(shù)的vlsi標(biāo)準(zhǔn)單元布局方法,按照如下步驟實現(xiàn):
步驟(1)把電路表示為超圖h={v,e};
步驟(2)計算全局密度函數(shù);
步驟(3)利用全局密度函數(shù)構(gòu)造密度約束條件;
步驟(4)使用修改的高斯函數(shù)進(jìn)行卷積光滑化;
步驟(5)用無約束二次規(guī)劃方法初始化單元的位置;
步驟(6)k=1;
步驟(7)計算線長,線長梯度;
步驟(8)采用罰函數(shù)方法將vlsi全局布局的線長目標(biāo)及密度約束轉(zhuǎn)化為無約束的非線性規(guī)劃問題;
步驟(9)利用優(yōu)化方法求解步驟(8)中的非線性規(guī)劃問題得到新的單元位置;
步驟(10)修改步驟(4)中卷積光滑化過程中的高斯光滑參數(shù)以及步驟(8)中罰函數(shù)中的罰參數(shù);
步驟(11)k=k+1;
步驟(12)循環(huán)步驟(7)~步驟(11),直到溢出率滿足要求。
進(jìn)一步的,請參見圖1,圖1基于直接求解技術(shù)的超大規(guī)模集成電路標(biāo)準(zhǔn)單元布局方法的流程圖。
進(jìn)一步的,步驟(1)中把電路表示為超圖模型h={v,e},其中,v={v1,v2,…,vn}表示電路元件或單元的集合,e={e1,e2,…,en}表示線網(wǎng)集合。
進(jìn)一步的,對于vlsi標(biāo)準(zhǔn)單元布局問題,布局區(qū)域是矩形薄板,它的左下角坐標(biāo)為(0,0),右上角為(w,h),對于單元vi(i=1,2,…,n),記wi為其寬度,hi為其高度,ai為其面積,(xi,yi)為其中心坐標(biāo)。(u,l)表示布局區(qū)域的一個二維變量。則采用半周長線長(half-perimeterwirelength,hpwl)計算的總線長為:
進(jìn)一步的,在步驟(2)中,也即圖1中103,不同于之前的布局器中使用bin的劃分來得到離散的密度函數(shù),本實施例中采用一個連續(xù)的全局密度函數(shù)ρ(u,l),表示如下:
令θi表示單元i和整個布局區(qū)域的重疊,θi(u)表示u這點上的密度,則:
y方向上的定義同理,則
進(jìn)一步的,在步驟(3)中,也即圖1中104中,布局問題的約束條件是單元之間兩兩無重疊。為了在滿足約束條件的同時提高運行效率,利用步驟(2)中提出的全局密度函數(shù)構(gòu)建一個近似的密度約束條件。
令
則:
在這一點上,它意味著每個單元的中點不在其他單元中。這種情況下還會有一部分重疊,但在實際芯片及布局問題中,這種情況可以反映出重疊一定較小。
令
進(jìn)一步的,在步驟(4)中,也即圖1中105中,由于步驟(3)中提出的約束條件是非光滑的難以計算,并且在單點移動時較難考慮到周圍的密度信息。因此,模型利用高斯函數(shù)對全局密度函數(shù)進(jìn)行卷積光滑化處理。二維的卷積公式如下:
二維的高斯函數(shù)如下
對該布局問題有
θj(t)θj(o)是只有一個峰的矩形函數(shù),所以函數(shù)域是一個矩形,高斯函數(shù)在一個矩形區(qū)域難以積分。
注意到
對于原始的高斯分布來說,σ越大,則覆蓋的范圍越廣,峰值越低。
令
當(dāng)c<0,
模型考慮讓這兩個函數(shù)盡可能近似。函數(shù)顯然不能重合,所以考慮積分值相等。圖2顯示了兩個函數(shù)在設(shè)定的參數(shù)下的函數(shù)圖像。圖2中,紅線1代表了高斯函數(shù),藍(lán)線2代表構(gòu)建的近似函數(shù)。
所以
可以計算
同理
所以光滑的密度函數(shù)為
光滑后的約束條件為
進(jìn)一步的,在步驟(8)中,也即圖1中109中,全局布局是一個約束優(yōu)化問題,先前的算法將布局區(qū)域均勻劃分為長寬個數(shù)相等的直角坐標(biāo)網(wǎng)(bin),令ρb表示每個網(wǎng)格的密度,db(x,y)表示每個網(wǎng)格內(nèi)單元占據(jù)的總面積。則一個全局布局的目標(biāo)為:滿足所有網(wǎng)格的密度小于等于一個給定的目標(biāo)布局密度ρt的約束,使得總hpwl最小。問題模型如下:
而本實施例中采用直接求解的方法,將約束改寫為如下一個全局密度約束
使用罰方法將約束整合到目標(biāo)函數(shù)中,通過一個罰參數(shù)λ,將上述約束優(yōu)化問題轉(zhuǎn)化為無約束的優(yōu)化問題
對上式進(jìn)行微分可得梯度矢量如下
進(jìn)一步的,在步驟(9)中,也即圖1中110中,優(yōu)化方法求解單元新的位置采用如下方式:
輸入:基于單元的位置的解mk,參考解rk,優(yōu)化參數(shù)ak;
輸出:mk+1,rk+1;
(1)當(dāng)k=1時,r1=m1,r0任意取一個向量,a0=1;
(2)梯度向量
(3)步長
(4)
(5)
(6)rk+1=mk+1+(ak-1)(mk+1-mk)/ak+1。
進(jìn)一步的,在步驟(12)中,也即圖1中113中,通過如下方式判斷溢出率是否滿足要求:
(1)將布局區(qū)域劃分為均勻的bin;
(2)計算溢出率
(3)重復(fù)步驟(7)~步驟(11)直到overflow_ratio<o(jì)verflowmin或overflow_ratio相對于前一次計算結(jié)果沒有進(jìn)一步減少。
以上是本發(fā)明的較佳實施例,凡依本發(fā)明技術(shù)方案所作的改變,所產(chǎn)生的功能作用未超出本發(fā)明技術(shù)方案的范圍時,均屬于本發(fā)明的保護(hù)范圍。