乐于分享
好东西不私藏

半导体工艺和器件仿真软件Silvaco TCAD实用教程(1.1.1-数值计算)

半导体工艺和器件仿真软件Silvaco TCAD实用教程(1.1.1-数值计算)
今天过1.1.1节这部分-数值计算,原书正文如下:

关于数值计算

作者第一句话的意思就是:计算机仿真的本质,一定是数值计算。

为什么?因为真实半导体器件里面的物理过程,通常是由一堆物理方程描述的。

例如我们以后在 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种控制网格的方法

这四种方法你不要分得太机械,它们本质上都在做同一件事:把有限的网格点用在最值得用的地方。

可以简单记成:

① 调间距 → 哪里密哪里疏 ② 网格释放 → 不重要的地方减点 ③ 控三角形 → 别让网格又长又扁 ④ 加/删网格线 → 手动局部调整

而最终目的就三个:结果要准、计算别太慢、还要能收敛


最后一个概念:精度、速度、收敛性

作者其实是在提醒初学者三个词:

精度:算出来准不准;计算速度:算一次需要多久;收敛性:软件到底能不能顺利算出来。

这三件事情是互相影响的。例如:网格特别密➡️可能更精确➡️计算更慢➡️有时候数值求解也可能更困难。

所以实际做仿真时,需要在:精度、速度、收敛性之间取得平衡。

原书特别提醒:网格划分会直接影响这三件事,而初学者很容易忽略网格。