2011年2月20日,SPICE Circuit Simulation Program獲頒IEEE里程碑(IEEE Milestone)牌匾,以表彰其對集成電路設(shè)計所做出的貢獻(xiàn)。
該牌匾放在美國加州大學(xué)伯克利分校電氣工程大樓(Cory Hall)正門口,因為SPICE的三個版本都是Cory Hall大樓內(nèi)開發(fā)完成的。牌匾上刻文:
SPICE(Simulation Program with Integrated Circuit Emphasis)于 1969-1970 年作為班級項目在加州大學(xué)伯克利分校創(chuàng)建。它發(fā)展成為全球標(biāo)準(zhǔn)的集成電路仿真器。SPICE已被用于對學(xué)生在電路仿真復(fù)雜性方面進(jìn)行培訓(xùn)。SPICE及其衍生產(chǎn)品已成為幾乎所有集成電路設(shè)計人員都采用的必不可少的工具。
SPICE (Simulation Program with Integrated Circuit Emphasis) was created at UC Berkeley as a class project in 1969-1970. It evolved to become the worldwide standard integrated circuit simulator. SPICE has been used to train many students in the intricacies of circuit simulation. SPICE and its descendants have become essential tools employed by virtually all integrated circuit designers.
SPICE的誕生
SPICE是Simulation Program with Integrated Circuits Emphasis的縮寫,由加州大學(xué)伯克利分校(UCBerkeley)的電工和計算機(jī)科學(xué)系開發(fā),骨干是Ronald A. Rohrer和Laurence Nagel,開始是使用FORTRAN語言設(shè)計的仿真軟件,用于快速可靠地驗證集成電路中的電路設(shè)計以及預(yù)測電路的性能,是一種功能強(qiáng)大的通用電路級模擬仿真器,主要用于集成電路的電路分析,SPICE的網(wǎng)表格式變成了通常模擬電路和晶體管級電路描述的標(biāo)準(zhǔn)。
1970年。當(dāng)時Ronald A. Rohrer剛剛從仙童半導(dǎo)體(Fairchild)返回加州大學(xué)伯克利分校,擔(dān)任電機(jī)工程與計算機(jī)科學(xué)系的教授。
由于剛回到學(xué)校,Ronald A. Rohrer教授在給七個研究生上“電路綜合”課時沒來得及準(zhǔn)備教材,所以,在第一堂課,他就宣布:學(xué)生們一起寫一個電路仿真程序。
Ronald A. Rohrer跟系里的管教學(xué)的主任Donald O. Peterson教授達(dá)成一個協(xié)議:只要Peterson教授認(rèn)可學(xué)生們寫的仿真程序,他們就全部通過。否則的話,他們就全部不及格。
當(dāng)課程結(jié)束,大學(xué)一致推舉Laurence Nagel為代表向Peterson教授匯報成果,這個成果就是CANCER(ComputerAnalysis of Nonlinear Circuits, Excluding Radiation不包括輻射的非線性電路計算機(jī)分析),Peterson教授給予了認(rèn)可。
1971年秋,CANCER更名為SPICE,并發(fā)送給友好用戶(friendly users);1973年4月12日,Donald O. Peterson教授在第十六屆中西部電路研討會(Sixteenth Midwest Symposium on Circuit Theory)上介紹SPICE論文,SPICE才開始讓全世界認(rèn)識。
第一版于1971年由Laurence Nagel等七名研究生在Ronald A. Rohrer教授指導(dǎo)下開發(fā)完成,Ronald A. Rohrer教授在1971年國際固態(tài)電路會議(ISSCC)上發(fā)表的一篇論文中宣布。1975年在Donald O. Peterson教授指導(dǎo)下推出正式實用化版本。1983年發(fā)布的SPICE2G.6在很長時間內(nèi)都是工業(yè)標(biāo)準(zhǔn),它包含超過15000條FORTRON語句,運(yùn)行于多種中小型計算機(jī)上。1985年SPICE3推出,轉(zhuǎn)為用C語言開發(fā),易于運(yùn)行于UNIX工作站,還增加了圖形后處理工具和原理圖工具,提供了更多的器件模型和分析功能。1988年被定為美國國家工業(yè)標(biāo)準(zhǔn),主要用于模擬電路、數(shù)模混合電路、電源電路等電子系統(tǒng)的設(shè)計和仿真。
這七位天才學(xué)生是:Laurence W. Nagel(UCBerkeley,1969年學(xué)士、1970年碩士、1975年博士)、Bob Berry、Shi-Ping Fan、Frank Jenkins、Jesse Pipkin、Steve Ratner和Lynn Weber。
SPICE的意義
在SPICE出現(xiàn)之前,設(shè)計人員分析電路,要么是用筆和紙,要么就要搭電路板(breadboard)。Donald O. Peterson教授就被學(xué)生們稱之為“信封教授”,因為他認(rèn)為電路分析用個信封的背面來做就足夠了。但隨著電路規(guī)模的增大,用筆紙變得越來越不可能,搭電路板又不能精確反應(yīng)芯片上的電路特性,而且費(fèi)用也越來越高。
電子產(chǎn)品的設(shè)計一般先從功能框圖開始,然后細(xì)化到原理圖,還要經(jīng)過很復(fù)雜和繁瑣的調(diào)試驗證過程,最終才能完成。為了驗證原理圖的正確性,都要焊接實驗板(樣板),或使用易于插件的“面包板(breadboard)”,每個節(jié)點(diǎn)都必須正確和可靠,連接或焊接過程都是細(xì)致而耗時的工作,在器件很多時幾乎是不可能完成的任務(wù),而每次調(diào)整都要打樣,耗時長而成本高,在設(shè)計集成電路時更是如此,急需在制造之前驗證集成電路的功能。這種現(xiàn)實需要就迫使人們想用他辦法來解決。
根據(jù)電路理論,人們可以建立起節(jié)點(diǎn)方程和回路方程,通過解這些方程組成的方程組就可以得到結(jié)果,也就是說可以通過計算來獲得電路的工作情況。但包含電感、電容等器件的電路形成的是一組微分方程組,人工計算依然是累人的活,而計算機(jī)則可以大展身手,通過其強(qiáng)大的存儲、計算和圖形顯示能力就能輕松完成,很快得到結(jié)果。
用軟件來做電路仿真就變得日益迫切了?;谶@種思想,人們開發(fā)出電路仿真軟件,通過快速的仿真,代替耗時且累人的反復(fù)調(diào)測,提高設(shè)計速度和效率,也節(jié)省了時間和成本。最早、最出色的仿真軟件就是SPICE。
很多SPICE里面的基本要素都來自于Rohrer教授指導(dǎo)的這堂“電路綜合”課,包括解稀疏矩陣的模塊(使得可處理的電路規(guī)模成倍的增大)、隱式積分算法的使用(使得瞬態(tài)分析更加穩(wěn)定)。并且程序里加入了自帶的半導(dǎo)體器件模型,用戶只需要給出一組模型參數(shù),用不著自己提供器件模型的FORTRAN模塊了。
SPICE不僅僅是一個用于教學(xué)的簡單程序。它是第一個結(jié)合稀疏矩陣分析以允許對大型電路進(jìn)行經(jīng)濟(jì)模擬、對組件變化和噪聲的敏感性進(jìn)行伴隨分析、用于“首次切割”設(shè)計的內(nèi)置設(shè)備模型以及通過過渡演變的簡單用戶界面從打孔卡(punched cards)到啞終端(dumb terminals)再到復(fù)雜的工作站。SPICE的開發(fā)人員首次廣泛提供源代碼,使其他人能夠貢獻(xiàn)更復(fù)雜的設(shè)備模型和額外的分析功能。這些因素促成了其在開源和專有電路仿真軟件的后續(xù)開發(fā)中的主導(dǎo)地位。
SPICE是開源代碼先驅(qū)
當(dāng)時有許多開源代碼,但都沒有太大的商業(yè)價值。SPICE就不同了,有人已經(jīng)看到它的商業(yè)價值,但Peterson教授堅持要把代碼開源,我們都得真心的感謝Peterson教授。任何人只要花20美元的手續(xù)費(fèi),就可以得到SPICE的源代碼。當(dāng)然,在冷戰(zhàn)時期,SPICE被禁止出口到政府認(rèn)為的“共產(chǎn)國家”。
SPICE的發(fā)展
自SPICE問世以來,其版本的更新持續(xù)不斷,有SPICE2、SPICE2G6、SPICE3、SPICE3f5等多個版本,新版本主要在電路輸入、圖形化、數(shù)據(jù)結(jié)構(gòu)和執(zhí)行效率上有所增強(qiáng),業(yè)界普遍認(rèn)為SPICE2G6是最為成功和有效的,以后的版本僅僅是局部的變動,現(xiàn)在常用的各類SPICE工具都是基于公開發(fā)表的SPICE 2G6版的源代碼。
從1970年代到如今超過五十年的時間里,SPICE從只能仿真十幾個元器件規(guī)模到今天可以仿真上千萬個元器件規(guī)模的電路,取得了非常驚人的成就。SPICE是一個解非線性常微分方程的工具,但由于要改變SPICE的基石很難,所以1990年代中期的SPICE沒有太大的變化。
SPICE的基石包括:改進(jìn)的節(jié)點(diǎn)分析法(Modified Nodal Analysis)、稀疏矩陣解法(Sparse Matrix Solver),牛頓-拉夫遜迭代(Newton-Raphson Iteration)、隱性數(shù)值積分(Implicit Numerical Integration)、動態(tài)步長的瞬態(tài)分析(Dynamic Time Step Control)、局部截斷誤差(Local Truncation Error)等等。
目前主流的商用SPICE包括新思科技(Synopsys)的HSPICE & FineSim SPICE、楷登電子(Cadence)的Spectre& APS、西門子(Siemens EDA)的ELDO& AFS、芯師科技(Silvaco)的Smart-Spice,國產(chǎn)廠商華大九天(Empyrean)的ALPS、概倫電子(Primarius)的NanoSpice&NanoSpice Giga具有一定競爭力。
當(dāng)然,除了由EDA公司提供的商業(yè)SPICE外,還有就是一些老牌的半導(dǎo)體公司自行在內(nèi)部開發(fā)的SPICE,不用來銷售,包括IBM、英特爾(Intel)、德州儀器(TI)、亞德諾(ADI)、意法半導(dǎo)體(STM)和英飛凌(Infineon)等公司,這些半導(dǎo)體公司的SPICE基本都會有自己的器件模型。據(jù)悉,TI就把內(nèi)部的SPICE現(xiàn)在也拿來開源了。
SPICE的優(yōu)點(diǎn)是其精確性,但是缺點(diǎn)也很明顯,對于可以仿真的規(guī)模和速度有一定的限制,一般用于小規(guī)模和高精度的仿真應(yīng)用。因此在此基礎(chǔ)上發(fā)展了另一類晶體管級仿真器FastSPICE,典型如新思科技(Synopsys)的NanoSim、HSIM(2004年收購Nassda)、FineSim Pro(2011年收購Magma)和CustomSim(XA);楷登電子(Cadence)的UltraSim(2003年收購Celestry,這里要提一下,UltraSim最早由BTA開發(fā),BTA為概倫電子團(tuán)隊于1993年與胡正明教授所創(chuàng)建,BTA于2001年與戴偉民博士的Ultima公司合并成Celestry)和Spectre XPS;西門子(Siemens EDA)的ADiT(2006年收購EverCAD),概倫電子的NanoSpice Giga等,用于處理大規(guī)模電路仿真和全芯片驗證。FastSPICE采用了大量的加速仿真的技術(shù),例如Table Model和Event Driven的電路partition等,并對電路進(jìn)行簡化,在犧牲一定仿真精度的情況下處理大規(guī)模電路仿真的需求,如定制數(shù)字電路、存儲器、SOC全芯片仿真和驗證等。在實際的應(yīng)用中,SPICE往往用于高精度模擬電路和小模塊的定制數(shù)字電路和存儲器模塊,F(xiàn)astSPICE往往用于大規(guī)模后仿電路、大模塊定制數(shù)字電路、存儲器和全芯片SOC的仿真和驗證等。
SPICE在中國
值得一提的是,國產(chǎn)EDA公司在SPICE方面取得了重大進(jìn)步。
2016年概倫電子的NanoSpice Giga提出了一個全新的概念GigaSpice,以SPICE的引擎和精度去取代FastSPICE的應(yīng)用以避免FastSPICE造成的精度缺失,并提供比FastSPICE更快的速度,在業(yè)界領(lǐng)先的超大規(guī)模存儲器設(shè)計和大規(guī)模后仿模擬電路中得到了國際市場認(rèn)可和應(yīng)用。
華大九天在2018年正式推出業(yè)界首款異構(gòu)并行仿真系統(tǒng)Empyrean ALPS-GT™,基于大算力異構(gòu)平臺和獨(dú)創(chuàng)的異構(gòu)智能矩陣求解技術(shù)SMS-GT,極大的提升了電路仿真的性能,保持100% True SPICE精度,性能相比CPU架構(gòu)的SPICE提升了10+倍。ALPS-GT的推出,解決了FastSPICE及引入fastspice技術(shù)的spice精度不夠,而傳統(tǒng)SPICE及并行SPICE性能和容量又不夠的問題。
開源SPICE
最后有必要說說開源的NGSPICE。自從上世紀(jì)九十年代后,有一批SPICE的愛好者及高校把SPICE3f5接過來,并整合了其他幾個開源軟件,包括xspice、cider、gss、adms等,建成了NGSPICE。
NGSPICE是一款通用(general-purpose)電路仿真程序(circuit simulation program),適用于非線性和線性分析(nonlinear and linear analyses)。電路中可以包含電阻器(resistors)、電容器(capacitors)、電感器(inductors)、互感元件(mutual inductors)、獨(dú)立或受控的電壓和電流源(independent or dependent voltage and current sources)、非損失性(loss-less)和損失性(lossy)的傳輸線(transmission lines)、開關(guān)(switches)、均勻分布電阻電容網(wǎng)絡(luò)(uniform distributed RC lines)、以及5種最常見的半導(dǎo)體器件:二極管(diodes)、雙極性晶體管(BJT)、結(jié)型場效應(yīng)晶體管(JFET)、金屬半導(dǎo)體場效應(yīng)管(MESFET)、金屬氧化物半導(dǎo)體場效應(yīng)晶體管(MOSFET)。.
NGSPICE是SPICE3f5的版本更新,SPICE3f5是UCBerkeley大學(xué)的SPICE3仿真器系列的最后一個發(fā)布(release)出來的版本。NGSPICE新加入了許多特性,并修復(fù)了SPICE3f5中的不少缺陷。開發(fā)一個像電路仿真程序這樣的復(fù)雜的軟件是非常艱難的,除了增加新的特性外,大部分的工作在于代碼除蟲(bug fixing)和代碼的重構(gòu)(code refactoring)。
NGSPICE對于半導(dǎo)體器件(semiconductor devices)有內(nèi)建的模型(built-in models),使用者只需要設(shè)置相關(guān)(pertinent)的模型參數(shù)(model parameter values)就可以使用。
NGSPICE支持混合級別(mixed-level)的仿真,并提供在技術(shù)參數(shù)(technology parameters)和電路性能(circuit performance)之間的直接連接(direct link)。相比獨(dú)立進(jìn)行的電路或器件仿真(stand-alone circuit or device simulator),通過將電路中的關(guān)鍵器件數(shù)字化建模(numerically modeling),混合級別的電路和器件仿真可以提供更高的仿真精度(greater simulation accuracy)。組合的模型(Compact models)可以用于其他的器件中。混合模型在NGSPICE中的擴(kuò)展(extensions)即為CIDER, 一種混合了電路級別和器件級別的集成仿真。
NGSPICE通過集成XSPICE支持混合信號的仿真(mixed-signal simulation)。XSPICE軟件由佐治亞理工學(xué)院(Georgia Institute of Technology)開發(fā),作為SPICE3C1的一個擴(kuò)展,現(xiàn)在已經(jīng)移植進(jìn)入了NGSPICE,并進(jìn)行了增強(qiáng),提供了板級(board level)和混合信號(mixed-signal)的仿真。
XSPICE 擴(kuò)展同樣支持純粹的數(shù)字電路的仿真(pure digital simulation)。
NGSPICE在緩慢的進(jìn)化著,但比起商業(yè)SPICE進(jìn)展的速度慢多了。目前很多學(xué)術(shù)研究在使用。
參考:
1、ngspice簡要介紹和安裝,作者:dc lin
2、推動IC設(shè)計革命的七大EDA技術(shù)工具,作者:趙元闖