董自凱,王 勇,朱 琪,曹燕杰,吳海宏,張 勇
(中科芯集成電路股份有限公司,江蘇 無錫 214000)
在IC設(shè)計中,提取寄生參數(shù)和后仿真是至關(guān)重要的環(huán)節(jié),特別是隨著工藝尺寸的飛速縮減,設(shè)計出來的電路性能是否能達到預(yù)期要求,往往與電路的寄生參數(shù)和后仿真有著非常大的關(guān)系。早期較大的工藝尺寸下,寄生參數(shù)僅僅作為電路設(shè)計的輔助參考,甚至被忽略,是因為在大的工藝下模塊單元的延遲遠遠超過了線的延遲,但是當(dāng)前在工藝尺寸小于0.35μm以下(包含0.35μm)的CMOS工藝中,寄生參數(shù)的提取和后仿真卻是必不可少的設(shè)計環(huán)節(jié)。
互連寄生參數(shù)包括電阻、電容及電感等電學(xué)參數(shù),在上個世紀(jì)70年代才逐漸引起人們關(guān)注。進入20世紀(jì)90年代后,尤其進入深亞微米工藝以后,對此相關(guān)的算法研究和軟件開發(fā)才逐漸活躍起來。在當(dāng)前較高的電路工作頻率下,寄生電容的提取倍受關(guān)注,并且其研究成果也逐漸應(yīng)用到各種后端的寄生效應(yīng)的分析之中。
對于業(yè)界流行的一些寄生參數(shù)提取軟件,其計算方法根據(jù)各自軟件設(shè)定不盡相同,但他們的主要理論依據(jù)是相似的。
對于電阻的計算方法主要是依據(jù)我們熟悉的電阻計算公式:
對于給定的工藝,線高H一般為常量,則式(1)可寫為:
其中R0=ρ/H。
電阻提取方式主要是根據(jù)版圖的有關(guān)數(shù)據(jù),求出版圖中的固有電阻和寄生電阻的阻值。相比較而言,電阻的提取精確度要低一些,這是因為電阻的大小完全依賴于實際掩模版上電阻區(qū)域的形狀、通孔的形狀和位置。目前,已經(jīng)發(fā)表的電阻提取方法主要可分為以下三大類:
(1)解析公式求解法。主要依據(jù)公式(1)、(2)用解析法進行多次修正,這種計算方法比較簡單,對于一般規(guī)則形狀的圖形求解尚可,但是對于復(fù)雜的圖形求解精度不高。
(2)數(shù)值計算法。主要依據(jù)求解拉普拉斯方程,得到電阻區(qū)域的電勢分布,進而算出任意兩點間的等效電阻,這種方法尤其適用復(fù)雜圖形電阻值和寄生電阻的求解。后期逐漸發(fā)展中有:保角變換法、許瓦茲變換法、有限差分法、有限元法和邊界元法等。
(3)并行提取法。利用分塊分步的思路,將電路劃分成一個個小的部分,每一個部分對應(yīng)一個處理引擎,同時完成電路不同部分的電阻提取任務(wù),然后將各部分結(jié)果組合起來構(gòu)成電路的提取結(jié)果。其主要任務(wù)就是設(shè)計有效的算法分別適合于劃分和合并兩個步驟。這種提取方式也是目前各種寄生參數(shù)提取軟件所采用的有效方法。
對于電容的計算方法主要也是依據(jù)我們熟悉的電容計算思路。
考慮到有一寬為W、介質(zhì)厚度為T的互連線,其中W>>T,其與襯底的寄生電容可以用平板模型來計算:
其中W和L分別為互連線的寬度和長度,ε為介質(zhì)介電常數(shù)。
隨著集成電路制造工藝的發(fā)展和器件尺寸的縮小,使得互連線的寬度W和厚度愈發(fā)接近,同時線的密度也急劇膨脹,從而使得相鄰的線間側(cè)壁電容和邊緣電容越發(fā)重要,計算邊緣電容的公式為:
圖1 平板電容計算示意圖
圖2 邊緣場電容計算示意圖
但是工程實踐中的經(jīng)驗表明,在不考慮耦合電容的時候,金屬互連線寄生電容可近似表示為平行平板電容和邊緣電容兩者之和。在此之前通常僅考慮了單個導(dǎo)線的寄生電容,但在深亞微米工藝下,同層相鄰互連線以及層間互連線之間的電容耦合,互連線與襯底間的電容也不容忽視??紤]以上各種寄生電容效應(yīng)的互連線寄生電容模型逐漸改進,如圖3所示。
一般將電路中的電容分為互連線與換連線間的電容Cc和互連線與襯底間的電容Cg兩類,即總電容:
C=Cg+2Cc
其中Cg又可以劃分為面電容Ca和邊緣電容Cf:
Cg=Ca+Cf
隨著集成電路規(guī)模的不斷擴大和工藝尺寸的縮小,寄生電容精確性也日益突顯,尤其在多層布線和當(dāng)前90nm以下的工藝,層間耦合電容引起的交調(diào)失真也越來越明顯,因此需要仔細處理各類互連線。
圖3 深亞微米下互連線電容耦合示意圖
近年來,有多家EDA公司爭先開發(fā)出自己的寄生參數(shù)提取工具,比如Synopsys公司的StartRC、cadence公司的QRC、mentor公司的calibre XRC等。雖然每家公司的寄生參數(shù)提取工具使用方法、提取的精度以及針對的重點有所不同,但是他們都有一個共同的特點:每家EDA公司都在不斷完善和擴展提取工具的功能,不斷地開發(fā)新版本的提取工具。這些說明了任何一家EDA公司都認識到了寄生參數(shù)提取的重要性以及將來的發(fā)展勢頭。作為IC設(shè)計方,更需要及時了解業(yè)界動態(tài),掌握寄生參數(shù)提取的知識,完善適合自己使用的方法。
對于上述的三種提取軟件都擁有2D電參數(shù)提取引擎及3D電容、阻抗提取引擎,能夠提供多種精度參數(shù)提取。
考慮普通的互連線嵌入到多層介質(zhì)中間的m個導(dǎo)體,電容可表示為一矩陣Cm*m,假設(shè)其中的導(dǎo)體j電勢為1,其他的導(dǎo)體電勢為0,則Cm*m中的第j列在數(shù)值上就等于各導(dǎo)體表面電荷量。以此重復(fù)上述過程即可確定Cm*m矩陣。
當(dāng)給定各導(dǎo)體上的電勢ψ(r),并假設(shè)導(dǎo)體和電解質(zhì)表面的電荷密度σcd(r),電解質(zhì)和電解質(zhì)表面的電荷密度σdd(r),則導(dǎo)體的表面電勢為:
其中Scd、Sdd分別為導(dǎo)體和電介質(zhì)表面、電介質(zhì)和電介質(zhì)表面。在電介質(zhì)和電介質(zhì)表面任意一點滿足電位移矢量法向連續(xù)條件:
na是電介質(zhì)和電介質(zhì)表面r點指向電介質(zhì)a的法線方向,εa、εb是電介質(zhì)a和電介質(zhì)b的介電常數(shù),ψ+(r)、ψ-(r)分別是由電介質(zhì)a和電介質(zhì)b方向趨近于電介質(zhì)表面r點的電勢。
求解(5)、(6)可以得到導(dǎo)體表面電荷分布σe。首先將導(dǎo)體和電介質(zhì)表面、電介質(zhì)和電介質(zhì)表面分別離散為小的平面并假定每個小平面上的電荷均勻分布,這樣可以將式(5)和式(6)轉(zhuǎn)化成線性方程組。最后跟據(jù)工具的不同可以采用高斯消元法或者最小殘余法以及多級加速法等方法加速迭代次數(shù),最終求解結(jié)果。
2D參數(shù)提取和3D參數(shù)提取相類似,但是所使用2D的自由空間格林函數(shù)替代3D的函數(shù),業(yè)界大部分工具也都基本支持高次邊界元和導(dǎo)體及介質(zhì)表面元自動生成等。
提取基本過程也是相類似,主要包含有:
3.2.1 3D建模及離散
通過讀取數(shù)據(jù)庫中輸入的相應(yīng)信息,生成兩類離散數(shù)據(jù):
(1)將金屬表面與介質(zhì)交界面以及不同介質(zhì)交界面離散成三角形或多邊形面片,并劃分介質(zhì)網(wǎng)格。
(2)自動識別網(wǎng)絡(luò)端口,并將導(dǎo)體按電流方向離散成電流陣面。離散結(jié)果會在很大程度上影響提取引擎的計算時間、精度以及內(nèi)存消耗,所以離散算法也是各家工具提供商不遺余力去改進的方向點。
3.2.2 版圖原理圖比較
該模塊一方面能夠檢查版圖網(wǎng)表與原理圖網(wǎng)表一致性,另一方面能夠建立原理圖網(wǎng)表與版圖網(wǎng)表的對應(yīng)關(guān)系,使提取的寄生參數(shù)能夠反標(biāo)到原理圖網(wǎng)表。
3.2.3 數(shù)據(jù)庫模塊
該模塊存儲版圖網(wǎng)絡(luò)連接信息、互連線及器件幾何信息、原理圖網(wǎng)表與版圖網(wǎng)表對應(yīng)關(guān)系等信息,為其他各模塊運行提供高效的運行時數(shù)據(jù)保證。
3.2.4 用戶圖形界面
用戶圖形界面也是該工具軟件的重要組成部分,具有了方便快捷的菜單操作,同時各工具也為高級用戶提供命令行操作接口。
3.2.5 輸出文件生成模塊
在這類工具中用戶只需指定輸入文件、提取方式等,工具即可自動調(diào)用其他模塊完成整個提取流程,并生成工業(yè)標(biāo)準(zhǔn)寄生參數(shù)文件(如HSPICE、specter、SPEF等)。
對于設(shè)計中遇到的使用大規(guī)模存儲單元的電路,要想獲取存儲單元的時序等信息可以通過多種渠道:從memory提供商手中獲得相應(yīng)的lib文件;利用專門的針對memory時序等信息的提取軟件進行操作;基于現(xiàn)有的提取工具手工獲取寄生參數(shù)并仿真。
對于上述的前兩種方法,設(shè)計公司也需要付出更多的研發(fā)支出,所以目前多數(shù)的研發(fā)人員是采用最后一種方法獲得自己想要的寄生參數(shù)文件。但是對于超大容量存儲單元數(shù)的電路,即使再好的服務(wù)器,完成寄生參數(shù)提取的工作仍非常麻煩,在提取時需要采用一些特殊的方法,必須在提取前對存儲單元做詳細的規(guī)劃。
如在工程中要使用128M的存儲陣列,每個存儲單元為6管,總共要用到的存儲管為768M個,這個數(shù)目對于所有的寄生參數(shù)提取工具來說都是非常龐大的,即使采用性能相當(dāng)出色的服務(wù)器,運行的時間也是非常漫長的,甚至大部分服務(wù)器在運行過程中就“死機“了。所以在限制于當(dāng)前工具的情況下,想要獲取這部分的寄生參數(shù)只能選擇其他可行的辦法。
Calibre XRC提供給用戶有hierarchical的提取方式,其原理是對于電路中重復(fù)的單元,只要用戶將其指定為要做hierarchical提取的模塊,并寫進Hcell文件中,工具在提取過程中會自動將所有的重復(fù)單元,選擇其中的一個,只做一次提取,并將剩余的相同的單元用本次提取結(jié)果替代。例如,在實際中我們用到一個圖4所示64M×2大小六管單元的大規(guī)模存儲陣列,為了方便寄生參數(shù)提取,在版圖之前我們就將其層次結(jié)構(gòu)做了詳細劃分,如圖5。最終的折中方案是采用了1K大小的單元作為將其劃分成許多個1K大小的相同單元(圖6),并將這個1K大小的單元名稱寫進Hcell中,格式如圖7所示。在提取過程中工具只會提取這個1K大小的單元,而剩余的部分全部用本次他提取的這個1K大小的單元替代。這樣就大大地縮小了整個電路寄生參數(shù)的提取時間,同時也可以降低對服務(wù)器性能的依賴程度。
圖4 64M×2大規(guī)模存儲陣列示意圖
圖5 大規(guī)模存儲器件的拓撲結(jié)構(gòu)
圖6 整個存儲陣列的劃分示意圖
圖7 采用1K大小為單元模塊的Hcell文件
但是采用hierarchical也會帶來另一個問題,就是提取結(jié)果會與真實情況產(chǎn)生誤差。考慮到圖8所示的情況,真實的結(jié)果會在cellb與左側(cè)的互連線間存在一個Cc電容,但是采用hierarchical結(jié)構(gòu)提取后,由于cellb作為單獨模塊進行參數(shù)提取,而從上層看下來cellb為一個黑盒子,所以會漏掉這個本應(yīng)該抽取的電容Cc。此外還有一種常見的情況也會造成誤差存在??紤]如圖9所示的情況,兩個相同的模塊Cellb的存在,但是其中的一個模塊上走過一根較寬的電源線,在這種情況下兩個完全相同的模塊的寄生參數(shù)絕對不會是相同的。但是就像上面所敘述的那樣,采用了hierarchical方式提取寄生參數(shù)時,工具會只選取其中的一個Cellb模塊進行參數(shù)提取,并j將提取的寄生參數(shù)賦予另外那個Cellb,從而使得這兩個模塊擁有完全相同的寄生參數(shù),這就造成了結(jié)果的失實。至于這樣的結(jié)果是不是我們所能接受的,這就需要設(shè)計人員考慮到具體的情況,決定是否去做調(diào)整。
可能在設(shè)計中還會遇到所用的存儲器是需要對其進行配置才可以實現(xiàn)功能的情況,但是我們所使用的存儲基本單元都相同,均為沒有寫入的原始單元,所以后仿真時就無法直接使用工具輸出的文件。
對于工程中所遇到這類情況一般需要手工對輸出文件進行修改,但是工具輸出的網(wǎng)表文件是按照calibre工具的自己的命名規(guī)則來生成的,這類文件看起來既繁瑣又復(fù)雜,考慮到calibre的RVE工具有著很強的定位功能,所以我們可以借助這個工具來快速查找到需要配置的存儲單元,并反標(biāo)到寄生參數(shù)文件中順利地實現(xiàn)后仿真。
首先我們可以按照正常的寄生參數(shù)提取步驟輸出正確格式的寄生參數(shù)文件,接下來,在電路圖中或者原始的電路圖spice網(wǎng)表中將要配置的存儲單元做修改,將其改成正常配置后的狀態(tài)(圖10),并用配置后的電路圖spice文件做LVS,開啟RVE并載入剛跑出的數(shù)據(jù)文件(圖11)。接下來,使用RVE將錯誤器件類型中的這些器件一一對應(yīng)到版圖網(wǎng)表中(圖11)。最后利用RVE中所提示的層次信息,將要配置的那些存儲單元在之前生成的寄生參數(shù)文件中對應(yīng)起來,并做相應(yīng)的修改,如圖12所示。
圖8 真實RC網(wǎng)絡(luò)和采用hierarchical方式提取示例
圖9 采用hierarchical方式提取寄生參數(shù)引起的失實
圖10 對原始電路網(wǎng)表進行配置
圖11 利用calibre的定位對應(yīng)到該配置的單元
通過上述步驟我們就可以手動將所需要配置的存儲單元全部正確反標(biāo)到生成的寄生參數(shù)文件中去。這種方法是行之有效的,并在實際設(shè)計中得到檢驗。
總之,對于目前使用大規(guī)模存儲器件的電路,設(shè)計人員會遇到很多不同的問題,這需要我們熟練掌握寄生參數(shù)提取工具的使用技巧,并結(jié)合工程實際情況提出適合自己使用的方案。
圖12 將需要配置的單元反標(biāo)到生成的寄生參數(shù)文件
本文主要介紹了版圖寄生參數(shù)提取的計算原理,結(jié)合工程實踐,探討了關(guān)于包含大規(guī)模存儲器件電路寄生參數(shù)提取時遇到的問題,重點分析大規(guī)模存儲器件的層次化劃分技巧以及需要配置后使用的存儲器件的寄生參數(shù)提取解決方案。
[1]王志功,景為平.集成電路設(shè)計與九天EDA工具應(yīng)用[M].南京:東南大學(xué)出版社,2005.
[2]孫世磊,薛金濤,王高峰.精確寄生參數(shù)提取軟件設(shè)計和實現(xiàn)[J].計算機工應(yīng)用,2008.
[3]王藝璇.版圖寄生參數(shù)提取技術(shù)的研究[D].重慶:重慶郵電大學(xué),2007.