芯片设计必不可少的SPICE科普
2021-06-22
来源:开云棋牌官网在线客服行业观察
2011年2月20日,SPICECircuit Simulation Program获颁IEEE里程碑(IEEE Milestone)牌匾,以表彰其对集成电路设计所做出的贡献。
该牌匾放在美国加州大学伯克利分校电气工程大楼(Cory Hall)正门口,因为SPICE的三个版本都是Cory Hall大楼内开发完成的。牌匾上刻文:
SPICE(Simulation Program with Integrated Circuit Emphasis)于 1969-1970 年作为班级项目在加州大学伯克利分校创建。它发展成为全球标准的集成电路仿真器。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)的电工和计算机科学系开发,骨干是Ronald A. Rohrer和Laurence Nagel,开始是使用FORTRAN语言设计的仿真软件,用于快速可靠地验证集成电路中的电路设计以及预测电路的性能,是一种功能强大的通用电路级模拟仿真器,主要用于集成电路的电路分析,SPICE的网表格式变成了通常模拟电路和晶体管级电路描述的标准。
1970年。当时Ronald A. Rohrer刚刚从仙童开云棋牌官网在线客服(Fairchild)返回加州大学伯克利分校,担任电机工程与计算机科学系的教授。
由于刚回到学校,Ronald A. Rohrer教授在给七个研究生上“电路综合”课时没来得及准备教材,所以,在第一堂课,他就宣布:学生们一起写一个电路仿真程序。
Ronald A. Rohrer跟系里的管教学的主任Donald O. Peterson教授达成一个协议:只要Peterson教授认可学生们写的仿真程序,他们就全部通过。否则的话,他们就全部不及格。
当课程结束,大学一致推举Laurence Nagel为代表向Peterson教授汇报成果,这个成果就是CANCER(ComputerAnalysis of Nonlinear Circuits, Excluding Radiation不包括辐射的非线性电路计算机分析),Peterson教授给予了认可。
1971年秋,CANCER更名为SPICE,并发送给友好用户(friendly users);1973年4月12日,Donald O. Peterson教授在第十六届中西部电路研讨会(Sixteenth Midwest Symposium on Circuit Theory)上介绍SPICE论文,SPICE才开始让全世界认识。
第一版于1971年由Laurence Nagel等七名研究生在Ronald A. Rohrer教授指导下开发完成,Ronald A. Rohrer教授在1971年国际固态电路会议(ISSCC)上发表的一篇论文中宣布。1975年在Donald O. Peterson教授指导下推出正式实用化版本。1983年发布的SPICE2G.6在很长时间内都是工业标准,它包含超过15000条FORTRON语句,运行于多种中小型计算机上。1985年SPICE3推出,转为用C语言开发,易于运行于UNIX工作站,还增加了图形后处理工具和原理图工具,提供了更多的器件模型和分析功能。1988年被定为美国国家工业标准,主要用于模拟电路、数模混合电路、电源电路等电子系统的设计和仿真。
这七位天才学生是:Laurence W. Nagel(UCBerkeley,1969年学士、1970年硕士、1975年博士)、Bob Berry、Shi-Ping Fan、Frank Jenkins、Jesse Pipkin、Steve Ratner和Lynn Weber。
SPICE的意义
在SPICE出现之前,设计人员分析电路,要么是用笔和纸,要么就要搭电路板(breadboard)。Donald O. Peterson教授就被学生们称之为“信封教授”,因为他认为电路分析用个信封的背面来做就足够了。但随着电路规模的增大,用笔纸变得越来越不可能,搭电路板又不能精确反应芯片上的电路特性,而且费用也越来越高。
电子产品的设计一般先从功能框图开始,然后细化到原理图,还要经过很复杂和繁琐的调试验证过程,最终才能完成。为了验证原理图的正确性,都要焊接实验板(样板),或使用易于插件的“面包板(breadboard)”,每个节点都必须正确和可靠,连接或焊接过程都是细致而耗时的工作,在器件很多时几乎是不可能完成的任务,而每次调整都要打样,耗时长而成本高,在设计集成电路时更是如此,急需在制造之前验证集成电路的功能。这种现实需要就迫使人们想用他办法来解决。
根据电路理论,人们可以建立起节点方程和回路方程,通过解这些方程组成的方程组就可以得到结果,也就是说可以通过计算来获得电路的工作情况。但包含电感、电容等器件的电路形成的是一组微分方程组,人工计算依然是累人的活,而计算机则可以大展身手,通过其强大的存储、计算和图形显示能力就能轻松完成,很快得到结果。
用软件来做电路仿真就变得日益迫切了。基于这种思想,人们开发出电路仿真软件,通过快速的仿真,代替耗时且累人的反复调测,提高设计速度和效率,也节省了时间和成本。最早、最出色的仿真软件就是SPICE。
很多SPICE里面的基本要素都来自于Rohrer教授指导的这堂“电路综合”课,包括解稀疏矩阵的模块(使得可处理的电路规模成倍的增大)、隐式积分算法的使用(使得瞬态分析更加稳定)。并且程序里加入了自带的开云棋牌官网在线客服器件模型,用户只需要给出一组模型参数,用不着自己提供器件模型的FORTRAN模块了。
SPICE不仅仅是一个用于教学的简单程序。它是第一个结合稀疏矩阵分析以允许对大型电路进行经济模拟、对组件变化和噪声的敏感性进行伴随分析、用于“首次切割”设计的内置设备模型以及通过过渡演变的简单用户界面从打孔卡(punched cards)到哑终端(dumb terminals)再到复杂的工作站。SPICE的开发人员首次广泛提供源代码,使其他人能够贡献更复杂的设备模型和额外的分析功能。这些因素促成了其在开源和专有电路仿真软件的后续开发中的主导地位。
SPICE是开源代码先驱
当时有许多开源代码,但都没有太大的商业价值。SPICE就不同了,有人已经看到它的商业价值,但Peterson教授坚持要把代码开源,我们都得真心的感谢Peterson教授。任何人只要花20美元的手续费,就可以得到SPICE的源代码。当然,在冷战时期,SPICE被禁止出口到政府认为的“共产国家”。
SPICE的发展
自SPICE问世以来,其版本的更新持续不断,有SPICE2、SPICE2G6、SPICE3、SPICE3f5等多个版本,新版本主要在电路输入、图形化、数据结构和执行效率上有所增强,业界普遍认为SPICE2G6是最为成功和有效的,以后的版本仅仅是局部的变动,现在常用的各类SPICE工具都是基于公开发表的SPICE 2G6版的源代码。
从1970年代到如今超过五十年的时间里,SPICE从只能仿真十几个元器件规模到今天可以仿真上千万个元器件规模的电路,取得了非常惊人的成就。SPICE是一个解非线性常微分方程的工具,但由于要改变SPICE的基石很难,所以1990年代中期的SPICE没有太大的变化。
SPICE的基石包括:改进的节点分析法(Modified Nodal Analysis)、稀疏矩阵解法(Sparse Matrix Solver),牛顿-拉夫逊迭代(Newton-Raphson Iteration)、隐性数值积分(Implicit Numerical Integration)、动态步长的瞬态分析(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公司提供的商业SPICE外,还有就是一些老牌的开云棋牌官网在线客服公司自行在内部开发的SPICE,不用来销售,包括IBM、英特尔(Intel)、德州仪器(TI)、亚德诺(ADI)、意法开云棋牌官网在线客服(STM)和英飞凌(Infineon)等公司,这些开云棋牌官网在线客服公司的SPICE基本都会有自己的器件模型。据悉,TI就把内部的SPICE现在也拿来开源了。
SPICE的优点是其精确性,但是缺点也很明显,对于可以仿真的规模和速度有一定的限制,一般用于小规模和高精度的仿真应用。因此在此基础上发展了另一类晶体管级仿真器FastSPICE,典型如新思科技(Synopsys)的NanoSim、HSIM(2004年收购Nassda)、FineSim Pro(2011年收购Magma)和CustomSim(XA);楷登电子(Cadence)的UltraSim(2003年收购Celestry,这里要提一下,UltraSim最早由BTA开发,BTA为概伦电子团队于1993年与胡正明教授所创建,BTA于2001年与戴伟民博士的Ultima公司合并成Celestry)和Spectre XPS;西门子(Siemens EDA)的ADiT(2006年收购EverCAD),概伦电子的NanoSpice Giga等,用于处理大规模电路仿真和全芯片验证。FastSPICE采用了大量的加速仿真的技术,例如Table Model和Event Driven的电路partition等,并对电路进行简化,在牺牲一定仿真精度的情况下处理大规模电路仿真的需求,如定制数字电路、存储器、SOC全芯片仿真和验证等。在实际的应用中,SPICE往往用于高精度模拟电路和小模块的定制数字电路和存储器模块,FastSPICE往往用于大规模后仿电路、大模块定制数字电路、存储器和全芯片SOC的仿真和验证等。
SPICE在中国
值得一提的是,国产EDA公司在SPICE方面取得了重大进步。
2016年概伦电子的NanoSpice Giga提出了一个全新的概念GigaSpice,以SPICE的引擎和精度去取代FastSPICE的应用以避免FastSPICE造成的精度缺失,并提供比FastSPICE更快的速度,在业界领先的超大规模存储器设计和大规模后仿模拟电路中得到了国际市场认可和应用。
华大九天在2018年正式推出业界首款异构并行仿真系统Empyrean ALPS-GT?,基于大算力异构平台和独创的异构智能矩阵求解技术SMS-GT,极大的提升了电路仿真的性能,保持100% True SPICE精度,性能相比CPU架构的SPICE提升了10+倍。ALPS-GT的推出,解决了FastSPICE及引入fastspice技术的spice精度不够,而传统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仿真器系列的最后一个发布(release)出来的版本。NGSPICE新加入了许多特性,并修复了SPICE3f5中的不少缺陷。开发一个像电路仿真程序这样的复杂的软件是非常艰难的,除了增加新的特性外,大部分的工作在于代码除虫(bug fixing)和代码的重构(code refactoring)。
NGSPICE对于开云棋牌官网在线客服器件(semiconductor devices)有内建的模型(built-in models),使用者只需要设置相关(pertinent)的模型参数(model parameter values)就可以使用。
NGSPICE支持混合级别(mixed-level)的仿真,并提供在技术参数(technology parameters)和电路性能(circuit performance)之间的直接连接(direct link)。相比独立进行的电路或器件仿真(stand-alone circuit or device simulator),通过将电路中的关键器件数字化建模(numerically modeling),混合级别的电路和器件仿真可以提供更高的仿真精度(greater simulation accuracy)。组合的模型(Compact models)可以用于其他的器件中。混合模型在NGSPICE中的扩展(extensions)即为CIDER, 一种混合了电路级别和器件级别的集成仿真。
NGSPICE通过集成XSPICE支持混合信号的仿真(mixed-signal simulation)。XSPICE软件由佐治亚理工学院(Georgia Institute of Technology)开发,作为SPICE3C1的一个扩展,现在已经移植进入了NGSPICE,并进行了增强,提供了板级(board level)和混合信号(mixed-signal)的仿真。
XSPICE 扩展同样支持纯粹的数字电路的仿真(pure digital simulation)。
NGSPICE在缓慢的进化着,但比起商业SPICE进展的速度慢多了。目前很多学术研究在使用。
参考:
1、ngspice简要介绍和安装,作者:dc lin
2、推动IC设计革命的七大EDA技术工具,作者:赵元闯