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