bsim3v32 #9
MacroModel
started this conversation in
Ideas
Replies: 1 comment
-
# BSIM3v3.2(bsim3v32)在电路仿真器里“怎么仿真”的完整流程
BSIM3v3.2 是一个 **MOSFET 紧凑模型(compact model)**:它不去解二维/三维器件方程,而是把器件的物理效应“压缩”成一组 **端口电流 + 端口电荷** 的解析/半解析表达式。电路仿真器(SPICE 类)把它当作一个多端口非线性元件,在 **DC/AC/瞬态/噪声** 等分析里反复调用模型方程来组装电路方程并求解。BSIM3v3.2.2 手册把 I–V、C–V、NQS、噪声、结二极管等模块分章说明。:contentReference[oaicite:0]{index=0}
---
## 1) 仿真器与 BSIM3 的分工:一个给“方程”,一个负责“求解”
### 电路仿真器在每一步都做什么
以最常见的牛顿迭代(Newton–Raphson)为核心,仿真器每次迭代都会:
1. 先有一组“猜测”的节点电压(以及瞬态时的历史状态)。
2. 对电路里每个非线性器件(包含 BSIM3 MOS)计算:
- 端口电流(等效注入到节点的电流源)
- 电流对端口电压的偏导数(等效电导,进入雅可比矩阵)
- 若是瞬态/AC,还要计算端口电荷及其对电压偏导(等效电容/导纳)
3. 把所有器件贡献“盖章”(stamping)到矩阵方程:
\[
\mathbf{J}\Delta \mathbf{v}=-\mathbf{f}(\mathbf{v})
\]
4. 解线性方程得到电压修正量 \(\Delta \mathbf{v}\),更新节点电压并判断收敛。
**BSIM3 在这里提供的核心就是:**
- **I–V:** 给定 \(V_{gs},V_{ds},V_{bs}\)(以及温度、尺寸等),输出 \(I_d\)(及其它支路电流)和偏导 \(g_m,g_{ds},g_{mb}\)。手册的 I–V 模块明确列出了短沟道/窄沟道、CLM、DIBL、亚阈值、迁移率退化、速度饱和等关键效应。:contentReference[oaicite:1]{index=1}
- **Q–V:** 给定偏置输出 \(Q_g,Q_d,Q_s,Q_b\) 及其偏导,用于 AC/瞬态电流。手册“Capacitance Modeling”章节与附录 B 讨论了电荷/电容表达。:contentReference[oaicite:2]{index=2}
- **可选 NQS:** 用额外状态描述非准静态充电/弛豫,影响高频 AC/快速瞬态。:contentReference[oaicite:3]{index=3}
- **噪声:** 给噪声谱密度模型(1/f、沟道热噪声等)。:contentReference[oaicite:4]{index=4}
- **结二极管:** 源/漏与体的 PN 结 I–V 与结电容及温度依赖。:contentReference[oaicite:5]{index=5}
---
## 2) 参数进入模型后的“初始化/预处理”(仿真开始前的一次性工作)
当你在网表里写 `.model` 和器件实例后,仿真器会先完成一轮参数“落地”:
- **模型选择与版本**:BSIM3 在 SPICE 中通常用 `level=8`,`version=3.2`(v3.2.2 手册的参数表写明了 `level`/`version` 等控制参数)。:contentReference[oaicite:6]{index=6}
- **分箱(binning)与尺寸修正**:根据 `L/W` 选择参数分段,并把版图尺寸换算成有效尺寸(考虑横向扩散、边缘效应等)。手册给出 `binUnit` 等控制项。:contentReference[oaicite:7]{index=7}
- **温度基准与温度缩放**:以 `Tnom` 为标称温度,运行温度下重新计算一些温度相关量(迁移率、结电流、结电容内建势等)。结电容参数与温度系数在 MOS diode 章节/表格里给出。:contentReference[oaicite:8]{index=8}
- **数值健壮性检查**:`paramChk` 用于参数合法性检查,减少“参数不物理导致发散”。:contentReference[oaicite:9]{index=9}
> 这一步的意义:把用户输入的“工艺/几何/经验参数”变成后续每次迭代都能快速用到的派生常数(如 \(C_{ox}\)、有效 \(L/W\)、温度缩放因子等)。
---
## 3) DC/工作点(OP)与 DC 扫描:一次迭代里 BSIM3 具体算什么
对每个 MOS 实例,在某次牛顿迭代中,仿真器把当前节点电压转换为端口电压:
- \(V_{gs}=V_g-V_s\)
- \(V_{ds}=V_d-V_s\)
- \(V_{bs}=V_b-V_s\)
然后按 BSIM3 的“分层计算”得到电流与导数(手册附录 B 把 I–V 计算拆成多个子步骤)。:contentReference[oaicite:10]{index=10}
### 3.1 电压限制/平滑(limiting & smoothing)
为保证收敛与导数连续性,模型会对某些内部变量做平滑/限制(尤其在强反型 ↔ 亚阈值、线性 ↔ 饱和、结二极管正向导通等切换处)。这也是 BSIM3 在电路求解中稳定的关键之一(手册也单列了“convergence improvements”等内容)。:contentReference[oaicite:11]{index=11}
### 3.2 阈值电压 \(V_{th}\) 与短沟道/体效应/DIBL
BSIM3 的 \(V_{th}\) 不是常数,而是由:
- 体效应(\(V_{bs}\))
- 短沟道效应(SCE)
- 窄沟道效应(NWE)
- DIBL(\(V_{ds}\) 引起的阈值降低)
等共同决定。手册在附录 B 的阈值章节给出这些项如何组合,并在参数表中列出如 `Dvt0/Dvt1/Dvt2` 等系数。:contentReference[oaicite:12]{index=12}
### 3.3 有效过驱动 \(V_{gsteff}\):把亚阈值与强反型“无缝接起来”
BSIM3 常用一个连续可导的“有效过驱动”来避免硬切换,比如把 \(V_{gs}-V_{th}\) 通过平滑函数变成 \(V_{gsteff}\),使得在亚阈值区也能得到合理的电流与导数(附录 B 有专门小节说明有效 \((Vgs-Vth)\) 的构造)。:contentReference[oaicite:13]{index=13}
### 3.4 有效迁移率 \(\mu_{eff}\):垂直场/速度饱和等退化
模型会根据栅垂直场、掺杂、温度等把低场迁移率 `u0` 修正为 \(\mu_{eff}\),并结合速度饱和形成后续的电流表达(I–V 模块与附录 B 对 mobility/velocity saturation 分节描述)。:contentReference[oaicite:14]{index=14}
### 3.5 饱和电压 \(V_{dssat}\)、有效 \(V_{dseff}\) 与漏电流 \(I_d\)
BSIM3 通常按“统一公式”覆盖线性区到饱和区:
- 先算 \(V_{dssat}\)(由过驱动与速度饱和等决定)
- 再用平滑方式得到 \(V_{dseff}\)(避免线性/饱和分段不连续)
- 再代入漏电流表达并叠加 CLM(沟道长度调制)、输出电导修正等
附录 B 的 “Drain Current Expression / Effective Vds / Channel length modulation”等小节给出这种分解方式。:contentReference[oaicite:15]{index=15}
### 3.6 额外电流分量:结二极管、GIDL、冲击电离/基底电流等
除了沟道电流 \(I_d\),BSIM3 还会在需要时加入:
- **源/漏–体 PN 结电流与结电容**(见 MOS diode modeling 章节)。:contentReference[oaicite:16]{index=16}
- **GIDL/相关泄漏**(手册 I–V 模块包含 substrate current / drain leakage 等内容)。:contentReference[oaicite:17]{index=17}
- **冲击电离导致的基底电流与其对输出特性影响**(I–V 模块列有 substrate current 小节)。:contentReference[oaicite:18]{index=18}
### 3.7 导数(雅可比):\(g_m,g_{ds},g_{mb}\) 等
仿真器要收敛,必须要“电流对电压的偏导”。因此模型在给出电流的同时,也给出:
- \(g_m=\partial I_d/\partial V_{gs}\)
- \(g_{ds}=\partial I_d/\partial V_{ds}\)
- \(g_{mb}=\partial I_d/\partial V_{bs}\)
这些导数与电流一起被盖章进矩阵,构成牛顿迭代的线性化。
---
## 4) AC 小信号:围绕工作点做线性化(电导 + 电容 → 复导纳)
AC 分析首先依赖 DC 工作点。得到工作点后:
1. **电导部分**:直接用 DC 得到的 \(g_m,g_{ds},g_{mb}\) 等,形成小信号电导网络。
2. **电容部分**:由电荷模型得到各端口电荷对各端口电压的偏导:
\[
C_{xy} = \frac{\partial Q_x}{\partial V_y}
\]
然后在频域中变成导纳 \(Y=j\omega C\)。
BSIM3 把 C–V 做成电荷守恒(charge-based)的框架,并单独讨论 intrinsic caps、overlap/fringing 等(Capacitance Modeling 章节)。:contentReference[oaicite:19]{index=19}
---
## 5) 瞬态(TRAN):电荷产生的“位移电流”通过数值积分进入电路方程
瞬态里,MOS 的电容电流不是简单 \(C\cdot dV/dt\) 的固定电容,而是:
\[
i_x(t) = \frac{dQ_x(\mathbf{V}(t))}{dt}
\]
仿真器用数值积分(如梯形法、Gear)把它变成每个时间步的等效:
- 一个“伴随电导”(companion conductance)
- 一个“历史电流源”(history current source)
因此瞬态每个时间点仍然要做牛顿迭代:在当前猜测电压下更新 \(Q\)、更新等效注入并求解。
> 这也是为什么 BSIM3 的 **电荷/电容模型**直接决定了瞬态仿真的稳定性与精度。手册把 C–V、结电容温度依赖、以及相关参数表分开给出。:contentReference[oaicite:20]{index=20}
---
## 6) NQS(非准静态)开关 nqsMod:高频/快速瞬态时“沟道电荷跟不上电压”
准静态(QS)假设:沟道电荷瞬时跟随端口电压变化。
当频率高或边沿很快时,沟道电荷存在 **弛豫时间(relaxation time)**,需要额外状态描述。
BSIM3v3.2 提供 NQS 模型开关:
- 参数表里 `nqsMod` 是 NQS 标志(并注明它在 v3.2.2 中是实例参数)。:contentReference[oaicite:21]{index=21}
- 手册 NQS 章节包含 relaxation time、端口充电电流、charge partition、nodal conductances 等内容,说明它如何影响 AC/瞬态。:contentReference[oaicite:22]{index=22}
在电路层面,打开 NQS 往往意味着:
- 增加一个(或一组)内部状态变量
- 多一条动态方程(类似一阶低通的电荷响应)
- AC 下出现频率相关的等效导纳,而不是纯电容
---
## 7) 噪声(NOISE):noiMod 选择噪声模型并给出谱密度
BSIM3 的噪声通常包含:
- **沟道热噪声**(与沟道导电/反型电荷相关)
- **1/f(闪烁噪声)**
- **电阻热噪声**(源漏串联电阻、栅电阻等若建模)
- **结二极管相关噪声**(如正向时的散粒噪声)
手册“Noise Modeling”章节把 flicker noise、channel thermal noise、noise model flag 等分节说明;参数表里 `noiMod` 是噪声模型选择标志。:contentReference[oaicite:23]{index=23}
---
## 8) capMod / mobMod 等“模型选择器”如何影响仿真(你看到的 DC/AC/TRAN 都会变)
在 v3.2.2 的控制参数表中:
- `mobMod`:迁移率模型选择
- `capMod`:电容/电荷模型选择(默认值在表中给出)
- `nqsMod`:NQS 开关
- `noiMod`:噪声模型选择
这些选择器决定“用哪套方程/哪种平滑方式/哪种电荷表达”,因此会同时影响 DC(导数稳定性)、AC(电容/导纳)、TRAN(位移电流)、NOISE(噪声谱)。:contentReference[oaicite:24]{index=24}
---
## 9) 把上述内容串起来:一次“完整仿真”的时间线
### A. 运行前
1. 读入网表:识别 MOS 实例与模型卡。
2. 初始化模型:版本/level、分箱、有效尺寸、温度缩放、参数检查。:contentReference[oaicite:25]{index=25}
### B. DC / OP
1. 给定初值 → 牛顿迭代:
2. 每次迭代对每个 MOS:
- 取端口电压 → 算 \(V_{th}\)、\(V_{gsteff}\)、\(\mu_{eff}\)、\(V_{dssat}\)、\(I_d\) 与附加电流
- 计算偏导 \(g_m,g_{ds},g_{mb}\) → 盖章
3. 收敛后得到工作点。:contentReference[oaicite:26]{index=26}
### C. AC
1. 以工作点为线性化点:
2. 用电流导数 + 电荷导数形成复导纳矩阵
3. 扫频解线性方程。:contentReference[oaicite:27]{index=27}
### D. TRAN
1. 每个时间步:
- 用上一步历史量形成伴随模型
- 进入牛顿迭代(仍要反复评估 I–V 与 Q–V)
2. 若打开 NQS:多一个动态状态、频率/时间常数效应更明显。:contentReference[oaicite:28]{index=28}
### E. NOISE
1. 基于工作点(或小信号条件)计算各噪声源谱密度
2. 通过小信号网络传递到输出端,得到输出噪声谱/积分噪声。:contentReference[oaicite:29]{index=29}
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Beta Was this translation helpful? Give feedback.
All reactions