1. SPICE 模型概述
SPICE(Simulation Program with Integrated Circuit Emphasis)是集成电路设计领域最核心的电路仿真标准。理解 SPICE 的历史、模型卡的作用以及模型文件的基本结构,是掌握模型卡生成与格式标准化的前提。本章从这三个维度建立知识框架。
1.1 SPICE 仿真器发展简史
SPICE 诞生于 20 世纪 70 年代初,由加州大学伯克利分校的 Laurence Nagel 和 Donald Pederson 团队开发。其发展历程可划分为四个关键阶段:
| 阶段 | 时间 | 标志性版本/事件 | 核心贡献 |
|---|---|---|---|
| 起源期 | 1971–1975 | SPICE 1 / SPICE 2 | 首次将 Gummel-Poon 双极型模型、Shichman-Hodges MOS 模型集成到开源仿真器中 |
| 标准化期 | 1980–1990 | SPICE 3 / HSPICE / PSPICE | 引入 BSIM1/BSIM2 MOS 模型,商业仿真器开始主导 EDA 生态 |
| 模型精细化期 | 1995–2010 | BSIM3v3 / BSIM4 / PSP | 短沟道效应、量子效应、射频建模进入标准模型库 |
| 开放标准化期 | 2010–至今 | Verilog-A / 紧凑模型联盟(CMC) | 模型卡格式标准化,跨仿真器兼容性成为行业刚需 |
关键认知: 现代 SPICE 仿真器(如 HSPICE、Spectre、ngspice、SmartSpice)均遵循 CMC 标准模型卡格式。模型卡(.lib / .mdl 文件)的语法一致性,直接决定了仿真结果的可复现性。
1.2 模型卡在电路仿真中的作用
模型卡(Model Card)是 SPICE 仿真中描述半导体器件电学行为的参数集合。它位于电路网表(Netlist)与仿真内核之间,承担三项核心职能:
- 参数化器件行为: 将物理效应(迁移率退化、速度饱和、沟道长度调制等)映射为 SPICE 可解析的数学方程系数。
- 工艺-设计桥接: 代工厂(Foundry)通过模型卡将工艺角(TT/FF/SS/FS/SF)和统计波动信息传递给设计工程师。
- 仿真收敛保障: 模型卡中的平滑参数、结电容模型、噪声模型直接影响 DC/AC/瞬态仿真的收敛性和精度。
工程事实: 在 28nm 及以下节点,模型卡参数数量已超过 500 个。一个错误的模型卡参数(如
TOX 或 VTH0 偏差 5%)可能导致电路功耗或时序仿真结果偏离 30% 以上。
1.3 模型文件的基本结构
一个标准的 SPICE 模型文件(通常以 .lib 或 .mdl 为扩展名)遵循层级化组织方式。以下是一个典型 NMOS BSIM4 模型文件的骨架:
*------------------------------------------------------------
* 模型文件: nch_28nm.lib
* 工艺: 28nm LP CMOS
* 版本: v1.2
*------------------------------------------------------------
.LIB 'nch_28nm' TT
.MODEL nch_28nm_tt NMOS (
+ VERSION = 4.7.0
+ TNOM = 25
+ TOX = 2.2e-9
+ XJ = 1.4e-7
+ NCH = 2.3549e17
+ VTH0 = 0.35
+ U0 = 0.045
+ VSAT = 1.2e5
+ A0 = 1.0
+ K1 = 0.45
+ K2 = 0.05
+ WINT = 5e-9
+ LINT = 3e-9
+ ... * 其余参数省略
)
.ENDL nch_28nm
*------------------------------------------------------------
模型文件的基本结构包含以下要素:
| 结构要素 | 语法标记 | 说明 |
|---|---|---|
| 注释行 | * 或 $ |
文件头注释、版本信息、工艺角说明 |
| 库声明 | .LIB <库名> <工艺角> |
定义模型库名称和工艺角(TT/FF/SS 等) |
| 模型卡定义 | .MODEL <模型名> <类型> ( <参数列表> ) |
核心部分,指定器件类型(NMOS/PMOS/NPN/PNP)和所有模型参数 |
| 库结束 | .ENDL <库名> |
与 .LIB 配对,标识库定义结束 |
| 包含指令 | .INCLUDE <文件名> |
引用外部模型文件或子电路(可选) |
常见陷阱: 模型卡参数的单位制必须与仿真器默认单位一致。例如,BSIM4 中
TOX 的单位是米(m),而某些旧版模型可能使用埃(Å)。单位不匹配会导致仿真结果完全错误,且难以排查。
1.4 模型卡与仿真器的交互机制
SPICE 仿真器在读取模型文件时,遵循以下解析与实例化流程:
- 词法分析: 扫描
.LIB/.MODEL/.ENDL等关键字,建立模型索引表。 - 参数绑定: 将模型卡中的参数名与仿真器内置的模型方程参数一一对应,检查参数范围与类型。
- 实例化: 当网表中出现
M1 D G S B nch_28nm_tt W=1u L=0.1u时,仿真器将模型卡参数与几何尺寸(W/L)合并,生成具体的器件实例。 - 运行时求值: 在 DC/AC/瞬态分析中,仿真器根据偏置条件调用模型方程,计算电流、电容、噪声等特性。
标准化意义: CMC 标准模型卡格式要求所有参数使用统一的命名规则(如
VTH0 而非 vth0 或 Vt),并且参数单位必须遵循 SI 制。这确保了模型卡可以在 HSPICE、Spectre、ngspice 等不同仿真器之间直接复用,无需手动转换。