工程學科的著名教授,其“青史留名”,不在于他發(fā)表了多少論文,更重要在于其為工業(yè)界的直接貢獻。本人在2013年8月也在新浪微博上發(fā)表過“工科學者有所成”的說法。現(xiàn)用國外著名教授Spice之父Don Pederson教授的例子說明。
圖1:工程領(lǐng)域的有所成“意味著你的研究成果被工業(yè)界所使用,而且社會公認這個是你的研究成果”
SPICE之父DonPederson
本文主要引子Department of EECS, University ofCalifornia, Berkeley的Andrei Vladimirescu教授為A SHORT HISTORY OF CIRCUITS AND SYSTEMS撰寫的文章,該書由我的學生翻譯,即將由清華大學出版社出版1960年代初,硅集成電路(IC)的發(fā)明,與原有的由分立元件組成的印刷電路板(PCB)電路不同,人們迫切需要新的設(shè)計方法。PCB板的電路系統(tǒng),可以用實驗板測量檢驗、可以通過試錯來校正。然而,對于集成電路若設(shè)計出的電路沒有達到最初的目標,那么它需要重新加工制造才可以修正錯誤。制造過程需要經(jīng)過很多道工序。而那些無法工作的硅片會被扔掉,這白白增加了成本,延長了IC的上市時間。
工業(yè)界的需求:迫切需要一種新的方法來得到首次流片即能工作的硅片。
基礎(chǔ)條件:人們認識到,求解大規(guī)模晶體管組成的電子電路的數(shù)學方程,可以在計算機的輔助下解決。當時強大的科學計算機——如控制數(shù)據(jù)公司(CDC,Control-Data Corporation)的6600,已經(jīng)有能力求解那些IC方程。在這些因素的共同推動下,世界上的許多實驗室都開始嘗試開發(fā)這樣的計算機程序。
加州大學伯克利分校(University of California at Berkeley)的Don Pederson在1962年就認識到了IC將會對世界產(chǎn)生的巨大影響,他首先在大學中建造了第一個半導體制造工廠;他也看到了計算機輔助設(shè)計的需求。在Don的支持下,在1969-70年,青年教授Ron Rohrer在研究生班中組織了一個有關(guān)計算機輔助設(shè)計(CAD,Computer-Aided Design)的班級課題。這個項目的目標是“開發(fā)出最好的集成電路仿真程序”。該程序需要實現(xiàn)的主要任務(wù)是快速獲得模擬集成電路的直流工作點;在早期的半導體工業(yè)中,線性雙極型IC——例如運算放大器,扮演了十分關(guān)鍵的角色,而運算放大器的性能的發(fā)揮完全有賴于正確的偏置。
班上的學生們編寫的不同代碼被Larry Nagel整合成了單一的、完整的程序,名為CANCER(Computer-Aided Nonlinear Circuit analysis ExcludingRadiation)[1],它能夠進行直流(DC)、交流(AC)以及時域瞬態(tài)分析。當然,當時的CANCER并不完善,存在一些問題;首先,它有一個不討人喜歡的名字,此外,更重要的一點是,它是一個專有(proprietary)的程序。這一點是與Don Pederson的思想相悖的。Don Pederson始終秉持這樣的信條:大學的研究應(yīng)當是公開的,應(yīng)當有助于科學的進步。經(jīng)過進一步的研究改進之后,一個擁有新的名字的仿真器——SPICE產(chǎn)生了。SPICE1于1971年秋首次公開發(fā)布。在四十多年后的今天,在一塊芯片上已經(jīng)能集成數(shù)十億個晶體管的今天,市面上已經(jīng)有了各種各樣的商業(yè)版本和公開發(fā)行版本的SPICE;SPICE也已經(jīng)演變成了IC設(shè)計的標準,用在了所有的晶體管級電路的設(shè)計中。
SPICE1以電路描述語言為起點,帶來了一系列的創(chuàng)新,如今,這種語言在不同的IC CAD工具中事實上只是形式上有變化而已;此外,它還包含了很多算法創(chuàng)新,如關(guān)聯(lián)矩陣電路表示、節(jié)點-基準電壓(node-to-datum voltage)解決方案、稀疏矩陣算法、Newton-Raphson迭代和隱式數(shù)值積分等。這一系列算法統(tǒng)稱為直接解法(direct-methods solution)[2]。
SPICE1的用戶為UC Berkeley所有電路課的學生,以及一些來自產(chǎn)業(yè)界的“友好的”設(shè)計人員。他們給出了很多非常有價值的反饋,指出了第一版的SPICE的缺點。其中最重要的幾個缺點與編譯時聲明的元件數(shù)量、電壓源接地限制(節(jié)點-基準電壓方程)和固定時間-步長積分等問題有關(guān)。
以上的這些缺點促使人們進行更進一步的研究,并于1975年首次發(fā)布了SPICE2。早期的SPICE 2A和2B兩個版本只解決了后兩個問題——節(jié)點-基準電壓方程被替換成了改進節(jié)點分析(MNA,Modified-Nodal Analysis),此外,程序中還加入了一個可變時間-步長的算法 [3];而元件數(shù)量限制直到1976年才由Ellis Cohen在SPICE 2D中解決;Ellis重新構(gòu)建了數(shù)據(jù)結(jié)構(gòu),并用Fortran寫了一個內(nèi)存管理包,它不需要依賴于各種元件(如晶體管、電阻、電容)的數(shù)量,就能將計算機的可用內(nèi)存分配給電路。
到此,SPICE2已經(jīng)具備了廣泛應(yīng)用的條件,而且UC Berkeley的電子研究實驗室(ERL,Electronics Research Laboratory)的準備工作也已經(jīng)到位,他們把這個程序包括源代碼和文檔發(fā)布出去,給任何感興趣者。
然而,在產(chǎn)業(yè)界這一程序并沒有獲得一致的認可;實際上仍存在著一大批懷疑者,他們以Bob Pease為首——Bob Pease在《電子設(shè)計》(Electronic Design)雜志上開有一個專欄,題為“這個辛辣(spice)的東西到底是個什么玩意兒?(What’sAll This SPICEY Stuff, Anyhow?)”,并寫道,“沒有什么事情是SPICE能做到而我不能手工做到的”。對于一項顛覆性的技術(shù)來說,只有人類自己才是技術(shù)可能遇到的阻力;不過,隨著IC復雜度的提升,該技術(shù)的使用者越來越多,到了70年代末,絕大部分半導體公司都已經(jīng)用上了SPICE。
隨著該程序在產(chǎn)業(yè)界的廣泛使用,對其進行進一步改進和補充也提上了日程;Don Pederson把這個挑戰(zhàn)交給了Andrei Vladimirescu。要解決的關(guān)鍵問題是所得結(jié)果的魯棒性,而它由牛頓迭代算法的收斂性與否決定。SPICE的2F和2G版本對算法進行了一些改良,如基于實際電導值的電路矩陣重排序(旋轉(zhuǎn))、工作點(operating point)解的連續(xù)方法(continuation methods)、來自于牛頓迭代法的個性化器件(device-specific)限流算法等。SPICE 2G6 [4]在1980年發(fā)布,并由UC Berkeley免費分發(fā),可以說,它是由大學開發(fā)的、最強大(robust)的軟件。SPICE 2G6強大的產(chǎn)業(yè)實力是當時剛剛開始的HSPICE項目的基礎(chǔ),而HSPICE今天已經(jīng)成為了商業(yè)SPICE仿真器的市場領(lǐng)導者。
像惠普(Hewlett Packard)、模擬器件公司(Analog Devices)、泰克(Tektronix)、德州儀器(Texas Instruments)等大公司紛紛組建了它們自己的CAD部門,招攬了如DickDowell、Steve Hamm、Graham Boyle和Burt Epler等SPICE專家,在這些專家的幫助下將Berkeley的程序改編,以滿足它們自己的具體需求。從70年代后期到80年代初期的近十年的時間里,Berkeley與產(chǎn)業(yè)界的SPICE專家們之間的交流是持續(xù)而開放的,后者提供關(guān)于錯誤修復和改進的反饋,而前者將這些反饋應(yīng)用于后來發(fā)布的版本中。這是一個大學與產(chǎn)業(yè)界協(xié)作的獨特案例,這樣的合作使整個半導體領(lǐng)域受益匪淺。
圖2 唐·佩德森(Don Pederson)
20世紀70年代末,UC Berkeley發(fā)布了伯克利標準發(fā)行(BSD,Berkeley Standard Distribution)Unix操作系統(tǒng)——一個從Bell實驗室發(fā)明的Unix系統(tǒng)衍生而來的操作系統(tǒng)。與Unix密切相關(guān)的C語言,提供了應(yīng)用程序與設(shè)備的交互。Tom Quarles著手進行了SPICE2的重構(gòu),并將它的數(shù)據(jù)結(jié)構(gòu)從Fortran轉(zhuǎn)換為了C;SPICE3于1983年發(fā)布,它是一個具有圖形功能的交互式程序。人們對SPICE3的改進與補充一直在進行著,直到1993年UC Berkeley發(fā)布了它的最后一個版本SPICE 3f5——它的求解算法已經(jīng)完全成熟了,人們無法想象還有什么進一步的研究項目可以進行。
1998年,由于在SPICE項目中扮演了最重要的角色,以及SPICE已經(jīng)在事實上被采用為了IC設(shè)計的標準,Don Pederson被授予了IEEE金獎(Gold Medal);同時,他也正式獲得了“SPICE之父”的頭銜。