本节摘要:SPICE 是伯克利分校在上世纪七十年代推出的电路仿真程序,历经三代开源内核与众多商业分支,成为晶体管级验证的事实标准。本节沿时间线梳理它的关键演化节点,并把它放回芯片设计流程的坐标系里,解释为什么每一个模拟工程师的日常都离不开它。
动手之前先看历史,好处是具体的。SPICE 网表里那些初学者最容易困惑的规定——器件类型由首字母决定、一行一条语句、数字后缀区分毫与兆——都不是拍脑袋设计,而是大型机时代的直接遗产。当年源程序用 FORTRAN 写成,数据靠穿孔卡片输入,每张卡片八十列,所以"一行一条语句、语句以器件名开头"是最自然的解析方案。五十年过去,卡片早已消失,这套语法却原样保留了下来,今天你写的每一行网表,都是那段历史的活化石。
更实际的理由是工具选择。市面上仿真器名目繁多:ngspice、LTspice、PSpice、HSPICE、Spectre……新人常常不知从何下手。搞清楚演化谱系你会发现,它们全都共享同一个内核血统,语法差异远小于宣传差异。学会其中一个,其余的迁移成本很低。
SPICE 的前身是 1960 年代末伯克利的 CANCER 程序,1971 年在 Donald Pederson 教授推动下更名为 SPICE 并公开发布,这就是 SPICE1。它当时只支持直流与小信号交流两类分析,能处理的电路规模也很有限,但"公开发布、允许自由使用"的开放策略,为它日后成为行业标准埋下了伏笔。
真正奠定数学框架的是 1975 年的 SPICE2:引入修正节点分析法(MNA)统一列方程,用牛顿-拉夫逊迭代处理非线性器件,用变步长数值积分驱动瞬态分析。这三件套直到今天仍是所有 SPICE 内核的骨架,第 5 章会逐一拆解。1985 年的 SPICE3 用 C 语言重写,增加了交互式命令行与更丰富的半导体模型,是现代开源仿真器的直系祖先。
| 年代 | 版本或分支 | 关键贡献 |
|---|---|---|
| 1971 | SPICE1 | 开源发布,直流与交流分析 |
| 1975 | SPICE2 | MNA、牛顿迭代、变步长积分,数学框架定型 |
| 1985 | SPICE3 | C 语言重写,交互式使用,模型体系扩充 |
| 1980 年代起 | HSPICE、PSpice 等 | 商业化增强:收敛算法、模型库、精度控制 |
| 1990 年代至今 | LTspice、ngspice、Xyce | 免费普及与高性能分支,多线程与并行求解 |
商业分支中最有代表性的是 HSPICE,它在收敛鲁棒性和工艺模型支持上做了大量工程强化,至今仍是晶圆厂交付模型卡时的默认口径;桌面端的 PSpice 让仿真走进了个人电脑。开源一侧,ngspice 继承 SPICE3 内核持续维护,是本书默认演示工具;LTspice 以开关电路仿真速度见长;桑迪亚国家实验室的 Xyce 则面向大规模并行求解。它们的输入语法高度一致,一个 1975 年写的网表,今天大概率仍能直接运行——这在软件行业是极少见的向后兼容纪录。
把一颗芯片从想法送到晶圆厂,粗略要经过规格定义、电路设计、前仿真、版图设计、寄生提取、后仿真、流片、测试这些环节。SPICE 仿真出现在其中两个关键闸口:
前仿真发生在电路设计阶段。工程师画出晶体管级原理图后,先在理想环境下验证功能与性能:增益够不够、带宽到没到、功耗超没超预算。这一步完全依赖 SPICE 引擎,输入是原理图生成的网表与工艺厂商提供的器件模型卡。
后仿真发生在版图完成之后。物理版图中的金属连线自带电阻与电容,它们会侵蚀带宽、增加延迟。提取工具把版图转换成带寄生参数的网表,再次送入同一个 SPICE 引擎复测。前后两次仿真的差值,就是"版图代价",如果性能跌出规格,就得回版图修改。可以说,没有 SPICE,"先验证后制造"这条现代芯片设计的基本纪律就无从谈起。
💡 一个值得记住的比例:对模拟电路而言,仿真阶段消耗的时间往往占整个设计周期的一半以上。仿真器速度每提升一倍,芯片上市周期就能实打实地缩短一截——这也是第 9 章讨论 GPU 加速与云端并行的动机。
顺带一提,数字电路设计里常用的门级与时序仿真并不在 SPICE 层面进行,那属于逻辑仿真与静态时序分析的领域。SPICE 专注晶体管级:精度最高、细节最全、也最慢。整个 EDA 体系实际上是分层的金字塔,SPICE 是塔尖那一层,量少而权重极高。
下一节我们不再谈历史,直接安装工具、写下你的第一个网表,并用它跑出第一组仿真数值。
不少课程用 Multisim 入门,它并非独立的仿真内核,而是在 SPICE 内核之上包了一层交互式原理图界面:你拖动元件连好线,软件在后台生成网表,送进同一类求解器。理解了本教程的网表写法,Multisim 里的每一根连线你都能想象成对应的器件卡——界面是皮,网表是骨。反过来,只会界面操作的人换到工业工具链时常常无从下手,因为商业流程的自动化接口全都建立在文本网表之上。
电磁场求解器把结构切成网格去解麦克斯韦方程,精度高但代价大:一颗含上万晶体管的电路,场求解的规模完全不可行。工程上两者分工明确——场求解器负责封装、连接器、走线等局部结构,从中提取出等效电路;SPICE 负责把这些等效电路与大规模晶体管模型方程联立求解。可以说场求解器生产模型,SPICE 消费模型,它们是上下游而不是竞争关系。
因为数学框架足够本质。MNA、牛顿迭代、数值积分的三件套,恰好对应电路理论的三大支柱:拓扑约束、器件物理、储能动态。后来者要么换数值细节——更稳的积分格式、更鲁棒的迭代策略;要么换硬件载体——多核、并行、GPU;很少触动框架本身。对学习者的启示很实在:这门手艺的知识保值期极长,上世纪七十年代奠定的原理,今天仍然是调试与面试的主战场。
合上书回答三个问题,答不上来就回到对应小节:SPICE2 比 SPICE1 多出的三件数学工具是什么;前仿真与后仿真的输入差异在哪里;你准备用的仿真器属于哪一支谱系、它的内核祖上是哪一版。把答案写在自己的笔记里,这比再读一遍原文印象深得多。