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