2. SPICE 仿真基础:语法入门、网表结构、直流分析、交流分析、瞬态分析
SPICE(Simulation Program with Integrated Circuit Emphasis)是集成电路设计中最核心的仿真工具。在 BSIM 模型参数提取与拟合过程中,SPICE 是验证模型精度的“裁判”。本章将系统讲解 SPICE 网表语法、基本分析类型及其在模型参数提取中的应用场景。
学习目标:
- 掌握 SPICE 网表的基本结构与书写规范
- 理解直流(DC)、交流(AC)、瞬态(TRAN)三种分析类型的语法与用途
- 能够编写用于 BSIM 模型参数提取的基础仿真网表
2.1 SPICE 网表结构
SPICE 网表是描述电路拓扑、元件参数和分析指令的文本文件。一个完整的 SPICE 网表由以下五个部分组成:
| 部分 | 说明 | 示例 |
|---|---|---|
| 标题行 | 网表的第一行,被 SPICE 忽略,仅作注释 | BSIM Parameter Extraction Testbench |
| 元件语句 | 定义电路中的元件(电阻、电容、MOSFET 等) | M1 D G S B NMOS W=1u L=0.18u |
| 模型语句 | 引用或定义器件模型参数 | .MODEL NMOS BSIM4 VERSION=4.8 |
| 分析指令 | 指定仿真类型(DC、AC、TRAN) | .DC VGS 0 1.8 0.1 |
| 结束语句 | 网表必须以 .END 结尾 |
.END |
网表书写规范:
- 不区分大小写,但建议统一使用大写表示元件类型
- 节点编号必须为整数,0 号节点固定为地(GND)
- 注释行以星号
*开头 - 续行符为
+,用于将长语句拆分为多行
下面是一个用于 BSIM 模型参数提取的典型网表示例:
* BSIM4 Id-Vg 特性提取网表
M1 D G S B NMOS W=1e-6 L=0.18e-6
* 模型语句:引用 BSIM4 模型
.MODEL NMOS BSIM4
+ VERSION = 4.8
+ TOX = 4e-9
+ VTH0 = 0.35
+ U0 = 0.045
* 电源与偏置
VDS D 0 DC 0.05
VGS G 0 DC 0
VSB S 0 DC 0
* 直流分析:扫描 VGS
.DC VGS 0 1.8 0.02
* 输出控制
.PRINT DC I(M1)
.END
2.2 直流分析(DC Analysis)
直流分析是 SPICE 中最基础的分析类型,用于计算电路在直流条件下的工作点。在 BSIM 模型参数提取中,DC 分析主要用于扫描电压以获取 Id-Vg 和 Id-Vd 特性曲线。
2.2.1 DC 分析语法
.DC 源名 起始值 终止值 步长
常用 DC 扫描方式:
| 扫描方式 | 语法示例 | 参数提取用途 |
|---|---|---|
| 单变量扫描 | .DC VGS 0 1.8 0.02 |
Id-Vg 曲线(Vth、gm 提取) |
| 嵌套扫描 | .DC VDS 0 1.8 0.1 VGS 0.5 1.8 0.3 |
Id-Vd 输出特性族 |
| 数据列表扫描 | .DC VGS DATA=vg_list |
指定偏置点的精确提取 |
参数提取注意事项:
- 线性区 Id-Vd 扫描时,VGS 步长不宜过大(建议 ≤0.3V),否则会丢失跨导变化细节
- 亚阈值区扫描时,VGS 步长应 ≤0.02V,以保证 Vth 提取精度
- 嵌套扫描的内层变量变化频率应高于外层,以匹配测量数据矩阵
2.2.2 DC 分析输出控制
.PRINT DC I(M1) V(GS) V(DS)
.PROBE DC I(M1) V(GS)
2.3 交流分析(AC Analysis)
交流分析用于计算电路的小信号频率响应。在 BSIM 模型参数提取中,AC 分析主要用于提取 电容-电压(C-V)特性 和 跨导频率响应。
2.3.1 AC 分析语法
.AC DEC 10 1e3 1e9 // 每十倍频程 10 个点,频率 1kHz ~ 1GHz
.AC LIN 100 1e6 10e6 // 线性扫描 100 个点,1MHz ~ 10MHz
AC 分析需要先通过 .OP 或 DC 分析确定工作点,然后对交流小信号源进行频率扫描。
2.3.2 C-V 特性提取网表
* C-V 特性提取:栅电容 vs 栅电压
M1 D G S B NMOS W=10e-6 L=10e-6
.MODEL NMOS BSIM4 VERSION=4.8
* 直流偏置
VGS G 0 DC 0 AC 1
VDS D 0 DC 0
VSB S 0 DC 0
* 先计算工作点,再进行 AC 分析
.OP
.AC DEC 10 1e3 1e6
* 提取栅电容:Cgg = Im(I(G)) / (2*pi*f)
.PRINT AC IM(VGS)
.DC VGS -0.5 1.8 0.05
.END
AC 分析在参数提取中的关键作用:
- Cgg(栅电容): 通过 AC 分析提取,用于拟合 BSIM 的 C-V 模型参数(如 CGSO、CGDO)
- Cgd(栅漏交叠电容): 在 VDS 较高时提取,用于校准交叠电容参数
- 跨导 gm: 通过 AC 小信号分析直接获得,用于验证模型的小信号精度
2.4 瞬态分析(Transient Analysis)
瞬态分析用于计算电路在时域中的响应。在 BSIM 模型参数提取中,瞬态分析主要用于验证模型的 大信号行为 和 开关特性。
2.4.1 瞬态分析语法
.TRAN 1e-12 1e-9 // 步长 1ps,总时长 1ns
.TRAN 0.1e-9 10e-9 UIC // UIC 表示使用初始条件
2.4.2 瞬态分析在参数提取中的应用
| 应用场景 | 网表关键设置 | 提取参数 |
|---|---|---|
| 开关特性验证 | 脉冲源 VGS PULSE(0 1.8 0 10p 10p 50p 100p) | 开关延迟、转换速率 |
| 自热效应验证 | 长脉冲宽度(>1μs) | 热阻 Rth、热容 Cth |
| 电荷泵测试 | 周期性栅脉冲 + 恒定 VDS | 界面态密度 Nit |
瞬态分析步长选择原则:
- 对于 BSIM 模型验证,最大步长应小于信号上升时间的 1/10
- 自热效应仿真时,总时长需覆盖热时间常数(通常 >1μs)
- 使用
.OPTIONS RELTOL=1e-6提高瞬态精度,避免收敛问题
2.5 三种分析类型的对比与选择
| 分析类型 | 输入变量 | 输出变量 | BSIM 参数提取用途 | 典型精度要求 |
|---|---|---|---|---|
| DC | 电压/电流源 DC 值 | 节点电压、支路电流 | Id-Vg, Id-Vd, Vth, gm, gds | 电流精度 < 1% |
| AC | 小信号频率 | 增益、相位、阻抗 | Cgg, Cgd, Cgs, gm, fT | 电容精度 < 5% |
| TRAN | 时变激励 | 时域波形 | 开关延迟、自热效应、电荷泵 | 时间精度 < 2% |
实战建议:
- 参数提取初期优先使用 DC 分析,快速校准直流特性
- 完成直流拟合后,使用 AC 分析校准 C-V 特性
- 最后使用 TRAN 分析验证模型在大信号下的动态行为
- 三种分析应使用同一套模型参数,确保模型的一致性
2.6 本章小结
本章系统介绍了 SPICE 仿真的三大基础分析类型及其在 BSIM 模型参数提取中的应用:
- 网表结构 是 SPICE 仿真的基础,必须严格遵循标题行、元件语句、模型语句、分析指令、结束语句的五段式结构
- DC 分析 用于提取 Id-Vg 和 Id-Vd 特性,是参数提取的核心手段
- AC 分析 用于提取 C-V 特性和小信号参数,补充直流拟合的不足
- TRAN 分析 用于验证模型的大信号动态行为,确保模型在实际电路中的适用性