国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      集成電路布圖規(guī)劃與緩沖器規(guī)劃集成的布局方法

      文檔序號:7135617閱讀:304來源:國知局
      專利名稱:集成電路布圖規(guī)劃與緩沖器規(guī)劃集成的布局方法
      技術(shù)領(lǐng)域
      集成電路布圖規(guī)劃與緩沖器規(guī)劃集成布局方法屬于集成電路計算機輔助設(shè)計領(lǐng)域,尤其涉及BBL(Building Block Layout)領(lǐng)域。
      背景技術(shù)
      在集成電路的布局中,層次式布圖設(shè)計,模塊重用技術(shù),知識產(chǎn)權(quán)模塊的大量應(yīng)用,片上系統(tǒng)尤其是數(shù)?;旌掀舷到y(tǒng)的設(shè)計,以及模擬電路器件級布圖問題等,這些問題都可以歸結(jié)為集成電路宏模塊的布圖規(guī)劃和布局問題,即Building Block LayoutBBL模式的布圖問題,它已成為當(dāng)前的研究熱點。尤其隨著互連線在布圖中所占的比重越來越大,傳統(tǒng)的布圖規(guī)劃方法忽略了對可布性的考慮,導(dǎo)致了在后續(xù)的布線過程中無法滿足時延需要。為了滿足時延需求,往往需要插入大量的緩沖器,但緩沖器本身是由器件構(gòu)成,需要占用一定的布圖面積,同時還必須滿足一定的約束,因此將布圖規(guī)劃與緩沖器規(guī)劃集成的問題可簡單描述為設(shè)有一個包含B個任意大小的方形模塊的集合,模塊的形狀根據(jù)平面中頂點位置從左下到右上角依次記錄,并且模塊具有一定的方向,根據(jù)模塊之間的互連信息給出若干網(wǎng)表以及相應(yīng)的時延約束。B個模塊的一個布局就是在模塊互不重疊的情況下,將模塊放置在平面上,平面上包含這B個模塊的最小矩形區(qū)域被稱為芯片。在給出了布圖規(guī)劃的結(jié)果后,需要根據(jù)互連信息確定緩沖器插入的位置,數(shù)量和大小,使得盡可能的滿足時延需求。將布圖規(guī)劃與緩沖器規(guī)劃相結(jié)合就是尋找一個最優(yōu)布局或近似最優(yōu)布局,使得芯片面積或是其它優(yōu)化目標(biāo)組成的目標(biāo)函數(shù)值達(dá)到最優(yōu),同時使緩沖器的數(shù)量最少,時延性能最好。
      近年來,緩沖器規(guī)劃問題受到廣泛的關(guān)注,人們已經(jīng)提出了很多種緩沖器規(guī)劃的方法。由于緩沖器是器件構(gòu)成的,所以這些方法多數(shù)利用布局中的空白區(qū)插入緩沖器,在BBL階段也已經(jīng)有很多相關(guān)的工作;例如最早提出的可行區(qū)域(feasible region)的概念,用來產(chǎn)生緩沖器模塊;緩沖器的可行區(qū)域是指在滿足線網(wǎng)的目標(biāo)延時的條件下,緩沖器可以放置的可能最大區(qū)域。稍后,可行區(qū)擴展成為獨立可行區(qū),同時布線擁擠度得到優(yōu)化。網(wǎng)絡(luò)流的方法在假設(shè)每個線網(wǎng)只有一個緩沖器的情況下,可以找到最優(yōu)解。多商品流的方法將緩沖器分配到預(yù)先已存在的緩沖器模塊。動態(tài)規(guī)劃方法假設(shè)在宏模塊內(nèi)部也允許插入緩沖器,因此這種方法會使插入緩沖器的點分配在布局的各個位置。可布性驅(qū)動的布圖規(guī)劃方法可以為擁擠度約束估計緩沖器的用量和緩沖器資源。集成緩沖器/通道插入的布圖規(guī)劃方法用于基于總線的微處理器設(shè)計。迄今為止大部分的布圖方法和緩沖器規(guī)劃都相互獨立,不能將緩沖器規(guī)劃考慮在布圖規(guī)劃過程中,以產(chǎn)生更有利于時延性能的布圖規(guī)劃結(jié)果。從得到的結(jié)果來看,與實際應(yīng)用還有非常大的差距。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提出一種較迄今為止該領(lǐng)域的其它算法更為穩(wěn)定、高效,且能夠在布圖規(guī)劃過程中實現(xiàn)對緩沖器的合理規(guī)劃,并將緩沖器規(guī)劃與布圖結(jié)果的優(yōu)化相結(jié)合,處理集成電路宏模塊布圖規(guī)劃中緩沖器規(guī)劃作為解決宏模塊布圖問題的工業(yè)工具。在Elmore時延模型下,長連線的時延與線長的平方成比例增長,而利用緩沖器插入技術(shù),可以控制連線的時延與線長呈線性增長關(guān)系。為滿足時延約束,需要插入的緩沖器數(shù)目隨工藝尺寸的減小而持續(xù)增長。由于緩沖器需要占用硅資源,所以在設(shè)計過程中,緩沖器應(yīng)該盡早規(guī)劃,尤其在布局階段,以盡可能改善電路的時延性能。
      本發(fā)明的特征在于它引入了緩沖器插入時的可行區(qū)域計算,并通過在布圖規(guī)劃結(jié)果中的空白區(qū)域的劃分,簡化了緩沖器規(guī)劃的復(fù)雜度,針對布圖規(guī)劃中的緩沖器規(guī)劃對模擬退火的優(yōu)化求解過程進行設(shè)計,將緩沖器的規(guī)劃集成在布圖規(guī)劃問題的求解過程中。它依次含有以下步驟1)對計算機進行初始化,設(shè)置并輸入以下參數(shù)(1).模擬退火過程中參數(shù)設(shè)置,包括內(nèi)循環(huán)次數(shù)、初始溫度以及結(jié)束溫度,退火因子a;(2).設(shè)置最終布局芯片的目標(biāo)寬長R及其權(quán)重ω;(3).設(shè)置總線長的權(quán)重λ和緩沖器插入的權(quán)重r;(4).設(shè)置目標(biāo)函數(shù)中緩沖器的大小和緩沖器插入網(wǎng)格的大??;(5).設(shè)置緩沖器相關(guān)的各項性能參數(shù),包括負(fù)載電容,驅(qū)動輸出電阻,緩沖器輸出電阻,緩沖器輸入電容,緩沖器固有時延,單位長度線電容,單位長度線電阻;2)計算機從模塊描述文件讀入模塊及線網(wǎng)信息(1).讀入模塊四角坐標(biāo),并根據(jù)模塊四角坐標(biāo)計算模塊的寬、高;(2).讀入模塊上引線端坐標(biāo),并將其轉(zhuǎn)化為相對模塊左下角的坐標(biāo);(3).按讀入順序給模塊編號,并計算總模塊數(shù)、各模塊凈面積之和;(4).讀入線網(wǎng)信息,包括引線端的互連情況,線網(wǎng)中的時延約束。
      在電路網(wǎng)表中的線網(wǎng)一般是多端線網(wǎng),即一個線網(wǎng)有多個引線端,為了便于時延計算并合理簡化緩沖器插入的模型,我們將多端線網(wǎng)拆分成兩端線網(wǎng)即多端線網(wǎng)E有m個引線端p1(x1,y1),…,pm(xm,ym),則我們將其拆分成m-1個兩端線網(wǎng)(p1,p2),(p1,p3),(p1,p4)……(p1,pm)。這樣對應(yīng)于原有線網(wǎng)我們得到了相應(yīng)的兩端線網(wǎng)網(wǎng)表信息,并可以根據(jù)兩端線網(wǎng)信息進行緩沖器的規(guī)劃。
      3)根據(jù)模塊信息,隨機構(gòu)造初始布局的拓?fù)浣Y(jié)構(gòu)即模塊間的位置關(guān)系,在本方法中我們采用角模塊序列表示方法作為模塊布局的表示,根據(jù)讀入模塊的次序,隨機構(gòu)造模塊間的邏輯拓?fù)潢P(guān)系,構(gòu)成一個布局,并作為初始布局Q0;4)進入模擬退火優(yōu)化過程,以角模塊序列表示作為基本布局表示方法,計算布局問題最優(yōu)或近似最優(yōu)解從初始溫度開始,計算當(dāng)前溫度下的最優(yōu)或近似最優(yōu)解,當(dāng)前溫度記為Tnow[1].根據(jù)下述公式計算各線網(wǎng)線長估計值,及總線長估計值,單個線網(wǎng)的線長根據(jù)線網(wǎng)中的引線端位置用半周長模型進行估計設(shè)某線網(wǎng)E有m個引線端p1(x1,y1),...,pm(xm,ym);則該線網(wǎng)的線長WireLength(E)用下述公式估計,WireLength(E)=(maxi&Element;{1,...,m}(xi)-mini&Element;{1,...,m}(xi))+(maxi&Element;{1,...,m}(yi)-mini&Element;{1,...,m}(yi))]]>其中,i為引線端編號,總線長估計值為TotalWireLength=&Sigma;k=lLWireLength(E),]]>L為線網(wǎng)的個數(shù)[2].計算得到的布局中的空白區(qū)域,并劃分成矩形模塊,把得到的空白區(qū)矩形模塊劃分成固定大小的用以放下一個或幾個緩沖器的小矩形。
      .根據(jù)各個兩端線網(wǎng),判斷線網(wǎng)的長度是否大于關(guān)鍵長度lcrit,若兩端線網(wǎng)的長度小于關(guān)鍵長度,則當(dāng)前線網(wǎng)插入緩沖器數(shù)為零,關(guān)鍵長度的計算公式如下lcrit=Rb-Rdr+Cb-Clc+2RbCb+Tbrc---(1)]]>其中Rb緩沖器輸出電阻(Ω),Rd驅(qū)動輸出電阻(Ω),Cb緩沖器輸入電容(fF),C1負(fù)載電容(fF),r單位長度線電容(Ω/μm),c單位長度線電容(fF/μm),Tb緩沖器固有延時(ps);[4].計算每一個兩端線網(wǎng)N因為不滿足時延約束需要插入的緩沖器數(shù)及各緩沖器的獨立可行區(qū)域(4.1).計算線網(wǎng)滿足時延約束需要的緩沖器數(shù)Kmin 其中K1=RbCb+Tb(3)
      K2=(rCb+cRb)l+Tb+RdCb+RbCl-Tcon]]>-r2c(Cb-Cl)2-c2r(Rb-Rd)2---(4)]]>K3=12rcl2+(rCl+cRd)l+RdCl-Tcon---(5)]]>其中l(wèi)為線網(wǎng)長度,Rb緩沖器輸出電阻(Ω),Rd驅(qū)動輸出電阻(Ω),Cb緩沖器輸入電容(fF),C1負(fù)載電容(fF),r單位長度線電容(Ω/μm),c單位長度線電容(fF/μm),Tb緩沖器固有延時(ps),TNcon為線網(wǎng)N的時延約束;(4.2).計算線網(wǎng)N中每個緩沖器的獨立可行區(qū)域長度為l的線網(wǎng)N的第j個緩沖器的獨立可行區(qū)域為IFRj=(xoptj-Wifr/2,xoptj+Wifr/2)I(0,l)---(6)]]>Wifr為第j個緩沖器的獨立可行區(qū)域的寬度,Wifr=2&CenterDot;TconN-ToptN(kmin,l)rc(2kmin-1)---(7)]]>其中,kmin為緩沖器數(shù),TconN為線網(wǎng)N的時延約束,ToptN為線網(wǎng)N中插入kmin個緩沖器的最優(yōu)時延,ToptN(kmin,l)=TN(xopt1,xopt2,......,xoptkmin,l)]]>=rl(kminCb+Cl)+cl(Rd+kminRb)+(kminCb+Cl)(kminRb+Rd)kmin+1---(8)]]>+kminTb+rcl2-kminr(Cb-Cl)2/c-kminc(Rb-Rd)2/r2(kmin+1)]]>xoptj為緩沖器相對線網(wǎng)源端的Manhattan距離(只包含水平和垂直線段),也即第j個緩沖器的位置;xoptj=(j-1)yl+xl,j&Element;{1,2,...,kmin}---(9)]]>其中 [5].計算滿足目標(biāo)時延的兩端線網(wǎng)數(shù)目Nold;(5.1).計算每一個緩沖器的侯選位置集合
      (5.1.1).計算緩沖器所在線網(wǎng)的源端和漏端所確定的矩形區(qū)域和空白區(qū)的交DFol;(5.1.2).計算DFol和緩沖器的獨立可行區(qū)域的交,當(dāng)DFol內(nèi)某位置的左下角位于緩沖器的獨立可行區(qū)域內(nèi),則該位置是相應(yīng)緩沖器的侯選位置;(5.1.3).在上述緩沖器的侯選位置中選擇成為緩沖器侯選位置最少同時尚未放置緩沖器的位置作為緩沖器的位置;(5.2).檢查每一個兩端線網(wǎng),統(tǒng)計所需緩沖器未能全部插入的線網(wǎng)數(shù),記為Nnotsat;[6].用下列公式評價Q,得到目標(biāo)函數(shù)值Cost;CostQ=Area+λ×TotalWireLength+ω×Rs2+r×Nnotsat; (11)其中Area=max{xi}i&Element;{1...n}&times;max{yi}i&Element;{1...n}]]>TotalWireLength(總線長)為各線網(wǎng)估算長度之和;λ為總線長的權(quán)重,ω為寬長比的權(quán)重,r為緩沖器插入的權(quán)重;設(shè)R為期望的芯片寬長比,ratio為芯片實際寬長比,則Rs=|R-max(ratio,1/ratio)|;5)輸出當(dāng)前布局Qnow。
      6)用下述公式計算下一個退火狀態(tài)的溫度Tnow=Tnow*a其中a為退火因子,一般取值為0.95。如果當(dāng)前溫度大于結(jié)束溫度Tnow>Tend,則進入下一個退火狀態(tài)的求解過程;如果當(dāng)前溫度小于結(jié)束溫度Tnow<Tend,則輸出的當(dāng)前布局即為最終布局、步驟3)和步驟4)所述的角模塊序列以及在模擬退火過程中所利用的角模塊序列表示是基于模塊之間邏輯拓?fù)涞牟紙D表示方法,是由洪先龍教授在2000年提出的一種有效的表示方法,詳細(xì)的角模塊序列表示的布局方法不屬于本專利申請內(nèi)容,下面只是針對本發(fā)明所需要利用的角模塊表示的定義做簡單介紹。角模塊表示主要是用(S,L,T)三元組串記錄模塊從左下角至右上角的布圖順序以及模塊之間的拓?fù)潢P(guān)系。其中S串記錄各個模塊的名稱,L串記錄模塊擺放時的方位,包括兩種方位,垂直方位表示該模塊從上方向下覆蓋其他已布模塊,水平方位表示該模塊從右方向左覆蓋其他已布模塊。具體覆蓋的模塊數(shù)目在T串中相應(yīng)表示。為了方便在模擬退火中的表示,T串采用了二進制序列,以連續(xù)的“1”以及一個“0”的子串長度表示共有多少個模塊被當(dāng)前模塊覆蓋。隨著模塊依次的擺放,各模塊的坐標(biāo)都已得出,并能計算出芯片的大小和長寬比。
      步驟4)所述的模擬退火過程用于求取布局的最優(yōu)結(jié)果,它的流程如下當(dāng)當(dāng)前循環(huán)次數(shù)小于內(nèi)循環(huán)次數(shù)時,重復(fù)如下步驟用下列方法之一從當(dāng)前布局Qnow產(chǎn)生新的布局,把新的拓?fù)浣Y(jié)構(gòu)記為Qnew要改變布局的拓?fù)浣Y(jié)構(gòu),用下列方法
      (1).交換角模塊序列中S串任何兩個模塊的次序;(2).將角模塊序列中L中任意一個模塊的方向改變;(3).改變角模塊序列T串中任意一位。
      要改變模塊方向以有利于優(yōu)化線長時,用下列方法(4).隨機選擇一個模塊進行旋轉(zhuǎn),旋轉(zhuǎn)角度通過隨機函數(shù)選取為90°,或180°,或270°;(5).隨機選擇一個模塊進行翻轉(zhuǎn),翻轉(zhuǎn)軸通過隨機函數(shù)選取為水平軸,或垂直軸或模塊對角線;根據(jù)產(chǎn)生的新解Qnew計算布局結(jié)果,并且進行下面的操作若exp(-(CostQnew-CostQ)/Tnow)>r;(r是0到1之間的隨機數(shù))則接受新解,將當(dāng)前解設(shè)置為新解,即Q=Qnew;否則不接受新解,當(dāng)前布局保持為Q。
      完成一次循環(huán),當(dāng)前循環(huán)次數(shù)累加1次;試驗說明本發(fā)明增加了緩沖器插入率,同時也增加了滿足時延約束的線網(wǎng)數(shù),改善了電路時延特性。


      圖1.布局和空白區(qū)和Pad分布的實例。
      圖2.模擬退火流程圖。
      圖3.緩沖器獨立可行區(qū)域及候選位置計算圖。
      圖4.緩沖器獨立可行區(qū)域計算示意圖。
      圖5.MCNC測試用例ami33集成緩沖器規(guī)劃后布圖結(jié)果。
      具體實施例方式
      本發(fā)明可以應(yīng)用于不同的基于矩形劃分的布圖規(guī)劃/布局表示(也就是說該類布圖表示將芯片劃分為數(shù)目大于等于模塊數(shù)目的矩形區(qū)域,同時每一個矩形區(qū)域至多有一個模塊)下實現(xiàn)。本部分采用角模塊表示的布局結(jié)果,作為本發(fā)明的一個實例,并采用Elmore時延模型作為時延計算的模型。結(jié)合圖2的流程圖用本發(fā)明的方法進行集成了緩沖器插入規(guī)劃的布圖規(guī)劃。表一為一些變量的定義和數(shù)值。
      表一

      用國際基準(zhǔn)測試電路實例MCNC中ami33做實例結(jié)合圖2用本發(fā)明的方法進行模塊布局它依次有如下步驟1.初始化
      (1).設(shè)置模擬退火初始溫度Tstart=3000,模擬退火結(jié)束溫度Tend=500,內(nèi)循環(huán)次數(shù)Repeat=1000;(2).設(shè)置最終布局的目標(biāo)寬長比(R=1.0)及其權(quán)重ω;(3).設(shè)置目標(biāo)函數(shù)中總線長的權(quán)重λ。
      (4).設(shè)置緩沖器的大小以及緩沖器插入網(wǎng)格的大小(設(shè)置緩沖器插入網(wǎng)格的大小與緩沖器大小一致)2.讀入模塊信息以及線網(wǎng)信息測試用例ami33中包含33個方形模塊,線網(wǎng)一共有123條;對每個多端線網(wǎng)(有三個或三個以上引腳)按如下方式進行拆分由于測試電路中不包含線網(wǎng)的源端和漏端信息,故任意指定義個引腳作為源端,其他引腳作為漏端;將一個包含n個引腳的線網(wǎng)拆分成n-1個兩端線網(wǎng),在ami33測試用例中一共拆分出363條兩端線網(wǎng)。
      3.對測試用例中的33個模塊根據(jù)讀入順序進行標(biāo)號,并構(gòu)成模塊序列表示其布圖順序即角模塊表示中的S序列,并產(chǎn)生0,1串表示L串和T串,由此構(gòu)造出初始解如下S={block1,block2,block3,block4,...,block33)L={1,0,1,0,...,1,0}T={0 10 110 100 10 110 1110 110 100......}L串記錄模塊擺放時的方位,包括兩種方位,0表示垂直方位,表示該模塊從上方向下覆蓋其他已布模塊,1表示垂直方位,水平方位表示該模塊從右方向左覆蓋其他已布模塊。具體覆蓋的模塊數(shù)目在T串中相應(yīng)表示,T串采用了二進制序列,以連續(xù)的“1”以及一個“0”的子串長度表示共有多少個模塊被當(dāng)前模塊覆蓋。
      4.以下步驟按照圖2中的模擬退火流程進行,具體結(jié)果見圖4及表3。在模擬退火過程中將布圖規(guī)劃和緩沖器的規(guī)劃相結(jié)合,以角模塊序列表示來表示布局,計算布局中的所有空白區(qū),將它們分割成塊,并和模塊相關(guān)聯(lián);方法如下(詳細(xì)的表示到布局的轉(zhuǎn)換算法不屬于本專利申請的內(nèi)容,故這里不細(xì)述)在角模塊序列布圖表示向布局的轉(zhuǎn)換過程中,計算每個模塊的坐標(biāo)時比較相鄰的各模塊,如果兩模塊之間存在空區(qū)域,將該空區(qū)域和被覆蓋的模塊相關(guān)聯(lián);如圖一中所示模塊M1從上方覆蓋模塊M2和模塊M3,由于模塊M1和模塊M3之間存在空區(qū)域,我們將此空區(qū)域劃分成空區(qū)域模塊D1,并將其與模塊M3相關(guān)聯(lián),同樣模塊M4從右方覆蓋模塊M3和M1,由于模塊M4和M1之間存在空區(qū)域,我們將此空區(qū)域劃分成空區(qū)域模塊D2。
      模塊處理完畢,如果位于芯片的上邊界或右邊界的模塊與邊界之間存在空白區(qū),則將空白區(qū)和相應(yīng)的位于邊界的模塊相關(guān)聯(lián);如上邊界覆蓋模塊M1和模塊M4,由于上邊界和模塊M4之間存在空白區(qū),我們將其劃分成空區(qū)域模塊D3。
      對所有的空白區(qū)進行細(xì)致劃分,即把空白區(qū)細(xì)劃分成固定大小的可以放下一個緩沖器的小矩形;
      對每個兩端線網(wǎng)完成如下操作根據(jù)如下已有公式計算關(guān)鍵長度lcrit,如果兩端線網(wǎng)長度大于lcrit,繼續(xù)如下步驟,否則當(dāng)前線網(wǎng)插入緩沖器數(shù)為零;lcrit=Rb-Rdr+Cb-Clc+2RbCb+Tbrc---(1)]]>其中,Rb,Cb,Tb,Rd,Cl,r和c意義如表一所示;計算得到lcrit=4270。
      用如下已有方法計算在插入緩沖器的條件下,最小化時延需要的緩沖器數(shù)給定一條長度為l的兩端線網(wǎng),該線網(wǎng)的Elmore時延可以定義如下T(Rd,Cl,l)=(rc2)l2+(Rdc+rCl)l+RdCl---(2)]]>其中各參量意義如表一所示;對于長度為l,插入了n個緩沖器的線網(wǎng),要達(dá)到最小化線網(wǎng)時延的目的,n個緩沖器的最優(yōu)位置為說明本文緩沖器的位置及下述可行區(qū)的計算涉及到線網(wǎng)內(nèi)的位置問題,均指相對線網(wǎng)源端的Manhattan距離(只包含水平和垂直線段),例如線網(wǎng)長度就是指源端到漏端的Manhattan距離。
      第j個緩沖器的位置為xjoptxoptj=(j-1)yl+xl,j&Element;{1,2,...n}---(3)]]>其中 一條長度為l的單源端單漏端的線網(wǎng)(兩端線網(wǎng)),插入n個緩沖器的時延可以用下列公式計算。
      TN(x1,x2,...,xn,l)=T(Rd,Cb,x1)+T(Rb,Cl,l-xn)]]>+&Sigma;q=1n-1T(Rb,Cb,xq+1-xq)+nTb,---(5)]]>其中函數(shù)T的定義同(2),各參量意義如表一所示,xj為第j個緩沖器的位置。
      長度為l插入n個緩沖器的線網(wǎng)N的最優(yōu)時延可依據(jù)公式(2)、(3)、(4)和(5)計算,記為ToptN(n,l)=TN(xopt1,xopt2,......,xoptn,l)]]>=rl(nCb+Cl)+cl(Rd+nRb)+(nCb+Cl)(nRb+Rd)n+1---(6)]]>+nTb+rcl2-nr(Cb-Cl)2/c-nc(Rb-Rd)2/r2(n+1)]]>
      綜上所述,線網(wǎng)N要達(dá)到最優(yōu)時延需要的緩沖器數(shù)目,可按如下方式計算在兩端線網(wǎng)的源和漏之間從1開始按每次遞增1個緩沖器的方式插入緩沖器,如果插入第k+1個緩沖器導(dǎo)致線網(wǎng)延時增加,那么該線網(wǎng)達(dá)到最優(yōu)延時需要k個緩沖器;即緩沖器數(shù)k滿足下式ToptN(k,l)&lt;ToptN(k+1,l),]]>由該式可解出k的表達(dá)式 對每一個線網(wǎng)完成如下計算根據(jù)如下已有公式及1.c中給出時延約束Tcon計算滿足線網(wǎng)約束需要的緩沖器數(shù)目; 其中K1=RbCb+Tb(9)K2=(rCb+cRb)l+Tb+RdCb+RbCl-Tcon---(10)]]>-r2c(Cb-Cl)2-c2r(Rb-Rd)2]]>K3=12rcl2+(rCl+cRd)l+RdCl-Tcon---(11)]]>其中,各參量的意義如表一所示。
      對每個兩端線網(wǎng),根據(jù)公式計算滿足時延約束需要插入的緩沖器個數(shù)kmin,并計算每一個緩沖器的獨立可行區(qū)域(緩沖器b的獨立可行區(qū)域是指在滿足b所屬線網(wǎng)的時延約束條件下,假設(shè)該緩沖器所屬線網(wǎng)的其他緩沖器都被放置在他們各自的獨立可行區(qū)域內(nèi),可以插入緩沖器b的最大區(qū)域,圖3給出示例,線網(wǎng)源端和漏端分別為虛線框的左下角和右上角,緩沖器的獨立可行區(qū)為兩條135度斜線和矩形虛線框的交集);根據(jù)如下已有方法計算各個緩沖器的獨立可行區(qū)域;長度為l的線網(wǎng)N的第j個緩沖器的獨立可行區(qū)域為IFRi=(xoptj-Wifr/2,xoptj+Wifr/2)I(0,l)---(12)]]>其中,xoptj意義同公式(3),Wifr代表獨立可行區(qū)域的寬度;即插入kmin個緩沖器的最優(yōu)位置;使得如下公式成立&ForAll;(x1,x2,...,xi,...,xkmin)&Element;IFR1&times;IFR2&times;...&times;IFRn,---(13)]]>TN(x1,x2,......,xkmin,l)&le;TconN]]>其中xi為緩沖器相對源端的位置,TconN為與線網(wǎng)N相關(guān)的時延約束;Wifr可以按如下公式計算。
      Wifr=2&CenterDot;TconN-ToptN(kmin,l)rc(2kmin-1)---(14)]]>其中TconN和ToptN(kmin,l)為線網(wǎng)N的時延約束和插入kmin個緩沖器的最優(yōu)時延,r,c的意義如表一所示。ToptN(kmin,l)可由Kmin替換公式(6)中的n來計算。
      綜上所述,特定線網(wǎng)的緩沖器的獨立可行區(qū)域可由(3)、(4)、(12)、(14)計算出來。計算每一個緩沖器的候選插入位置集合;計算緩沖器所在線網(wǎng)的源端和漏端所確定的矩形區(qū)域和空白區(qū)的交(即計算兩個矩形的交);結(jié)果記為DFol;(如圖3,矩形粗線框為DFol);計算DFol與緩沖器的獨立可行區(qū)域的交。如果DFol內(nèi)某緩沖器插入位置的左下角位于緩沖器的獨立可行區(qū)域內(nèi),那么我們認(rèn)為該緩沖器插入位置是相應(yīng)緩沖器的候選位置。(圖3所示斜線所覆蓋部分)在圖3中我們可以看到兩端線網(wǎng)源端為s(350,1575),漏端為t(4725,5915);與線網(wǎng)相關(guān)的計算線網(wǎng)長度為(4725-350)+(5915-1575)=8715;計算關(guān)鍵長度lcrit=4270;根據(jù)公式(6)計算相應(yīng)最優(yōu)時延Topt=517;時延約束為Tcon=398.7;根據(jù)具體實施步驟公式(8)計算的Kmin=2;根據(jù)公式(14)計算計算Wifr(第i個緩沖器的獨立可行區(qū)域的寬度)Wifr=1239根據(jù)公式(4)計算得到x1=2905y1=2905根據(jù)公式(3)和(12)計算得到距離源點(350,1575)的距離線段為IFR1=(2285,3524)IFR2=(5190,6429)根據(jù)如圖4所示,b1,b2所在的兩條斜線所包圍的區(qū)域分別為兩個緩沖器的獨立可行區(qū)域;按如下方法計算在初始空白區(qū)分布下滿足目標(biāo)時延的兩端線網(wǎng)數(shù)目,我們將b2對應(yīng)的緩沖器可行區(qū)域放大如圖3所示;對每一個緩沖器按如下啟發(fā)式方法確定緩沖器的位置在該緩沖器的候選插入位置中選擇成為緩沖器候選位置次數(shù)最少同時尚未放置緩沖器的插入位置作為該緩沖器的位置;檢查每一個兩端線網(wǎng),統(tǒng)計所需緩沖器全部插入的線網(wǎng)數(shù)N,并計算出緩沖器由于模塊位置限制而未能成功插入的線網(wǎng)數(shù)Nnotsat;根據(jù)4.(6)的代價函數(shù)公式計算當(dāng)前布局對應(yīng)的代價,并與原代價函數(shù)進行比較,產(chǎn)生相應(yīng)的新解,并進一步在模擬退火過程中進行迭代,直到模擬退火過程結(jié)束。
      具體到退火過程中初始解為(1)S={block1,block2,block3,block4,...,block33}L={1,0,1,0,...,1,0}T={0 10 110 100 10 110 1110 110 10 0......}根據(jù)式(4)計算線長得TotalWirelength=5352486,布局面積Area=111499550寬高比 Rs=0.504線網(wǎng)滿足數(shù)為 Nnotsat=82;CostQ=Area+λ×TotalWireLength+ω×Rs2+r×Nnotsat=165108024保存Costmin=CostQ(2)進行布局優(yōu)化根據(jù)隨機值選擇方案1)來生成新解block14和block32相交換S={block1,block2,block3,...block13,block32,block15...,block31,block14,block33}L={1,0,1,0,...,1,0}T={0 10 110 10 0 10 110 1110 110 10 0......}根據(jù)式(4)計算線長得T+otalWirelength=5431429,布局面積 Area=111499550寬高比Rs=0.504線網(wǎng)滿足數(shù)為Nnotsat=95;CostQ=Area+λ×TotalWireLength+ω×Rs2+r×Nnotsat=165364896不滿足CostQ<Costmin,因此不記錄該解。
      (3)隨機數(shù)r的取值為0.53,由于exp(-(CostQnew-CostQ)/Tnow)>r的接受新解的條件不滿足,因此回到原解,將block14和block32重新交換回來。
      (4)循環(huán)布局優(yōu)化過程(2),(3)1000次。
      (5)因為不滿足T<500(結(jié)束溫度),產(chǎn)生新的退火溫度T=7600,轉(zhuǎn)向(3.2.3),循環(huán)進行步驟(3.2.3)-(3.2.9),直到滿足T<500。最后輸出對應(yīng)于Costmin的最優(yōu)解。
      根據(jù)所示參數(shù)值,我們給出實驗結(jié)果(如無特殊說明,長度和坐標(biāo)的單位均為微米(μm),時間單位為皮秒(ps))圖4是MCNC測試用例中ami33的布圖結(jié)果,其中在空白區(qū)域插入了154個緩沖器以滿足時延的約束。
      附實驗結(jié)果表二

      其中MCNC測試電路共有5個電路,包括Xerox,Ami33,Ami49,Apte,Hp五個電路,其中的模塊數(shù)目和線網(wǎng)數(shù)目如表二所示?!癿et”為滿足時延約束的線網(wǎng)數(shù);“插入數(shù)目”為成功插入空白區(qū)緩沖器的總數(shù)目;“需要數(shù)目”為所需的緩沖器總數(shù)目;“違反約束”為違反時延約束的線網(wǎng)數(shù)(即線網(wǎng)的最優(yōu)時延大于時延約束)。
      本發(fā)明使用的硬件是一臺Sun公司的v880工作站;使用Unix操作系統(tǒng)。本發(fā)明所述的緩沖器規(guī)劃算法有以下幾個優(yōu)點(1).將緩沖器規(guī)劃算法與布圖規(guī)劃的優(yōu)化過程相結(jié)合;(2).利用布圖結(jié)果中的空白區(qū)分布來進行緩沖器的插入,實現(xiàn)對時延性能的優(yōu)化,有利于后繼設(shè)計的順利完成;(3).具有工業(yè)應(yīng)用價值,可以用于集成電路設(shè)計過程中模塊級布圖規(guī)劃/布局中的互連規(guī)劃問題。
      權(quán)利要求
      1.集成電路布圖規(guī)劃與緩沖器規(guī)劃集成布局方法,其特征在于它是一種引入了緩沖器插入時的可行區(qū)域計算,并通過載布圖規(guī)劃結(jié)果中的空白區(qū)域的劃分,以便把緩沖器的規(guī)劃集成在布圖規(guī)劃問題的求解過程中的集成布圖的方法,它依次含有以下步驟(1).對計算機程序進行初始化,設(shè)制并輸入以下參數(shù)(1).模擬退火過程中參數(shù)設(shè)置,包括內(nèi)循環(huán)次數(shù)、初始溫度以及結(jié)束溫度;(2).設(shè)置最終布局芯片的目標(biāo)寬長R及其權(quán)重ω;(3).設(shè)置總線長的權(quán)重λ和緩沖器插入的權(quán)重r;(4).設(shè)置目標(biāo)函數(shù)中緩沖器的大小和緩沖器插入網(wǎng)格的大小。(5).設(shè)置緩沖器相關(guān)的各項性能參數(shù),包括負(fù)載電容,驅(qū)動輸出電阻,緩沖器輸出電阻,緩沖器輸入電容,緩沖器固有時延,單位長度線電容,單位長度線電阻;(2).計算機從模塊描述文件讀入模塊及線網(wǎng)信息(1).讀入模塊四角坐標(biāo),并根據(jù)模塊四角坐標(biāo)計算模塊的寬、高;(2).讀入模塊上引線端坐標(biāo),并將其轉(zhuǎn)化為相對模塊左下角的坐標(biāo);(3).按讀入順序給模塊編號,并計算總模塊數(shù)、各模塊凈面積之和;(4).讀入線網(wǎng)信息,包括引線端的互連情況,線網(wǎng)中的時延約束;把有m個引線端的多端線網(wǎng)拆分成m-1個兩端線網(wǎng),再根據(jù)兩端線網(wǎng)信息進行緩沖器規(guī)劃;(3).根據(jù)模塊信息,隨機構(gòu)造初始布局的拓?fù)浣Y(jié)構(gòu)即模塊間的位置關(guān)系,用角模塊序列表示方法作為模塊布局的表示,根據(jù)讀入模塊的次序,隨機構(gòu)造初始布局Q0的拓?fù)浣Y(jié)構(gòu);(4).進入模擬退火優(yōu)化過程,計算布局問題最優(yōu)或近似最優(yōu)解。從初始溫度開始,計算當(dāng)前溫度Tnow下的最優(yōu)或近似最優(yōu)解,它依次包含以下步驟(4.1).根據(jù)下述公式計算各線網(wǎng)線長估計值以及總線長估計值,其中,單個線網(wǎng)的線長根據(jù)線網(wǎng)中的引線端位置用半周長模型估計設(shè)某線網(wǎng)E有m個引線端p1(x1,y1),…,pm(xm,ym);則該線網(wǎng)的線長WireLength(E)用下述公式估計,WireLength(E)=(maxi&Element;{1,...,m}(xi)-mini&Element;{1,...,m}(xi))+(maxi&Element;{1,...,m}(yi)-mini&Element;{1,...,m}(yi))]]>其中,i為引線端編號,總線長估計值為TotalWireLength=&Sigma;k=1LWireLength(E),]]>L為線網(wǎng)的個數(shù);(4.2)計算得到的布局中的空白區(qū)域,并劃分成矩形模塊,再把空白區(qū)矩形模塊細(xì)劃分成固定大小的用以放下一個或幾個緩沖器的小矩形;(4.3)根據(jù)下式判斷線網(wǎng)N長度是否大于關(guān)鍵長度lcrit,lcrit=Rb-Rdr+Cb-Clc+2RbCb+Tbrc]]>其中Rb緩沖器輸出電阻(Ω),Rd驅(qū)動輸出電阻(Ω),Cb緩沖器輸入電容(fF),C1負(fù)載電容(fF),r單位長度線電容(Ω/μm),c單位長度線電容(fF/μm),Tb緩沖器固有延時(ps);若兩端線網(wǎng)的長度l≤lcrit則當(dāng)前線網(wǎng)插入緩沖器數(shù)為零(4.4)計算每一個兩端線網(wǎng)N因為不滿足時延約束需要插入的緩沖器數(shù)及各緩沖器的獨立可行區(qū)域(4.4.1).計算每一個二端線網(wǎng)滿足時延約束需要的緩沖器數(shù)kmin 其中K1=RbCb+Tb(9)K2=(rCb+cRb)l+Tb+RdCb+RbCl+Tcon---(10)]]>-r2c(Cb-Cl)2-c2r(Rb-Rd)2]]>K3=12rcl2+(rCl+cRd)l+RdCl-Tcon(11)]]>其中l(wèi)為線網(wǎng)長度,Rb緩沖器輸出電阻(Ω),Rd驅(qū)動輸出電阻(Ω),Cb緩沖器輸入電容(fF),C1負(fù)載電容(fF),r單位長度線電容(Ω/μm),c單位長度線電容(fF/μm),Tb緩沖器固有延時(ps),Tcon為線網(wǎng)的時延約束;(4.4.2).計算線網(wǎng)N中每個緩沖器的獨立可行區(qū)域長度為l的線網(wǎng)N的第j個緩沖器的獨立可行區(qū)域為IFRi=(xoptj-Wifr/2,xoptj+Wifr/2)I(0,l),]]>其中Wifr為第j個緩沖器的獨立可行區(qū)域的寬度,Wifr=2&CenterDot;TconN-ToptN(kmin,l)rc(2kmin-1)]]>其中,kmin為緩沖器數(shù),TconN為線網(wǎng)N的時延約束,ToptN為線網(wǎng)N中插入kmin個緩沖器的最優(yōu)時延,ToptN(kmin,l)=TN(xopt1,xopt2,......,xoptkmin,l)]]>=rl(kminCb+Cl)+cl(Rd+kminRb)+(kminCb+Cl)(kminRb+Rd)kmin+1]]>+kminTb+rcl2-kminr(Cb-Cl)2/c-kminc(Rb-Rd)2/r2(kmin+1)]]>Xoptj為緩沖器相對線網(wǎng)源端的Manhattan距離(只包含水平和垂直線段),也即第j個緩沖器的位置;xoptj=(j-1)yl+xl---j&Element;{1,2,...,kmin}]]>其中 (4.5)用計算機計算滿足目標(biāo)時延的兩端線網(wǎng)數(shù)目Nold;(4.5.1).計算每一個緩沖器的侯選位置集合(4.5.1.1).計算緩沖器所在線網(wǎng)的源端和漏端所確定的矩形區(qū)域和空白區(qū)的交DFol;(4.5.1.2).計算DFol和緩沖器的獨立可行區(qū)域的交,當(dāng)DFol內(nèi)某位置的左下角位于緩沖器的獨立可行區(qū)域內(nèi),則該位置是相應(yīng)緩沖器的侯選位置;(4.5.1.3).在上述緩沖器的侯選位置中選擇成為緩沖器侯選位置最少同時尚未放置緩沖器的位置作為緩沖器的位置;(4.5.2).檢查每一個兩端線網(wǎng),統(tǒng)計所需緩沖器未能全部插入的線網(wǎng)數(shù),記為Nnotsat(4.6)計算機用下列公式評價Q,得到目標(biāo)函數(shù)值Cost;CostQ=Area+λ×TotalWireLength+ω×Rs2+r×Nsat;其中Area=max{xi}&times;i&Element;[1...n]max{yi}i&Element;[1...n]]]>TotalWireLength(總線長)為各線網(wǎng)估算長度之和;λ為總線長的權(quán)重,ω為寬長比的權(quán)重,r為緩沖器插入的權(quán)重;Rs=/R-max(ration,1/ratio)/;其中設(shè)R為芯片寬長比的目標(biāo),ratio為芯片實際寬長比,(5)輸出當(dāng)前布局Qnow。(6)用下述公式計算下一個退火狀態(tài)的溫度Tnow=Tnow*a,其中a為退火因子,一般取值為0.95。如果當(dāng)前溫度大于結(jié)束溫度Tnow>Tend,則進入下一個退火狀態(tài)的求解過程;如果當(dāng)前溫度小于結(jié)束溫度Tnow<Tend,則輸出的當(dāng)前布局即為最終布局。
      全文摘要
      集成電路布圖規(guī)劃與緩沖器規(guī)劃集成的布局方法屬于集成電路計算機輔助設(shè)計領(lǐng)域,其特征在于它引入了緩沖器插入時的可行區(qū)域計算,并通過在布圖規(guī)劃結(jié)果中的空白區(qū)域的劃分,簡化了緩沖器規(guī)劃的復(fù)雜度,針對布圖規(guī)劃中的緩沖器規(guī)劃對模擬退火的求解過程進行設(shè)計,把緩沖器的規(guī)劃集成在布局規(guī)劃問題的求解中。它把緩沖器規(guī)劃融入布圖規(guī)劃的優(yōu)化過程中,實現(xiàn)對時延性能的優(yōu)化。
      文檔編號H01L21/70GK1547252SQ20031011554
      公開日2004年11月17日 申請日期2003年11月28日 優(yōu)先權(quán)日2003年11月28日
      發(fā)明者洪先龍, 董社勤, 蔡懿慈, 馬昱春, 陳松 申請人:清華大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1