專利名稱::Vlsi多層供電網(wǎng)絡(luò)中優(yōu)化配置垂直通孔的啟發(fā)式方法VLSI多層供電網(wǎng)絡(luò)中優(yōu)化配置垂直通孔的啟發(fā)式方法
技術(shù)領(lǐng)域:
VLSI多層供電網(wǎng)絡(luò)中優(yōu)化配置垂直通孔的啟發(fā)式方法屬于VLSI物理設(shè)計領(lǐng)域,尤其屬于布局布線領(lǐng)域中的供電網(wǎng)絡(luò)優(yōu)化設(shè)計技術(shù)范疇。作為特殊線網(wǎng)布線的一部分,供電網(wǎng)絡(luò)設(shè)計在布局布線階段具有極其重要的地位。
背景技術(shù):
:1.供電網(wǎng)絡(luò)設(shè)計的重要性在芯片物理設(shè)計中,供電網(wǎng)絡(luò)的布線屬于特殊線網(wǎng)布線部分。不適當?shù)墓╇娋W(wǎng)絡(luò)設(shè)計會引起一系列的嚴重問題,如半導(dǎo)體器件得不到足夠的供電電壓所引起的邏輯錯誤、供電網(wǎng)絡(luò)中某一支路的電流密度過大所引起的供電網(wǎng)絡(luò)的損壞等,這些都會極大地影響電路的性能,甚至使電路失效,芯片無法正常工作。因此在布線階段,供電網(wǎng)絡(luò)的布線具有最高優(yōu)先級。隨著集成電路的制造工藝由目前的深亞微米(DSM)進入到超深亞微米(VDSM),集成電路的設(shè)計規(guī)模也由超大規(guī)模(VLSI),甚大規(guī)模(ULSI)向極大規(guī)模(GSI)發(fā)展,供電網(wǎng)絡(luò)的規(guī)模與復(fù)雜度也在逐漸增大,對原有的設(shè)計方法提出了挑戰(zhàn)。更重要的是,由于芯片功耗急劇增加及芯片供電電壓不斷降低,使得供電網(wǎng)絡(luò)必須提供越來越大的工作電流;與此同時,隨著芯片工作頻率的急劇提高,使得寄生電容、電感對供電網(wǎng)絡(luò)影響的R益增大。所有這一切使得芯片的安全供電問題成為芯片設(shè)計制造過程中最主要的棘手問題之一,也是制約芯片性能和規(guī)模繼續(xù)提高的主要瓶頸之一。最近對深亞微米集成電路設(shè)計的調(diào)查表明,79%的設(shè)計具有電源網(wǎng)絡(luò)的問題,需要在流片之前矯正,否則芯片將由于電源網(wǎng)絡(luò)上的電壓降過大而不能正常工作。因此供電網(wǎng)絡(luò)設(shè)計問題受到了學(xué)術(shù)和工業(yè)界的空前重視。2.供電網(wǎng)絡(luò)中的IR電壓降設(shè)計不當?shù)墓╇娋W(wǎng)絡(luò)可能引起的嚴重問題之一就是供電網(wǎng)絡(luò)上過大的供電電壓波動。10%的供電電壓波動就會導(dǎo)致大于10%的時延不確定性,從而引起邏輯錯誤、導(dǎo)致芯片失效??赡芤l(fā)過大電壓波動的因素有很多,包括工作電流過大帶來的IR電壓降、高頻率下寄生電感帶來的噪聲等。在當前的頻率下,IR電壓降依然是可能引發(fā)過大電壓波動的主要因素。IR電壓降主要由片上供電網(wǎng)絡(luò)的電阻導(dǎo)致。當供電網(wǎng)絡(luò)中有很大的電流,就會引發(fā)過大的電壓降,從而影響電路的性能并會導(dǎo)致功耗提高。IR電壓降又分為兩類靜態(tài)IR電壓降和動態(tài)IR電壓降。靜態(tài)IR電壓降指的是在平均功耗和平均電流的基礎(chǔ)上得到的電源和地之間的電壓降,可以通過調(diào)整供電網(wǎng)絡(luò)的線寬來消除;而動態(tài)IR電壓降則考慮了電路模塊工作時一個時鐘周期內(nèi)的電流波形和電源與地之間的去耦合電容,動態(tài)IR電壓降問題可以通過調(diào)整線寬和放置去耦合電容兩種方式來消除,去耦合電容可以使用函os柵氧化層電容來有效的獲得。如前所述,消除IR電壓降的最基本的方法之一便是調(diào)整供電網(wǎng)絡(luò)的線寬。但是如果沒有很好的規(guī)劃和設(shè)計,調(diào)整線寬會使供電網(wǎng)絡(luò)占用過多的布線面積資源,導(dǎo)致后繼的信號線布線階段的布線擁擠問題。因此,如何調(diào)整線寬來占用最少的布線資源以消除供電網(wǎng)絡(luò)中過大的IR電壓降便是一個數(shù)學(xué)優(yōu)化問題??傮w來講,線寬優(yōu)化可以根據(jù)拓撲結(jié)構(gòu)的不同分為兩類一類是針對樹形拓撲結(jié)構(gòu)的供電網(wǎng)絡(luò),由于樹形結(jié)構(gòu)的特殊性,可以證明這是一個凸規(guī)劃問題,可以采用拉格朗日乘子法進行優(yōu)化;另一類是帶回路的一般圖結(jié)構(gòu),尤其是工業(yè)界中普遍使用的網(wǎng)狀供電網(wǎng)絡(luò),這類結(jié)構(gòu)的優(yōu)化問題的求解要困難的多,原因在于這種結(jié)構(gòu)中含有回路,各分枝上電流的方向不確定,并且求解之前各個分支的電流都是未知量,因此此時所有約束都是非線性的,成為一個非線性約束優(yōu)化問題,求解這類問題一般要采用復(fù)雜得多的數(shù)學(xué)規(guī)劃方法或者啟發(fā)式方法求解,目前提出的較成熟的方法有Tan-Shi算法、PECT算法等。然而,有一個很重要的問題是,在含有大量垂直通孔的多層供電網(wǎng)絡(luò)中,只通過優(yōu)化線寬并不能起到最好的效果。事實上,隨著特征尺寸的減少,垂直通孔的電阻對供電網(wǎng)絡(luò)IR電壓降的影響已經(jīng)到了不可忽略的地歩。3.多層供電網(wǎng)絡(luò)中的垂直通孔隨著集成電路的規(guī)模不斷增加,芯片上的線網(wǎng)也越來越密集,因此現(xiàn)在一般都必須采用多層線網(wǎng)才能實現(xiàn)芯片上各個模塊之間的互聯(lián),并且多層線網(wǎng)的層數(shù)也呈逐漸上升的勢態(tài)。在多層線網(wǎng)中,為了實現(xiàn)不同層之間金屬線的互連,垂直通孔(Via)便是不可或缺的重要組成部分。近些年來有關(guān)垂直通孔的研究R益引起人們重視的原因在于,隨著特征尺寸的減少,金屬線網(wǎng)的電阻在不斷增大,而其中增長速度最快的就是垂直通孔。在特征尺寸為90納米的芯片中,一個垂直通孔的電阻值可以相當于IOO微米的金屬線。垂直通孔的電阻值在整個多層線網(wǎng)占據(jù)的比重越來越大,這對芯片設(shè)計的各個階段都提出了新的挑戰(zhàn)。特別地,這一現(xiàn)象對多層供電網(wǎng)絡(luò)的設(shè)計具有尤其重要的影響。附圖1中顯示的是一種應(yīng)用廣泛的供電網(wǎng)絡(luò)結(jié)構(gòu)。在網(wǎng)絡(luò)中,同一層的金屬線都是相互平行,而相鄰層的金屬線相互垂直,一般情況下,高層的金屬線具有較大的寬度(width)同時相鄰金屬線間的間距(pitch)也相對較大。在這種多層的供電網(wǎng)絡(luò)中,自然需要通孔來實現(xiàn)不同層間金屬線的互連。如附圖1所示,為了不占用額外的布線資源,對信號線的布線造成影響,通孔一般都設(shè)置在相鄰層間金屬線的交叉點(intersection)上。垂直通孔電阻值的增加必然也會帶來供電網(wǎng)絡(luò)上電壓降的增大。解決這一問題的基本方法就是增加垂直通孔的數(shù)目,如附圖1所示,在有些金屬線交叉點處就放置了多個通孔。當然,放置太多的垂直通孔也會造成制造成本的增加,并且受幾何尺寸等因素影響,在各個交叉點處可以放置的通孔個數(shù)也有最大值限制。這樣,隨之而來的一個問題就是如何更好地在交叉點處配置通孔的數(shù)目。最簡單的方法自然是在同一層的交叉點處分配相同數(shù)目的通孔,但是很顯然,對大多數(shù)電路來講這種方法并不是一個最佳的方法。與線寬優(yōu)化類似,優(yōu)化配置通孔的問題也可以抽象為一個有約束的數(shù)學(xué)優(yōu)化問題。但是由于各個交叉點處只能配置整數(shù)個通孔,該問題是一個離散的數(shù)學(xué)優(yōu)化問題,因此,直接用數(shù)學(xué)規(guī)劃的方法求解將非常困難。到目前為止,尚沒有提出一種成熟的方法解決這個問題。
發(fā)明內(nèi)容針對目前尚沒有一種能對多層供電網(wǎng)絡(luò)中的垂直通孔進行優(yōu)化配置以降低網(wǎng)絡(luò)中電壓波動的方法的現(xiàn)狀,本發(fā)明提出了一種快速高效的優(yōu)化配置垂直通孔的啟發(fā)式方法。其特征在于該方法是一種以靈敏度信息作為指導(dǎo),采用循環(huán)累加的方式實現(xiàn)多層供電網(wǎng)絡(luò)中垂直通孔的優(yōu)化配置的啟發(fā)式方法,優(yōu)化的目標是更加合理地配置各個金屬線交叉點處垂直通孔的數(shù)目,以消除多層供電網(wǎng)絡(luò)最底層節(jié)點中電壓降超過規(guī)定最大允許值的違規(guī)節(jié)點,減少最底層節(jié)點的最大電壓降。該方法是在計算機中依次按以下歩驟實現(xiàn)的-歩驟l)讀入數(shù)據(jù)計算機讀入和分析用戶提供的幾何拓撲信息文件和電學(xué)參數(shù)信息文件,構(gòu)造由電導(dǎo)、獨立電壓源、獨立電流源構(gòu)成的電路網(wǎng)絡(luò),其構(gòu)建過程如下相鄰層金屬線之間的交叉點被抽象成對應(yīng)金屬線上的節(jié)點,按順序編號,這些節(jié)點將每一條金屬線都分割成了許多小段;根據(jù)幾何信息和電學(xué)參數(shù)信息計算出每一小段金屬線的電導(dǎo)值,每個通孔也會對應(yīng)于電路網(wǎng)絡(luò)中的一個電導(dǎo),把位于同一金屬線交叉點處的通孔對應(yīng)的并聯(lián)電導(dǎo)合并,合并后每一個交叉點只對應(yīng)于一個電導(dǎo);將芯片上連接于供電網(wǎng)絡(luò)最底層節(jié)點的電路模塊看作固定值的獨立電流源,電流值取做該電流模塊在最壞情況下的工作電流;歩驟2)初始化每個交叉點處只配置一個通孔,接下來從歩驟3)到歩驟8)將采用循環(huán)累加的方式,在每一個循環(huán)中都會挑選固定數(shù)目個交叉點,在交叉點上增加通孔的個數(shù),如此反復(fù)循環(huán),直到供電網(wǎng)絡(luò)滿足電壓降的要求、各個交叉點處通孔個數(shù)達到最大或者再增加的通孔并不能對電壓降的起到很好的改善效果為止;步驟3)電路模擬分析步驟3.1)根據(jù)節(jié)點分析法構(gòu)建供電網(wǎng)絡(luò)對應(yīng)的線性方程組GF=/其中G是電導(dǎo)系數(shù)矩陣,具有稀疏、對稱正定的優(yōu)良特性,V是電路節(jié)點電壓向量,I是支路電流向量;歩驟3.2)按以下歩驟采用基于不完全喬萊斯基分解的預(yù)優(yōu)共軛梯度方法求解線性方程組GV二I,得到供電網(wǎng)絡(luò)歩驟3.2.1)對電導(dǎo)系數(shù)矩陣G進行不完全喬萊斯基分解,得到預(yù)優(yōu)矩陣;歩驟3.2.2)釆用共軛梯度法,以循環(huán)迭代的方式求得滿足近似精度的近似解,得到供電網(wǎng)絡(luò)各個節(jié)點的電壓值;歩驟4)檢查供電網(wǎng)絡(luò)最底層的違規(guī)點個數(shù)如果違規(guī)點的個數(shù)為O,循環(huán)結(jié)束,轉(zhuǎn)歩驟9),否則繼續(xù)執(zhí)行下一歩;步驟5)計算違規(guī)點的平均電壓降除了第一次循環(huán)外,將計算出的平均電壓降與上一次循環(huán)的違規(guī)點平均電壓降進行比較,如果平均電壓降下降的幅值小于設(shè)定的閾值,循環(huán)結(jié)束,轉(zhuǎn)歩驟9),否則繼續(xù)執(zhí)行下一歩;歩驟6)電路靈敏度分析,其歩驟如下歩驟6.1)構(gòu)建擴展特勒根伴隨網(wǎng)絡(luò),伴隨網(wǎng)絡(luò)與原供電網(wǎng)絡(luò)幾何拓撲結(jié)構(gòu)相同,電導(dǎo)值也相同,但獨立電壓源設(shè)置為短路,獨立電流源設(shè)置為開路,并且在每個違規(guī)點上連接固定大小為1安培的對地吸納電流源;歩驟6.2)按歩驟3)中所述方法對擴展特勒根伴隨網(wǎng)絡(luò)進行模擬分析,得到伴隨網(wǎng)絡(luò)中各個節(jié)點的節(jié)點電壓值;歩驟6.3)根據(jù)原網(wǎng)絡(luò)及伴隨網(wǎng)絡(luò)中對應(yīng)節(jié)點的節(jié)點電壓值可以得到s=i:化-r隱)其中S是方法中定義的目標函數(shù),反映底層所有違規(guī)點的電壓降情況罰,,.1,是兩條金屬線的交叉點(3,1))處的垂直通孔數(shù)目,5S/3W7"是兩條金屬線的交叉點(a,b)處垂直通孔數(shù)目相對于目標函數(shù)的靈敏度,反映(a,b)處通孔數(shù)目的變化對于最低層違規(guī)點節(jié)點電壓降的影響,V^是底層節(jié)點允許的最小電壓值,電壓值小于它的節(jié)點便是違規(guī)點,VIO是最底層供電網(wǎng)絡(luò)中所有違規(guī)點的集合,Vi是原供電網(wǎng)絡(luò)中第i號違規(guī)節(jié)點的電壓值,vg是每一個通孔所對應(yīng)的電導(dǎo)值,不同層的通孔對應(yīng)的vg值不同,Va、Vh分別是原供電網(wǎng)絡(luò)中交叉點(a,b)兩端點的電壓值,V,,'、《分別是伴隨網(wǎng)絡(luò)中交叉點(a,b)兩端點的電壓值;步驟7)增加通孔從通孔數(shù)尚未達到最大值的交叉點中挑選出N個靈敏度最大的交叉點,將挑選出的每個交叉點處的通孔個數(shù)增加1;步驟8)檢查各個交叉點處的通孔個數(shù)如果各個交叉點處通孔數(shù)目都已經(jīng)達到上限,循環(huán)結(jié)束,轉(zhuǎn)步驟9),否則開始執(zhí)行下一循環(huán),轉(zhuǎn)歩驟3);步驟9)循環(huán)結(jié)束輸出結(jié)果。實驗證明,和平均分配通孔的方法相比,該方法可以更好地改善電路性能,提高供電網(wǎng)絡(luò)的穩(wěn)定性。此外,擴展特勒根伴隨網(wǎng)絡(luò)技術(shù)以及基于不完全喬萊斯基分解的預(yù)優(yōu)共軛梯度技術(shù)的使用極大地提高了方法的效率,使得該方法可以應(yīng)用于超大規(guī)模的供電網(wǎng)絡(luò)。附圖4便是本方法的具體實現(xiàn)流程。圖l:網(wǎng)狀多層供電網(wǎng)絡(luò)示意圖,M4——第4層金屬線,M3——第3層金屬線,M2——第2層金屬線,Ml——第1層金屬線,Via——垂直通孔圖2:經(jīng)過電學(xué)參數(shù)提取后的供電網(wǎng)絡(luò)示意圖;圖3:不完全喬萊斯基分解的過程示意圖;圖4:本發(fā)明的具體實現(xiàn)流程圖;具體實施方式本方法已經(jīng)使用0++語言在UNIX環(huán)境下開發(fā)并實現(xiàn)。實現(xiàn)的程序以讀入各層供電網(wǎng)絡(luò)的幾何拓撲信息、電學(xué)參數(shù)信息為開始,最終給出優(yōu)化配置之后各個交叉點處通孔個數(shù)。下面介紹程序的工作流程1.構(gòu)建電路網(wǎng)絡(luò)。通過分析用戶提供的信息文件,包括各層供電網(wǎng)絡(luò)的幾何拓撲信息和電學(xué)參數(shù)信息,最終將構(gòu)建如附圖2所示的由電導(dǎo)、獨立電壓源、獨立電流源構(gòu)成的電路網(wǎng)絡(luò)。需要說明的是,在程序中我們考慮的只是如附圖1展示的多層網(wǎng)狀供電網(wǎng)絡(luò),但我們的方法經(jīng)過適當改動也可以適用樹狀或者其他拓撲類型的供電網(wǎng)絡(luò);另外,由于電源線網(wǎng)絡(luò)與地線網(wǎng)絡(luò)在結(jié)構(gòu)上完全相似,因此,在程序中我們只考慮了供電網(wǎng)絡(luò)中的電源線網(wǎng)絡(luò)部分。具體的構(gòu)建過程如下相鄰層金屬線的交叉點都被抽象成對應(yīng)金屬線上的節(jié)點(node),節(jié)點按順序編號,這樣,每一條金屬線都被節(jié)點分割成許多小段(segment),接下來可以根據(jù)幾何信息和金屬線的方塊電阻計算出每一小段金屬線的電導(dǎo)值,電路網(wǎng)絡(luò)中每一小段金屬線都會對應(yīng)一個電導(dǎo)元件;類似的,每個通孔也會對應(yīng)于電路網(wǎng)絡(luò)中的一個電導(dǎo);將芯片上連接于供電網(wǎng)絡(luò)最底層節(jié)點的電路模塊看作固定值的獨立電流源,電流值取做該模塊在最壞情況下的工作電流。特別地,由于位于同一交叉點上的通孔在經(jīng)過提取之后將對應(yīng)于相互并聯(lián)的電導(dǎo),因此在我們的方法中進行了簡化,將位于同一交叉點處的對應(yīng)于通孔的電導(dǎo)進行了合并,合并后每一個交叉點只對應(yīng)于一個電導(dǎo),電導(dǎo)值等于單個通孔的電導(dǎo)值乘以該交叉點處的通孔個數(shù)。2.初始化在程序運行的最初階段,每個交叉點處都只分配一個通孔,之后將采用循環(huán)累加的方式,在每一個循環(huán)中都會挑選固定數(shù)目(N)個交叉點,在交叉點上增加通孔的個數(shù),如此反復(fù)循環(huán),直到設(shè)計出的供電網(wǎng)絡(luò)滿足電壓降的要求、各個交叉點處通孔個數(shù)達到最大或者增加的通孔并不能對電壓降的起到很好的改善效果為止。接下來的第3步到第8歩便是循環(huán)的具體過程。3.電路模擬分析。對供電網(wǎng)絡(luò)進行模擬分析的最基本的方法就是節(jié)點分析法。對于只含有電壓源、電流源以及電導(dǎo)的電路采用這種方法可以得到如下的線性方程組GF=/其中V是待求的節(jié)點電壓向量;G是電導(dǎo)系數(shù)矩陣;I是支路電流向量。求解出該線性方程組即可得到供電網(wǎng)絡(luò)中各個節(jié)點的電壓值。由于上面的線性方程組維數(shù)等于供電網(wǎng)絡(luò)中的節(jié)點數(shù)目,可能會達到十萬乃至幾十萬,因此直接采用高斯消元法求解將十分耗時。但是由于電導(dǎo)系數(shù)矩陣G具有稀疏、對稱正定等一系列優(yōu)良的性質(zhì),因此我們采用了基于不完全喬萊斯基分解的預(yù)優(yōu)共軛梯度算法。3.1基于不完全喬萊斯基分解的預(yù)優(yōu)共軛梯度算法基于不完全喬萊斯基分解的預(yù)優(yōu)共軛梯度算法是一種應(yīng)用十分廣泛的間接求解線性方程組的算法,對于系數(shù)矩陣為對稱正定的稀疏矩陣的線性方程組,該算法具有速度快,穩(wěn)定性高的特點。以線性方程組的標準型/^=6為例。如果系數(shù)矩陣A是一個對稱正定的矩陣,就可以借助于泛函的變分原理將線性方程組求解問題轉(zhuǎn)化為一個求解泛函極值的問題設(shè)A是階對稱正定矩陣,b是已知向量,^是方程組解的充分必要條件為滿足)=min(p(jc))xe;其中^c)=|(x,^c)-(x,6),其中(,)符號為內(nèi)積符號;該原理稱為Ritz原理,是共軛梯度法及其演化算法的基礎(chǔ)。由上面的變分原理可知,計算p(x)極小的算法也就給出了求解原方程組的算法,而求得p(x)極小的關(guān)鍵當然是如何使p(x)的值下降。首先考慮經(jīng)典的最速下降法,設(shè)A是W"中任意一點,則^(x)在該點下降最快的方向是該點的負梯度方向經(jīng)計算可知<formula>formulaseeoriginaldocumentpage12</formula>,其中r。稱為殘差向量令x,=x0+or0(4.1)其中a待定,由于p(x)沿r。方向是下降的,于是有p(Xi為了使下降的效果最佳,自然要使<formula>formulaseeoriginaldocumentpage12</formula>這樣求得的"可以使、沿r。方向下降最多,而上式的解為A如果在(4.1)式中取《=",,就得到一歩最速下降法,一般地有<formula>formulaseeoriginaldocumentpage12</formula>其中,<formula>formulaseeoriginaldocumentpage12</formula>由于A是對稱正定的,所以它的所有特征值都是正數(shù),設(shè)為^2^2L2A>0定義llx^=^,^0*為一種向量范數(shù),則最速下降法的收斂性有如下的結(jié)果<formula>formulaseeoriginaldocumentpage12</formula>其中x'是方程組的精確解,x。為初始點應(yīng)該注意的是雖然A;是^(X)在A處的最速下降方向,但這是局部的,要盡快達到^(X)的極小值,這樣的選擇不一定是最優(yōu)的,另一方面,由于計算中的舍入誤差會影響實際下降方向偏離最速下降方向,所以計算的時候具有一定的不穩(wěn)定性。共軛梯度的方法則主要針對最速下降法的這幾個缺點進行了改進,其主要思想是在pOO的極小化過程中,下降應(yīng)該具有整體最優(yōu)的特點。如果在7T中能夠取到A,^LA是線性無關(guān)的,并且能夠使x,滿足p(x々)=min(p(x))(4.2)其中&=^""{/7,,;21^,即由/v;72La張成的線性空間,則&="時就給出了原方程組的解。當&=1時,只要取A二^-6-^c。就可以滿足(4.2)式的要求假設(shè)有p,,^La」(A22)使得<formula>formulaseeoriginaldocumentpage13</formula>且滿足=min(p(x))xe5^共軛梯度法取^+^A,只要能選擇A,使得下面的式子成立(稱A和A,/72Lft—關(guān)于A共軛)就能滿足(2)式0,,無)=0/=l,2Ayt—1而滿足上式的非0向量可以被構(gòu)造出來-這樣通過反復(fù)迭代,序列(xj將會收斂到原方程組的解。從理論上講,共軛梯度法是一種直接求解線性方程組的方法,由方法的構(gòu)造過程可見,若A是n階矩陣,則x,,應(yīng)當是方程組的精確解,但是由于實際計算中舍入誤差的影響,Pl,P2LA不可能嚴格保持A共軛的特性,甚至當k大到一定程度后,A,/^LA可能變得幾乎線性相關(guān),所以共軛梯度法更多的作為迭代法使用。由于A是對稱正定的,設(shè)它的特征值為^2^2LSA>0,用共軛梯度法給出的向量序列將滿足以下估計X々一X共軛梯度法作為一種快速收斂的迭代法其優(yōu)點是可以充分利用系數(shù)矩陣的系數(shù)性,計算歩驟簡明,易于并行計算,但是在系數(shù)矩陣的特征值出現(xiàn)非均勻分布的情況時,收斂的速度將收到影響。對于經(jīng)典的共軛梯度法,其收斂的快慢依賴于系數(shù)矩陣的譜分布情況,當系數(shù)矩陣的條件數(shù)很小或特征值分布很集中時它可以用很少幾步得到高精度的近似解。而如果系數(shù)矩陣的特征值非常不均勻地分布在一個很長的區(qū)間上時,共軛梯度法的收斂速度就會變得很慢。為了克服這一個缺點,使之在分析差異很大電路方程的系數(shù)矩陣時能夠給出比較平穩(wěn)的求解速度,必須要考慮對電路方程的系數(shù)矩陣進行預(yù)處理。如果A是對稱正定的,那它就一定存在喬萊斯基分解,但如果A還是大型稀疏的,則分解很可能會完全破壞A的稀疏性,而不完全喬萊斯基分解就是將A分解成爿=丄丄'+其中L是一個上三角矩陣,R稱為剩余矩陣,由于這里R是可以變化的,所以L的稀疏性就可以的到保證,從而克服喬萊斯基分解破壞矩陣稀疏性的問題??梢粤铑A(yù)優(yōu)矩陣M=Z",U和L有關(guān)系l^DLT,其中D是由A的對角元素組成的矩陣。當剩余矩陣R選得合適時,預(yù)優(yōu)矩陣可以具有和系數(shù)矩陣A相同的稀疏性并且和A相近。理論上可以證明,M和A越相近,預(yù)優(yōu)共軛梯度法收斂得越快。我們使用類似于高斯消元的方法來獲得系數(shù)矩陣的不完全喬萊斯基分解和預(yù)優(yōu)矩陣。不完全喬萊斯基分解的過程如附圖3所示,設(shè)系數(shù)矩陣A已經(jīng)被分解到第i歩,則此時元素an成為主元。采用"高斯消元法"使aii所在列上的其它元素消為零。然而,這個"高斯消元法"是不完全的,這是因為既然我們的目的是求得一個上(下)三角矩陣U(L),那么下(上)三角矩陣的元素可以不加入消元過程??紤]第k列的情況,只有當ai,和a」k(i〈j〈k)都不為零時,高斯消元才會發(fā)生,在其它情況下aik和ajk都不變。系數(shù)矩陣A的稀疏性保證了不完全的喬萊斯基分解的運算量很小。4.查找供電網(wǎng)絡(luò)最低層的違規(guī)點。所謂違規(guī)點是指供電網(wǎng)絡(luò)最底層中電壓降超過最大允許值的節(jié)點。由于程序中只考慮電源線網(wǎng)絡(luò),因此電壓降超過供電電壓(Vdd)5%的節(jié)點都會被認為是違規(guī)點。即設(shè)定供電網(wǎng)絡(luò)底層允許的最小節(jié)點電壓(Vmin)為95XVdd,底層節(jié)點中電壓值小于V,^的就是違規(guī)點。如果違規(guī)點的個數(shù)為O,說明當前的供電網(wǎng)絡(luò)已經(jīng)可以滿足最大電壓降的需求,循環(huán)結(jié)束,轉(zhuǎn)第9歩;否則繼續(xù)執(zhí)行下一歩。5.計算違規(guī)點的平均電壓降。除了第一次循環(huán)外,將計算出的平均電壓降與上一次循環(huán)的違規(guī)點平均電壓降進行比較,如果平均電壓降的數(shù)值降低并不明顯,表明最近增添的通孔已經(jīng)不能對平均電壓降起到很好的改善作用,循環(huán)結(jié)束,轉(zhuǎn)第8歩;否則繼續(xù)執(zhí)行下一步。6.電路靈敏度分析。在我們的方法中,采用了靈敏度作為指導(dǎo)信息確定增加通孔的最佳位置,因此,電路的靈敏度分析是整個優(yōu)化過程的核心歩驟。為了能快速高效地完成對電路的靈敏度分析,結(jié)合優(yōu)化問題的特點,我們采用擴展的特勒根伴隨網(wǎng)絡(luò)技術(shù)。6.1靈敏度所謂靈敏度是指元件參數(shù)的變化對網(wǎng)絡(luò)特性的影響程度。最簡單的靈敏度的定義是可微分的網(wǎng)絡(luò)函數(shù)對元件參數(shù)的導(dǎo)數(shù)靈敏度=377朋,(/=1,2,...,")這個定義反映了函數(shù)T隨元件參數(shù)力;的變化而變化的趨勢和速率。在我們的方法中,目標函數(shù)S被設(shè)定為其中,VIO指的是電路中所有違規(guī)點的集合,Vi指的是第i號節(jié)點的電壓值。根據(jù)定義可以看出s小于等于o,并且s會隨著違規(guī)點的減少、違規(guī)點電壓值的增大而增大。而我們優(yōu)化的目標便是使它的值在可行的范圍內(nèi)達到最大。由于伴隨著網(wǎng)絡(luò)中通孔數(shù)目的增加,整個供電網(wǎng)絡(luò)都在發(fā)生變化,因此,在每一次循環(huán)中,我們都需要都求出S相對于任何一個交叉點處添加通孔的靈敏度#(〃其中M指的是交叉點集合,(a,b)指的是位于節(jié)點a和b之間的交叉點,節(jié)點a和b應(yīng)當分別位于相鄰層的兩條金屬線上;va,.h指的是位于交叉點(a,b)處的通孔的數(shù)目。更進一步,可以得到<formula>formulaseeoriginaldocumentpage15</formula>其中g(shù)u,h指的是位于節(jié)點a和b之間的交叉點處的通孔電導(dǎo)值的并聯(lián)值,它與交叉點處的通孔個數(shù)是線性相關(guān)的關(guān)系,二者的比值是每一個通孔的電導(dǎo)值vg。需要說明的是,位于不同層的通孔的電導(dǎo)值并不相同,并且相差很大,因此,求解不同層交叉點處增加通孔的靈敏度時需要使用不同vg值。從目標函數(shù)的定義可以得到,!:i:!"6)e似(5.2)根據(jù)(5.1)式和(5.2)式可以看出,求解交叉點處增加通孔的靈敏度問題被轉(zhuǎn)化為求解^,/3^的基本電學(xué)問題。6.2特勒根伴隨網(wǎng)絡(luò)技術(shù)可以采用特勒根伴隨網(wǎng)絡(luò)法求解節(jié)點a和b之間的電導(dǎo)相對于節(jié)點i的電壓值的靈敏度,即(5.2)式中的^〃3&,"它是一種求解靈敏度的基本方法。具體實現(xiàn)過程如下-a)構(gòu)造特勒根伴隨網(wǎng)絡(luò)N'(i),N'(i)和原網(wǎng)絡(luò)具有相同的拓撲結(jié)構(gòu),各分枝的電導(dǎo)值也相同,不同之處在于N'(i)中除了節(jié)點i的吸納電流設(shè)為1A以外,其他節(jié)點的吸納電流都設(shè)為0,另外,所有的輸入電壓都設(shè)為0。b)對N'(i)進行模擬分析,構(gòu)建節(jié)點電壓方程組,同樣采用第2歩中介紹的節(jié)點分析法,既然伴隨網(wǎng)絡(luò)和原網(wǎng)絡(luò)具有相同的拓撲結(jié)構(gòu)和電導(dǎo)值,它們可以共用同一個系數(shù)矩陣G,二者對應(yīng)的線性方程組的區(qū)別在于右端向量N'(i)的右端向量的元素除了和節(jié)點i對應(yīng)的元素為-1以外,所有元素均設(shè)置為0,艮卩<formula>formulaseeoriginaldocumentpage16</formula>其中-1出現(xiàn)在下標i上。c)求解伴隨網(wǎng)絡(luò)N'(i)對應(yīng)的節(jié)點電壓方程組,在這里也可以采用第2歩中介紹的基于不完全喬萊斯基分解的預(yù)優(yōu)共軛梯度技術(shù),并且由于原網(wǎng)絡(luò)和伴隨網(wǎng)絡(luò)的系數(shù)矩陣G相同,所以在這里不需要重復(fù)構(gòu)建預(yù)優(yōu)矩陣。模擬分析后得到伴隨網(wǎng)絡(luò)中分枝(a,b)兩端的電壓v:(i)和Vh'(i)。根據(jù)電路靈敏度分析理論,節(jié)點電壓Vi關(guān)于電導(dǎo)g^的偏導(dǎo)數(shù)可以用下式表示<formula>formulaseeoriginaldocumentpage16</formula>(5.3)依照上面的方法,對構(gòu)建出的伴隨網(wǎng)絡(luò)N'(i)進行模擬分析之后便可方便地求得所有交叉點處的并聯(lián)電導(dǎo)值相對于節(jié)點i的電壓值的偏導(dǎo)數(shù)。6.3擴展的特勒根伴隨網(wǎng)絡(luò)技術(shù)直接應(yīng)用特勒根伴隨網(wǎng)絡(luò)方法的問題在于,為了求解出所有交叉點的靈敏度,需要構(gòu)建與違規(guī)點相同數(shù)目的伴隨網(wǎng)絡(luò)進行模擬求解,這將是十分耗時的。因此,我們采用了改進的擴展特勒根伴隨網(wǎng)絡(luò)方法,將所有的伴隨網(wǎng)絡(luò)合并為一個整體,這樣只需求解一次即可。下面是該方法的推導(dǎo)過程假設(shè)V'(i)是N'(i)的節(jié)點電壓向量,它可通過求解節(jié)點電壓方程組得到。艮P,<formula>formulaseeoriginaldocumentpage16</formula>(5.4)其中,Va'(i)和Vb'(i)是V'(i)的兩個元素,設(shè)Ca^o,o,A,o丄o,A,0],l出現(xiàn)在下標a上;C,,=,1出現(xiàn)在下標b上;則V:(i)和Vb'(i)可分別表示為如下形式,<formula>formulaseeoriginaldocumentpage16</formula>而根據(jù)(5.2)式和(5.3)式可以推導(dǎo)出,<formula>formulaseeoriginaldocumentpage17</formula>(5.5)結(jié)合(5.4)式可以看出,上式中的<formula>formulaseeoriginaldocumentpage17</formula>可通過求解下列線性方程組得到,<formula>formulaseeoriginaldocumentpage17</formula>進一步可以設(shè)定,<formula>formulaseeoriginaldocumentpage17</formula>其中r中的元素只可能為-i或o,vio集合中的節(jié)點對應(yīng)的下標處為-i,否則為o。因此,可以認為v'和r分別為如下的擴展特勒根伴隨網(wǎng)絡(luò)的節(jié)點電壓向量和節(jié)點電流向量該伴隨網(wǎng)絡(luò)與原網(wǎng)絡(luò)同樣具有相同的拓撲結(jié)構(gòu),原網(wǎng)絡(luò)的所有的獨立電壓源都設(shè)為短路,所有的獨立電流源都設(shè)為丌路,最后在所有的底層違規(guī)點處增加固定大小為1A的吸納電流源。而根據(jù)(5.6)式,(5.5)式可以轉(zhuǎn)化為<formula>formulaseeoriginaldocumentpage17</formula>其中VZ和乂,'分別為擴展的特勒根伴隨網(wǎng)絡(luò)中節(jié)點a與b的節(jié)點電壓。根據(jù)以上的推導(dǎo)可以看出,只要按照以下的歩驟便可求得任一交叉點處通孔數(shù)相對于目標函數(shù)S的靈敏度a)構(gòu)建擴展特勒根伴隨網(wǎng)絡(luò)。構(gòu)建過程與5.2中構(gòu)建特勒根伴隨網(wǎng)絡(luò)相類似,只是最后要在所有的底層違規(guī)點處添加大小為1A的吸納電流源。b)對伴隨網(wǎng)絡(luò)進行模擬分析。系數(shù)矩陣與原網(wǎng)絡(luò)相同,支路電流向量如(5.6)式所示。c)求解出伴隨網(wǎng)絡(luò)中所有節(jié)點的電壓值后,根據(jù)(5.1)和(5.7)式即可方便地求解出所需的靈敏度。7.挑選靈敏度最大的N個交叉點。從通孔數(shù)尚未達到最大值的交叉點中挑選出N個靈敏度最大的交叉點。將挑選出的交叉點處的通孔個數(shù)增加1,同時對電路網(wǎng)絡(luò)中對應(yīng)交叉點的電導(dǎo)值做相應(yīng)改變。N的大小可以隨意指定,選擇不同的N對程序的運行時間、結(jié)果都有影響。一般來講,選擇較大的N可以減少運行時間但是運行后的結(jié)果較差。8.檢査各個交叉點處的通孔個數(shù)。如果各個交叉點處通孔數(shù)目都已達到上限,表明已無法再配置更多的通孔,循環(huán)結(jié)束,轉(zhuǎn)第8歩;否則轉(zhuǎn)第2步,繼續(xù)執(zhí)行下一次循環(huán)。9.循環(huán)結(jié)束,輸出結(jié)果。如下表所示便是程序在4個不同的七層供電網(wǎng)絡(luò)上運行后的結(jié)果,程序?qū)Φ诙右陨系慕涣x點處的通孔數(shù)目進行了優(yōu)化配置。通過與同一層交叉點處平均配置垂直通孔的方法相比較,可以看出,使用較少數(shù)目的通孔,我們的方法更有效地消除了底層的違規(guī)點,并且底層節(jié)點的最大電壓降也平均提高了8%以上。<table>tableseeoriginaldocumentpage18</column></row><table>權(quán)利要求1、VLSI多層供電網(wǎng)絡(luò)中優(yōu)化配置垂直通孔的啟發(fā)式方法,其特點在于該方法是一種以靈敏度信息作為指導(dǎo),采用循環(huán)累加的方式實現(xiàn)多層供電網(wǎng)絡(luò)中垂直通孔的優(yōu)化配置的啟發(fā)式方法,優(yōu)化的目標是更加合理地配置各個金屬線交叉點處垂直通孔的數(shù)目,以消除多層供電網(wǎng)絡(luò)最底層節(jié)點中電壓降超過規(guī)定最大允許值的違規(guī)節(jié)點,減少最底層節(jié)點的最大電壓降。該方法是在計算機中依次按以下步驟實現(xiàn)的步驟1)讀入數(shù)據(jù)計算機讀入和分析用戶提供的幾何拓撲信息文件和電學(xué)參數(shù)信息文件,構(gòu)造由電導(dǎo)、獨立電壓源、獨立電流源構(gòu)成的電路網(wǎng)絡(luò),其構(gòu)建過程如下相鄰層金屬線之間的交叉點被抽象成對應(yīng)金屬線上的節(jié)點,按順序編號,這些節(jié)點將每一條金屬線都分割成了許多小段;根據(jù)幾何信息和電學(xué)參數(shù)信息計算出每一小段金屬線的電導(dǎo)值,每個通孔也會對應(yīng)于電路網(wǎng)絡(luò)中的一個電導(dǎo),把位于同一金屬線交叉點處的通孔對應(yīng)的并聯(lián)電導(dǎo)合并,合并后每一個交叉點只對應(yīng)于一個電導(dǎo);將芯片上連接于供電網(wǎng)絡(luò)最底層節(jié)點的電路模塊看作固定值的獨立電流源,電流值取做該電流模塊在最壞情況下的工作電流;步驟2)初始化每個交叉點處只配置一個通孔,接下來從步驟3)到步驟8)將采用循環(huán)累加的方式,在每一個循環(huán)中都會挑選固定數(shù)目個交叉點,在交叉點上增加通孔的個數(shù),如此反復(fù)循環(huán),直到供電網(wǎng)絡(luò)滿足電壓降的要求、各個交叉點處通孔個數(shù)達到最大或者再增加的通孔并不能對電壓降的起到很好的改善效果為止;步驟3)電路模擬分析步驟3.1)根據(jù)節(jié)點分析法構(gòu)建供電網(wǎng)絡(luò)對應(yīng)的線性方程組GV=I其中G是電導(dǎo)系數(shù)矩陣,具有稀疏、對稱正定的優(yōu)良特性,V是電路節(jié)點電壓向量,I是支路電流向量;步驟3.2)按以下步驟采用基于不完全喬萊斯基分解的預(yù)優(yōu)共軛梯度方法求解線性方程組GV=I,得到供電網(wǎng)絡(luò)步驟3.2.1)對電導(dǎo)系數(shù)矩陣G進行不完全喬萊斯基分解,得到預(yù)優(yōu)矩陣;步驟3.2.2)采用共軛梯度法,以循環(huán)迭代的方式求得滿足近似精度的近似解,得到供電網(wǎng)絡(luò)各個節(jié)點的電壓值;步驟4)查找供電網(wǎng)絡(luò)最底層的違規(guī)點如果違規(guī)點的個數(shù)為0,循環(huán)結(jié)束,轉(zhuǎn)步驟9),否則繼續(xù)執(zhí)行下一步;步驟5)計算違規(guī)點的平均電壓降除了第一次循環(huán)外,將計算出的平均電壓降與上一次循環(huán)的違規(guī)點平均電壓降進行比較,如果平均電壓降下降的幅值小于設(shè)定的閾值,循環(huán)結(jié)束,轉(zhuǎn)步驟9),否則繼續(xù)執(zhí)行下一步;步驟6)電路靈敏度分析,其步驟如下步驟6.1)構(gòu)建擴展特勒根伴隨網(wǎng)絡(luò),伴隨網(wǎng)絡(luò)與原供電網(wǎng)絡(luò)幾何拓撲結(jié)構(gòu)相同,電導(dǎo)值也相同,但獨立電壓源設(shè)置為短路,獨立電流源設(shè)置為開路,并且在每個違規(guī)點上連接固定大小為1安培的對地吸納電流源;步驟6.2)按步驟3)中所述方法對擴展特勒根伴隨網(wǎng)絡(luò)進行模擬分析,得到伴隨網(wǎng)絡(luò)中各個節(jié)點的節(jié)點電壓值;步驟6.3)根據(jù)原網(wǎng)絡(luò)及伴隨網(wǎng)絡(luò)中對應(yīng)節(jié)點的節(jié)點電壓值可以得到全文摘要VLSI多層供電網(wǎng)絡(luò)中優(yōu)化配置垂直通孔的啟發(fā)式方法屬于VLSI物理設(shè)計領(lǐng)域,其特性在于它以靈敏度信息作為指導(dǎo),采用循環(huán)累加的方式實現(xiàn)了多層供電網(wǎng)絡(luò)中垂直通孔的優(yōu)化配置,與供電網(wǎng)絡(luò)線寬優(yōu)化方法類似,該方法也可以很好地改善供電網(wǎng)絡(luò)的性能;方法中還采用了擴展的特勒根伴隨網(wǎng)絡(luò)技術(shù)以及基于不完全喬萊斯基分解的預(yù)優(yōu)共軛梯度技術(shù),使得方法的效率得到了很大的提高。實驗結(jié)果證明該方法可以快速高效地完成大規(guī)模供電網(wǎng)絡(luò)中通孔的優(yōu)化配置,與平均分配通孔的方法相比,可以更有效地減少供電網(wǎng)絡(luò)中電壓降,提高芯片的穩(wěn)定性。文檔編號G06F17/50GK101221592SQ200710177998公開日2008年7月16日申請日期2007年11月23日優(yōu)先權(quán)日2007年11月23日發(fā)明者強周,進師,帥李,洪先龍,蔡懿慈申請人:清華大學(xué)