【资料分享】SPICE电路仿真入门与提高

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版本就不好说了,需要点经验和耐心,祝好运。

当然为方便大家学习,本人特意将相关资料收集整理,感兴趣的朋友可关注公众号useful4you,然后在对话框输入关键词spice,自动获取下载地址,

—————申明——————–

原创不易,欢迎分享,转载请注明作者和出处:useful2you,有点小用吧

—————————————–

评论已关闭。

Alexa