4. 元件模型语法差异:MOSFET模型(LEVEL/BSIM)、二极管模型、无源元件模型的参数命名差异
跨平台SPICE网表移植时,元件模型(Model)的参数命名与语法差异是导致仿真失败或结果不一致的首要原因。不同SPICE变体(HSPICE、PSPICE、LTspice、Spectre)对同一物理效应的参数命名规则、单位制、默认值及模型层级(LEVEL)定义存在显著分歧。本章系统梳理MOSFET、二极管及无源元件模型的核心差异,并提供调试策略。
核心原则:模型参数差异的本质是“语义等价”而非“字符串等价”。移植时需查阅目标仿真器的模型参考手册,使用参数映射表进行转换,而非直接复制。
4.1 MOSFET模型:LEVEL与BSIM参数命名差异
MOSFET模型是跨平台差异的重灾区。不同仿真器对同一模型层级(如BSIM3v3)的参数命名、单位、附加参数支持度均不同。
4.1.1 模型层级(LEVEL)定义差异
| 物理模型 | HSPICE | PSPICE | LTspice | Spectre |
|---|---|---|---|---|
| Shichman-Hodges (MOS1) | LEVEL=1 | LEVEL=1 | LEVEL=1 | LEVEL=1 |
| MOS2 (Grove-Frohman) | LEVEL=2 | LEVEL=2 | LEVEL=2 | LEVEL=2 |
| MOS3 (半经验短沟道) | LEVEL=3 | LEVEL=3 | LEVEL=3 | LEVEL=3 |
| BSIM3v3 | LEVEL=49 / 53 | LEVEL=7 / 8 | LEVEL=8 / 14 | LEVEL=49 / 53 |
| BSIM4 | LEVEL=54 | LEVEL=14 | LEVEL=14 / 16 | LEVEL=54 |
| BSIM6 | LEVEL=66 | 不支持 | 不支持 | LEVEL=66 |
避坑提示:PSPICE中BSIM3v3使用LEVEL=7或8,而HSPICE使用LEVEL=49。直接复制网表会导致仿真器无法识别模型,报“Unknown model level”错误。移植时必须显式修改LEVEL值。
4.1.2 BSIM参数命名差异对照表
以下列出BSIM3/4中常见物理参数在不同仿真器中的命名差异:
| 物理含义 | HSPICE / Spectre | PSPICE | LTspice |
|---|---|---|---|
| 沟道长度调制系数 | LAMBDA | LAMBDA | LAMBDA |
| 迁移率(BSIM3) | U0 | U0 | U0 |
| 迁移率温度系数 | UTE | UTE | UTE |
| 饱和速度 | VSAT | VSAT | VSAT |
| 衬底掺杂浓度 | NSUB | NSUB | NSUB |
| 氧化层厚度 | TOX | TOX | TOX |
| 阈值电压(VTH0) | VTH0 | VTO | VTH0 |
| 体效应系数 | K1, K2 | GAMMA | K1, K2 |
| 有效沟道长度 | L | L | L |
| 有效沟道宽度 | W | W | W |
调试技巧:当遇到“Parameter not recognized”错误时,优先检查VTH0/VTO、K1/GAMMA、LAMBDA等高频差异参数。使用仿真器的
.OPTION LIST或.PRINT MODEL命令输出模型解析后的参数列表,对比预期值。
4.1.3 MOSFET模型参数差异SVG流程图
4.2 二极管模型参数命名差异
二极管模型(DioDE)在不同SPICE平台中参数命名相对统一,但存在关键差异,尤其在结电容模型、温度系数和噪声参数方面。
4.2.1 核心参数差异对照
| 物理含义 | HSPICE / Spectre | PSPICE | LTspice |
|---|---|---|---|
| 饱和电流 | IS | IS | IS |
| 串联电阻 | RS | RS | RS |
| 发射系数 | N | N | N |
| 零偏结电容 | CJO | CJO | CJO |
| 结电势 | VJ | VJ | VJ |
| 梯度系数 | M | M | M |
| 反向击穿电压 | BV | BV | BV |
| 击穿电流 | IBV | IBV | IBV |
| 渡越时间 | TT | TT | TT |
| 禁带宽度(温度) | EG | EG | EG |
| 饱和电流温度指数 | XTI | XTI | XTI |
| 闪烁噪声系数 | KF | KF | KF |
| 闪烁噪声指数 | AF | AF | AF |
关键差异点:PSPICE中二极管模型默认使用
LEVEL=1(标准PN结),而HSPICE默认使用LEVEL=1(标准)或LEVEL=2(肖特基)。LTspice自动检测模型类型,无需显式指定LEVEL。若网表中包含LEVEL=2,PSPICE可能报错。
4.2.2 二极管模型参数映射SVG图
4.3 无源元件模型参数命名差异
电阻、电容、电感等无源元件模型看似简单,但在跨平台移植时仍存在参数命名、单位后缀和温度系数模型的差异。
4.3.1 电阻模型参数差异
| 物理含义 | HSPICE / Spectre | PSPICE | LTspice |
|---|---|---|---|
| 电阻值 | R | R | R |
| 温度系数 (线性) | TC1 | TCE | TC1 |
| 温度系数 (二次) | TC2 | — | TC2 |
| 标称温度 | TNOM | TNOM | TNOM |
| 宽度 | W | W | W |
| 长度 | L | L | L |
| 模型类型 | R | R | R |
注意:PSPICE中电阻温度系数使用
TCE参数(单位:ppm/°C),而HSPICE使用TC1(单位:1/°C)。例如,HSPICE中TC1=0.001对应PSPICE中TCE=1000。移植时需进行单位换算。
4.3.2 电容模型参数差异
| 物理含义 | HSPICE / Spectre | PSPICE | LTspice |
|---|---|---|---|
| 电容值 | C | C | C |
| 初始电压 | IC | IC | IC |
| 温度系数 | TC1, TC2 | TC1 | TC1 |
| 击穿电压 | BV | BV | BV |
| 等效串联电阻 | ESR | R | ESR |
| 等效串联电感 | ESL | L | ESL |
调试建议:PSPICE中电容的等效串联电阻使用
R参数,而HSPICE使用ESR。若网表中同时出现R=10和ESR=10,PSPICE可能将R解释为电阻值,导致电容模型异常。建议移植时统一使用ESR并确认目标仿真器支持。
4.3.3 无源元件模型差异SVG架构图
4.4 跨平台模型参数调试策略
- 建立参数映射表:针对目标仿真器,预先整理高频差异参数(如VTH0/VTO、TC1/TCE、ESR/R)的映射关系。
- 使用模型库文件:优先使用目标仿真器官方提供的模型库(如PSPICE的.lib文件、LTspice的.include文件),避免手动转换。
- 运行模型解析检查:在仿真前使用
.OPTION LIST或.PRINT MODEL输出模型解析后的参数列表,验证参数是否被正确识别。 - 对比直流工作点:对同一电路,在不同仿真器中运行直流分析(.OP),对比MOSFET的VTH、ID、gm等关键工作点参数,偏差超过5%时需检查模型参数。
- 注意单位与默认值:PSPICE中电阻默认单位为Ω,而HSPICE中电阻默认单位为Ω但支持MEG后缀。LTspice中电容默认单位为F,但支持p、n、u等后缀。移植时建议显式写出单位后缀。
实战案例:某BSIM3v3网表从HSPICE移植到PSPICE时,仿真报错“Parameter VTH0 not recognized”。经查,PSPICE中阈值电压参数名为VTO。修改后仿真正常,但直流工作点偏差12%。进一步检查发现PSPICE中默认
TNOM=27(室温),而HSPICE中默认TNOM=25。统一设置为TNOM=25后偏差降至1.2%。