

关于数值计算
作者第一句话的意思就是:计算机仿真的本质,一定是数值计算。
为什么?因为真实半导体器件里面的物理过程,通常是由一堆物理方程描述的。
例如我们以后在 ATLAS 里面经常遇到的:泊松方程;电子连续性方程;空穴连续性方程;迁移率模型;复合模型;碰撞电离模型……这些方程来自成熟的半导体物理理论或者经验模型。
ATLAS 手册也是同样的说法:器件工作是由一组耦合的、非线性的偏微分方程描述的,ATLAS 最终需要在器件内部的一系列网格点上求这些未知量。
所以可以把整个 TCAD 想成下面这样:
真实器件
↓ 用物理描述
一堆物理方程
↓ 计算机求解
电势、电场、电子、空穴、电流……
↓ 最后得到
I-V 曲线、击穿电压、电场分布等
参数从哪里来?
原书这里举了一个很好的例子。
比如电子迁移率 μn。你可以很简单地直接告诉软件:μn=1200 cm2/(V⋅s),也就是说:“别算迁移率了,我规定它就是 1200。”
但真实情况可能不是这样。
迁移率可能会随着:掺杂浓度;温度;电场;载流子浓度而变化。那么这时候就不能只给一个固定的 1200,而需要一个物理模型。
原书举的例子就是类似 conmob 这种迁移率随掺杂浓度变化的模型。
所以你以后看到:models conmob,不要把它理解成一个神秘命令。它实际上是在告诉 ATLAS:“迁移率不要用一个死数,请按照这个物理模型自己计算。”
ATLAS 手册里面也把 CONMOB 定义为浓度相关的迁移率模型。
这就是我们以后经常说的:材料参数 + 物理模型 → 决定仿真结果。
为什么一定要有“网格”?
真实器件是连续的,理论上位置有无限多个。计算机不可能在无限多个位置上计算。
所以怎么办?作者说:必须把连续的物理系统离散化。
最简单的理解就是:把器件切成很多小块,在一些指定的位置计算。
这些位置就是:网格点。
ATLAS 就在这些节点上求:电势是多少?电子浓度是多少?空穴浓度是多少?电场是多少?
ATLAS 手册说得非常明确:连续的物理模型首先通过离散化变成一个离散的非线性代数方程组,然后计算机再求解。
所以你以后可以把 TCAD 简单理解成:器件 → 网格 → 每个网格点算物理量 → 拼出整个器件的结果。
那是不是网格越密越好?
不是。这也是原书这一节特别强调的地方。
网格越密:
优点:结果通常更精细、更准确。
但是:
缺点:网格点更多,计算量就更大,仿真就更慢。
ATLAS 手册也明确说,网格设计本身就是:精度和计算效率之间的折中。
精度希望网格越细越好;效率则希望网格点尽可能少。
原书讲了4种控制网格的方法
这四种方法你不要分得太机械,它们本质上都在做同一件事:把有限的网格点用在最值得用的地方。
可以简单记成:
① 调间距 → 哪里密哪里疏 ② 网格释放 → 不重要的地方减点 ③ 控三角形 → 别让网格又长又扁 ④ 加/删网格线 → 手动局部调整
而最终目的就三个:结果要准、计算别太慢、还要能收敛。
最后一个概念:精度、速度、收敛性
作者其实是在提醒初学者三个词:
精度:算出来准不准;计算速度:算一次需要多久;收敛性:软件到底能不能顺利算出来。
这三件事情是互相影响的。例如:网格特别密➡️可能更精确➡️计算更慢➡️有时候数值求解也可能更困难。
所以实际做仿真时,需要在:精度、速度、收敛性之间取得平衡。
原书特别提醒:网格划分会直接影响这三件事,而初学者很容易忽略网格。
夜雨聆风