芯片设计必不可少的SPICE科普
最新更新时间:2021-08-31 00:25
阅读数:
来源:内容由半导体行业观察(ID:icbank)转载自公众号「芯思想」,作者:赵元闯,谢谢。
2011年2月20日,SPICE Circuit 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技术工具,作者:赵元闯
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第2714内容,欢迎关注。
推荐阅读
半导体行业观察
『半导体第一垂直媒体』
实时 专业 原创 深度
识别二维码,回复下方关键词,阅读更多
晶圆|集成电路|设备|汽车芯片|存储|MLCC|英伟达|模拟芯片
回复 投稿,看《如何成为“半导体行业观察”的一员 》
回复 搜索,还能轻松找到其他你感兴趣的文章!
推荐帖子
- VGA 1080P驱动即将登陆Espier 敬请期待
- 话说FPGA的潜力是巨大的,除了GPU和高端CPU之外可能嵌入式应用中以这么低成本做到1080P的芯片应该不多。当然,画面的刷新还需要很多外设芯片的支持,例如SDRAM、FLASH之类的。下面是一个很悲催的事情,权当题外话了。昨晚楼主的台式机崩溃了,突然断电黑屏,作为一个资深DIY人士,楼主打开机箱放电BIOS、手动测温北桥、CPU,最小系统....最后猜测是CPU过热,涂上导热硅脂,启动....未果今晨直接奔电脑市场,电源坏了!幸好是3年保的金河田啊,还有2月才到期,于是换新,一
- kdy FPGA/CPLD
- 从FPGA转换到门阵列
- 概述从FPGA或PLD转换到门阵是经济高效的,有时甚至只需几百个单元就能实现。这已经引起越来越多设计者提出同样的问题:这种转换设计需要什么后续技术?事实上转换到门阵面临着许多电路的时序问题,这在FPGA设计中是不被注意的。本文论述了转换时遇到的几种由于设计不当所造成的时序问题,提出了避免这些问题的方案。同时对时序变化的部分原因及充分利用门阵列技术亦在文中进行了讨论。时序上的差异如果知道原始设计电路工作中每一步时序上的裕量,Orbit保证无论FPGA是否模拟过,都可以
- songbo FPGA/CPLD
- 【视频分享】电源设计小贴士37:折中选择输入电容纹波电流的线压范围
- 简介:您在为一个低功耗、离线电源选择输入滤波电容时,会出现一种有趣的权衡过程。您要折中地选取电容的纹波电流额定值,以适合电源工作所需的电压范围。通过增加输入电容,您可以获得更多纹波电流的同时还可以通过降低输入电容的压降来缩小电源的工作输入电压范围。更多TI精彩视频,要关注我哦!!!【视频分享】电源设计小贴士37:折中选择输入电容纹波电流的线压范围
- 德州仪器_视频 模拟电子
- 疯壳AI开源无人机串口(基础收发)
- 串口简介在嵌入式开发领域讲的串口通常指的是UART,UART即为通用异步收发传输器(UniversalAsynchronousReceiver/Transmitter)。是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。UART常常用于两个单片机之间进行数据传输,如下图所示。其通信过程如下图所示。STM32F103提供了3路串口,支持同步单线通信和半双工单线通信、支持LIN、支持调制解调器操作、智能卡协议和IrDASIREND
- fengke 创意市集
- msp430的中断优先级和中断嵌套(及容易理解错误的说明)
- MSP430的中断优先级按所在的向量的大小排列,中断向量地址越高优先级就越大,但是默认的MSP430是不能中断嵌套的,要想在执行某一中断时能够响应更高优先级的中断,需要在低优先级的中断程序中手动打开全局中断便能位,因为在进入中断服务子程序时全局中断便能位被清零,即禁止响应其它中断。msp430的指令中,DINT和EINT分别指关和开所有中断,也就是包涵P1IE、P2IE、WDTIE、TAIE、TBIE、ADC12IE、串口中断允许的所有中断允许位为“0”和为“1”。当同时有多个中断来的
- Aguilera 微控制器 MCU
- 【DigiKey创意大赛】便携生命探测仪07+作品提交
- 便携生命探测仪作者:sipower一、作品简介现在越来越多业余驴友喜欢户外冒险,但是随之而来的就是遇到危险的情况时有发生,因此我想到做一个便携生命探测仪,在发生危险时,能帮助救援人员方便找到遇险者。此方案主要采用热敏式图像传感器MLX90640ESF-BAB-000-TU检测人体红外信号,采用BME680气体,湿度,压力,温度传感器评估板记录环境信息,配合一个带屏幕的评估板,显示热成像图片。再额外添加一个心电采集模块,当发现遇险者后,能立即给遇险者采集心电图和心率并在屏幕上显示,
- sipower DigiKey得捷技术专区