【資料分享】SPICE電路仿真入門與提高(附80M經典教程、論文、手冊與源代碼)【轉發】
2017-08-02 by:CAE仿真在線 來源:互聯網
SPICE是一種用于電路描述與仿真的語言,英文全稱Simulation program with integrated circuit emphasis。作為UC Berkeley在1969至1970年間成功開發的一個經典項目(通用電路模擬仿真軟件),首先應用在本科和研究生課程教學當中,得到廣大師生和工程師的青睞,后來快速發展為工業界電路仿真的標準規范。
SPICE的成功得益于UC Berkeley之前開發的軟件CANCER ( Computer Analysis of Nonlinear Circuits, Excluding Radiation),它最初是作為Ronald A. Rohere教授的一個課程實踐項目,由研究生Laurence W. Nagel領導一個小組進行開發和改進,該項目得到Donald O. Pederson教授的高度重視,并建議Nagel以此為博士課題進行研究,這才有了SPICE的產生。
SPICE開發第一版和第二版基于Fortran語言,第三版是基于C語言,之后隨著商業軟件的參與,它又發展為多種版本,其中比較著名的有Synopsys公司的Hspice和Cadence公司的Pspice。更多關于SPICE的介紹可以參考Laurence W. Nagel博士的相關演講(見分享資料目錄:1 SPICE介紹)
下面結合個人學習SPICE的經歷,給大家推薦一下入門和提高的資料。
入門部分:論文 + PPT + 教材
論文:In a Nutshell: How SPICE Works
作者:Colin Warwick博士,Agilent公司(現更名為Keysight)
點評:全文共3頁,用兩頁篇幅講了節點法和修改節點法,其中修改節點法是SPICE算法的核心,來龍去脈介紹的比較詳細;最后一頁簡要介紹了SPICE在瞬態分析和交流分析中的應用,對于快速入門比較有用。
課件:Semiconductor Modelling in SPICE
作者:Paul D. Mitcheson教授,帝國理工大學
點評:課件主要分為兩大部分,一是SPICE算法和實現部分,主要介紹了線性電路/非線性電路的電路求解原理、數值仿真收斂問題,二是SPICE器件模型部分,介紹二極管、BJT、MOSFET等器件在不同狀態下的建模,課件簡明扼要,重點突出,有助于加深對SPICE軟件操作的理解。
教材:Fundamentals of Computer-Aided Circuit Simulation
作者:William J. McCalla博士 (@Hewlett-Packard)
點評:全書共八章,173頁,前五章將SPICE求解中用到的關鍵技術都進行了詳細的講解,例如修改節點法、線性/非線性方程求解、稀疏矩陣法、數值積分等;后三章是針對特定應用的技術講解(靈敏度分析等),初學者可以跳過。
作者McCalla博士1972年畢業于UC Berkeley (SPICE出生地),之后在貝爾實驗室以及Signetics, Hewlett-Packard, Cadence以及Intel等眾多知名公司工作,1987年出版了該書,內容條理清晰、知識全面,實為不可多得的電路仿真入門書籍。
提高部分:論文 + 手冊 + 代碼
UC Berkeley博士論文
【1】Nagel L W. SPICE2: A computer program to simulate semiconductor circuits. 1975.
【2】Quarles T L. Analysis of performance and convergence issues for circuit simulation. 1989.
點評:這兩篇博士論文分別凝聚著SPICE2和SPICE3的技術精華,其中Nagel實現了SPICE的“從無到有”,經典技術包括改進的節點分析法(ModifiedNodal Analysis),稀疏矩陣解法(Sparse Matrix Solver),牛頓-拉夫遜迭代(Newton-Raphson Iteration),隱性數值積分(Implicit Numerical Integration),動態時間步控制(Dynamic Time Step Control),局部截斷誤差(LocalTruncation Error)等等;在此基礎之上,Quarles對SPICE進行了功能升級,從電路仿真速度、精度以及規模三個方面,對仿真性能、算法收斂以及程序架構進行了優化和改進,大大提升了SPICE用戶的體驗。
如果想深入學習SPICE,請將Nagel論文打印出來,然后畫上兩三天的時間仔細研讀,保證讀完后受益匪淺,再次進行SPICE仿真時,不再會對各種各樣的選項所困惑,反而會由衷贊嘆程序設計的巧妙。
SPICE編程手冊
【1】Cohen E. Program reference for SPICE2. 1976.
【2】Quarles T L. The SPICE3 implementation guide[M]. 1989.
點評:編程手冊更類似于程序注釋,但是描述更加系統規范。其中SPICE2編程手冊作者Cohen是個計算機高手,被Nagel稱為SPICE之“無名英雄”,經典的SPICE2G6版就是在他手里完成的;后來由于C語言的流行,Quarles 被委以重任,將SPICE用C語言重寫,并且增加用戶界面,為軟件的商業化打下了堅實的基礎。
SPICE2是基于Fortran77語言開發的,總代碼接近兩萬行,感興趣的朋友可以看看代碼,看看手冊,學到真本領。對于SPICE3,如果編程基礎不堅實,那么大致瀏覽一下編程手冊就好,不要過于癡迷技術。
開源代碼:Fortran版本(SPICE2)+C版本(SPICE2, SPICE3)
點評:學習代碼的第一步是編譯并成功運行。計算機飛速發展了幾十年,操作系統也是換了一代又一代,當年的代碼是否能在現有的環境下成功運行,這是一個挑戰。Linux環境下,基于C語言的SPICE代碼編譯應該沒有太大問題,但是SPICE2的Fortran版本就不好說了,需要點經驗和耐心,祝好運。
---------------申明--------------------
原創不易,歡迎分享,轉載請注明作者和出處:useful2you,有點小用吧
相關標簽搜索:【資料分享】SPICE電路仿真入門與提高(附80M經典教程、論文、手冊與源代碼)【轉發】 EDA培訓 EDA分析在線視頻教程 Cadence Allegro PSPICE OrCAD PCAD Protel Mentor Graphics Synopsys培訓課程 Fluent、CFX流體分析 HFSS電磁分析