4. SPICE 网表语法入门:元件声明、模型语句与控制语句
SPICE 网表是描述电路拓扑、元件参数与分析任务的文本文件。对于半导体器件建模,理解元件声明(M/D/Q)、模型语句(.MODEL)和控制语句(.DC/.AC/.PLOT)是构建仿真环境的基础。本章将系统讲解这三类核心语法,并通过实例与图表帮助您快速上手。
4.1 元件声明:M(MOSFET)、D(二极管)、Q(BJT)
元件声明是网表的主体,格式为:<元件名> <节点连接> <模型名> [参数]。以下是三种常用有源器件的声明规则。
| 元件类型 | 首字母 | 节点顺序(典型) | 示例 |
|---|---|---|---|
| MOSFET | M | 漏极 栅极 源极 衬底 | M1 D G S B NMOS_W=1u L=0.18u |
| 二极管 | D | 阳极 阴极 | D1 A C DIODE_MODEL AREA=1.0 |
| 双极型晶体管 | Q | 集电极 基极 发射极 | Q1 C B E NPN_MODEL BF=100 |
下面是一个包含 MOSFET 和二极管的简单电路网表示例:
Simple CV Test Circuit
V1 N1 0 DC 1.5
M1 N1 N2 0 0 NMOS_W=10u L=1u
D1 N2 0 DIODE_MODEL
.MODEL NMOS NMOS (VTO=0.7 KP=1e-4)
.MODEL DIODE_MODEL D (IS=1e-14 CJO=1e-12)
.DC V1 0 3 0.1
.PLOT DC I(V1)
.END
4.2 模型语句(.MODEL)
.MODEL 语句用于定义半导体器件的物理参数,语法为:
.MODEL <模型名> <类型> (<参数1=值1> <参数2=值2> ...)
常见模型类型与对应器件:
- NMOS / PMOS:用于 MOSFET,参数包括 VTO(阈值电压)、KP(跨导系数)、GAMMA(体效应系数)、CGSO(栅源交叠电容)等。
- D:用于二极管,参数包括 IS(饱和电流)、CJO(零偏结电容)、VJ(内建电势)、M(梯度因子)等。
- NPN / PNP:用于 BJT,参数包括 BF(正向电流增益)、CJE(基-射结电容)、CJC(基-集结电容)等。
以下 SVG 图展示了 .MODEL 语句与器件物理参数之间的映射关系:
4.3 控制语句:.DC、.AC、.PLOT
控制语句定义仿真类型与输出方式。在 C-V 曲线拟合中,.DC 和 .AC 是最常用的分析类型。
4.3.1 .DC 直流扫描分析
语法:.DC <源名> <起始值> <终止值> <步长>
用于扫描直流电压或电流,观察器件静态特性。例如扫描栅极电压以获取 MOSFET 的 C-V 曲线。
.DC VGS 0 5 0.05
4.3.2 .AC 交流小信号分析
语法:.AC <扫描类型> <点数> <起始频率> <终止频率>
用于计算小信号电容。在固定偏置下,通过交流分析提取端口电容值。
.AC DEC 10 1k 1G
4.3.3 .PLOT 输出控制
语法:.PLOT <分析类型> <输出变量1> [<输出变量2> ...]
用于在文本终端或输出文件中绘制波形。在 C-V 拟合中,常用 .PLOT 输出电容值随电压的变化。
.PLOT DC I(V1)
.PLOT AC C(M1)
以下 SVG 图展示了 .DC 与 .AC 联合仿真 C-V 曲线的流程:
4.4 完整网表示例:MOSFET C-V 仿真
以下是一个完整的 SPICE 网表,用于仿真 MOSFET 的栅-源电容(Cgs)随栅压变化:
MOSFET C-V Simulation
M1 D G S B NMOS_W=10u L=1u
VGS G 0 DC 0
VDS D 0 DC 0.1
VSB B 0 DC 0
.MODEL NMOS NMOS (VTO=0.7 KP=1e-4 CGSO=5e-10 CGDO=5e-10 CGBO=2e-10)
.DC VGS -1 3 0.05
.AC DEC 5 1k 1MEG
.PLOT DC C(M1)
.END
C(M1) 可直接输出 MOSFET 的总栅电容。
4.5 常见语法错误与避坑指南
| 错误类型 | 错误示例 | 正确写法 | 说明 |
|---|---|---|---|
| 元件名首字母错误 | Q1 D G S NMOS |
M1 D G S NMOS |
MOSFET 必须用 M 开头 |
| 模型名未定义 | M1 D G S 0 MYMOD |
先定义 .MODEL MYMOD NMOS ... |
模型名必须与 .MODEL 语句匹配 |
| 节点悬空 | M1 D G S B NMOS 但 B 未连接 |
将 B 连接到 0 或明确电压源 | 衬底节点不能悬空 |
| 缺少 .END | 网表末尾无 .END | 在最后一行添加 .END |
SPICE 需要 .END 结束网表 |
掌握元件声明、模型语句与控制语句后,您就可以构建基本的 C-V 仿真网表,为后续的曲线拟合与参数优化打下坚实基础。