Semiconductor Device Simulation: Physics and …gss-tcad.sourceforge.net/gss_book.pdfx future...

277
模拟 GSSVersion 0.46.07 2008 12 18

Transcript of Semiconductor Device Simulation: Physics and …gss-tcad.sourceforge.net/gss_book.pdfx future...

半导体器件的数值模拟GSS软件用户手册

贡 顶 张相华

Version 0.46.07

2008年 12月 18日

目录

第一章 写在前面 9

第一部分 半导体物理简介 12

第二章 半导体能带结构 14

第一节 紧束缚模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

第二节 一维晶体的近自由电子模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

第三节 半导体中单电子的运动 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3.1 半导体中电子的平均速度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3.2 有效质量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3.3 外力与电子加速度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

第三章 平衡态电子的统计分布 24

第一节 电子的Fermi-Dirac统计分布 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

第二节 Boltzmann分布函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

第三节 空穴的分布函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

第四节 载流子浓度的确定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.4.1 非简并半导体载流子浓度对费米能级的依赖关系 . . . . . . . . . . . . . . . . . 27

3.4.2 简并半导体载流子浓度对费米能级的依赖关系 . . . . . . . . . . . . . . . . . . 28

3.4.3 本征半导体的载流子浓度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4.4 禁带变窄效应与有效本征载流子浓度 . . . . . . . . . . . . . . . . . . . . . . . . 30

3.4.5 杂质半导体的载流子浓度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

第四章 非平衡态载流子 33

第一节 准费米能级 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

第二节 载流子的复合与产生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.2.1 带间直接复合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2

目录 目录

4.2.2 带间俄歇复合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2.3 通过复合中心的复合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.2.4 载流子的碰撞电离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.2.5 载流子的带间隧道跃迁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

第五章 半导体输运方程的数学描述 40

第一节 Boltzmann输运方程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.1.1 漂移变化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

5.1.2 散射作用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

5.1.3 完整的Boltzmann输运方程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

第二节 电磁场方程及其化简 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

第三节 漂移扩散模型方程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

第四节 流体力学模型方程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

第五节 载流子迁移率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

第六节 半导体常数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

第六章 半导体接触界面 53

第一节 半导体与金属的接触 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6.1.1 半导体与金属的接触势垒 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

6.1.2 肖特基接触的电流关系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

6.1.3 欧姆接触 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

第二节 金属-氧化物-半导体结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

第三节 半导体异质结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

第二部分 半导体漂移扩散模型 64

第七章 GSS实现的漂移扩散模型 66

第一节 第一层漂移扩散模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

第二节 第二层漂移扩散模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

第三节 第三层能量平衡模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

第四节 量子修正的第一层漂移扩散模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

第五节 半导体能带参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

第六节 载流子复合率模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

第七节 载流子迁移率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

7.7.1 Analytic Mobility Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

3

目录 目录

7.7.2 Philips Mobility Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

7.7.3 Lombardi表面迁移率模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

7.7.4 Lucent强场迁移率综合模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.7.5 Hewlett-Packard强场迁移率综合模型 . . . . . . . . . . . . . . . . . . . . . . . . 77

7.7.6 适用于能量平衡方程的迁移率模型 . . . . . . . . . . . . . . . . . . . . . . . . . 78

第八节 载流子生成率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

第九节 考虑Fermi-Dirac分布的漂移扩散模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

第十节 DDM方程解的存在性和唯一性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

第八章 半导体数值模拟的网格技术 84

第一节 半导体物理模型与计算模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

第二节 半导体仿真对网格的要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

第三节 GSS的网格数据结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

第四节 微分算子的有限体积离散 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

8.4.1 标量场的梯度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

8.4.2 矢量场的散度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

8.4.3 矢量场的旋度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

第九章 漂移扩散模型的数值方法 93

第一节 变量的缩放 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

第二节 Poisson方程的二维有限体积解法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

第三节 一维DDM方程组的数值方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

第四节 对流扩散问题的再讨论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

9.4.1 对流问题的数值格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

9.4.2 扩散问题的数值格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

9.4.3 Scharfetter-Gummel格式的本质 . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

9.4.4 设计自己的格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

第五节 GSS第一层DDM求解器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

第六节 二维迁移率模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

第七节 GSS第二层DDM求解器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

第八节 GSS第三层EBM求解器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

第九节 GSS量子修正DG-DDM求解器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

第十节 载流子生成项的离散方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

第十一节 边界条件的处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4

目录 目录

9.11.1 Neumann边界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

9.11.2 欧姆接触电极 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

9.11.3 肖特基接触电极 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

9.11.4 半导体绝缘层界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

9.11.5 电极外电路 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

9.11.6 传热的边界条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

9.11.7 载流子温度的边界条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

9.11.8 异质结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

9.11.9 DG-DDM的边界条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

第十二节 时间推进 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

第十三节 自动时间步长控制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

第十四节 非线性方程组的牛顿迭代法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

9.14.1 Line Search方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

9.14.2 最速下降法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

9.14.3 Trust Region方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

9.14.4 Jacobian矩阵的构造 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

9.14.5 DDM方程组精细收敛判据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

第十五节 线性方程组的krylov子空间方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

9.15.1 共轭方向法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

9.15.2 共轭梯度法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

9.15.3 双共轭梯度法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

9.15.4 广义最小余量法(GMRES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

第十六节 自动微分技术 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

第十章 半导体模拟软件的扩展功能 142第一节 AC小信号模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

第二节 电路级混合模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

10.2.1 电路的节点分析法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

10.2.2 GSS的电路混合模拟模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

第三节 器件IV曲线自动扫描 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

第十一章 半导体光学吸收的模拟 152第一节 电磁散射问题有限元方法基本原理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

11.1.1 材料的电磁参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

11.1.2 TM模散射方程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

11.1.3 TE模散射方程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

11.1.4 二维UPML的设置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

第二节 载流子生成率的计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

5

目录 目录

第十二章 GSS软件的应用 159

第一节 二极管的数值模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

12.1.1 建立器件模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159

12.1.2 正向与反向电流的数值模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

12.1.3 二极管的瞬态模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

12.1.4 延迟击穿二极管的模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

12.1.5 齐纳二极管隧道击穿的模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

第二节 三极管的数值模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

12.2.1 建立三极管的模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

12.2.2 三极管的输出特性曲线 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

12.2.3 三极管放大电路的数值模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

12.2.4 三极管放大电路的交流小信号扫描 . . . . . . . . . . . . . . . . . . . . . . . . . 179

12.2.5 异质结晶体管的数值模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

第三节 砷化镓MESFET管的数值模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

第四节 CMOS工艺小规模数字器件的数值模拟 . . . . . . . . . . . . . . . . . . . . . . . . . 187

12.4.1 NMOS管与PMOS管的建模 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188

12.4.2 MOS管传输特性的模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

12.4.3 反相器74HC04的混合模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

12.4.4 与非门74HC00的混合模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

12.4.5 用于ESD保护的ggNMOS击穿特性模拟 . . . . . . . . . . . . . . . . . . . . . . . 202

第五节 绝缘层上硅器件的数值模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

第六节 半导体光吸收的数值模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

第三部分 附录 215

附件一 GSS命令文件语法 216

I GSS命令文件介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

A.1.1 命令文件的语法格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

A.1.2 命令与参数的次序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

A.1.3 符号约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

II 全局设定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

A.2.1 SET命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

III 网格生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

A.3.1 网格生成器简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

6

目录 目录

A.3.2 GSS中的坐标系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

A.3.3 MESH命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

A.3.4 XMESH和YMESH命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

A.3.5 ELIMINATE命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

A.3.6 SPREAD命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

A.3.7 REGION命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

A.3.8 SEGMENT命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

A.3.9 REFINE命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

IV 掺杂浓度的设定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

V 电压源与电流源 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

A.5.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

A.5.2 ISOURCE命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

A.5.3 VSOURCE命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234

VI 边界条件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

A.6.1 BOUNDARY与CONTACT命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236

A.6.2 ATTACH命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

VII 物理模型接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240

VIII 求解设定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

A.8.1 METHOD命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

A.8.2 SOLVE命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

A.8.3 AC小信号扫描 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

A.8.4 电磁有限元求解器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247

A.8.5 GSS与NGSPICE的混合模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

A.8.6 数据文件格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

IX 输入输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

A.9.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

A.9.2 IMPORT和EXPORT命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

X 后处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

A.10.1 Plot命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

A.10.2 Probe命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

XI 如何克服收敛性问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

A.11.1 克服不良初值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

A.11.2 物理问题无解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

A.11.3 牛顿迭代问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

A.11.4 浮点数精度问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256

7

目录 目录

附件二 GSS软件已经实现的功能 258

附件三 如何安装GSS 259

I GSS对内存与CPU的要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

II 从源代码编译GSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

附件四 GNU Free Documentation License 262

I APPLICABILITY AND DEFINITIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

II VERBATIM COPYING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

III COPYING IN QUANTITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

IV MODIFICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

V COMBINING DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

VI COLLECTIONS OF DOCUMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

VII AGGREGATION WITH INDEPENDENT WORKS . . . . . . . . . . . . . . . . . . . . . 267

VIII TRANSLATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

IX TERMINATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268

X FUTURE REVISIONS OF THIS LICENSE . . . . . . . . . . . . . . . . . . . . . . . . . . 268

参考文献 271

8

第一章 写在前面

GSS开发背景

半导体器件级的数值模拟始于1964年,Gummel等人 [1]首次用数值方法代替解析方法,分析了一维双极晶体管的电特性。此后,由于电子工业的发展对于半导体器件的性能提出越来越高

的要求,用数值模拟优化器件结构成了迫切需要解决的问题。从上世纪70年代起,斯坦福大学的TCAD项目组开始编写基于漂移扩散模型的二维半导体器件的模拟软件PISCES [2][3]。Avant!公司1和SILVACO公司后来分别推出了PISCES商业包装后的版本MEDICI [4]和ATLAS [5]。功能相同的软件还有ISE公司2推出的DESSIS [6],奥地利的MINIMOS等等,它们的内核虽然不是PISCES,但是算法一致,并且或多或少借鉴了PISCES的设计思想。经过30多年的发展,半导体器件模拟已经成为集成电路计算机辅助设计不可分割的一个部分。国外很多大学已经开设了计算微电子学的课程,

介绍半导体工艺模拟和半导体器件模拟。

在我国做半导体数值模拟的单位有许多,例如清华大学、北京大学、中科院微电子所、东

南大学、西安电子科技大学等。清华大学微电子所余志平教授上世纪80年代在斯坦福大学参加了TCAD项目组,是PISCES-2ET主要作者之一[7]。GSS借鉴了PISCES软件的很多成功之处,作者在此表示由衷的感谢。除此之外,东南大学曾经自行编制过通用模拟软件[8]。在微电子教学领域,北大微电子专业利久教授开设了专门的计算微电子学课程,同时吉教授也是“计算微电子学”一书的

作者[9]。此外,西安电子科技大学的张义门教授也有一本著作“半导体器件计算机模拟”[10]。这两本书对于GSS软件以及此用户手册都有很大的贡献,在此同样表示由衷的感谢。

可惜的是,国内半导体器件的数值分析大部分依靠国外的商用软件完成。商用软件的缺点很

明显:昂贵的售价,一些高级模块对中国的禁运,源代码对于用户来说不可见,用户无法了解其计

算过程,难以根据用户的需求自行添加物理模型等等。而目前免费的半导体数值模拟软件还不多。

斯坦福将1990版的PISCES2B放在网上,这是一个用fortran77写成,只包含了最基本的漂移扩散模型的模拟软件,已经过时了。MINIMOS需要10欧元,而且它的建模方式让人摸不着头脑。至于新的FLOOXS已经被集成到ISE软件包中,网上放出来的功能不全。值得注意的是,上面提到的软件仅仅是免费的,但均不是自由的,意味着用户可以免费使用它们,但是不能更改及重新发布。

作者曾经寻找过这样一款半导体模拟软件:免费、自由、功能强大、结构合理便于扩充,可惜当

时并没有找到。为了满足这个要求,GSS(General-purpose Semiconductor Simulator)诞生了。GSS遵循最为宽松的BSD许可证,允许用户自由修改,分发,重用任何代码,甚至将其商业化。用户在心情愉快的时候可以在自己的作品内感谢一下作者,这一条还是作者的一点私心,不是必须的要求。

1后被Synopsys公司收购2后被Synopsys公司收购

9

第一章 写在前面

GSS发展经历

2003年夏,作者刚从中国科学技术大学近代物理系本科毕业,开始进行半导体方面的工作。导师给的课题是研究半导体器件在微波辐照下的响应。当时我们已经购买了Avant!公司的半导体器件数值软件MEDICI,但是使用过程中很快发现软件有一些缺陷,最致命的是无法加上数据接口,与我们的电磁场计算软件协同工作。于是导师打算重新写一个半导体器件模拟程序完成所需的功能,

这个艰巨的任务恰恰落在了我的头上。当时也许觉得很不幸,但是数年后我不得不感谢我的导师。

这个当时看起来不可能完成的任务最后还是交上了圆满的答卷。在工作过程中,我学到了太多的东

西,除了开拓未涉足的知识领域外,更重要的是拥有了直面任何困难的勇气和信心。

当年的秋天,我开始了在清华大学的一年学习。清华充满了工程的气息,相对而言,中科大更

重视理论基础。这一年对我的成长相当的重要,我学习了很多计算流体的课程,初步接触了数值模

拟方法,极大的提高了c/c++编程的水平,同时锻炼了完成工程项目的能力。后果是我迷恋上了博大精深的计算流体力学,选定了流体模型作为半导体数值模拟的第一方案,结果吃了不少苦头(流体模型的方程非常优美,但是容易发散)。

2004年7月,我正式开始工作。在两年的时间里,半导体数值模拟程序不断的被完善。当年8月,一维的单载流子流体模型程序编制成功,可以对n+ − n − n+二极管进行数值模拟;10月,针对二维MESFET的流体模拟程序编写完成,相关的文章后来发在强激光杂志上[11]。12月,第一个完全采用流体模型的半导体器件模拟软件开始编写,我把它命名为GSS,意思是通用半导体模拟程序。不幸的是,2005年8月,当时软件版本号已达到0.37,可以对很多器件的常规运行状态求解,我准备将它投入实用时才发现,流体模型不适合我们的要求。它的计算量太大,而且数值稳定性较差。流体

模型能够顺利的求解单载流子问题,但是对于双载流子则十分吃力。半导体器件微波效应的研究需

要的是稳定、快速和健壮的算法,于是GSS-0.4x从2005年底开始开发,这是一个采用漂移扩散模型的软件[12]。到了2007年底,GSS版本号达到0.46,它已经成为拥有超过90000行源代码,包含前后处理的全功能模拟软件。GSS的主页http://gss-tcad.sourceforge.net由SourceForge支持,在那里可以见到更多有关GSS的最新动态。

目前,GSS仍然在不断的完善着。GSS-0.37仅仅适合实验室使用,而目前的GSS-0.46只能算是二维经典模型模拟软件(虽然包含了采用Density Gradient算法的量子模型),可以说仅仅与MEDICI相当。为了应对半导体器件的纳米化,一个更加长远的目标已经瞄准了三维量子计算能力。2005年中期,我与北大唐少强老师讨论量子流体与量子Wiggner方程,算是在量子方面作了浅浅的尝试。

本书作为GSS-0.46用户手册,将介绍半导体数值模拟的相关概念,算法及其实现,包含作者在工作中的大量心得体会。重点以目前工业界比较成熟的漂移扩散模型以及能量平衡模型为主,结合

作者自行编写的GSS软件进行分析。因为作者水平非常有限,文章和软件中的错误可能很多,欢迎指出。任何批评或者改进要求请给作者发E-mail到[email protected].

在这里需要感谢张相华同学,他为GSS编写了用于光学计算的电磁有限元求解器;感谢宣春师妹完成了GSS/NGSPICE混合求解器的编写;此外还有一些名字都说不出来,仅有一个E-Mail地址的国内外用户,他们的需求是我不断前进的动力。本书的完成还要感谢韦源同学与张茂玉同学,他们

仔细审阅了本书,发现了很多错误,并提出很多有益的意见。最后感谢我的导师王建国研究员,他

选择了一个好的方向,并且在数年的时间内坚决的支持,同时忍耐着我不停的抱怨。

作者保留本电子书出版的所有权利。读者可以自由传播本书全部和部分章节的内容,但需要注

明出处。

10

第一章 写在前面

给有志于开发行业软件者

也许大家都有和我一样的经历,不知不觉中,国外那些强大的行业软件充斥了我们的学习与科

研之中。我的本科时代有段时间热衷于电路板的制作,Protel和OrCAD是必备的两大软件,它们强大的功能,灵巧的操作让我叹为观止。喜欢上计算流体力学后,Flunt的大名更是如雷灌耳。现在,计算电磁场、力学有限元分析、分子模拟,半导体模拟,每个领域,都可以找到一堆的商用软件,每一

个都那么历史悠久,功能丰富但是昂贵。

不客气的说,国内大部分的学校、科研机构都已经沦为商用软件的奴隶。当盗版泛滥,一份售

价高达5万美金的软件拷贝只要5元光盘费就能搞到的时候,实验室多少年积累下来的自编程序顷刻间灰飞烟灭。所有人都知道商用软件完全占领中国市场的坏处:我们的科研机构失去了创造性,我

们的设计与生产永远跟在别人后面。

很多人都悲观的认为自己开发的东西不可能与国外商用软件相比,认为那是国外数十年积累

的产物。事实上,现在我们完全可以用较少的努力赶上国外数十年的积累,因为我们可以站在巨

人肩膀上。目前流行的商用软件很多是上世纪70年代学校与实验室开发的,那时的编程语言还是老掉牙的Fortran,这些代码只能运行在Unix操作系统下,因为那时还没有PC机。一般到了90年代才进行软件化,为代码配上前后处理界面,高价出售。很多华丽的商用软件,比如Ansys,Flunt内核依然是Fortran语言写成。如果现在开发行业软件,我们可以占据三个巨大的优势。首先,我们可以利用最近的算法研究成果,获得比商用软件更高的效率。其次,软件的开发环境已经完全不同

于40年前,我们有先进的面向对象的语言,我们有动辄数百兆的集成开发环境,生产效率远远超过了用Fortran77甚至Fortran66的前辈。最后,我们有大量的现成软件库可以调用,从前后处理到方程组求解,都有很多优秀的库,这些库可以省下大量的开发时间。可以说,我们完全可以用几年的时

间完成别人几十年的历程。一些商用软件新秀的快速崛起也说明了这一点,凭借着先进的技术,快

速的击败了那些基于老Fortran的对手。

当然,开发行业软件的困难依然是巨大的。对开发者最基本的要求是在该领域有充分的积累,

并且精通程序设计。此外,开发者还必须做好充分的思想准备:开发的过程漫长、痛苦甚至充满了

绝望,开发者需要能够从开发的过程中体验解决困难的乐趣(听起来很变态),开发才能继续下去。

至于开发的收益问题,每一个国内的软件开发者都有这样的梦想:国家致力于打击盗版,每一

个人都能自觉抵制盗版,自己开发的软件,即使还不能与国外同行相比,已经可以凭借价格优势占

据一席之地,而不是被5元钱的盗版扫地出门。当出售软件可以获得利润,维持继续开发的时候,中国的行业软件也将正式崛起。但是从目前来看,盗版还会存在,想出售自己的软件十分的困难。软

件需要用户,需要在使用中改进,而不是在实验室内部孤芳自赏。对此开发者只能各显神通,尽可

能的为自己谋取利益。我选择了自由软件的道路,将别人使用自己的软件看作巨大的成功(精神胜利法),通过开放源码,吸引用户与别的开发者,将软件继续下去。

11

第一部分

半导体物理简介

12

导读

本章将简要介绍半导体器件数值模拟所需要的固体理论知识,目的是让用户不必同时翻阅好

几本书。只是限于本书的性质,大多数性质将只给出结论。进一步的参考建议阅读黄琨先生的固体

物理学,以及半导体物理方面的教材。作者认为一个合格的导体器件模拟软件使用者需要了解的固

体理论有:1、半导体能带理论;2、平衡态电子的Fermi-Dirac统计分布;3、载流子的输运方程。其中,能带理论给出了半导体中有效质量、态密度、带隙等概念的由来,集中体现了半导体材料的属

性;Fermi-Dirac统计分布理论给出了电子在能级上的平衡态分布,在半导体数值模拟中用于确定欧姆边界条件;载流子输运方程则描述了有外电场存在时载流子的运动规律,如果采用Boltzmann输运模型或其简化模型,则称为经典输运理论,如果采用Poisson-Schrodinger方程或其等效模型,则称为量子输运理论。三者结合,才构成完整的半导体理论体系。

13

第二章 半导体能带结构

能带结构是固体物理中相当复杂的内容,本书只能做粗浅的介绍。目前,能带理论有两个模型:

紧束缚模型和近自由电子近似。紧束缚模型建立于原子能级图像的晶体场展宽,相对而言物理图像

更加清晰。近自由电子近似则基于自由电子图像的周期势场微扰,在解释带隙和E ∼ k关系方面比较直观。

第一节 紧束缚模型

紧束缚模型(tight-binding,TB),又称为原子轨道线性组合模型(linear combination of atomic or-bitals, LCAO),正如它的名字一样,这个模型基于这样的物理图象,认为分子(晶体也属于分子的一类)中的电子态与其组成的自由原子态差别不大,分子轨道可以由组成晶体的原子的轨道线性组合

表示。原子轨道组成分子轨道时,轨道数不变。分子轨道的能量可以高于、低于和等于原子轨道,分

别称为反键轨道、成键轨道和非键轨道。在这里需要先提一下分子计算中大量使用的量子力学微扰

理论。由于解析求解Schrodinger方程的困难,稍微复杂一点的分子就无法得到解析解(能够解析求解的最复杂分子是H+2 ,一次电离的氢分子),更不用说含有大量原子的原子晶体,在这种情况下微扰理论得到了广泛应用。微扰处理的本质是先选择一些基态,认为真实态可以由这些基态的线性组合

近似,然后将这些基态的线性组合代入所求问题,确定每个基态的系数,也就是每个基态占据的比

例。如果在分子计算中1,选择组成分子的原子的轨道作为基态,就是上面所说的原子轨道线性组合

模型。

这里,我们通过简单的H2分子来给出一个初步的印象。这里以ψ表示H原子的核外电子波函数,由于两个原子是完全等价的,根据原子轨道线性组合模型,H2分子轨道应该有如下形式:

ϕ+ = C+(ψA + ψB) (2.1)

ϕ− = C−(ψA − ψB) (2.2)

一般称ϕ+为成键态(Bonding),ϕ−为反键态(Antibonding)。对于成键态电子云密集在两个原子核之间,同时受两个原子核的库仑吸引,能量降低。而对于反键态两原子核之间的电子云密度减小,能

量升高了,如图(2.1)。

1在分子结构计算中,大量使用原子轨道线性组合模型。比如著名的Gaussian软件,可以计算包含大约100个原子的分子结构。

14

第二章 半导体能带结构 第一节 紧束缚模型

图 2.1 H2分子轨道与分子轨道能级

现在考虑由n个同种原子组成的晶体。晶体每立方厘米的体积内含有1022 ∼ 1023个原子,所以一

般来说n非常大。当n个原子相距很远,尚未结合成晶体,每个原子的能级都和孤立原子一样,它们都是n度简并的(暂时不计原子能级自身的简并)。当n个原子相互靠近结合成晶体后,每个原子都受到周围原子势场的作用,此时的电子真实轨道将由所有n个原子的轨道的线性组合表示,结果是原子的每一个能级都分裂成n个彼此相距很近的能级,如图(2.2),这n个能级就组成一个能带,电子不再属于某一个原子而在晶体中作共有化运动。分裂的每一个能带都称为允带(允带可以重叠,如

图(2.3)),允带之间因为没有能级被称为禁带。内壳层的电子原来处于低能级,共有化运动很弱,其能级分裂很小,能带很窄,外壳层电子特别是价电子共有化很显著,如同自由运动的电子,常称为

近自由电子,能级分裂较大,能带很宽。

图 2.2 2个、6个及N个原子接近时的原子3s能级分裂

注意每一个能带包含的能级数与孤立原子的能级有关,这里必须考虑原子能级的简并。例

如s能级没有简并,n个原子结合成晶体后,s能级就分裂为n个十分靠近的能级,形成一个能带。原子的p能级时三重简并的,它分裂为3n个十分靠近的能级。实际的晶体由于n是一个十分大的数值,能

15

第一节 紧束缚模型 第二章 半导体能带结构

图 2.3 能带重叠示意

级又靠得很近,所以每一个能带中的能级基本上可视为连续的,称为”准连续”的。必须指出,实际的晶体能带还要更加复杂一些。晶体的能带并不一定与孤立原子的能级一一对应。有些原子的最外

层s与p电子能够组合成杂化能级,以更好的成键。例如第IV族碳、硅等原子都有4个价电子,2个s电子,2个p电子,这种情况下只有两个p电子是为配对的,但是这些原子都能以共价键与周围4个原子结合,形成坚固的晶体。因此,以金刚石为例,电子不是采用碳原子的基态为基础,而是采用如

下sp3杂化组成的新状态为基态:

ϕ1 =12

(ψ2s + ψ2px + ψ2py + ψ2pz) (2.3)

ϕ2 =12

(ψ2s + ψ2px − ψ2py − ψ2pz) (2.4)

ϕ3 =12

(ψ2s − ψ2px + ψ2py − ψ2pz) (2.5)

ϕ4 =12

(ψ2s − ψ2px − ψ2py + ψ2pz) (2.6)

形成杂化轨道需要一定的能量,但是经过杂化后,成键的数目增多,而且由于电子云更加密集在四

面体顶角方向,使成键强度更大,形成共价键的能量下降足以补偿杂化轨道需要的能量。

下面给出绝对零度时电子在这些能带上的填充规则,至于一般温度下的填充规则由下一章

的Fermi-Dirac统计给出。根据泡利不相容原理和能量最低原则,电子将从最低能级往上填充,每个能级可以填充2个自旋不同的电子。能带按电子填充可以分为满带、价带和空带。满带指各能级都被电子填满的能带,满带中电子不参与导电过程。价带是由价电子能级分裂而形成的能带,价带能量

最高,可能被填满,也可不满。空带是与各原子的激发态能级相应的能带,正常情况下没有电子填

入。金属中的价带起导电作用,所以又称之为导带。半导体中,需要将价带电子激发到最低的空带

才能导电,所以称最低的空带为导带。

首先给出金属锂的能级填充示意图。锂共有2个1s电子和1个2s电子,因此,n个原子形成金属晶体后,2n个1s电子恰好填满能量最低的能带,而n个2s电子则将第二能带填至半满,如图(2.4)。根据

16

第二章 半导体能带结构 第一节 紧束缚模型

导电理论,半满的能带能够导电,因此金属锂是电的良导体。

图 2.4 金属锂的能带图及电子填充能级

对于硅原子晶体,前面已经提到晶体中硅最外层4个电子采用sp3杂化成键,原来的4n个sp3轨道

分裂为2n个成键轨道和2n个反键轨道。于是4n个价电子恰好填满成键轨道,反键轨道内没有电子。根据导电理论,全满和全空的能带是不能够导电的,因此如果不存在热激发等因素,硅晶体不能导

电,如图(2.5)。

图 2.5 半导体的能带图及电子填充能级

这里解释一下与H同属于第I族的碱金属们为什么组成金属晶体,而H则只能靠微弱的范德瓦尔斯力组成分子晶体。这主要由于H的第一电离能高达13.6eV,远大于碱金属的4− 5eV。在气态时,碱金属同样形成双原子分子,但是固体状态下碱金属原子的最外层电子容易电离成为在金属晶体中可

以移动的自由电子,从而形成金属晶体。电离所需要的能量可以被电子共有化之后的能量降低所补

偿。而H2分子的电子都被束缚在原子核周围,无法形成共有化电子。当然,理论上H可以通过低温高压条件紧密堆积,让电子脱离原子束缚,在整个晶体中自由运动而形成金属氢。

17

第二节 一维晶体的近自由电子模型 第二章 半导体能带结构

第二节 一维晶体的近自由电子模型

本节讨论近自由电子模型,晶体中的电子介于自由电子与孤立原子的束缚电子之间。孤立原子

的电子在原子核与其他电子的势场中运动,自由电子不受外场作用,而晶体中的电子则是在周期性

排列且固定不动的原子核的势场以及其它大量电子的平均势场中运动。近自由电子模型是单电子近

似的理论,就是把每个电子的运动看成是独立的在一个等效势场中的运动。

近自由电子模型的近字是指晶体中的电子不再束缚于原子,而是可以在整个固体内运动,称为

共有化电子,共有化电子的运动规律与自由电子有很多类似之处,下面先介绍自由电子。

德布罗意最先提出一切微观粒子都具有波粒二象性,自由粒子的波长、频率、动量、能量有如下关系

p = m0v = ~k (2.7)

E =12

p2

m0= ~ν (2.8)

即:具有确定的动量和确定能量的自由粒子,相当于频率为ν和波矢为k的平面波,二者之间的关系如同光子与光波的关系一样。

一维自由粒子的波函数满足定态Schrodinger方程

−~2

2md2

dx2ψ(x) = Eψ(x) (2.9)

它的解就是平面波

ψk(x) = Aeikx (2.10)

Ek =~2k2

2m0(2.11)

对于波矢为k的运动状态,自由电子的能量、动量均有确定的值,因此,波矢k就可以描述自由电子的运动状态,不同的k标志自由电子的不同状态。图(2.6)是自由电子的E ∼ k曲线,是一条抛物线。由于波矢k是连续的,自由电子的能量也是连续谱,从0到无限大的能量值都是允许的。

晶体中的电子是在原子核的势场以及其它大量电子的平均势场V(x)中运动,原则上,它满足

−~2

2md2

dx2ψ(x) + V(x)ψ(x) = Eψ(x) (2.12)

如果能解出这个方程,就可以得到晶体中电子的波函数。但是实际晶体的V(x)非常复杂,因此一般采用赝势来代替V(x)。赝势方法是指用一个人为的势场替代晶格真实势场,从而简化计算。因此,近自由电子模型的正确性完全取决于赝势这个充满人为因素的参数,加上它是单电子模型,在早期的

材料研究中它发挥了极为重要的作用,但是目前已经让位于紧束缚方法。

无论是真实势场或是赝势,V(x)都必须满足晶格周期条件

V(x) = V(x + na) (2.13)

其中,n为整数,a为晶格常数(晶格间距)。

18

第二章 半导体能带结构 第二节 一维晶体的近自由电子模型

图 2.6 自由电子的E ∼ k关系

布洛赫(F.Bloch)证明了满足式(2.12)的波函数一定具有如下形式

ψk(x) = uk(x)eikx (2.14)

其中uk(x)是一个与晶格同周期的周期性函数,即uk(x) = uk(x + na)。一般将具有式(2.14)形式的波函数称为布洛赫波函数。

将布洛赫波函数与自由电子的波函数比较,可见仅仅是用周期性调制的振幅u(x)代替了恒定振幅A。电子依然能够出现在(晶体的)任意位置,这就是近自由电子的由来。对于某个波矢k固定的电子,它在某个晶体原胞内的出现几率| ψ∗k(x)ψk(x) |=| u∗k(x)uk(x) |随位置x是变化的,但是对于每个原胞的相应位置,它的几率分布是一定的。

采用微绕理论可以得到如图(2.7)的一维晶体E ∼ k关系,具体计算可以参考黄昆先生的固体物理学,这里就不给出过程,仅仅解释一下这幅图。

首先,当k =2πn

a时,能量出现了不连续,形成一系列允带与禁带,这个结果与紧束缚理论相同。

注意,此时能量E(k)是k的多值函数,想要确定一个电子的能量,必须指定它属于哪一个能带和它的波矢。其次,同一个能带中的电子态可以用共有化运动波矢表征,但是由于晶体中存在平移对称性,

用于确定电子状态的k不是唯一的。下面证明

k′

= k +2πn

a(2.15)

与k表征同一电子态。式(2.14)可以写成

ψk′ (x) = uk(x)e−i 2πna xei(k+ 2πn

a )x (2.16)

由于uk(x)e−i 2πna x = uk(x + na)e−i 2πn

a (x+na),这表明uk(x)e−i 2πna x仍然是晶格周期函数,所以式(2.16)可以写

ψk′ (x) = uk′ (x)eik′x (2.17)

其中uk′ (x) = uk(x)e−i 2πna x。说明同一能带中,每隔2π/a的k表示的都是同一个电子态。

19

第二节 一维晶体的近自由电子模型 第二章 半导体能带结构

图 2.7 一维晶体的E ∼ k关系

既然在同一能带中k以2π/a为周期重复,能量E(k)也是k的周期函数,有

E(k) = E(k +2πn

a) (2.18)

那么可以只取−π

a∼π

a区间(第一布里渊区)中的k值来描述电子的能量状态,而将其它区域合并到

第一布里渊区,如图(2.7)的简约布里渊区E ∼ k关系。

对于有限长度的一维晶体,还需要考虑一定的边界条件,对于式(2.12)引入周期性边界条件可以使得k只能取下列值

k =nL

2π (2.19)

其中N为晶体中原胞的数目,L = Na是晶体总长。这个结果说明波矢k只能取一系列分立值,并且状态在布里渊区内的分布是均匀的,每个允许的k值占有的线度为2π/L。

推广到三维情况,则

kx =2πnx

Lx(nx = 0,±1,±2 · · ·)

ky =2πny

Ly

(ny = 0,±1,±2 · · ·

)kz =

2πnz

Lz(nz = 0,±1,±2 · · ·)

这时每个k在k空间占有的体积为

(2π)3

Lx · (Ly × Lz)=

(2π)3

V

其中V是晶体体积。因此,在k空间中k值的密度为V/(2π)3。

因为N的数目非常大,因此k也十分的密集,可以认为是准连续的。可以证明每一个能带中有N个k状态,因为每个状态能够容纳自旋相反的2个电子,所以每个能带能够容纳2N个电子。

20

第二章 半导体能带结构 第三节 半导体中单电子的运动

对于真实的三维晶体,布里渊区要复杂得多,比如硅的晶体结构是面心立方晶格,它的第一布

里渊区是个十四面体,如图(2.8)。另外三维情况与一维情况的一个重要区别是不同能带在能量上不

图 2.8 硅的第一布里渊区 图 2.9 硅的能带结构

一定分隔开,而是可以出现能带之间的交叠,注意紧束缚模型也得出了相同的结论。图(2.9)显示了硅的价带与导带,可以清楚地看到硅在Γ点有两个能量不同的价带,价带之上有三个能量交叠的能

带,带隙不在Γ点,而是在ΓX轴上。

值得庆幸的是,半导体的数值模拟能够很大程度上避开如此复杂的能带结构。因为能够引起宏

观电流的电子和空穴都集中在导带底部和价带顶部,所以只要考虑这两个地方的能带结构就可以

了。在引入有效质量的概念之后,价带顶和导带底的能带结构更是可以用简单的有效质量来代替。

第三节 半导体中单电子的运动

2.3.1 半导体中电子的平均速度

在半导体的大量实际问题中,电子运动过程都可以当成准经典粒子处理。例如在输运过程中,

当电子自由程远大于原胞线度,电子就可以看成一个准经典粒子。通过量子力学的计算,准经典粒

子的速度可以写成

v =1~∇kE(k) (2.20)

上式表明,对于晶体中的电子,准经典运动的速度v取决于其所处状态下的E(k) ∼ k关系,只要知道E(k) ∼ k关系,就可以得到它的运动速度,从而建立运动方程。

2.3.2 有效质量

尽管真实晶体的能带十分复杂,但是对于半导体来说,起作用的电子位于价带顶部和导带底部,

因此,只要掌握这些能带极值附近的E(k) ∼ k关系就足够了。

21

第三节 半导体中单电子的运动 第二章 半导体能带结构

用泰勒级数展开可以近似求出极值附近的E(k) ∼ k关系。以一维情况为例,设导带底位于波数k = 0处,将E(k)在k = 0附近按泰勒级数展开,得到

E(k) = E(0) +(dE

dk

)k=0

k +(d2E

dk2

)k=0

k2 + · · · (2.21)

由于k = 0时能量取极小值,因此一阶导数为0,得到

E(k) − E(0) =(d2E

dk2

)k=0

k2 (2.22)

对于给定的半导体,能量的二阶导数应该是一个定值,令

1~2

(d2Edk2

)k=0=

1m∗n

(2.23)

将式(2.23)代入式(2.22),于是得到能带底部的E(k)

E(k) − E(0) =~2k2

2m∗n(2.24)

式(2.24)与式(2.11)自由电子的E(k) ∼ k关系有类似之处,不同的是式(2.11)中的m0为电子惯性质量,

此处的m∗n则为导带底电子的有效质量。因为E(k) > E(0),所以导带底电子的有效质量为正值。

同样假设价带顶也位于k = 0处,在能带顶部附近也可以得到

E(k) − E(0) =(d2E

dk2

)k=0

k2 (2.25)

同样令1~2

(d2Edk2

)k=0=

1m∗n

(2.26)

则价带顶附近E(k)为

E(k) − E(0) =~2k2

2m∗n(2.27)

m∗n称为价带顶底电子的有效质量,因为能带顶部附近E(k) < E(0),所以此处的m∗n为负值。

由式(2.24)与式(2.27)看出,引进有效质量后,只要测出其大小,则能带极值附近的E(k) ∼ k关系就确定了。

以上讨论的都是一维情况,在三维下,由于能带的非对称性,有效质量将成为张量的形式。

2.3.3 外力与电子加速度

实际中,许多半导体器件都在一定的外加电压下工作,半导体内部会产生外加的电场,这时电

子除了受到周期势场作用外,还要受外加电场作用。周期势场的作用已经用有效质量代替了,外加

电场的作用将引起电子速度的变化。

如果有外力F作用在电子上,经过dt时间,它的能量将增加

dE = F · vdt = F ·1~∇kEdt (2.28)

22

第二章 半导体能带结构 第三节 半导体中单电子的运动

按照电子能量E与k的函数关系,k必然会有相应的变化dk。因此电子在dt时间内增加的能量又可以写成:

dE = ∇kE · dk = ∇kE ·dkdt

dt =(~dk

dt

)·(1~∇kE

)dt (2.29)

对比上面两式,立即可得d(~k)

dt= F (2.30)

式(2.30)是具有外力作用时电子运动状态变化的基本公式。如果外场恒定,电子将在k空间作匀速运动。式(2.30)与牛顿定律具有相同的形式,只是用~k取代了经典力学中的动量。因而~k具有等效动量的形式,称为准动量。没有外力时,状态k不改变,因此准动量也不改变。

因为外力作用引起k随时间的变化,从而引起电子速度随时间的变化,即产生加速度a =dvdt。一

维情况下,根据式(2.20)加速度为

a =dvdt=

1~2

d2Edk2 F (2.31)

利用有效质量,上式可以写成

F = m∗a (2.32)

这样,在形式上电子在外力作用下的加速度与力的关系和经典力学是相同的。

本节介绍的是晶体中单电子在外场中的运动。表面上,问题至此已经解决了,如果再考虑到电

子在运动中会受到的各种散射机制的影响,我们已经可以描述半导体中电子的输运问题。但是,半

导体的宏观现象要靠大量的粒子来表征,晶体内庞大的电子数目使得计算几乎不可能进行。蒙特卡

罗方法采用宏粒子模型可以减少需要追踪的粒子数目,但是计算量仍然巨大。所以,接下来我们将

从宏观上重新看待这个问题,并导出基于连续介质模型的Boltzmann输运方程。

23

第三章 平衡态电子的统计分布

第一节 电子的Fermi-Dirac统计分布

从这一章起,不再局限于对单粒子的描述,而是用统计规律描述晶体中的大量电子。根据量子

统计理论,自旋为12的电子遵循Fermi-Dirac统计规律。对于能量为E的一个能级被电子占据的概率为

fFD(E) =1

1 + exp(E − EF

kbT)

(3.1)

fFD(E)称为电子的费米分布函数,它是描写热平衡状态下,电子在允许的能级上如何分布的一个统计分布函数。其中kb是波尔兹曼常数,T是系统热力学温度。

如果给定E ∼ k关系,通过变换,可以得到以动量为自变量的费米分布函数,它在半导体量子计算中广泛用于边界条件的确定。例如在导带底附近,有

E(k) =h2k2

2m∗(3.2)

此时,费米分布函数可以表示为

fFD(k) =4πm∗kbT

h2 ln1 + exp[−1

kbT(

h2k2

8π2m∗− EF)] (3.3)

式(3.1)及(3.3)中的EF称为费米能级,在半导体中,它只与温度、半导体材料类型、掺杂浓度和

系统零点能选取位置有关。EF是一个很重要的参数,一旦给定EF,电子在各能级上的统计分布就完

全确定。EF可以由材料能带被电子占据的能级数等于电子数这一条件确定,见后文。

将半导体中大量电子的集合看为一个热力学系统,量子统计理论证明,费米能级EF就是系统的

化学势µ。由于处于热平衡状态的系统有统一的化学势,因此处于热平衡的电子系统有统一的费米

能级。

由式(3.1),当T = 0K时,

fFD(E) =

1 E < EF

0 E > EF

(3.4)

于是在绝对零度,能量比EF小的能级全部被电子占据,而能量比EF大的能级全部空着。因此绝对零

度下,EF是能级是否被电子占据的一个界限。

24

第三章 平衡态电子的统计分布 第二节 BOLTZMANN分布函数

当T > 0K时,如式(3.5)所示,等于EF的能级被占据的概率是0.5。

fFD(E)

> 1

2 E < EF

= 12 E = EF

< 12 E > EF

(3.5)

图(3.1)给出了不同温度下的费米函数。可以看出,T > 0时费米函数与绝对零度下的费米函数差距仅在EF左右数个kbT范围。

图 3.1 Fermi分布与温度的关系

而能级的能量比EF高5kbT的能级被电子占据的概率< 0.007,概率很小,能级几乎是空的。能级的能量比EF低5kbT的能级被电子占据的概率> 0.993,可见概率很大,量子态上几乎总有电子。

一般可以认为,在温度不很高时,能量大于EF的能级基本上没有电子占据,能量小于EF的能级

基本上被电子占据,电子占据EF的概率在各种温度下总是0.5。通常认为EF标志了电子填充能级的

水平,EF越高,说明有较多能量较高的能级上有电子占据。

注意某个能级上的电子密度要由费米能级EF和态密度g共同决定。在半导体中,由于电子部分填充于导带底部,价带顶则被空穴占据,表示50%填充机率的EF一般位于禁带内,如图(3.2)。由于能带的限制,EF本身并没有电子占据,即EF处的能级态密度为0。有关电子密度的详细计算将在第三节讨论。

第二节 Boltzmann分布函数

由于费米积分除了几个特例外不存在解析解,应用起来十分不便。幸好,在大多数情况下,可

以将费米分布函数简化为Boltzmann分布函数。

当E − EF kbT时,exp(E − EF

kbT) 1,因此

1 + exp(E − EF

kbT) ≈ exp(

E − EF

kbT)

25

第三节 空穴的分布函数 第三章 平衡态电子的统计分布

图 3.2 本征半导体Fermi能级与电子分布

此时费米分布函数可以近似为

fFD(E) ≈ fB(E) = exp(−E − EF

kbT) (3.6)

即经典的Boltzmann分布。注意E − EF kbT时,能态被电子占据的几率很小,而费米分布与Boltzmann分布的主要差别在于前者受Pauli不相容原理的限制。当E − EF kbT时即使容许两个甚至更多的电子都占据同一个电子态,发生这种情况的几率也是很小的,因此Pauli不相容原理对结果影响很小,两种分布函数在结果上就几乎没有区别了。

第三节 空穴的分布函数

为了区别起见,以后用 fn(E)表示电子的分布函数。既然 fn(E)表示能量为E的电子态被占据的几率,那么1 − fn(E)就是该状态不被占据的几率,亦即空穴的分布:

fp(E) = 1 − fn(E) =1

1 + exp(EF − E

kbT)

(3.7)

同样,当EF − E kbT时,上式分母中的1可以略去,得到空穴的Boltzmann分布函数。

fp(E) = exp(−EF − E

kbT) (3.8)

一般情况下,半导体的EF位于禁带内并且距导带底或者价带顶的距离远大于kbT,所以导带中的电子和价带中的空穴常满足Boltzmann分布。通常称为满足Boltzmann分布的电子系统为非简并系统,相应的半导体成为非简并半导体。

但是在重掺杂或者低温情况下,EF可能接近甚至进入导带或者价带,此时就必须回到费

米分布。在常温下,对于硅来说掺杂必须达到1019cm−3才要考虑费米分布,但是GaAs,掺杂达到1017cm−3就必须考虑费米分布,参考图(3.5)与(3.6)。

26

第三章 平衡态电子的统计分布 第四节 载流子浓度的确定

第四节 载流子浓度的确定

现在讨论半导体热平衡条件下载流子的浓度,已知载流子占据量子态的几率情况下,还需要知

道每单位间隔内的量子态数目,即态密度g(E)。如前所述,在k空间电子状态的分布是均匀的,状态密度为2V/(2π)3。这里考虑了自旋相反的两个状态。根据具体的E ∼ k关系,就可由k空间的状态密度得到能带中的态密度。因为半导体中的载流子绝大部分处于导带底部和价带顶部,因此,实际上只

需考虑这部分的E ∼ k关系和态密度就行了。设导带底在k = 0处,并具有抛物线性E ∼ k关系:

E = Ec +~2k2

2mn(3.9)

假设球形等能面,能量在E ∼ E + dE(k ∼ k + dk)之间的状态数为

dz =2V

(2π)3 × 4πk2dk (3.10)

代入(3.9),将k用E表示,得到

dz =V (2mn)2/3

2π2~3 (E − Ec)1/2 dE (3.11)

这样,可得导带底附近的态密度为:

gc (E) =dzdE=

V (2mn)2/3

2π2~3 (E − Ec)1/2 (3.12)

同样,可得价带顶附近的态密度:

gv (E) =V

(2mp

)2/3

2π2~3 (Ev − E)1/2 (3.13)

这里虽然假设了球形等能面,对于其它的情况,通过引入态密度有效质量,依然有式(3.12)及式(3.13)成立。

得到态密度之后,这里认为能带中能级是连续分布的,载流子的密度可以写成积分的形式。即:

n0 =1V

+∞∫Ec

gc(E) fn(E) dE (3.14)

p0 =1V

Ev∫−∞

gv(E) fp(E) dE (3.15)

3.4.1 非简并半导体载流子浓度对费米能级的依赖关系

对于非简并半导体采用Boltzmann分布,将态密度(3.12)与分布函数(3.6)代入式(3.14),得到

n0 =

+∞∫Ec

(2m∗n)2/3

2π2~3 (E − Ec)1/2 exp(−E − EF

kbT) dE (3.16)

27

第四节 载流子浓度的确定 第三章 平衡态电子的统计分布

上面的积分存在解析解,采用变量替代可以得到

n0 = 2(m∗nkbT

2π~2

)3/2exp(−

Ec − EF

kbT) = Nc exp(−

Ec − EF

kbT) (3.17)

其中

Nc ≡ 2(m∗nkbT

2π~2

)3/2(3.18)

称为导带底等效态密度。

同样可求出价带中空穴浓度的表达式

p0 =

Ev∫−∞

(2m∗p)2/3

2π2~3 (Ev − E)1/2 exp(−EF − E

kbT) dE (3.19)

得到

p0 = 2(m∗pkbT

2π~2

)3/2exp(−

EF − Ev

kbT) = Nv exp(−

EF − Ev

kbT) (3.20)

其中

Nv ≡ 2(m∗pkbT

2π~2

)3/2(3.21)

称为价带顶等效态密度。

式(3.17)与式(3.20)表明了载流子浓度n0,p0与EF的关系。由于EF除了与温度有关外,还与半导

体中杂质能级位置及杂质浓度密切相关,因此同一种半导体材料由于所含的杂质种类、浓度不同,

在相同温度下电子和空穴浓度可以很不相同。但是从式(3.17)与式(3.20)得到的n0与p0的乘积

n0 p0 = NcNv exp(−Ec − Ev

kbT) = NcNv exp(−

Eg

kbT) (3.22)

并不包含EF,因此与掺杂无关1,材料一定时它只是温度的函数。当温度不变时n0 p0的乘积保持不

变,具体数值由材料的能带参数决定,因而导带电子浓度和价带空穴浓度是相互制约的。

3.4.2 简并半导体载流子浓度对费米能级的依赖关系

对于简并半导体,采用费米分布,同样可以得到电子、空穴浓度与EF的关系

n0 = NcF1/2(ηn) (3.23)

p0 = NvF1/2(ηp) (3.24)

其中

ηn =EF − Ec

kbT

ηp =Ev − EF

kbT1没有考虑掺杂导致的禁带变窄效应

28

第三章 平衡态电子的统计分布 第四节 载流子浓度的确定

F1/2(ηs)为1/2阶费米积分:

F1/2(ηs) =2√π

+∞∫0

η1/2

1 + exp(η − ηs)dη (3.25)

上述费米积分没有解析解,一般采用数值方法计算。在精度要求高的情况下可以使用chebyshev多项式插值,GSS软件使用一个简单的方案:

F1/2(η) =2√π

3√πa−3/8 + 4 exp(−η)

a = η4 + 33.6η(1 − 0.68 exp(−0.17(η + 1)2)) + 50

在η从−∞到+∞的变化中,上述解析式得到的结果与精确值之间的相对误差不超过0.4%。这样做的另一个好处是可以得到F

1/2的解析表达式,对于后面的牛顿迭代法求EF十分有利。

至此,我们已经得到了n0、p0与EF的关系,由于两个方程中有三个未知变量,需要补充电中性

条件,构成完整的方程组。

3.4.3 本征半导体的载流子浓度

对于本征情况,通常情况下可以使用Boltzmann分布,电中性条件为n0 = p0,利用式(3.17) 与式(3.20),可以解出本征半导体的费米能级为:

Ei = EF =12

(Ec + Ev) +12

kbT lnNv

Nc(3.26)

上式中第一项在禁带中间位置,第二项对于常见的Ge、Si、GaAs材料为kbT数量级,在常温下远小于

第一项。也就是说Ei近似在禁带中央位置,满足使用Boltzmann分布的条件。定义ψintrinsic = −1q

Ei为

本征费米电势,这个量在半导体模拟中广泛用于电势的参考基准。

将式(3.26)代入式(3.17)或者式(3.20),得到本证载流子浓度ni为

ni = n0 = p0 = (NcNv)1/2 exp(−Eg

2kbT) (3.27)

与式(3.22)相比,得到半导体载流子浓度乘积的另一种表示:

n0 p0 = n2i (3.28)

即任何非简并半导体的载流子浓度乘积,等于对应温度下本征载流子浓度的平方,而与杂质含量无

关。利用本征载流子浓度ni、本征费米能级Ei可以将n0、p0的表达式(3.17)及(3.20)变换为

n0 = ni exp(EF − Ei

kbT) (3.29)

p0 = ni exp(Ei − EF

kbT) (3.30)

有时这两个式子应用更为方便。

29

第四节 载流子浓度的确定 第三章 平衡态电子的统计分布

3.4.4 禁带变窄效应与有效本征载流子浓度

本节中仅讨论单重电离的浅能级杂质情况。注入半导体的N型杂质,又称为施主(Donor),一般施主能级ED 接近于Ec,施主电子很容易跃迁至导带,使导带电子密度增加,导电率提高,同时费米

能级向导带移动。如图(3.3)。

注入半导体的P型杂质,则称为受主(Acceptor),一般受主能级EA 接近于Ev,由于受主缺少电

子,价带电子很容易跃迁至受主能级,而在价带留下空穴,使价带空穴密度增加,导电率提高,同时

费米能级向价带移动。如图(3.4)。

图 3.3 施主能级 图 3.4 受主能级

在大部分半导体器件中,总含有掺杂浓度高于1018cm−3的区域,这些高掺杂区域对于决定器件

的性能往往起着重要作用。在高掺杂区的载流子浓度,一方面必须采用费米分布描述,另一方面必

须考虑由于高掺杂引起的能带变化带来的影响。

高掺杂时,有下述两方面因素影响电子和空穴的状态密度。1.载流子之间,载流子和离化杂质之间的相互作用;2. 杂质的分布不均匀以及杂质的电子波函数的交迭引起的能带尾和杂质能带。这两个方面的因素综合起来,将导致禁带宽度减小。

如果同时考虑到费米分布函数和禁带变窄效应,载流子浓度的表达式是比较复杂的。为了简化

问题,可以引入有效本征载流子浓度的概念。实践证明,这样做相对简单并且可以得到较为准确的

结果。

设高掺杂下,价带顶为Ev,e f f,导带底为Ec,e f f,载流子浓度可表示为:

n = NcF1/2

(EF − Ec,e f f

kbT

)p = NvF1/2

(Ev,e f f − EF

kbT

) (3.31)

和定义本征载流子浓度类似,定义有效本征载流子浓度为:

n2ie = n2

i β exp(∆Eg

kbT

)(3.32)

其中∆Eg是禁带宽度的变化量,β是反应简并程度的因子

β = F1/2

(EF − Ec,e f f

kbT

)/ exp

(EF − Ec,e f f

kbT

)30

第三章 平衡态电子的统计分布 第四节 载流子浓度的确定

此时,式(3.29)与式(3.30)成为

n0 = nie exp(EF − Ei

kbT) (3.33)

p0 = nie exp(Ei − EF

kbT) (3.34)

式(3.32)需要计算费米积分,实际使用十分不便,一般采用经验公式进行拟合。

引进有效本征载流子浓度之后,在相当宽的掺杂浓度范围内,载流子浓度仍旧可以用Boltzmann分布来表示。对于总掺杂浓度小于8 × 1018cm−3而杂质补偿程度小于10%的情况,采用有效本征载流子浓度方法具有较好的效果,其误差小于10%。对于更高掺杂和高补偿的材料,其效果较差。

3.4.5 杂质半导体的载流子浓度

根据上一节的结果,对于掺杂浓度不太高的情况,使用有效本征载流子浓度的方法配

合Boltzmann分布就可以获得较好的效果,否则要回到费米分布。

由于半导体仿真考虑的温度一般在300K左右且掺杂浓度不太高,可以认为杂质完全电离,电中性条件比较简单:

n0 + NA = p0 + ND (3.35)

其中,NA,ND分别为受主与施主杂质浓度。联合式(3.33)与式(3.34),可以得到

n0 =(ND − NA) +

√(ND − NA)2 + 4n2

ie

2(3.36)

p0 =−(ND − NA) +

√(ND − NA)2 + 4n2

ie

2(3.37)

EF = Ei + kbT ln( n0

nie

)= Ei − kbT ln

( p0

nie

)(3.38)

上面三式可以用来计算平衡态均匀无限大的半导体内部属性。此外,在半导体与金属的欧姆接

触处,我们认为半导体保持平衡状态,上面的三个式子用于计算该处的电子、空穴浓度与静电势,

从而确定该处的边界条件。

在掺杂很高或者温度很低的情况下,必须使用简并态的费米分布,同时为了得到更加精确的结

果,需要考虑杂质的不完全电离。此时有效施主浓度与有效受主浓度分别为

N+D =ND

1 + gD exp(EF − ED

kbT)

(3.39)

N+A =NA

1 + gA exp(EA − EF

kbT)

(3.40)

其中gD,gA分别为施主、受主能级的简并度,对于Ge、Si或者GaAs,gD = 2,gA = 4。ED、EA分别为

施主、受主杂质能级。

31

第四节 载流子浓度的确定 第三章 平衡态电子的统计分布

此时,电中性条件变为

n0 + N+A = p0 + N+D (3.41)

确定EF、n0与p0需要联合式(3.31),此时不存在解析解,只能用牛顿迭代法得到数值结果。具体的计算过程可见欧姆接触电极,第117页。

最后,实验测得的硅、砷化镓材料费米能级与温度、掺杂的关系如图(3.5)与(3.6)。

图 3.5 硅费米能级与掺杂浓度曲线 图 3.6 砷化镓费米能级与掺杂浓度曲线

32

第四章 非平衡态载流子

第一节 准费米能级

在上一章中,讨论的问题都假定了热平衡情况,这种处于热平衡状态下的载流子浓度,称为平

衡载流子浓度。如果是非简并半导体,电子、空穴的乘积满足1

n0 p0 = NcNv exp(−

Eg

kbT

)= n2

i (4.1)

注意热平衡并不是绝对禁止的状态,半导体中的电子总在不断的运动,只不过热平衡下从价带跃迁

到导带的电子等于从导带跃迁回价带的电子,保持了载流子产生与复合的动态平衡。

然而,半导体的热平衡状态是有条件的,如果对半导体施加外界作用,破坏了热平衡条件,就

迫使它处于偏离热平衡的状态,称为非平衡状态。此时式(4.1)不再成立。比如用光辐射半导体,此时载流子的产生大于复合,比平衡状态多出来的载流子称为非平衡载流子或者过剩载流子。一旦光

照停止,非平衡载流子不能一直维持,按照半衰期为大约微秒的指数衰减规律迅速衰减到零,这个

半衰期称为非平衡载流子寿命。对于不同的半导体材料,不同的材料制备条件,过剩载流子的寿命

可以在很大范围内变化,对于硅,大约在几十微秒,对于砷化镓,则只有几个纳秒。

半导体中的电子系统处于平衡状态时,整个半导体中有统一的费米能级,电子和空穴都用它来

描写,在非简并下见式(3.17)与式(3.20),简并条件下见式(3.23)与式(3.24)。正因为存在统一的费米能级EF,热平衡状态下,半导体中的电子和空穴浓度的乘积必定满足式(4.1)。因此,存在统一的费米能级与热平衡状态等价。

当外界的影响破坏了热平衡,使半导体处于非平衡状态时,就不存在统一的费米能级。然而,

在一般条件下,由于半导体过剩载流子寿命在10−8 ∼ 10−3秒范围,而载流子与晶格进行能量交换的

碰撞所决定的驰豫时间(为与动量驰豫时间相区别此称为能量驰豫时间)一般在10−10秒以下,因此,

过剩载流子从产生到复合期间将与晶格发生多次碰撞,并充分交换能量。如果晶格热容较大,就可

以认为导带电子与晶格或者价带空穴与晶格仍相互独立的处于热平衡状态,且具有与晶格相同的温

度2。这种与热平衡相近的状态称为准热平衡态。当然,此时在导带电子系统和价带空穴系统之间不

存在热平衡,因而也不存在统一的费米能级。但是在准热平衡下,可以认为导带电子系统本身和价

带空穴系统本身,各自仍符合Boltzmann分布或者费米分布,各自有各自的费米能级,相应的称为电子费米能级EFn与空穴费米能级EFp。此外,此时的准费米能级是局域量,在半导体不同的区域,过

剩载流子浓度不同,准费米能级也不相同。

1简单起见,用本征载流子浓度表示。实现中全部使用有效本征载流子浓度。2仅适用于漂移-扩散模型。在流体模型中,电子、空穴温度不再等于晶格温度,允许热载流子的存在。

33

第二节 载流子的复合与产生 第四章 非平衡态载流子

引入准费米能级后,非平衡状态下的载流子浓度也可以用与平衡状态载流子浓度类似的公式表

达,只要载流子浓度不是很高,以致EFn与EFp进入导带或价带,就可以使用Boltzmann分布:

n = Nc exp(−

Ec − EFn

kbT

)= n0 exp

(EFn − EF

kbT

)= ni exp

(EFn − Ei

kbT

)(4.2)

p = Nv exp(−

EFp − Ev

kbT

)= p0 exp

(EF − EFp

kbT

)= ni exp

(Ei − EFp

kbT

)(4.3)

知道载流子浓度,就可以由上式确定准费米能级EFn与EFp的位置。

EFn = Ec + kbT lnn

Nc(4.4)

EFp = Ev − kbT lnp

Nv(4.5)

此时可以确定电子浓度与空穴浓度的乘积为:

np = n0 p0 exp(EFn − EFp

kbT

)= n2

i exp(EFn − EFp

kbT

)(4.6)

由此可见EFn与EFp偏离的大小直接反映np与n0 p0的差别,亦即反映出半导体偏离热平衡态的程度。

两者相差越大,则偏离热平衡态的程度越大;二者重合,形成统一的费米能级,则半导体处于热平

衡状态。

第二节 载流子的复合与产生

由于半导体内部的相互作用,使得半导体在平衡态总有一定数目的电子和空穴,并唯一的

由Fermi能级的位置所决定。但是,平衡态并不意味着电子和空穴在能级间没有跃迁。如前所述,从微观角度讲,价带电子不断跃迁到导带产生电子-空穴对;同时,导带电子又不断跃回价带与空穴复合而消失。平衡态指的是半导体内部不同能带之间的跃迁达到动态平衡,跃迁引起的产生、复合不

会引起系统的宏观效应。然而,一旦半导体由于外界作用使载流子不等于平衡浓度,额外的产生、

复合效应就会在宏观现象中体现出来。

半导体中的载流子复合可以有许多途径,但主要分两大类:带间电子―空穴直接复合和通过禁

带中复合中心能级进行的复合。前者为运动着的电子和空穴相遇,电子由导带某一状态跃迁到价带

空穴所占据的一个状态,同时以一定形式(如光子或声子)释放出能量。这种复合称为带间直接复合,如图(4.1)(a)所示;也有可能是两个电子(两个空穴)与一个空穴(一个电子)相通,其中一个电子与一个空穴复合而将能量交给另一个电子(空穴)。这种过程称为俄歇(Auger)过程,如图(4.2)(b)所示,这种复合称为带间俄歇复合。另一类是载流子运动经过某一缺陷或杂质中心时被其俘获,然后这一中

心再俘获另一相反型号的载流子,从而完成一对电子―空穴的复合,同时以一定形式释放出多余

的能量。这类复合称为通过复合中心的复合或间接复合。这类缺陷或杂质中心称为复合中心。俘获

载流子时释放的能量可以以光子或声子的形式,如图(4.1)(a)所示,也可以采取俄歇过程的形式,如图(4.2)(a)所示。

34

第四章 非平衡态载流子 第二节 载流子的复合与产生

图 4.1 直接复合与杂质中心复合 图 4.2 俄歇复合

4.2.1 带间直接复合

对于带间直接复合可以假定复合率R正比于载流子浓度n及p即

R = rnp (4.7)

其中r称为复合系数,它与n和p无关。因为热平衡时有

G0 = R0 = rn0 p0 (4.8)

则过剩载流子的净复合率为:

U = R −G0 = r(np − n0 p0) (4.9)

设非平衡载流子n = n0 + ∆n,p = p0 + ∆p并且∆n = ∆p,得到

U = r(n0 + p0)∆p + r(∆p)2 (4.10)

如果只存在带间直接复合,可以得到过剩载流子寿命为:

τ =∆pU=

1r(n0 + p0 + ∆p)

(4.11)

载流子寿命τ的大小,首先取决于复合概率r。根据本征光吸收的数据,结合理论计算可以求出r的值。由理论计算得到室温时本征硅的r = 10−11cm2/s和τ = 3.5s。然而,实际硅材料的载流子寿命比上述数据要低得多,最大寿命值不过是几毫秒左右。这个事实说明,对于硅,寿命主要不是由

直接复合过程所决定,一定有另外的复合机构起着主要作用,决定着载流子寿命。这就是下面要讨

论的通过复合中心的复合。

35

第二节 载流子的复合与产生 第四章 非平衡态载流子

4.2.2 带间俄歇复合

与直接复合不同,带间俄歇复合过程是一个三粒子过程。因此,复合率R将不是与np成正比,而是与n2 p或np2成正比。对于两个电子和一个空穴的过程

Ran = rann2 p (4.12)

对于两个空穴和一个电子的过程

Rap = rap p2n (4.13)

式中ran和rap称为俄歇复合系数。

与俄歇复合相反的电子―空穴对的产生过程是碰撞电离。即一个能量足够高的电子(或空穴)在运动过程中与价带中的电子相碰撞,使该电子激发到导带产生一个电子―空穴对,同时原电子跃迁

到导带底(或空穴跃迁到价带顶)。这种碰撞电离的发生几率应正比于高能电子或空穴的浓度,在非简并情形下,则正比于总浓度n或p,即此时的产生率为:

Gan = gann (4.14)

Gap = gap p (4.15)

热平衡时,应该有Ran0 = Gan0,Rap0 = Gap0 由此得

gan = rann2i (4.16)

gap = rapn2i (4.17)

UAuger = ran(pn2 − nn2i ) + rap(np2 − pn2

i ) (4.18)

假设非平衡载流子n = n0 + ∆n,p = p0 + ∆p并且∆n = ∆p,得到载流子寿命

τn = τp =1

(n0 + p0 + ∆p)(rann + ran p)(4.19)

由于带间俄歇复合是个三体问题,它发生的概率在载流子浓度不很高的情况下很小。一般而

言,带间俄歇复合在窄禁带半导体及高温情况下才起主要作用。

4.2.3 通过复合中心的复合

半导体中由杂质或缺陷引入的一些深能级中心,虽然在常温下对电导的影响常不明显,但它们

的存在有可能大大促进载流子的复合。通常这类杂质和缺陷中心是有效的复合中心。

复合中心对载流子的作用分为四个过程:俘获电子过程,俘获空穴过程,激发电子(电子由复合中心能级Et热激发到导带)过程,激发空穴(空穴由Et热激发到价带)过程。显然,上述四种过程是同时存在的。不过,只有当复合中心先后俘获电子和空穴,才完成一对电于―空穴的复合。肖克

莱(Shockley)、瑞德(Read)和霍尔(Hall),最先讨论了这种情况,他们的理论称为SRH复合理论。

36

第四章 非平衡态载流子 第二节 载流子的复合与产生

令Nr为复合中心浓度,nr为俘获了电子的复合中心浓度,pr = Nr − nr,为未俘获电子的复合中

心浓度。则:

Rn = rnn(Nr − nr) (4.20)

Rp = rp pnr (4.21)

Gn = ennr (4.22)

Gp = ep(Nr − nr) (4.23)

其中rn和rp分别称为复合中心对电子和空穴的俘获系数,en和ep分别称为电子和空穴的产生系

数。

显然,在热平衡时应有Rn0 = Gn0和Rp0 = Gp0。由此即可推导出 en = rnnl

ep = rp pl(4.24)

其中,

nl = Nc exp(−

Ec − Et

kbT

)= ni exp

(Et − Ei

kbT

)(4.25)

pl = Nv exp(−

Et − Ev

kbT

)= ni exp

(Ei − Et

kbT

)(4.26)

复合中心对电子的净俘获率和对空穴的净俘获率为

Un = rnn(Nr − nr) − ennr (4.27)

Up = rp pnr − ep pr (4.28)

在稳态时由U = Un = Up可得

nr = Nrrnnl + rp pl

rn(n + nl) + rp(p + pl)(4.29)

将上式代入Un或Up得

U =(pn − n2

i )τp(n + nl) + τn(p + pl)

(4.30)

其中

τn =1

rnNr(4.31)

τp =1

rpNr(4.32)

复合率U还可以写成

U =pn − n2

i

τp

[n + ni exp

(Et − Ei

kbT

)]+ τn

[p + ni exp

(−

Et − Ei

kbT

)] (4.33)

在上式中,当Et ∼ Ei时,U趋向极大。因此,位于禁带中央附近的深能级是最有效的复合中心。例如Cu、Fe、Au等杂质在Si中形成深能级,它们是有效的复合中心。

37

第二节 载流子的复合与产生 第四章 非平衡态载流子

4.2.4 载流子的碰撞电离

当电场很强,电子与空穴受到电场的加速,可能具有很大的动能。能量大于3/2Eg的电子与空

穴,它们与半导体的晶格原子发生碰撞时,能把价键上的电子碰撞出来,成为导电电子,同时产生

一个空穴。从能带观点来看,就是高能量的电子或空穴把满带中电子激发到导带,产生了电子―空

穴对,如图(4.3)所示。碰撞产生的电子和空穴在强电场作用下,向相反的方向运动,还会继续发生碰撞,产生下一代的电子-空穴对。如此继续下去,载流子就大量增加,这种繁殖载流子的方式称为载流子的倍增效应。由于倍增效应,单位时间内产生大量载流子,电流迅速增大,从而发生击穿,这

就是雪崩击穿的机制,如图(4.4)。雪崩击穿多出现在反向偏置的pn结,MOS管在大电压作用下也会出现源漏贯穿现象。

图 4.3 载流子的碰撞电离 图 4.4 二极管的雪崩机制

发生雪崩击穿除了需要强电场,对强场区的厚度也有一定要求。因为载流子动能的增加需要一

个加速区间,如果强场区间很小,粒子没有加速到碰撞电离所需要的能量就已经离开了,雪崩击穿

也不能发生。

4.2.5 载流子的带间隧道跃迁

对于二级管而言,如果pn结两侧掺杂浓度不很高且没有突变,反向击穿时载流子的产生以碰撞电离为主。但是对于重掺杂二极管,外加反向电场强度小于碰撞电离所需要的场强时,就可能发生

由载流子带间跃迁引起的击穿。

在较高反向偏压作用下,pn结p区价带顶附近电子的能量可能超过n区导带底电子的能量,如图(4.5)所示。这使得p区价带中的电子可以借助量子力学中的隧道效应穿过禁带而直接到达n区导带,跃迁在价带产生一个空穴的同时在导带产生一个电子。在反向电压增大到VB时,随着隧道穿透

几率的增大,这种隧道穿透电子达到相当大的数量,从而构成很大的反向电流,使pn结发生击穿。因为最初是齐纳(Zener)提出来解释电介质击穿现象的,故又称齐纳击穿。

根据量子力学原理,能量为E的电子穿透宽度为W的势垒的几率为

p = exp[−

2~

∫ W

0

√2me (U − E)dx

](4.34)

38

第四章 非平衡态载流子 第二节 载流子的复合与产生

图 4.5 齐纳二极管隧道跃迁过程

将图(4.5)中的势垒近似为高为Eg,宽为W的三角形,则势垒内部电场F为恒定值,且有U = qFx,先假设电子初始能量为零,计算得到的穿越几率为

p = exp

−4√

2me

3~E2/3

g

qF

(4.35)

这个结果说明了隧道穿透几率与势垒区中场强紧密相关。在考虑电子的初始动能也应该是电场的函

数之后,得到的表达式见[13],这也是GSS内置的隧道跃迁模型参数。

一般而言,隧道击穿发生在两边都是重掺杂,而且过渡区很窄的pn结,其击穿电压VB < 4Eg/q。例如专门的齐纳二极管,就是利用隧道击穿后电压基本不随通过电流大小而变化的原理制成的,广

泛用于稳压作用。NMOS管的源极附近,当n+型的源区与衬底掺杂构成突变结,大电压情况下也有可能出现隧道跃迁现象。

与雪崩击穿不同,隧道击穿不是在某个电压VB突然发生的。随着电场强度的增加,隧道跃迁几

率不断增大,器件的电流也是逐渐加大的,因而隧道击穿的特性是“软”击穿。

39

第五章 半导体输运方程的数学描述

半导体输运方程从简单到复杂有很多模型,如图(5.1),本章只讨论经典模型。下面将首先介绍经典Boltzmann输运模型,其他的经典模型都是它的矩方程简化。接着给出两个使用较多的流体模型和漂移扩散模型,请注意为了得到这两个简化模型所需要的条件,这些条件简化了Boltzmann输运方程的同时也限制了流体模型和漂移扩散模型的适用范围。

图 5.1 半导体模型层级图

40

第五章 半导体输运方程的数学描述 第一节 BOLTZMANN输运方程

第一节 Boltzmann输运方程

当无外场作用且温度均匀时,半导体处于热平衡状态。根据费米分布,能级E(k)被电子占据的几率为

f0 =1

1 + exp[E(k) − EF

kbT

] (5.1)

对于非简并半导体,可以用Boltzmann分布

f0 = exp[−

E(k) − EF

kbT

](5.2)

当有外加电场或者有温度梯度存在时,系统处于非平衡态,电子分布函数就发生改变。

以 f (k, r, t)表示处于非平衡态时的分布函数,定义波矢在k ∼ k + dk之间、位矢在r ∼ r + dr之间的相空间体积元dkdr中t时刻电子数为

dN(k, r, t) = 2 f (k, r, t)dkdr (5.3)

系数2是由于每个能级能容纳2个电子。下面求 f (k, r, t)满足的方程。

经过dt时间,同一体积元在t + dt时刻电子数变为

dN(k, r, t + dt) = 2 f (k, r, t + dt)dkdr (5.4)

如果dt很小,上式用泰勒级数展开,得到t + dt时刻,体积元dkdr中的电子数

dN(k, r, t + dt) = 2[f (k, r, t) +

∂ f∂t

dt]dkdr (5.5)

显然,体积元dkdr中电子增长率为2∂ f∂t

dkdr (5.6)

因此,电子数的变化主要是由于分布函数随时间的变化引起的。分布函数随时间变化的原因有

漂移变化以及散射作用。

5.1.1 漂移变化

由于外场作用,改变了电子的波矢k和位矢r,使得在k,r处的分布发生改变。改变是连续的,称为漂移变化,用

(∂ f∂t

)d表示。

由于漂移运动,在t + dt时刻,在r处的电子是由r − vdt处运动而来的;波矢为k的电子是由k − (dk/dt)dt处运动而来的,因此,单位时间内体积元dkdr中电子数的增加为

2(∂ f∂t

)ddkdr = 2

[f (k −

dkdt

dt, r − vdt, t) − f (k, r, t)]dkdr/dt

= −2(dkdt· ∇k f + v · ∇r f )dkdr

(5.7)

式中∇r f一项是由温度梯度引起的,因为分布函数是温度的函数,由于温度梯度的存在使得 f随r变化。

41

第二节 电磁场方程及其化简 第五章 半导体输运方程的数学描述

5.1.2 散射作用

电子在运动过程中会不断遭到散射,使波矢k产生突变,引起分布函数的变化。由于外场的作用使分布不断偏离平衡分布,而散射的作用却使电子趋于恢复平衡分布 f。事实上仅存在外场作用是不会存在载流子稳定分布的,正是不断地散射才使外场的作用不会无限增加,结果才可以使载流子

达到一个稳定分布。散射引起的分布函数变化用(∂ f∂t

)s表示。

由于半导体中存在多种散射机制,整个散射过程非常复杂,一般只能用蒙卡方法计算,在一般

的模型中均采用弛豫时间近似。假定散射项可以写成如下形式(∂ f∂t

)s= −

f − f0τ(k)

(5.8)

其中,f0为平衡时的费米分布,τ(k)为弛豫时间。它表明如果外场撤销,由于散射作用,可以使分布函数逐渐按指数规律恢复到平衡时的分布函数 f0。

弛豫时间τ(k)是相当重要的参数 [14],它可以由实验得出,也可以通过量子散射理论得到。后者的计算量非常巨大,在Cray这样的超级计算机上也需要数月之久。

5.1.3 完整的Boltzmann输运方程

至此,完整的Boltzmann输运方程如下

∂ f∂t= −

dkdt· ∇k f − v · ∇r f −

f − f0τ(k)

(5.9)

由式(2.30),dkdt=

F~

(5.10)

为了描述半导体中的电子输运规律,需要得到外力F的表达式。

第二节 电磁场方程及其化简

由于载流子是带电荷的,输运方程需要与电磁场方程耦合求解。作用在电子上的外力由洛仑兹

方程给出:

F = e(E + v × B) (5.11)

一般情况下,电磁场需要用Maxwell方程组来描述,但是在半导体中可以得到一些简化。这里使用与Maxwell方程组等价的达朗贝尔方程来讨论。完整的达朗贝尔方程:

∇2A −1c2

∂2A∂t2 = −µJ (5.12)

∇2ψ −

1c2

∂2ψ

∂t2 = −ρ

ε(5.13)

∇ · A +1c2

∂ψ

∂t= 0 (5.14)

42

第五章 半导体输运方程的数学描述 第三节 漂移扩散模型方程

式中,A和ψ分别表示矢势和标势,J和ρ分别表示电荷密度和电流密度,c为当地光速,ε和µ分别是介电常数与导磁率。于是有

F = e(−∇ψ −∂A∂t+ v × ∇ × A) (5.15)

引入特征长度L和特征时间τ,由于半导体中载流子的特征速率v一般在105m · s−1,因此

v =Lτ c (5.16)

将导数用相应的特征量表示,得到:

AL2 −

1c2

Aτ2 = −µJ (5.17)

ψ

L2 −1c2

ψ

τ2 = −ρ

ε(5.18)

AL+

1c2

ψ

τ= 0 (5.19)

从式(5.19)可以得出

A = −L

c2τψ (5.20)

将其代入式(5.15),得到:

F = e(ψ

L+

L2

c2τ2

ψ

L−

vLc2τ

ψ

L) (5.21)

式(5.21)的后两项与第一项量级相差(vc

)2,因此载流子受力只需保留至(5.22)即可。考察式(5.18)同样

可以得出,ψ只需满足Poisson方程(5.23)。

F = −e∇ψ (5.22)

∇2ψ = −

ρ

ε(5.23)

上面考虑的是晶体的内建场,如果考虑有电磁干扰的情况,假设入射电磁波能流密度100 W ·cm−2 ,这对于电磁波来说是一个相当大的值,对应的电场强度为E = 1.94 × 104 V ·m−1。但是1 µm沟道的晶体管内部电磁波沉积的功率只有10−6 W ,同时晶体管内部电场在5 V工作电压下就可达到E = 5× 106 V ·m−1。因此,计算半导体器件的响应时可以忽略外加电场与半导体内建电场的耦合。

外加电磁场的干扰主要通过PCB板上的导线以脉冲电流的形式耦合进入半导体器件内部。这是因为即使频率在GHz左右的电磁波,波长也在厘米量级。因此只有微米量级尺寸的半导体器件无论作为接收还是发射天线效率都太低了。

第三节 漂移扩散模型方程

漂移扩散模型是波尔兹曼方程的一个特例,这里将从波尔兹曼方程导出电子的漂移扩散方程。

这样有助于了解经典输运方程的适用条件和使用范围。

43

第三节 漂移扩散模型方程 第五章 半导体输运方程的数学描述

在仅仅由于外部因素,例如外场和温度等引起粒子系统分布函数发生变化时,下面的关系成

立:∂ f∂t −

F~· ∇k f − v · ∇r f (5.24)

于是波尔兹曼方程(5.9)被简化为:

F~· ∇k f + v · ∇r f = −

f − f0τ

(5.25)

对于分布函数偏离平衡态分布不大的弱场情形,有∇ f ≈ ∇ f0,∇k f ≈ ∇k f0,可得

−f − f0τ=

F~· ∇k f0 + v · ∇r f0 (5.26)

注意在半导体中,用费米分布作为描述平衡态的载流子分布函数,即

f =1

1 + exp[Ec(x,k) − EF(x)

kbT (x)

] (5.27)

在单能谷、抛物线型能带且各向同性的假设条件下,Ec(x, k)可以写为:

Ec(x,k) = Ec0 − qψ(x) +~2k2

2m∗(5.28)

其中,qψ(x)为外加电位分布引起能量改变的数值。于是分别可以求得

∇ f = f0(1 − f0)∇(qψ + EF

kbT

)(5.29)

∇k f = − f0(1 − f0)~2k

m∗kbT(5.30)

由于

F = −qE = q∇ψ(x) (5.31)

v =~km∗

(5.32)

在假定器件温度相等,即∇T = 0的情况下,式(5.26)可以化简为

f = f0 − τ f0(1 − f0)v

kbT· ∇EF (5.33)

电流密度等于群速和分布函数之积在动量空间上积分

Jn = −q

4π3

∫Vk

v · f dk (5.34)

将式(5.33)代入式(5.34),可得

Jn = −q

4π3

∫Vk

v ·[

f0 − τ f0(1 − f0)v

kbT· ∇EF

]dk (5.35)

44

第五章 半导体输运方程的数学描述 第三节 漂移扩散模型方程

由于 f0是k的偶函数,而v在k空间为奇函数,因此∫Vk

v · f0dk = 0 (5.36)

于是

Jn = −q

4π3

∫Vk

−v · τ f0 (1 − f0)v

kbT· ∇EFdk (5.37)

定义

EF = −qφn (5.38)

其中φn为电子的费米势

n =1

4π3

∫Vk

f0dk (5.39)

〈τ〉 =m∗

kbT

∫Vk

v · vτ f0 (1 − f0) dk∫Vk

f0dk(5.40)

Jn = −q2n∇φn〈τ〉

m∗= −qµnn∇φn (5.41)

其中,迁移率

µn = q〈τ〉

m∗(5.42)

式(5.41)就是要求的经典电子输运方程。同样可得空穴的输运方程

Jp = −qµp p∇φp (5.43)

由方程(5.41)及(5.43)可见,迁移率和裁流子浓度视为常数时,电流密度和费米势的梯度成正比。为了将该方程改写成漂移电流密度与扩散电流密度项之和的形式,有必要利用载流子浓度的表达

式。一般而言,载流子浓度应由费米分布来描述,但此时数学处理将变得十分复杂。此处还是从载

流子浓度的波尔兹曼分布入手,借助有效本征载流子浓度的概念:

n = nie exp[

qkbT

(ψ − φn

)]p = nie exp

[q

kbT

(φp − ψ

)] (5.44)

可以解得

φn = ψ −kbT

qln

(n

nie

)φp = ψ +

kbTq

ln(

pnie

) (5.45)

将上面两式代入式(5.41)以及式(5.43)后可得

Jn = qµnnE + qDn∇n − qµnn(kbT

q∇ ln nie

)Jp = qµp pE − qDp∇p + qµp p

(kbT

q∇ ln nie

) (5.46)

45

第四节 流体力学模型方程 第五章 半导体输运方程的数学描述

其中,E = −∇ψ,Dn =kbT

qµn与Dp =

kbTqµp为爱因斯坦关系。上述两方程中的最后一项代表由于本

征载流子浓度梯度而引起的电流。当∇ ln nie = 0时,该项引起的电流也就等于0。此时上式变成最常见的表达式

Jn = qµnnE + qDn∇n

Jp = qµp pE − qDp∇p(5.47)

至此为止,有必要小结一下漂移扩散模型方程的适用范围:

1.漂移扩散模型方程是在波尔兹曼方程的基础上作了进一步假设的条件下得出的。

2.运用了能带理论和有效质量近似的概念。认为半导体是单能谷、具有抛物线型能带,而且各向同性。

3.散射是一种弹性过程。这一假设对于在GaAs中起主要作用的极化光学声子散射是不成立的。

4.不考虑外力随时间的变化,这意味着电场矢量变化很慢。略去了磁场对载流子的作用。

5.忽略载流子温度随时间和位置的变化,把载流子的温度和晶格温度视为等同的。这种假设对于热载流子效应是不适宜的。但是可以通过修改爱因斯坦关系来克服这一问题。

6.忽略了时间偏导项,这意味着和时间相关的输运现象未考虑。

7.半导体为无穷大。在真实器件中,分布函数在边界附近(例如接触处和界面)以很复杂、极不规则的方式变化。预计在距边界几个载流子自由程的范围内漂移一扩散模型的近似就不成立了。

第四节 流体力学模型方程

漂移扩散模型的导出过程中作了很多近似,相比之下,流体模型几乎不用做任何近似。

用Φ1 = 1,Φ2 = ~k与Φ3 = ~2k2/2m∗分别乘以电子波尔兹曼方程,并在整个k空间积分可得到关于电

子的连续性、动量守恒、能量守恒方程。

∂n∂t+ ∇ · (nu) =

(∂n∂t

)coll

(5.48)

∂m∗nnu∂t

+ ∇ · (m∗nnuu + nkTn) = −enE +(∂m∗nnu

∂t

)coll

(5.49)

∂nωn

∂t+ ∇ · (nωnu + nkTnu) = −enE · u − ∇(−κn∇Tn) +

(∂nωn

∂t

)coll

(5.50)

其中n是电子密度,u是电子平均速度,Tn是电子温度,ωn =32

kTn +12

m∗nu2是电子内能,κn是电

子热传导率。

通过同样的方法,可以得到空穴的流体模型方程

∂p∂t+ ∇ · (pv) =

(∂p∂t

)coll

(5.51)

46

第五章 半导体输运方程的数学描述 第四节 流体力学模型方程

∂m∗p pv∂t

+ ∇ · (m∗p pvv + pkTp) = epE +(∂m∗p pv

∂t

)coll

(5.52)

∂pωp

∂t+ ∇ · (pωpv + pkTpv) = epE · v − ∇(−κp∇Tp) +

(∂pωp

∂t

)coll

(5.53)

其中p是空穴密度,v空穴平均速度,Tp是空穴温度,ωp =32

kTp +12

m∗pv2是空穴内能,κp是空穴

热传导率。

在方程(5.48)和(5.51)中的碰撞项可以用载流子复合与生成率代替(∂n∂t

)coll=

(∂p∂t

)coll= G − R (5.54)

根据Baccarani和Wordeman的模型,在动量和能量方程中的碰撞项采用驰豫时间近似后有如下的形式 (∂m∗nnu

∂t

)coll= −

m∗nnuτn

pτn

p = m∗nµn0

eTn

T0(5.55)

(∂m∗p pv∂t

)coll= −

m∗p pvτ

pp

τpp = m∗p

µp0

eTp

T0(5.56)

(∂nωn

∂t

)coll= −

nωn −32 nkT0

τnω

τnω =

m∗n2µn0

eT0

Tn+

32µn0

ev2ns

TnT0

Tn + T0(5.57)

(∂pωp

∂t

)coll= −

pωp −32 pkT0

τpω

τpω =

m∗p2µp0

eT0

Tp+

32µp0

ev2ps

TpT0

Tp + T0(5.58)

其中T0是晶格温度,µn0和µp0是电子和空穴的迁移率,vns 和vps是载流子饱和漂移速度。这个模

型包含了载流子晶格散射和载流子电离杂质散射。

在流体模型的基础上,经过一定的简化,也可以得到漂移扩散模型。略去电子动量守恒方程的

前两项得到

Jn = −enu =e2

m∗nτn

pnE +e

m∗nkTLτ

np∇n (5.59)

通过同样的手续,可以得到空穴的电流方程

Jp =e2

m∗pτ

pp pE −

em∗p

kTLτpp∇p (5.60)

注意到迁移率

µn = τnp

em∗n

(5.61)

µp = τpp

em∗p

(5.62)

于是可以得到熟悉的漂移扩散模型电流形式

Jn = eµnnE + eµn(kTL

e)∇n (5.63)

Jp = eµp pE − eµp(kTL

e)∇p (5.64)

47

第五节 载流子迁移率 第五章 半导体输运方程的数学描述

第五节 载流子迁移率

在研究载流子输运问题时,涉及到的一个重要物理量就是迁移率。由上两节的讨论可知,它是

和载流子的有效质量以及载流子受到的散射几率有关的量。有效质量越大,在单位电场下载流子的

漂移速度就越小,载流子的迁移率就越小。载流子受到的散射几率越大,那么弛豫时间就越短,迁

移率也就越小。

在半导体器件中,裁流子可能受到多种散射的影响,例如晶格散射、电离杂质散射、载流子和

载流子之间的散射、中性杂质散射、表面散射、强场下速度饱和效应等。从理论上严格地包括上述

全部因素,从而得出完全的迁移率的表达式是一项十分困难的工作。但是如果假定各散射机构之间

是线性无关的,那么就能使问题简化,式(5.65)可以把各散射机构的影响综合在一起。

1µ=

1µ1+

1µ2+

1µ3+ . . . (5.65)

式中µ为总迁移率,µ1,µ2等为和各散射机构相对应的迁移率。

晶格散射是由于晶格上的原子的热振动而引起的,它分为声学波散射和光学波散射。这些散射

体现在声学声子和光学声子与载流子的相互作用上。由于声子的数量和温度有直接关系,所以随着

温度的升高,晶格散射几率也就越大。晶格散射与温度的关系近似为

µphonon ∝ T−3/2 (5.66)

电离杂质散射是离化后的带电杂质离子周围形成的库仑场对载流子的散射作用。此库仑场将使

运动到离子附近的载流子改变运动方向。这种散射作用的强弱不仅和离化的杂质电荷数有关,而且

和载流子的运动速度有关。离化的杂质数越多,散射的几率也就越大。载流子的运动速度越大,就

能更快地穿过杂质离子,载流子的运动改变的几率就越小,也可以说受到散射的几率就越小。由于

运动速度和温度有直接关系,所以电离杂质散射和温度也有关。温度降低,载流子的运动速度减小,

电离杂质散射也就增强。电离杂质散射与温度的关系近似为

µlattice ∝ T 3/2 (5.67)

低温环境下,由于晶格散射随温度降低而减弱,所以电离杂质散射随温度降低而逐渐趋于显著地

位。这对于重掺杂的半导体尤其突出。图(5.2)显示了不同掺杂的硅材料迁移率与温度的关系。

在半导体中,晶格散射和电离杂质散射是两种基本的散射机构。然而这两种散射机构并非完全

线性无关,在考虑它们的综合效果时,一般用统一的经验公式表示它们的共同影响[15]。

载流子―载流子散射就是载流子之间的相互作用。由于此种散射不引起载流子总动量的变化,

所以从原则上讲载流子之间的散射对迁移率的大小没有什么影响。但是该散射机构通常通过伴随其

它散射机构一起来影响迁移率的大小。例如由于光学声子散射某电子失去hν的能量,通过在k空间中的载流子之间的散射,该电子完全可以由具有相同能量的其它电子来代替。这样,电子失去能量

的几率增加了,从而使载流子的迁移率下降。通常情况下,载流子―载流子散射多发生在功率器件

中。在这种器件中,往往工作在大注入状态,非平衡载流子浓度会超过掺杂浓度,载流子之间的散

射就变得明显。Philips迁移率模型包含了载流子―载流子散射的作用[16][17],将在后面加以介绍。

在很低的温度下,杂质没有充分离化,没有电离的杂质呈现电中性。这种中性杂质对周期性势

场有一定的干扰从而起到散射作用。这种散射通常在晶格散射和电离杂质散射都很微弱的极低温度

下才起明显作用。

48

第五章 半导体输运方程的数学描述 第五节 载流子迁移率

图 5.2 硅材料迁移率与温度的关系

在靠近表面附近传输的载流子,除了和体内的载流子一样受到前面讨论的各种散射机构的影响

外,还要受到表面散射的影响。引起表面散射的原因很多,例如表面粗糙,晶格不完整性,表面的量

子态,表面电荷或表面场等。这使得产生表面散射的机理很复杂,和体内散射也就有差异。实验表

明,载流子在表面附近的迁移率远比体内的迁移率低。可见表面散射在载流子传输过程中,尤其是

在表面型器件比如MOS管的载流子传输过程中将起到很重要的作用。到目前为止,对表面导电问题的研究还没有达到很深入的程度。为了满足定量描述的需要,多采用经验公式,把表面散射归结为

一种垂直于表面的电场的作用是最为普遍的一种处理方法。这种处理对于表面场效应器件是最为适

宜的。

一般而言,当电场比较低的时候,漂移速度和电场之间大致成线性关系,比例系数亦即迁移率

为一常数。随着电场的增加,迁移率随电场增大而减小,速度和电场之间的线性关系将发生偏移。

当电场增加到大于临界电场值时,速度将趋于一个恒定值。这就是速度的饱和效应。因此,当电场

很强时,必须对迁移率进行强场修正。图(5.3)与图(5.4)分别显示了硅和砷化镓材料的漂移速度与电场强度的关系,注意砷化镓漂移速度有一个极大值,当超过这个极值后,漂移速度会随着电场增大

而下降。由于砷化镓材料在强场下的负微分迁移率特性,因此有可能会形成微波振荡。

图 5.3 硅材料漂移速度与电场关系 图 5.4 砷化镓材料漂移速度与电场关系

49

第六节 半导体常数 第五章 半导体输运方程的数学描述

第六节 半导体常数

在本节中,介绍两个半导体中比较重要的常数,德拜长度和介电驰豫时间。

德拜长度在等离子体中是一个重要的物理参量,它表示扰动电荷在等离子体内能够影响的距

离。由于半导体与等离子体系统有类似之处,德拜长度在半导体中也有类似的意义。假设一维无限

大均匀N掺杂的半导体,电势满足Poisson方程

εd2ψ

dx2 =ε

qd2Ec

dx2 = −q (ND − n) (5.68)

此处,静电势ψ以导带底作为参考零点,空穴因为数量稀少而被略去。

Ec (x) = Ec (ψ = 0) + qψ (x) (5.69)

n = Nc · exp(−

Ec − EF

kbT

)(5.70)

于是Poisson方程可以写作

ε

qd2Ec (x)

dx2 = −q(ND − Nc · exp

(−

Ec − EF

kbT

))(5.71)

为了简化上面的方程,将导带写为

Ec (x) = E0c + ∆Ec (x) (5.72)

其中E0c是平衡态的导带位置,这是一个常数,∆Ec是由于外加电压导致的能带弯曲。注意到平衡态

有ND = n0,

Nc · exp(−

Ec − EF

kbT

)= Nc · exp

(−

E0c − EF

kbT

)· exp

(−∆Ec (x)

kbT

)= ND · exp

(−∆Ec (x)

kbT

) (5.73)

此时Poisson方程已经简化为

d2∆Ec

dx2 = −q2ND

ε·

[1 − exp

(−∆Ec (x)

kbT

)](5.74)

显然,如果偏离平衡态不远,有∆Ec kbT,上式可以成为线性问题

d2∆Ec

dx2 =q2ND

ε·∆Ec (x)

kbT(5.75)

此时问题已经简化到可以解析求解,引入德拜长度

LDb =

√εkbTq2ND

(5.76)

解可以表示为

∆Ec (x) = ∆Ec (x = 0) · exp(−

xLDb

)(5.77)

50

第五章 半导体输运方程的数学描述 第六节 半导体常数

显然,对于P型半导体,德拜长度可以表示为

LDb =

√εkbTq2NA

(5.78)

德拜长度与掺杂的关系如图(5.5)所示,在高掺杂时德拜长度相当小。由于德拜长度表示了外加扰动能够影响的特征距离,在对半导体划分网格的过程中,德拜长度是一个重要参数。对于影响半导体

器件性能的区域,网格尺寸必须小于此距离,才能捕捉到载流子的空间变化。

图 5.5 德拜长度与掺杂的关系

除了外加扰动能够影响的特征距离外,重要的半导体常数还包括多数载流子能够响应外加扰动

需要的特征时间,称为介电驰豫时间。为了得到介电驰豫时间,依然从电场方程出发

dE (x, t)dx

= −q∆ρ (x, t)

ε(5.79)

此处,ρ为载流子浓度。注意载流子的连续性方程,当半导体处于准平衡状态时,载流子的产生复合

以及载流子密度梯度引起的扩散电流都可以忽略,仅包含电场引起的漂移电流:

∂∆ρ

∂t= −qµρ

∂E (x)∂x

(5.80)

将连续性方程代入电场方程∂∆ρ

∂t= −

qµρε· ∆ρ (5.81)

求解上面的方程,得到

∆ρ (x, t) = ∆ρ (x, 0) · exp(−

tτd

)(5.82)

其中

τd =ε

qµρ0(5.83)

为介电驰豫时间。如果是N型半导体,有ρ0 = ND,而对于P型半导体,则有ρ0 = NA。德拜长度、爱因

斯坦关系与介电驰豫时间的关系可以表示为

τd =L2

Db

D(5.84)

半导体数值模拟的时间步长受限于介电驰豫时间,将式(5.81)用显式差分离散,得到

∆ρ (∆t) = ∆ρ (0) −∆tτd∆ρ (0) (5.85)

51

第六节 半导体常数 第五章 半导体输运方程的数学描述

显然,如果∆t > τd,每一步∆ρ会改变符号,数值结果将在正的和负的∆ρ之间振荡,这个结果

是不符合物理实际的。对于迁移率很高的半导体,比如 GaAs,µ = 6000cm2 · V−1 · s−1,掺杂

为1018cm−3,τd ≈ 10−15s,显式离散的时间步长不能超过这个值。在实际应用中,如此小的时间步长限制是无法忍受的,必须采用绝对稳定的隐式离散。

52

第六章 半导体接触界面

在半导体器件的制造中,不可避免的遇到半导体材料与其它材料的接触问题。例如用真空

蒸发、溅射等方法在半导体表面形成金属薄膜,形成金属与半导体接触,或者将半导体表面氧化

为SiO2薄膜,形成半导体-绝缘体界面等。半导体数值模拟软件必须能够正确的处理这些界面。

第一节 半导体与金属的接触

金属与半导体的接触可以分为两类:接触电阻极低的欧姆接触和具有类似pn结单向导点性的肖特基接触。在半导体器件和集成电路的制造中,这两类接触都有广泛的应用。

6.1.1 半导体与金属的接触势垒

首先解释一下功函数的概念。金属中的价电子要逸出体外必须具有足够高的能量,或者说需要

外界对它作一定的功才能使电子逸出体外。这个功的平均值就是电子的逸出功,或者叫功函数。金

属的电子功函数ΦM定义为

ΦM = E0 − EF (6.1)

其中,E0为金属表面处真空中静止电子的能量,EF为电子的费米能级。显然,功函数的大小反映了

金属束缚电子能力的强弱。对于半导体而言,电子功函数ΦS定义为

ΦS = E0 − EF (6.2)

由于半导体中EF是随掺杂浓度而变化的,因此ΦS与掺杂有关。此外,半导体电子亲和能的定义为

χ = E0 − Ec (6.3)

由于金属与半导体的功函数不同,它们互相接触时将在金属与半导体表面产生接触电势差,同

时在半导体一侧形成空间电荷层,相应的能带发生弯曲。

ΦS (eV)

Semiconductor χ(eV) N-Type NDcm−3 P-Type NAcm−3

1014 1016 1018 1014 1016 1018

53

第一节 半导体与金属的接触 第六章 半导体接触界面

Si 4.17 4.494 4.375 4.256 4.951 5.070 5.147

Ge 4.00 4.297 4.180 4.061 4.377 4.495 4.571

GaAs 4.07 4.289 4.170 4.050 5.206 5.325 5.444

表 6.1 半导体的功函数(取自GSS材料数据库)

Metal ΦM(eV) Metal ΦM(eV) Metal ΦM(eV)

Au 5.47 < 100 > Al 4.06 < 110 > Cu 4.48 < 110 >

Pt 5.93 < 111 > Pb 4.25 polycr W 4.55 polycr

表 6.2 部分金属材料的功函数[18]

考虑金属与n型半导体的接触,并设ΦM > ΦS,在它们没有接触时能带如图(6.1)所示,由于ΦM > ΦS,所以半导体的费米能级高于金属,当它们紧密接触时,半导体的电子将向金属流动,

使金属表面带负电,半导体表面形成正的空间电荷层,产生由半导体指向金属的内建电场。这个电

场会阻止电子进一步流向金属,最后使整个电子系统达到平衡,此时金属和半导体的费米能级在同

一水平上,如图(6.2)所示。此时在金属和半导体之间产生了接触电势差,虽然金属一侧也会存在过渡层,不过由于金属中电子密度比半导体大几个量级,其过渡层长度在原子间距量级,往往可以忽

略,因此可以认为接触电势差全部降在半导体一侧的空间电荷层上。由图(6.2)中可以看出,半导体一侧导带底的电子必须越过势垒qVbi = ΦM − ΦS。此外,半导体势垒区中由于能带向上弯曲,电子

浓度比体内的平衡浓度小很多,因此它是一个高阻区,通常又称为电子阻挡层。而金属一侧的电子

则需要克服势垒ΦB = ΦM − χ才能到达半导体一侧。这种形成电子阻挡层的金属-半导体接触最先由肖特基进行了研究,因此又称这种接触为肖特基接触,ΦB称为肖特基势垒高度。肖特基势垒高度与

半导体的掺杂无关,只要金属与半导体材料确定后,ΦB就确定了。如果n型半导体的功函数比金属

图 6.1 接触前的能级 图 6.2 接触后的能级

大,即ΦS > ΦM,接触时电子将从金属流向半导体,在半导体表面形成负的空间电荷层,空间电荷

区的能带向下弯曲,如图(6.3)所示。这种情况下导带电子与金属中的电子相互之间不需要越过势垒就可运动到对方,而且半导体在界面空间电荷区中的电子浓度比体内的平衡浓度大很多,这个电子

积累区域导电性很好,又称为电子反阻挡层。

金属与p型半导体接触时,形成阻挡层和反阻挡层的条件正好与n型半导体情况相反。当ΦS >

ΦM,空穴将由半导体流向金属,使金属表面带正电,半导体表面形成负的空间电荷层,稳定时能带

54

第六章 半导体接触界面 第一节 半导体与金属的接触

图 6.3 不同功函数的金属与n型半导体的接触

向下弯曲,如图(6.4)所示。它是空穴的阻挡层,此时价带顶空穴要越过高度为ΦS −ΦM的势垒才能到

达金属,而金属中的空穴,即金属费米能级EFM处的空状态要越过高度为ΦB = χ+ Eg −ΦM的势垒才

能到达半导体。这里的交换空穴事实上是指金属电子与半导体价带电子之间的交换。电子由金属到

半导体价带顶,需要升高ΦS −ΦM的能量,而电子从价带到金属需要升高ΦB = χ + Eg −ΦM的能量才

能到达EFM处。如果金属与p型半导体接触时有ΦS < ΦM,同样的分析可知,此时能带向上弯曲,形

成空穴的反阻挡层。

图 6.4 金属与p型半导体的接触ΦS > ΦM

6.1.2 肖特基接触的电流关系

实验证明,金属-半导体接触形成的肖特基势垒具有类似于pn结的整流特性。图(6.5)给出了一个金属和n型半导体形成的理想肖特基势垒,假设势垒内部电子密度为0,我们可以从势垒的高度和半

55

第一节 半导体与金属的接触 第六章 半导体接触界面

导体掺杂浓度得出势垒的宽度、内部电场值。由泊松方程出发

d2φ

dx2 = −qND

εsε0(6.4)

认为肖特基界面在x = 0处,边界条件为φ(0) = 0,φ(W) = Vbi和E(W) = −∇φ(W) = 0,其中W为肖特基势垒的宽度,如图(6.5)。求解上面的微分方程可得势垒宽度

W =

√2εsε0Vbi

qND(6.5)

势垒中的电势分布

φ(x) = Vbi −qND

2εsε0(W − x)2 (6.6)

但在使用中,常常用三角形来近似表示势垒,此时

φ(x) = Vbi

(1 −

xW

)(6.7)

图 6.5 理想肖特基接触的电位分布 图 6.6 n型肖特基接触的电流特性

图(6.6)显示了金属和n型半导体形成的肖特基接触处电子与空穴4种不同的运动方式:(A)表示越过势垒的净电子流,在肖特基结的伏安特性中起主要作用;(B)表示电子通过量子效应隧道穿越势垒,一般与其它肖特基势垒降低效应合并考虑,用于对(A)的电流进行修正;(C)表示电子与空穴的复合,前文已经进行了研究,在此不再赘述;(D)表示空穴由金属越过势垒Eg − ΦM注入半导体的过程,

称为少子注入,它遵循与(A)类似的发射规律,并且在一般情况下引发的电流很小。对于(A)的过程主要有两种理论,热电子发射理论和扩散理论,下面将作简单介绍,对于更详细的分析,可见[19]。

热电子发射理论由Bethe提出,对于载流子的迁移率较高,相应的平均自由程较大而势垒较薄的情况,电子在势垒区中的碰撞可以忽略,此时电子能否越过势垒区主要受限于势垒高度。当电子的

动能高于势垒顶时,电子就可以自由的穿越势垒进入对方。考虑加上偏置电压VA的情况,此时外电

势用于提高EF,从半导体到金属的电子电流由能量超过EF + ΦB的电子向势垒的定向运动组成,经

56

第六章 半导体接触界面 第一节 半导体与金属的接触

过一番简单推导可得:

JS→M = q

∞∫EF+ΦB

vxdn =4πm∗nqk2

b

h3 T 2e−ΦB/kbT eqVA/kbT

= A∗T 2e−ΦB/kbT eqVA/kbT

(6.8)

而从金属到半导体的电子电流保持不变,等于VA = 0时半导体到金属的电子电流。

JM→S = JS→M

∣∣∣∣VA=0= A∗T 2e−ΦB/kbT (6.9)

所以总的电流为

Jtot = JS→M − JM→S = A∗T 2e−ΦB/kbT(eqVA/kbT − 1

)(6.10)

其中A∗为有效Richardson系数,

A∗ = 120(m∗n/m0) A/cm2 · K2 (6.11)

由于参数中涉及电子在界面的有效质量m∗n,因此它与具体材料的能带结构有关,很多情况下A∗只能靠实验测定。

扩散理论由肖特基提出,认为电流受限于半导体区域内的漂移-扩散运动。

J = qµnndEF

dx= µnNckbTe−Ec/kbT d

dx

(eEF/kbT

)(6.12)

将空间电荷区的势垒用三角形势垒表示,求解上面的微分方程可得电流关系:

J = qNcµnFmaxe−ΦB/kbT(eqVA/kbT − 1

)(6.13)

其中Fmax为势垒中的电场强度

Fmax =

√2qND (Vbi − VA)

εsε0(6.14)

最后得到的电流表达式为

J = qNcµn

√2qND (Vbi − VA)

εsε0e−ΦB/kbT

(eqVA/kbT − 1

)(6.15)

扩散理论中电流增大的瓶颈不是电子如何穿越势垒,而是半导体中的电子迁移率,因此它适合低迁

移率半导体形成的肖特基接触。

实际上使用的大部分半导体材料如Si、Ge、GaAs迁移率都很高,使用热电子发射理论是合适的。只有一些低迁移率材料,比如Cu2O,无定形硅及真空蒸发的CdS多晶薄膜等,扩散理论对它们适用。

图(6.7)显示了施加不同的偏压时肖特基势垒的高度变化。正向偏压时势垒高度降低,更多的电子从半导体一侧进入金属,如图(6.7)中(b)所示;反向偏压提高了势垒高度,电子从半导体一侧进入金属更加困难,如图(6.7)中(c)所示,而金属到半导体的热电子发射不变,形成如图(6.7)中(d)所示的反向电流。

57

第一节 半导体与金属的接触 第六章 半导体接触界面

图 6.7 肖特基二极管的正向反向IV特性

图 6.8 镜像力引起的势垒降低

在实际的应用中,往往发现肖特基结的电流电压关系背离图(6.7)的理想模型,表现在势垒的高度随着所加电压的增加而降低以及受隧道电流的影响。

镜像力是引起肖特基势垒降低的主要因素。一个金属外的电子会在金属中的对称位置感应大小

相等的正电荷,感应电荷对这个电子的吸引力称为镜像力。此时电子除了受到势垒的作用外还受到

镜像力的吸引,如图(6.8)所示。当电子距离势垒距离为x时,感应电荷处于−x位置,则电子受到的镜像力为

fimage(x) = −q2

4πεsε0 (2x)2 = −q2

16πεsε0x2 (6.16)

相应的镜像势能

φimage(x) = −q

16πεsε0x(6.17)

作用于电子的电势是镜像势与电场势的迭加,假设三角形势垒,因此电场E是常数,可得

φ(x) = −q

16πεsε0x− Ex (6.18)

58

第六章 半导体接触界面 第一节 半导体与金属的接触

对上式进行求导,得到势垒的最高点在

xm =

√q

16πεsε0E(6.19)

势垒降低了

∆Φ = φ(xm) =

√qE

4πεsε0(6.20)

因此,当电场较强时,势垒降低较多。反向电压较高时,镜像力的作用将变得明显,导致反向电流的

增大。

对于量子隧道电流,经典的方法无力描述,一般采用经验公式进行修正,由隧道电流引起的肖

特基势垒降低为

∆Φ = αEγ (6.21)

其中α和γ的取值可以在[20]找到。

6.1.3 欧姆接触

欧姆接触指的是具有低接触电阻的金属-半导体接触,这种接触能够通过较大的电流,并且接触处的电压降可以忽略。制作欧姆接触的理想情况是形成反阻挡层,此时接触处将不形成电子或空穴

势垒,是一个高电导区。但是以反阻挡层制作欧姆接触因为受到表面态以及金属材料的限制并不容

易成功。通常是在接触面使用浅层扩散或者离子注入法制作高掺杂区,形成很薄的肖特基接触来提

高隧道电流的方法实现。

图(6.9)(a)显示了一个n型的肖特基接触,当势垒足够薄时电子可以自由的穿越,但是空穴的扩散受到势垒的阻碍,相当于很低的表面复合率,这种接触仅能通过电子。如果采用图(6.9)(b)的结构,并在表面掺入高复合中心杂质,复合中心起到了维持载流子浓度平衡的作用,这种接触电子与空穴

都能通过。这是因为假设表面复合率无限大,到达表面的空穴都将被电子复合,失去的电子则可以

通过金属到半导体的隧道跃迁补充,相当于空穴通过了接触界面。

图 6.9 具有低和高表面复合率的欧姆接触

59

第二节 金属-氧化物-半导体结构 第六章 半导体接触界面

第二节 金属-氧化物-半导体结构

金属-氧化物-半导体接触(MOS)是CMOS器件的基础结构,而CMOS器件占据了现代集成电路产量的绝大部分,因此MOS结构得到了相当仔细的研究。这里只能做简单的介绍。

考虑理想的MOS结构,如图(6.10),假设满足以下条件:(1)金属与半导体间功函数差为零;(2)在绝缘层内没有任何电荷且绝缘层完全不导电;(3)绝缘体与半导体界面处不存在任何界面态。此时有能级关系:

ΦM = ΦS = χ + Ec − EF (6.22)

以下讨论在这种理想MOS结构的金属与半导体间加某一电压而产生垂直于表面的电场时,半导体表面层内的电势与电荷分布情况。

图 6.10 理想MOS结构

可以看出,MOS结构实际上就是一个电容器,因此当金属与半导体之间加上电压后,绝缘层在金属与半导体相对的两个面上就要被充电。两者所带电荷符号相反,并且电荷分布情况不同。在金

属中,自由电子密度很高,电荷基本分布在一个原子层的厚度范围之内;而在半导体内载流子密度

要低很多,电荷分布在一定厚度的表面层中,这个区域称为空间电荷区。在空间电荷区内,从表面

到内部电场逐渐减弱,到空间电荷区的另一端,场强减小到零。另一方面,空间电荷区内的电势也

要随距离逐渐变化,这样,半导体表面相对体内就产生电势差,同时能带也发生弯曲。

考虑p型半导体构成的理想MOS结构,半导体一侧接地,在金属一侧加上电压VG。能带变化为

EF,metal − EF,semiconductor = −qVG (6.23)

注意,电子能量为−qV,当VG < 0时,电子能量升高,表面势为负值,表面能带向上弯曲,如图(6.11)所示。在热平衡情况下,半导体内费米能级应保持定值,故随着向表面接近,价带顶将逐渐靠近甚至高于费米能级,同时价带中空穴浓度增加,形成积累层(Accumulation Layer)。从图中还可以看出,越接近表面空穴浓度越高,这表明空穴主要分布在界面附近。当金属与半导体间加正向电

压VG >时,表面势为正值,表面处能带向下弯曲.如图(6.12)所示。这时越接近表面,费米能级离价

60

第六章 半导体接触界面 第二节 金属-氧化物-半导体结构

图 6.11 PMOS外加偏压VG < 0能带图 图 6.12 PMOS外加偏压VG > 0能带图

带顶越远,价带中空穴浓度随之降低。在靠近表面的一定区域内,价带顶位置比费米能级低得多,

根据波尔兹曼分布可知,表面处空穴浓度将比体内空穴浓度低得多,表面层的负电荷基本等于电离

受主杂质浓度NA,表面层的这种状态称做耗尽(Depletion)。

当加于金属和半导体间的正向电压进一步增大时,表面处能带相对于体内将进一步向下弯曲,

如图(6.13)所示。这时表面处费米能级位置可能高于禁带中央能量Ei。此时费米能级离导带底比离价

带顶更近一些,表面处电子浓度将超过空穴浓度,形成与原来半导体衬底类型相反的一层,称为反

型层(Inverted Layer)。从图(6.13)可以看出,反型层处于靠近表面处,从反型层到半导体内部还夹着一层耗尽层。在这种情况下,半导体空间电荷层内的负电荷由两部分组成,一部分是耗尽层内已电

离的受主负电荷NA,另一部分是反型层中的电子,后者主要堆积在表面附近。当表面电子浓度等于

图 6.13 PMOS外加偏压VG 0能带图

体内空穴浓度,即能带关系满足Ei,sur f ace − Ei,bulk = 2[EF − Ei,bulk]时,表面已经有足够的电子浓度可以参与导电,此时称为强反型,相应的电压称为开启电压VT (threshold voltage).

对于n型半导体而言,上述形成积累层、耗尽层与反型层的电压刚好相反。当金属与半导体间加上正向电压时,表面层内形成电子的堆积;当金属与半导体间加负电压时,半导体表面内形成耗尽

层;当加外电压进一步增大时,表面层内形成有少数载流子堆积的反型层,如图(6.14)。

实际的MOS结构还需要考虑一些非理想因素,主要是三个修正:一般而言,金属一侧的功函数不等于半导体的功函数,此时相当于理想MOS结构附加了由金属半导体功函数差引起的额外电势

61

第三节 半导体异质结 第六章 半导体接触界面

图 6.14 NMOS外加偏压能带图

差;如果考虑氧化层中的固定电荷,Poisson方程需要加上固定电荷的影响;硅与二氧化硅界面的界面态也需要考虑的话,Poisson方程的界面条件需要改为有附加面电荷密度的物质分界面。

从经典理论的角度看,MOS结构并不复杂。如果不考虑反型层二维电子气以及电子穿越氧化层等量子过程,那么二氧化硅界面对于载流子而言就是一个不能穿越的固体壁面。起作用的电场完全

由 Poisson方程描述。从理论上来说,结合一些载流子的分布函数,完全能够得到半导体一侧很多物理量的解析表达式,我们将在MOS管的数值算例中验证其中的一些理论解。

第三节 半导体异质结

半导体异质结是指由两种不同的半导体材料构成的结。由于组成异质结的两种半导体具有不同

的禁带宽度Eg及其它不同的物理性质,从而使其具有许多特殊的性能。有效地利用和控制这些性能

就可制造出一些很有价值的半导体器件,比如异质结三极管(HBJT),高电子迁移率管(HEMT)等,在微波等高频领域有很大的应用价值。

异质结两侧导电材料的类型不同称为异型异质结,结构是nP或者Np,大写字母表示了材料具有较宽的禁带宽度;两侧导电材料类型相同称为同型异质结,可以是nN或者pP.事实上,异质结接触的能带结构与半导体-金属接触有很大的相似之处。下图(6.15)显示了Np型异质结的能带图,它的特点是界面处发生能带边断裂尖峰。设Φ1与Φ2,χ1与χ2分别为N型与p型半导体的功函数和电子亲和能,∆Ec与∆Ev分别为它们的导带底能量差和价带顶能量差。当二者相接触形成pn结时,由于Φ2 > Φ1,EF1高于EF2,因而电子由n型材料向p型材料转移,直到EF1等于EF2。结果在接触处p型材料一侧出现一个负的电荷层,n型材料一侧产生一个电荷量与其相等的正电荷层。在这个空间电荷区中,由p型区到n型区电势升高,能带产生弯曲。界面处P型半导体导带下弯,n型半导体导带上翘,但是∆Ec = χ1−χ2保持不变。对于价带也有类似的弯曲,Ev在界面上不连续,保持∆Ev = ∆Eg−∆Ec不

62

第六章 半导体接触界面 第三节 半导体异质结

图 6.15 Np型异质结能带

变,但是不出现尖峰。

图(6.16)显示了热平衡时Nn异质结的能带图。同型异质结在界面处能带同样不连续。与异型异质结不同的是,同型异质结窄禁带一侧的空间电荷区是电子积累层,宽禁带一侧是耗尽层,而异型

异质结两侧的空间电荷区都是耗尽层。

图 6.16 Nn型异质结能带

异质结的电流特性是非常复杂的问题,已经针对不同情况提出了许多模型,比如扩散模型、发

射模型、发射-复合模型、隧道-复合模型等等,来说明异质结中的电流传输现象,但是还没有一个能说明各种异质结伏安特性的统一理论。限于经典理论的约束,GSS仅仅实现了与肖特基接触热发射模型类似的电流模型,具体实现见异质结,第121页。

63

第二部分

半导体漂移扩散模型

64

导读

自从Schokley奠定半导体器件的理论基础以来,人们习惯于用解析模型的方式来分析半导体器件。解析模型是根据一定的分析和假设,给出在一定条件下适用的数学表达式来描述器件的物理和

电学特性。解析模型虽然使用方便,同时已被大量实验证明是有效的,但是因为解析求解的困难,

通常只能处理一维问题,并且需要做许多近似假设,因而精度不够高,有时甚至难以反映出有关的

物理效应。

随着大规模集成电路的发展,这种一维的分析越来越不能满足需要,二维甚至三维的分析提到

日程上来,数值模型正是在这种情况下发展起来的。和解析模型相比,数值模型是从半导体器件所

满足的基本方程出发,依据器件的几何结构建立严格的数学模型,对其进行数值求解,得到器件的

特性参数。显然,数值模型比解析模型精确得多,求解过程则要复杂得多。而在器件的小尺寸阶段,

复杂的载流子输运过程只有采用数值模型,才能满足分析与设计的基本需要。

半导体器件的数值模拟方法主要有蒙特卡罗法(Monte Carlo method)和基于连续介质的方法。前者直接求解半导体Boltzmann输运方程,计算开销巨大,并且如果高能载流子分布具有相关性或者在器件的特定区域载流子的浓度特别低,蒙特卡罗法的多次求解结果往往差别很大,无法满足器件模

拟需要;后一种方法使用Boltzmann输运方程的低阶矩方程,通过对高阶展开项的适当省略,得到一系列从简单到复杂的力学模型,包括流体动力学模型和漂移扩散模型,这些简化模型的计算量相对

于直接求解Boltzmann输运方程明显降低,使计算机数值模拟的工业应用成为可能。

在这一部分里,本书将详细的介绍GSS软件如何实现一个完整的漂移扩散模型求解器。首先详细介绍漂移扩散模型方程及其参数。由于数值求解需要将模型方程在合适的网格上离散,因此接下

来描述GSS使用的网格结构。有了网格之后,控制方程在网格上的离散是数值求解非常关键的步骤,这部分将着重介绍。一但离散完成,偏微分方程已经变成常微分方程或者代数方程,最后就是如何

求解大规模非线性方程组,此处属于数值方法的范畴,本书中仅仅做必要的介绍。

从用户的角度来看,半导体器件数值模拟的过程是首先对所研究的器件建立或选用合适的物理

模型,并对其抽象得到相应的数学表述,然后利用适当的数值计算方法开发计算模拟软件,并赋以

器件的工艺、几何尺寸、电学等方面的模型参数,进行数值计算,得到器件的特性及其内部的物理

图像。

在介绍完漂移扩散模型求解器后,本书将给出一些典型的例子,一步步示范如何利用GSS软件建立器件模型,在不同的模拟条件下选取不同的物理模型与模型参数,以及如何分析GSS给出的数值计算结果。

65

第七章 GSS实现的漂移扩散模型

自Gummel开创性的工作以来,漂移-扩散模型(DDM, drift-diffusion model)一直占据着半导体模拟的主导地位,已经发展得十分成熟。

尽管前文已经提到,DDM模型可以由流体模型作如下假设得到:光速比器件中涉及的所有速度大得多;所有的碰撞过程是弹性的;在碰撞过程中能带结构不随时间变化;忽略简并效应;电场梯度小;载流子温度与晶格温度相等且均匀。经过多年的改良,DDM已经部分克服了以上限制带来的不良影响。虽然这种改良导致了现代DDM的复杂,但是大大扩展了它的应用范围。

第一节 第一层漂移扩散模型

GSS软件内置的第一层DDM求解器(DDML1)不涉及温度变化,相对比较简单。

考虑双载流子情形,Poisson方程如下式所示:

∇ · ε∇ψ = −q(p − n + N+D − N−A

)− ρs (7.1)

其中,ψ为静电势,在GSS软件中它等同于系统电子真空能级,这个设定可以大大方便金属-氧化物-半导体接触和异质结接触的描述。N+D为有效电离施主浓度,N−A为有效电离受主浓度,ρs表示绝

缘层内的固定电荷或者界面态电荷。注意导带、价带能级与ψ的关系为

Ec = −qψ − χ + ∆Ec (7.2)

Ev = Ec − Eg + ∆Ev (7.3)

其中χ为电子亲合能(electron affinity)。∆Ec与∆Ev为材料的能带偏移,可能由重掺杂、内应力等原因

引起。而静电势ψ与本征Fermi势 ψintrinsic 的关系为

ψ = ψintrinsic −χ

q−

Eg

2q−

kbT2q

ln(

Nc

Nv

)(7.4)

Poisson方程中载流子浓度的变化遵守连续性方程:∂n∂t=

1q∇ · Jn − (U −G)

∂p∂t= −

1q∇ · Jp − (U −G)

(7.5)

66

第七章 GSS实现的漂移扩散模型 第二节 第二层漂移扩散模型

式中Jn和Jn分别为电子和空穴的电流密度,U为载流子复合项,G为载流子产生项。

电子和空穴的电流密度Jn、Jn在DDML1中由下面的电流方程描述 Jn = qµnnEn + qDn∇n

Jp = qµp pEp − qDp∇p(7.6)

其中,µn和µp为电子与空穴的迁移率,Dn =kbT

qµn和Dp =

kbTqµp为爱因斯坦关系,分别表示电子与

空穴的扩散系数,En与Ep为电子与空穴受到的有效电场强度,由相应点的能带结构求出,这里考虑

了异质结存在时的能带变化[21]。

En =1q∇Ec −

kbTq∇

(ln(Nc) − ln(T 3/2)

)(7.7)

Ep =1q∇Ev +

kbTq∇

(ln(Nv) − ln(T 3/2)

)(7.8)

注意DDML1认为晶格温度均匀且恒定,上式中的温度梯度项恒为0。

将电流方程取散度后代入连续性方程,并结合泊松方程,得到DDML1基本方程组为

∂n∂t= ∇ ·

(µnnEn + µn

kbTq∇n

)− (U −G)

∂p∂t= −∇ ·

(µp pEp − µp

kbTq∇p

)− (U −G)

∇ · ε∇ψ = −q(p − n + N+D − N−A ) − ρs

(7.9)

DDML1模型适合于二极管、三极管以及长沟道的MOS器件(沟道长度大于1µm)的数值模拟。这个模型比较简单,运算速度很快。关于DDML1模型的离散,见GSS第一层DDM求解器,第105页。

第二节 第二层漂移扩散模型

由于第二层DDM涉及到了温度的变化,电流的形式必须经过修正。电子的扩散电流在DDML1中可以表示为

Jn,di f f =kbT

qµnq∇n = kbTµn∇n (7.10)

但是在DDML2中则是Jn,di f f = µnkb(T∇n + n∇T ) (7.11)

同样,DDML2的空穴扩散电流为

Jp,di f f = −µpkb(T∇p + p∇T ) (7.12)

第二层DDM还考虑了器件在运行中的发热,因此在基本DDM方程的基础上添加晶格热传导方程:

ρcp∂T∂t= ∇ · κ∇T + J · E + (Eg + 3kbT ) · (U −G) (7.13)

67

第三节 第三层能量平衡模型 第七章 GSS实现的漂移扩散模型

其中,ρ为密度,cp为热容量,κ为热传导系数,(Eg + 3kbT ) · (U −G)为载流子复合与生成导致的放热与吸热。

由上可得,DDML2基本方程组为

∂n∂t= ∇ ·

(µnnEn + µn

kbTq∇n + µn

kb∇Tq

n)− (U −G)

∂p∂t= −∇ ·

(µp pEp − µp

kbTq∇p − µp

kb∇Tq

p)− (U −G)

∇ · ε∇ψ = −q(p − n + N+D − N−A

)− ρs

ρcp∂T∂t= ∇ · κ∇T + J · E + (Eg + 3kbT ) · (U −G)

(7.14)

DDML2模型适用于功率器件以及二极管反向击穿等情况的模拟。考虑了晶格温度变化后,除了对基本方程组进行必要的修正外,由于几乎所有的半导体参数都与温度有关,很多在DDML1中能够当成常数的参数不得不采用更复杂的处理方式,因此它的计算速度大约只有DDML1的一半左右。关于DDML2模型的离散,见GSS第二层DDM求解器,第109页。

第三节 第三层能量平衡模型

从GSS-0.45版起,引入了能量平衡模型(Energy Balance Model, EBM)以模拟短沟道MOS管。这是一个流体模型与漂移-扩散模型之间的过渡模型,在形式上,它接近于流体力学模型方程,第46页。但是由于EBM与DDM采用相同的数值离散方式,这里依然将其归纳为DDM一族。

在EBM模型中,电子和空穴的温度不再等于晶格温度,允许热载流子的存在。电子和空穴的电流密度Jn、Jp在EBM中由下面的电流方程描述

Jn = qµnnEn + kbµn (n∇Tn + Tn∇n)

Jp = qµp pEp − kbµp(p∇Tp + Tp∇p

) (7.15)

其中,Tn和Tp分别为电子温度与空穴温度。上式与DDML2电流方程的区别就在于区分了电子温度、空穴温度与晶格温度的概念。

同时,为了满足多出来的两个变量,必须添加两个能量守恒方程:

∂ (nωn)∂t

+ ∇ · Sn = En · Jn − (U −G) · (Eg + ωn) −n(ωn − ω0)

τωn

∂(pωp

)∂t

+ ∇ · Sp = Ep · Jp − (U −G) · (Eg + ωp) −p(ωp − ω0)

τωp

(7.16)

这两个方程可以看作流体模型中能量守恒方程(5.50)和(5.53)的简化形式。其中,ωn和ωp分别为电子

和空穴的能量。在流体模型中,载流子的能量包括了热能与动能ωc =32

kbTc +12

m∗v2c,不过在能量平

衡模型中,载流子的能量仅包含了热能,ωc =32

kbTc,这里c表示n或者p。ω0 =32

kbT表示平衡状态的

68

第七章 GSS实现的漂移扩散模型 第四节 量子修正的第一层漂移扩散模型

载流子能量,此时载流子温度与晶格温度相等。Sn和Sp为能流密度:

Sn = −κn∇Tn − (ωn + kbTn)Jn

q

Sp = −κp∇Tp +(ωp + kbTp

) Jp

q

(7.17)

载流子的热传导系数κc = (25+ γ)

kb2

qTcµcc,c分别表示n与p。在GSS软件中,常数γ取−0.7。

最后,晶格的热传导方程重写如下

ρcp∂T∂t= ∇ · κ∇T +

(Eg + ωn + ωp

)· (U −G) +

n(ωn − ω0)τωn

+p(ωp − ω0)

τωp(7.18)

从EBM模型可以得出,载流子能量(以温度表征)主要是由焦耳加热项Ec · Jc产生,此外还包括由

于复合、电离导致的放热与吸热效应。载流子与晶格通过碰撞进行能量交换,其快慢由能量驰豫时

间τωc决定。晶格的热传导方程的热源项就主要来自于载流子与晶格的能量交换。这个模型适用于

亚微米的MOS器件(沟道长度1 ∼ 0.1µm)以及先进双极晶体管的模拟。值得注意的是它的计算量远大于第一层与第二层DDM模型,并且收敛对初值的要求更高。关于EBM模型的离散,见GSS第三层EBM求解器,第111页。

从上面的式子可以看出,包括能量平衡方程以及晶格热传导方程在内,所有的DDM/EBM方程都是抛物或者椭圆型的。从数学上说,抛物或者椭圆型方程的解是光滑的,不会像双曲型方程那样

出现间断。从数值方法看,抛物或者椭圆型方程的数值求解方法已经非常成熟,比双曲型方程组的

数值方法远为简单、高效。因此,半导体的漂移扩散模型求解难度大大低于流体模型,这也是漂移

扩散模型以及能量平衡模型得到广泛应用的原因之一。

第四节 量子修正的第一层漂移扩散模型

随着当今半导体技术的不断进步,MOS工艺已经进入纳米尺度,此时量子效应变得越来越不可忽视,经典的漂移扩散模型以及流体模型(及其简化形式能量平衡模型) 已经不能适应目前先进器件模拟的挑战。一方面,完全基于量子模型的方法不断被开发;另一方面,对经典模型的修正也在

积极的进行。从目前的进展看,完全量子模型以非平衡格林函数方法(NEGF)最有希望,而密度梯度(Density-Gradient, DG)修正的漂移扩散模型[22][23]则是“修正派”最有力的武器[24]。GSS-0.45实现了DG-DDM,据报道,这种模型可以应用于10nm沟道 SOI-MOS器件的模拟[25]。

69

第四节 量子修正的第一层漂移扩散模型 第七章 GSS实现的漂移扩散模型

DG-DDM的控制方程[26][27]如下:

∇ · ε∇ψ = −q(p − n + N+D − N−A

)− ρs

∂n∂t=

1q∇ · Jn − (U −G)

∂p∂t=

1−q∇ · Jp − (U −G)

Eqc − Ec = −~2γn

12m∗n

∇2(

EFn − Eqc

kbT

)+

12

(∇

EFn − Eqc

kbT

)2Eqv − Ev =

~2γp

12m∗p

∇2(

Eqv − EF p

kbT

)+

12

(∇

Eqv − EF p

kbT

)2

(7.19)

其中,参数γn = 3.6与γp = 5.6用于修正由于多个导带底(硅有6个)或者轻重空穴带来的有效质量变化,使DG-DDM的结果与Poisson-Schrodinger方法的结果吻合。Eqc与Eqv分别为量子修正后的导带

与价带能级。电子与空穴的量子势定义为Λn =

Eqc − Ec

q

Λp =Eqv − Ev

q

(7.20)

此时,DG-DDM电流方程仍然为式(7.6),但是载流子受到的电场修正为

En =1q∇Ec −

kbTq∇

(ln(Nc) − ln(T 3/2)

)+ ∇Λn (7.21)

Ep =1q∇Ev +

kbTq∇

(ln(Nv) − ln(T 3/2)

)+ ∇Λp (7.22)

在考虑经典Boltzmann分布的情况下,电子和空穴的密度由下式表示

n = n0 exp(

EFn − Eqc

kbT

)(7.23)

p = p0 exp(

Eqv − EF p

kbT

)(7.24)

其中,n0,p0为常数,可将其设为1(不影响最后的结果)。将式(7.23)代入式(7.19)的电子量子修正方程,可得

Λn = −~2γn

12qm∗n

[∇2 ln n +

12

(∇ ln n)2]

(7.25)

注意到

12

[∇2 ln n +

12

(∇ ln n)2]= ∇2 ln

√n +

(∇ ln√

n)2

= ∇ ·

(∇√

n√

n

)+

(∇√

n√

n

)2

= −1n∇√

n · ∇√

n +∇2 √n√

n+

1n

(∇√

n)2

=∇2 √n√

n

(7.26)

70

第七章 GSS实现的漂移扩散模型 第五节 半导体能带参数

因此电子的量子修正方程也可以写为

Λn = −~2γn

6qm∗n

∇2 √n√

n(7.27)

同理,空穴的量子修正方程可以写为

Λp =~2γp

6qm∗p

∇2 √p√

p(7.28)

关于DG-DDM模型的离散,见GSS量子修正DG-DDM求解器,第113页。

第五节 半导体能带参数

半导体的能带集中体现了半导体材料本身的性质。能带参数,包括导带底等效态密度Nc,价带

顶等效态密度Nv,带隙Eg以及有效本征载流子浓度nie,是整个数值模拟中非常重要的参数[19],很多其它参数依赖于它们。

态密度直接从它们的定义出发就能得到:

Nc ≡ 2(m∗nkbT

2π~2

)3/2(7.29)

Nv ≡ 2(m∗pkbT

2π~2

)3/2(7.30)

为了精确起见,GSS还考虑了温度变化导致的有效质量变化的影响。对于硅而言[28]

m∗n = m0(1.045 + 4.5 × 10−4T

)m∗p = m0

(0.523 + 1.4 × 10−3T − 1.48 × 10−6T 2

)其中m0为自由电子质量。

由于本征载流子浓度是带隙的指数函数,因此在数值模拟中必须精确的考虑带隙。在GSS中,带隙被表达为:

Eg(T ) = Eg(0) −α · T 2

T + β

= Eg(300) + α[

3002

300 + β−

T 2

T + β

] (7.31)

为了考虑由于重掺杂引起的禁带变窄效应,对禁带宽度作如下修改[29]:

∆Eg =Ebgn

2kbT

ln Ntotal

Nre f+

√(ln

Ntotal

Nre f

)2

+ 0.5

(7.32)

对于硅材料,α = 4.73 × 10−4eV/K,β = 6.36 × 102K,Ebgn = 9 × 10−3eV,Nre f = 1.0 × 1017cm−3。

71

第六节 载流子复合率模型 第七章 GSS实现的漂移扩散模型

于是有效本征载流子浓度为

nie =√

NcNv exp(−

Eg

2kbT

)· exp(∆Eg) (7.33)

由于有效电场强度式(7.7)与式(7.8)涉及导带与价带的位置,在重掺杂情况下需要得到导带与价带的修正。在GSS中,默认禁带变化平均分配给导带与价带。

E′c = Ec −12∆Eg

E′v = Ev +12∆Eg

(7.34)

第六节 载流子复合率模型

如前所述,载流子有三种复合机制:Shockley-Read-Hall(SRH)复合、Auger复合和直接复合。SRH复合是电子空穴对在杂质或者缺陷形成的复合中心的复合;Auger复合则是电子空穴对在另一个载流子帮助下的复合;直接复合依靠载流子在导带和禁带间的跃迁完成。一般情况

下,SRH复合起主要作用;载流子浓度很大时,Auger复合开始突出;直接复合只有在大注入情况(比如:功率器件)才显得比较重要。

原则上,这三种复合机制应该是互相影响的,但是目前的理论水平还达不到这一要求。在GSS软件中,复合率被表示为三种复合机制独立作用之和:

U = Un = Up = USRH + Udir + UAuger (7.35)

其中USRH,Udir与UAuger分别表示SRH复合率,直接复合率和Auger复合率。

USRH =pn − n2

ie

τp[n + nie exp(ETRAP

kTL)] + τn[p + nie exp(

−ETRAPkTL

)](7.36)

UAuger = AUGN(pn2 − nn2ie) + AUGP(np2 − pn2

ie) (7.37)

Udir = DIRECT(np − n2ie) (7.38)

其中τn及τp是载流子寿命,它们是与杂质浓度有关的参数[30]。

τn =TAUN0

1 + Ntotal/NSRHN(7.39)

τp =TAUP0

1 + Ntotal/NSRHP(7.40)

Auger复合率UAuger在某些情况下可能为负值,此时表示Auger产生机制。

各参数的默认值如下:

Unit Silicon GaAs Ge

72

第七章 GSS实现的漂移扩散模型 第七节 载流子迁移率

ETRAP eV 0 0 0

DIRECT cm3s−1 1.1e-14 7.2e-10 6.41e-14

AUGN cm6s−1 1.1e-30 1e-30 1e-30

AUGP cm6s−1 0.3e-30 1e-29 1e-30

TAUN0 s 1e-7 5e-9 1e-7

TAUP0 s 1e-7 3e-6 1e-7

NSRHN cm−3 5e16 5e17 5e16

NSRHP cm−3 5e16 5e17 5e16

第七节 载流子迁移率

对漂移扩散模型本身的研究在20世纪80年代就已经完成,后面大量的工作在于开发合适的迁移率模型,以提高模拟的精度,甚至可以扩大漂移扩散模型的应用范围。据报道,选取合适的迁移率

模型(尽管十分复杂)可以让DDM适用于0.25µm的CMOS器件模拟。

迁移率模型可以分为弱场模型、表面模型和强场模型。一个完整的迁移率模型一般由弱场迁移

率和表面迁移率按照式(5.65)综合起来,然后按照电场强度进行修正。

7.7.1 Analytic Mobility Model

在GSS软件中,Analytic Mobility Model[15][31]是默认的弱场迁移率模型,在模拟二极管时有足够的精度。这是一个根据实验数据拟合的经验公式,可以表示如下

µ0 = µmin +

µmax( T300

)α− µmin

1 +( T300

)β(Ntotal

Nre f

)γ (7.41)

其中,Ntotal = NA + ND为总的掺杂浓度,其余参数为

Unit Silicon: N-TYPE Silicon: P-TYPE GaAs: N-TYPE GaAs: P-TYPE Ge

µmin cm2 · (V · s)−1 55.24 49.70 0.0 0.0 Si

µmax cm2 · (V · s)−1 1429.23 479.37 8500.0 400.0 Si

α − -2.3 -2.2 -1.0 -2.1 Si

β − -3.8 -3.7 0.0 0.0 Si

γ − 0.73 0.70 0.436 0.395 Si

Nre f cm−3 1.072e17 1.606e17 1.69e17 2.75e17 Si

73

第七节 载流子迁移率 第七章 GSS实现的漂移扩散模型

在实际的GSS代码中,对于硅材料区域,将使用Caughey-Thomas模型[15]对Analytic MobilityModel进行修正:

µn =µ0,n1 + (µ0,nE//

Vsat

)21/2 (7.42)

µp =µ0,p

1 +(µ0,pE//

Vsat

) (7.43)

其中E//为电场在载流子运动方向投影的绝对值,Vsat是载流子饱和漂移速度

Vsat(T ) =2.4 × 107

1 + 0.8 · exp( T600

) (7.44)

对于GaAs材料,则默认采用另一种修正[32]:

un =

µ0,n +Vsat

E//

(E//

E0,N

)4

1 +(

E//

E0,N

)4 (7.45)

up =

µ0,p +Vsat

E//

(E//

E0,P

)4

1 +(

E//

E0,P

)4 (7.46)

其中Vsat(T ) = 11.3×106−1.2×104T是GaAs材料的载流子饱和漂移速度E0,N = 4.0×103V/cm,E0,P =

1.0 × 106V/cm为参考电场强度。这个模型考虑了GaAs材料的负微分迁移率特性,如图(5.4),随着电场的增强,载流子漂移速度µE//先达到一个最大值,然后随着电场上升而降低。

在针对GaAs材料MESFET器件的模拟中,上面的负微分迁移率特性可能会导致源漏IV曲线振荡的结果,为此Yeager[33]开发了另一种迁移率强场修正模型,它可以通过指定Hypertang关键字调用。参见相关的算例砷化镓MESFET管的数值模拟,第183页。

µ =Vsat

E//tanh

(µ0E//

Vsat

)(7.47)

由于硅材料的使用广泛,它的迁移率模型最为丰富而翔实。但是其他材料的迁移率模型比较缺

乏,在GSS软件中,只有Analytic模型支持所有的半导体材料。

7.7.2 Philips Mobility Model

GSS实现的另一个弱场迁移率是Philips Unified Mobility Model [16][17],这是针对硅材料三极管的数值模拟开发的一个经过精心校准的模型,包含了晶格散射、电离杂质散射和载流子-载流子散射的半经验公式。电子的迁移率可以表示为

µ−10,n = µ

−1Lattice,n + µ

−1D+A+p (7.48)

74

第七章 GSS实现的漂移扩散模型 第七节 载流子迁移率

其中,

µLattice,n = µmax

( T300

)−2.285(7.49)

µD+A+p = µ1,n

(Nsc,n

Nsc,e f f ,n

) (Nre f

Nsc,n

)α+ µ2,n

(n + p

Nsc,e f f ,n

)(7.50)

参数µ1,n与µ2,n可表示为

µ1,n =µ2

max

µmax − µmin

( T300

)3α−1.5(7.51)

µ2,n =µmax · µmin

µmax − µmin

(300T

)1.5

(7.52)

参数Nsc,n与Nsc,e f f ,n是散射杂质浓度与有效散射杂质浓度,可表示为

Nsc,n = N∗D + N∗A + p

Nsc,e f f ,n = N∗D + N∗AG (Pn) +p

F (Pn)

(7.53)

其中N∗D与N∗A是考虑了重掺杂修正后的有效掺杂浓度

N∗D = ND

1 +1

CD +

(ND,re f

ND

)2

N∗A = NA

1 +1

CA +

(NA,re f

NA

)2

(7.54)

而函数G (Pn)考虑了受主杂质对电子的散射,F (Pn)则考虑了空穴对电子的散射。

G (Pn) = 1 −0.892330.41372 + Pn

(m0

me

T300

)0.282270.19778 +0.005978Pn

(me

m0

T300

)0.721691.80618 (7.55)

F (Pn) =0.7643P0.6478

n + 2.2999 + 6.5502me

mh

P0.6478n + 2.3670 − 0.8552

me

mh

(7.56)

参数Pn考虑了电子受到的镜像力作用

Pn =

fcw

3.97 × 1013N−2/3sc,n

+fBH

1.36 × 1020

n + p

(me

m0

)−1 ( T

300

)2(7.57)

对于空穴,模型类似。Philips模型中参数值为:

75

第七节 载流子迁移率 第七章 GSS实现的漂移扩散模型

Unit Silicon: N-TYPE Silicon: P-TYPE

µmin cm2 · (V · s)−1 55.2 44.90

µmax cm2 · (V · s)−1 1417.0 470.5

α − 0.68 0.719

Nre f cm−3 9.68e16 2.23e17

CD - 0.21 0.21

CA - 0.5 0.5

ND,re f cm−3 4.0e20 4.0e20

NA,re f cm−3 7.2e20 7.2e20

me m0 1.0 -

mh m0 - 1.258

fcw - 2.459 2.459

fBH - 3.828 3.828

在实际的应用中,Philips模型与Analytic模型一样,进行了强场修正。它可以通过指定Philips关键字调用。

7.7.3 Lombardi表面迁移率模型

在半导体-绝缘体界面上,载流子的迁移率显著低于半导体内部的迁移率,如果不考虑这个因素,对于MOS管的源漏电流模拟结果会超出大约30%。GSS内置了一个Si − SiO2表面迁移率模

型Lombardi Surface Mobility Model [34],表达如下

µ−1s = µ

−1ac + µ

−1sr (7.58)

其中,µac代表了表面声学声子散射引起的迁移率下降,µsr代表了由于表面粗燥而引起的迁移率下

降。

µac,n =3.61 × 107

E⊥+

1.70 × 104N0.0233total( T

300

)3√E⊥

(7.59)

µac,n =1.51 × 107

E⊥+

4.18 × 103N0.0119total( T

300

)0.93√E⊥

(7.60)

µsr,n =3.58 × 1018

Eγn⊥

(7.61)

µsr,p =4.10 × 1015

Eγp⊥

(7.62)

76

第七章 GSS实现的漂移扩散模型 第七节 载流子迁移率

其中

γn= 2.58+6.85 × 10−21(n + p)

N0.0767total

(7.63)

γp= 2.18+7.82 × 10−21(n + p)

N0.123total

(7.64)

其中E⊥为电场在垂直载流子运动方向分量的绝对值,它的大小,代表了载流子距离界面的远近。注意,表面迁移率不单独使用,而是作为影响总迁移率的一个部分。

7.7.4 Lucent强场迁移率综合模型

GSS集成的Lucent Mobility Model [35]是一个综合考虑了体内迁移率与表面迁移率,并且加上了强场载流子饱和速度修正的模型。

Lucent模型由Philips迁移率模型和Lombardi表面迁移率模型组合而成:

µ0 =

[1µb+

1µac+

1µsr

]−1

其中µb是内部迁移率,采用Philips模型,µac与µsr参见Lombardi模型。然后,采用与Caughey-Thomas强场模型类似的方法对其进行修正:

µn =2µ0,n

1 +

1 + (2µ0,pE//

Vsat

)21/2 (7.65)

µp =µ0,p

1 +(µ0,pE//

Vsat

) (7.66)

Lucent模型虽然有结构复杂,计算量大的缺点,但是在MOS结构的模拟中,这是一个比较精确的综合模型。它可以通过指定Lucent关键字调用。

7.7.5 Hewlett-Packard强场迁移率综合模型

Hewlett-Packard迁移率模型[36]在MOS器件的模拟中可以取得与Lucent模型接近的结果,而计算量远小于后者,这是它的优势所在。Hewlett-Packard模型同样包含了强场修正与表面修正:

µn =µ⊥,n√√√√√√√√√√√√

1 +

(µ⊥,nE//

Vc,n

)2

µ⊥,nE//

Vc,n+ γn

+µ⊥,nE//

Vs,n

µp =µ⊥,p√√√√√√√√√√√√√1 +

(µ⊥,pE//

Vc,p

)2

µ⊥,pE//

Vc,p+ γp

+µ⊥,pE//

Vs,p

(7.67)

77

第七节 载流子迁移率 第七章 GSS实现的漂移扩散模型

其中,µ⊥,n与µ⊥,p的表示如下

µ⊥,n =

µ0,n if Ntotal > Nre f

mun0

1 +E⊥

Ere f ,n

µ⊥,p =

µ0,p if Ntotal > Nre f

mup0

1 +E⊥

Ere f ,p

(7.68)

Hewlett-Packard模型可以通过指定HP关键字调用。各参数值为:

Unit Silicon: N-TYPE Silicon: P-TYPE

mun0 cm2 · (V · s)−1 774.0 -

mup0 cm2 · (V · s)−1 - 250

Vc,n cm · s−1 4.9e6 -

Vc,p cm · s−1 - 2.928e6

Vs,n cm · s−1 1.036e7 -

Vs,p cm · s−1 - 1.2e7

γn - 8.8 -

γp - - 1.6

Nre f cm−3 5e17 5e17

Ere f ,n V · cm−1 5.5e5 -

Ere f ,p V · cm−1 - 2.78e5

7.7.6 适用于能量平衡方程的迁移率模型

必须要注意,前述迁移率模型都是在漂移扩散模型的框架下开发的,为了符合实际器件的结果,

它们包含了漂移扩散模型框架本身没有考虑的物理过程。比如,强场迁移率修正其实已经包含了热

载流子引起的扩散增强效应;表面迁移率除了考虑表面态带来的迁移率下降外,还考虑了MOS器件硅-二氧化硅界面二维量子阱效应带来的载流子密度降低效应。这些修正扩大了漂移扩散模型的应用范围,同时也导致了迁移率模型的复杂。

在更为精确的物理模型框架下,迁移率模型就可以简单一些了。因此,适用于漂移扩散模型的

迁移率模型并不一定适合能量平衡模型!事实上,目前已经有一些适合能量平衡方程的迁移率模型

提出[7][37],但是由于作者精力有限,这些模型尚未加入到GSS软件中。

78

第七章 GSS实现的漂移扩散模型 第八节 载流子生成率

第八节 载流子生成率

在半导体器件数值模拟中,碰撞电离率一般由下式表示:

GII = αn| Jn |

q+ αp

| Jp |

q(7.69)

其中αn和αp分别为电子和空穴的电离率。它们是与电场强度、材料、温度等有关的一个量。到目前

为止,还没有比较完善的电离率的解析表达式。

下面是Selberherr提出的一个常用的经验公式[38]:

αn,p = α∞n,p(T ) exp

−ECritn,p

E//

(7.70)

其中,E//为电场在电流方向的投影值,ECritn,p =

Eg

qλn,p,λn,p为电子、空穴与声子碰撞的平均自由程。

λn(T ) = λn,0 · tanh(

Eop

2kbT

)λp(T ) = λp,0 · tanh

(Eop

2kbT

) (7.71)

其中,Eop为光学声子的能量。可见当半导体禁带宽度增加时,载流子碰撞电离率降低,因此宽禁带

半导体的击穿电压要高于窄禁带半导体。

α∞n 与α∞p表示如下

α∞n = αn,0 + αn,1 · T + αn,2 · T 2

α∞p = αp,0 + αp,1 · T + αp,2 · T 2

该碰撞电离模型中使用的参数如下:

Unit Silicon GaAs Ge

λn,0 cm 1.04542 × 10−6 3.52724 × 10−6 6.88825 × 10−7

λp,0 cm 6.32079 × 10−7 3.67649 × 10−6 8.39505 × 10−7

Eop eV 6.3 × 10−2 3.5 × 10−2 3.7 × 10−2

αn,0 cm−1 7.030 × 105 2.994 × 105 1.55 × 107

αn,1 cm−1 · K−1 0.0 0.0 0.0

αn,2 cm−1 · K−2 0.0 0.0 0.0

αp,0 cm−1 1.528 × 106 2.215 × 105 1.00 × 107

αp,1 cm−1 · K−1 0.0 0.0 0.0

αp,2 cm−1 · K−2 0.0 0.0 0.0

除此之外,GSS中还为硅材料提供了一个Valdinoci模型,该模型适用的温度高达400度,可以较为准确的预测双极器件的热击穿。

79

第九节 考虑FERMI-DIRAC分布的漂移扩散模型 第七章 GSS实现的漂移扩散模型

Silicon: N-TYPE Silicon: P-TYPE Unit

A0N 4.3383 A0P 2.376 V

A1N −2.42 × 10−12 A1P 1.033 × 10−2 V · K−A2X

A2N 4.1233 A2P 1.0 -

B0N 0.235 B0P 0.17714 V

B1N 0.0 B1P −2.178 × 10−3 K−1

C0N 1.6831 × 104 C0P 0.0 V · cm−1

C1N 4.3796 C1P 9.47 × 10−3 V · cm−1 · K−C2X

C2N 1.0 C2P 2.4924 -

C3N 0.13005 C3P 0.0 V · cm−1 · K−2

D0N 1.233735 × 106 D0P 1.4043 × 106 V · cm−1

D1N 1.2039 × 103 D1P 2.9744 × 103 V · cm−1 · K−1

D2N 0.56703 D2P 1.4829 V · cm−1 · K−2

在Valdinoci模型中,电子的碰撞电离率可以表示为

αn =E//

an (T ) + bn (T ) exp(

dn (T )E// + cn (T )

) (7.72)

其中

an (T ) = A0N + A1N · T A2N

bn (T ) = B0N · exp (B1N · T )

cn(T ) = C0N + C1N · T C2N + C3N · T 2

dn(T ) = D0N + D1N · T + D2N · T 2

空穴的碰撞电离率与此完全类似。在该模型中使用的参数如表格所示。

除了碰撞电离之外,GSS还包含了由于带间隧道跃迁引起的载流子生成率GBB[13]

GBB = 3.5 × 1021 ·E2√Eg· exp

(−22.5 × 106 ·

E3/2g

E

)(7.73)

其中,E为电场的绝对值。隧道跃迁效应可以用于齐纳(Zener)二极管的反向特性模拟以及MOS软击穿的模拟。

第九节 考虑Fermi-Dirac分布的漂移扩散模型前文中已经交待,对于禁带宽度较窄或者掺杂浓度很高的的半导体材料,需要考虑Fermi-

Dirac分布。电子与空穴的分布不再满足式(3.17)与式(3.20)表示的Boltzmann分布,需要回到式(3.23)与

80

第七章 GSS实现的漂移扩散模型 第九节 考虑FERMI-DIRAC分布的漂移扩散模型

式(3.24)表示的Fermi分布.

为了考虑非平衡态情况,式(3.23)与式(3.24)中的ηn与ηp用准费米势表示:

ηn =EFn − Ec

kbT= F-1

1/2

(n

Nc

)(7.74)

ηp =Ev − EFp

kbT= F-1

1/2

(p

Nv

)(7.75)

其中,F-11/2为Feimi积分的反函数。Joyce与Dixon在1977年给出了它的一个近似表达式[39]. 它可以表

示为:

F−11/2 (x) =

log (x) + ax + bx2 + cx3 + dx4 x < 8.463(3√π

4x)3/4

−π2

6

1/2

otherwise(7.76)

其中

a = 0.35355339059327379

b = 0.0049500897298752622

c = 1.4838577128872821 × 10−4

d = 4.4256301190009895 × 10−6

在GSS实际代码中,ηn与ηp就是根据载流子浓度由Joyce-Dixon近似得到。

为了方便,引入下面两个参数[40]:

γn =F1/2 (ηn)exp (ηn)

(7.77)

γp =F1/2

(ηp

)exp

(ηp

) (7.78)

于是Fermi分布与Boltzmann分布下载流子可以用统一的式子表示:

n = Ncγn exp (ηn) (7.79)

p = Nvγp exp(ηp

)(7.80)

当γn = γp = 1时为Boltzmann分布,而考虑Fermi分布时γn与γp均小于1.

考虑漂移扩散模型的电流方程式(7.6),设载流子满足Fermi分布,并强制平衡态电流值为0,可以得到修正后的电流方程。此时爱因斯坦关系

Dn =kbT

qµn (7.81)

Dp =kbT

qµp (7.82)

需要修正为

Dn =kbT

qµn F1/2 (ηn) /F-1/2 (ηn) (7.83)

Dp =kbT

qµp F1/2

(ηp

)/F-1/2

(ηp

)(7.84)

81

第十节 DDM方程解的存在性和唯一性 第七章 GSS实现的漂移扩散模型

其中,F-1/2为负1/2阶的Fermi积分。相应的电子电流形式如下:

Jn = µn (qnEn + kbTλn∇n) (7.85)

这里

λn =F1/2 (ηn)F-1/2 (ηn)

(7.86)

从Fermi积分的第推关系ddη

Fν (η) = Fν−1 (η) (7.87)

可以得出关于电子的两个很有用的关系式

∂nηn (n) =

λn

n(7.88)

∂nγn (n) =

γn

n(1 − λn) (7.89)

借助这两个关系式,式(7.85)的电子电流可以写为下面的等价形式:

Jn = µn (qnEn + kbT∇n − nkbT∇ (ln γn)) (7.90)

上式最后一项是对爱因斯坦关系的修正,这里把它合并到电势项中,为后面的数值方法创造条件。

此时,式(7.6)形式保持不变,但是有效电场强度需要修正为:

En =1q∇Ec −

kbTq∇

(ln(Nc) − ln(T 3/2)

)−

kbTq∇ (ln γn) (7.91)

对于空穴,有完全类似的关系成立,有效电场强度修正为:

Ep =1q∇Ev +

kbTq∇

(ln(Nv) − ln(T 3/2)

)+

kbTq∇

(ln γp

)(7.92)

从上面的推导可以看出,考虑了Fermi分布时,漂移扩散模型形式上保持不变,仅仅在求有效电场强度时需要多考虑一项。后文提到的漂移扩散模型数值方法,同时适用于考虑Fermi分布与考虑Boltzmann分布的情况。此外,在欧姆边界处,考虑Fermi分布与考虑Boltzmann分布处理方式有所不同,请见欧姆接触电极,第117页。

第十节 DDM方程解的存在性和唯一性

从现实的观点看,某一个特定器件加上偏压后的状态应该是物理存在的。然而漂移扩散模型只

是一种经过简化的模型,现实上存在的物理问题可能因为数学模型的简化而导致无解或者出现(多个)伪解。

幸好,对于半导体DDM方程解的存在性已经有比较明确的结果。对于稳态问题,假设SHR复合,迁移率至少是位置的光滑函数,解是存在并有限的[41][42],但是考虑了雪崩情况的存在性定理还未见发表。对于瞬态问题,当复合率有限且与静电势无关,载流子迁移率是位置的光滑函数,电子、空

82

第七章 GSS实现的漂移扩散模型 第十节 DDM方程解的存在性和唯一性

穴迁移率之比为常数的情况下,任意长的时间内解存在[41][43]。虽然实际应用中参数的取值超出了上述限定,但是绝大多数情况下,解还是存在的。

由于某些器件即使在固定偏压下也会产生内部振荡,从数学上来看就是对于稳态半导体问题,

一般不能证明解的唯一性。比如雪崩产生以及与电场相关的载流子迁移率是多个稳态解的可能来

源。平衡态由于复合率为零,解的唯一性已经得到证明[44]。对于瞬态问题,很容易表示解的唯一性,只要初始数据满足方程,一般很容易指望解是唯一的。

实际的结果证实,某些器件击穿之后的IV曲线往往会出现拐点,还有共鸣隧道二极管[45]的IV特性本身就有拐点,此时一个电压将对应两个电流值,出现多解情况,稳态的数值方法在拐点会振荡

于两个解之间,从而导致分歧的出现,此时需要用连续性方法来克服分歧,如图(7.1)。然而瞬态解则不会有收敛性问题,图(7.2)显示了用瞬态方法计算得到的平均IV曲线图。

图 7.1 共鸣隧道二极管的稳态IV曲线 图 7.2 共鸣隧道二极管的瞬态IV曲线

83

第八章 半导体数值模拟的网格技术

用数值技术求解非线性偏微分方程,首先需要将非线性偏微分方程所描述的区域分割成有限个

子区域,从而把在整个区域上的非线性问题化简成为在单个子区域上的线性问题,最后完成线性方

程组的解。网格划分的功能就是将计算域分割成若干个子区域。

第一节 半导体物理模型与计算模型

由于GSS是二维半导体数值模拟软件,在对实际半导体器件进行数值模拟时,需要对器件模型进行必要的简化,得到可用于模拟的二维模型。从物理实体到计算模型,需要从复杂的真实器件结

构中抽象出具有决定器件性能的要素,舍弃那些不重要的因素。这个简化过程需要人的知识和经

验,一般由专家完成。对于用户而言,很多常见器件已经有计算模型存在,可以直接使用。

图(8.1)显示了大规模集成电路中的SOI-CMOS晶体管[46]。如果想使用二维半导体模拟软件对它进行数值模拟,需要取出其中的一个晶体管,将其简化为二维平面结构,得到类似于图(8.2)所示的结构后才能进行。

图 8.1 真实的SOI-CMOS晶体管 图 8.2 SOI-CMOS晶体管计算模型

84

第八章 半导体数值模拟的网格技术 第二节 半导体仿真对网格的要求

第二节 半导体仿真对网格的要求

在得到计算模型后,必须首先对其进行网格划分。网格划分的方式决定了能够采用的数值方

法,而网格划分的好坏直接关系到数值解是否收敛和收效速度的快慢1。

网格按照拓扑结构,可以分为结构化网格和非结构化网格。其中结构化网格可以映射为笛卡尔

坐标系下有序的网格线,如图(8.3)。对于结构化网格,好处是容易生成,可以使用简单而高效的有限差分方法,但它的最大缺点是网格不够灵活,对于复杂形状边界的拟合较差,并且加密网格往往

导致过多的节点出现。非结构网格允许格点无序的排列,在二维情况下一般是由三角形或者四边形

进行区域离散而得到,如图(8.4)。非结构网格可以很好的保持形状复杂的边界,对于局部加密也非常方便。但是非结构网格实现难度大大高于结构网格,只能使用有限体积或者有限元的数值算法,

同等节点数条件下对计算机内存的需求要高于有限差分方法。

图 8.3 结构化网格 图 8.4 非结构化网格

早期的二维半导体数值模拟软件仅支持简单的二极管、三极管等器件,这些器件往往可以用一

个矩形区域来描述,因此可以用结构化网格来离散整个区域。但随着半导体工艺的发展,MOS结构逐渐占据了主流。不幸的是,对于MOS结构而言,建立几何模型就不是那么轻松了。MOS结构由硅区域,二氧化硅绝缘层区域以及电极区域组成,而且由于工艺原因,在栅极二氧化硅边界,会形成

一个尖尖的所谓鸟嘴区。此时,结构化网格无力描述复杂的器件结构。另外,在半导体器件数值模

拟中,模拟的精确度和可靠性强烈地依赖于网格划分。显然,网格划分得越密,所得结果的精度就

越高,但是计算量将随着网格点数的平方而增长2。为解决这一矛盾,在需要网格点密集的地方可以

密集,在不需要密集的地方则要尽可能稀疏,以兼顾精度和计算效率两方面的要求。一般而言,在

电势和载流子梯度大的区域,需要划分较密的网格(见半导体常数,第50页),而在梯度很小或基本为零的区域划分成较疏的网格。因此,非结构网格因为其灵活的划分方式而在半导体数值模拟中得

到广泛的应用。几个著名的半导体数值模拟软件,如PISCES,MINIMOS等均采用了基于三角形单元的非结构网格,GSS同样采用三角形单元。

非结构网格的生成方法有很多,最为流行的是基于Delaunay的方法[47][48],这种方法对于复杂边界有很好的适应能力,可以生成高质量的网格。注意,Delaunay方法生成的网格是各向同性的,有些物理过程,比如热传导等扩散问题,本身没有方向性,因此适合这种类型的非结构网格。

半导体器件中电流有几乎固定的流向,网格节点如果能沿着流向排列,则可以减少方向不匹配

带来的分裂误差[49]。使用基于4叉平衡树技术生成的非结构网格能较好地满足上述需求[50],这种1见附录:如何克服收敛性问题2见附录:GSS对内存与CPU的要求。

85

第三节 GSS的网格数据结构 第八章 半导体数值模拟的网格技术

技术已经成为半导体模拟中网格生成的主流。4叉平衡树技术的缺点是对于复杂边界的适应性较差,常常在边界处产生质量很不好的三角形单元。

图(8.5)与图(8.6)显示了基于Delaunay方法的SGFramework软件与基于4叉平衡树方法的MEDICI软件对NMOS晶体管模型划分的网格。

GSS软件内置的网格生成器Triangle[51]基于Delaunay方法,因此生成的网格本质上是各项同性的,但是借助辅助网格线,可以让格点排列大致有序,得到介于两者之间的网格,参见后文的例子。

图 8.5 各向同性的非结构网格 图 8.6 基于4叉平衡树的非结构网格

第三节 GSS的网格数据结构

非结构网格需要良好的数据结构来存储与管理,才能发挥应有的作用。在整个GSS软件的开发过程中,为了得到高效健壮的内部网格函数,作者花费了很大的精力用于设计网格数据结构与算

法。

从网格生成器得到划分好的三角形网格后,为了实现有限体积法,GSS还从三角形网格出发,计算了Voronoi网格。Voronoi单元是有限体积法的控制体单元,它是由三角形各边的垂直平分线相交而形成的区域。三角形单元与Voronoi单元相互交错,如图(8.7)所示。三角形各边垂直平分线的交点就是三角形外接圆圆心,对于锐角或直角三角形,交点在三角形内部或边上,但是钝角三角形的

外接圆圆心却在三角形外部,如图(8.8)中的三角形A、B和C。此时必须设圆心到钝角对应边的距离为负值,如图(8.10)的d3,以保证Voronoi单元与三角形单元相容。另外,如果三角形出现钝角或者某个锐角特别小,也会造成较大误差,应该尽力避免。GSS内置的网格生成器性能优秀,可以保证不出现面向边界的钝角三角形,以及保证生成三角形的最小角大于20。基于4叉平衡树技术生成的非结构网格在边界附近可能生成大量的钝角三角形,影响数值模拟的精度。

GSS网格的拓扑结构主要由点、三角形和Voronoi单元构成。点是网格的离散中心,包含了坐标与边界的编号。

86

第八章 半导体数值模拟的网格技术 第三节 GSS的网格数据结构

图 8.7 Voronoi单元与三角形的双重网格 图 8.8 含有钝角三角形的Voronoi单元

图 8.9 三角形单元 图 8.10 钝角三角形单元

1 class Node // node

2

3 public:

4 double x,y; // x and y coordinate

5 int bc_index; // the index to boundary of the node

6 int zone_index; // the zone index;

7 ;

三角形单元数据包括顶点的编号,三条边的长度,三个角的大小,圆心的位置,圆心到各边的距离,

三角形面积以及边界条件等。

1 class Tri // triangle

2

3 public:

4 int node[3]; // three nodes, local index

5 double edge_len[3]; // the length of 3 edges: a,b and c

6 double angle[3]; // the degree of 3 angles: A, B and C

7 double xc,yc; // the location of circle center

8 double d[3]; // the distance from circle center to 3 edges: da, db, dc

87

第三节 GSS的网格数据结构 第八章 半导体数值模拟的网格技术

9 double s[3]; // partial area of each region separated by da, db and dc

10 int bc[3]; // the bc index of 3 edge

11 double area; // the area of triangle

12 int zone_index; // the zone index

13 ;

Voronoi单元数据包括中心点的坐标,节点的邻接表,单元边界的长度,节点到邻近节点的距离,单元的面积等等。

1 class VoronoiCell // VoronoiCell

2

3 public:

4 double x,y; // cell center

5 int nb_num; // the number of neighbors

6 int *nb_array; // the index of neighbor nodes

7 int *inb_array; // inverse index of neighbor nodes

8 double *elen; // the array contains the length of cell’e boundary edge

9 double *ilen; // the array contains the distance to it’s neighbor nodes

10 double *angle; // the angle of it’s neighbor to horizontal line

11 double area; // the area of cell

12 int *celledge; // the cell’s boundary edge index array

13 int bc_index; // the index to boundary of the node

14 ;

得到网格的拓扑结构之后,就可以在网格上进行偏微分方程离散了。

虽然非结构网格的节点是无序的,即交换两个节点的编号并不会影响网格的拓扑结构,但是合

理的编号可以减少计算矩阵的带宽。矩阵带宽的减小,对于LU分解方法来说可以降低需要的非零数据填入量,对于CG类迭代算法则可以提高ILU预处理的效率,从而加速方程组的求解。GSS使用广度优先搜索算法来重新标记格点的编号,重新编号之后,矩阵的带宽大大减小。图(8.11)与图(8.12)分别显示了对二极管的数值模拟,第159页时形成的矩阵带宽及其优化后的带宽。

下面是广度优先搜索算法的基本步骤:

1. 计算网格的拓扑结构,初始化队列,清空格点的访问标记

2. 将最左下角的格点编号为0,插入队列,设置它已被访问

3. 当(队列非空)

弹出队列前部格点作为当前格点,编号加1

寻找当前格点的邻近格点

如果(邻近格点未曾访问)

标记该点已经访问过,插入队列尾部

88

第八章 半导体数值模拟的网格技术 第四节 微分算子的有限体积离散

4. 更新所有格点的索引

图 8.11 原始的矩阵带宽 图 8.12 重新编号之后的矩阵带宽

第四节 微分算子的有限体积离散

8.4.1 标量场的梯度

设有标量Φ定义在格点上,在图(8.13)的网格中离散∇Φ。一般情况下,数值方法只需要计算沿着三角形棱边的梯度,该梯度定义在棱边的中点。

∂Φ

∂r

∣∣∣∣∣∣m,n=Φm − Φn

|rm − rn|(8.1)

有些情况下,需要得到格点处的∇Φ,比如当Φ表示电势时,则格点处的电场为E = −∇Φ。其中∇Φ可以用Green-Gauss公式给出,也可以用最小二乘法得到。

从Green-Gauss公式出发,在控制体V内的梯度平均值可以表示为

Φx =1∆V

∫∆VΦxdV =

1∆V

∮Φdy (8.2)

Φy =1∆V

∫∆VΦydV =

1∆V

∮Φdx (8.3)

其中,∆V是控制体体积,如图(8.14)。环路积分可以离散为

Φx =1∆V

N∑m=1

Φn + Φm

2∆ynm (8.4)

89

第四节 微分算子的有限体积离散 第八章 半导体数值模拟的网格技术

图 8.13 方向梯度的FVM离散 图 8.14 ∇Φ的FVM离散

Φy =−1∆V

N∑m=1

Φn + Φm

2∆xnm (8.5)

m表示格点n的邻接格点,∆xnm与∆ynm表示控制体边界在x和y方向的投影值。如果Φ在区域上是线性函数,那么Green-Gauss公式得到的梯度是精确的。

最小二乘法通过求下式的极小值来得到∇Φ:

N∑m=1

ω2nmE2

nm (8.6)

误差函数E可以表示为

E2nm =

(−dΦnm + Φxdxnm + Φydynm

)2(8.7)

其中dΦnm = Φm − Φn,dxnm = xm − xn,dynm = ym − yn,ω是权函数。式(8.6)达到极小值的条件是偏导数为0,即

∂N∑

m=1ω2

nmE2nm

∂Φx= 0 (8.8)

∂N∑

m=1ω2

nmE2nm

∂Φy= 0 (8.9)

通过简单的运算,上两式可以写成

anΦx + bnΦy = dn (8.10)

bnΦx + cnΦy = en (8.11)

90

第八章 半导体数值模拟的网格技术 第四节 微分算子的有限体积离散

其中

an =

N∑m=1

ω2nmdx2

nm (8.12)

bn =

N∑m=1

ω2nmdxnmdynm (8.13)

cn =

N∑m=1

ω2nmdy2

nm (8.14)

dn =

N∑m=1

ω2nmdΦnmdxnm (8.15)

en =

N∑m=1

ω2nmdΦnmdynm (8.16)

参数an、bn和cn仅与网格拓扑结构有关,可以事先算好。如果ωnm = 1,则求解Φx和Φy的方程的行列

式DET = ac − b2量级在O(dx4),可能出现病态的条件数,如果令ω2nm = 1/(dx2

nm + dy2nm),则DET的量

级为O(1),条件数就好多了。

得到∇Φ后,真正的沿三角形棱边的梯度可以定义如下,但是实际中很少用到。

∂Φ

∂r

∣∣∣∣∣∣m,n=

rm − rn

|rm − rn|∇Φ (8.17)

8.4.2 矢量场的散度

设对矢量场A求散度,则在图(8.15)中,在控制体∆V内A散度的平均值利用Gauss定理可以写成

∇ · A ≈1∆V

∫∫©∆S

A · dS (8.18)

将环路积分用环路求和离散得到

∇ · A ≈1∆V

∫∫©∆S

A · dS ≈1∆V

N∑m=1

Am,n · em,ndS (8.19)

其中,dS是控制体边界,em,n是边界的法向量,Am,n是矢量A在控制体边界上的值,一般而言,Am,n ,

(Am + An)/2,不同的问题需要采用不同的数值格式来构造Am,n。如果是计算流体力学问题,需要采

用很复杂的重构运算,比如Roe格式。而对于半导体问题,一般需要采用Scharfetter-Gummel离散格式。

特别的,如果矢量场A可以表示为标量场的梯度A = ∇Φ,则拉普拉斯算符∇2 = ∇ · ∇的离散可以

写为

∇ · ∇Φ ≈1∆V

N∑m=1

∇Φ

∣∣∣∣∣∣m,n· em,ndS ≈

1∆V

N∑m=1

∂Φ

∂r

∣∣∣∣∣∣m,n

dS (8.20)

91

第四节 微分算子的有限体积离散 第八章 半导体数值模拟的网格技术

图 8.15 散度的FVM离散 图 8.16 旋度的FVM离散

8.4.3 矢量场的旋度

设有矢量A定义在区域内,仅考虑二维问题,比如考虑二维TM模式电磁场的磁场强度H等情况,此时Az分量为0。如图(8.16),在控制体∆V内A的旋度可以离散为

∇ × A∣∣∣∣∣∣n· ez ≈

1∆V

∮∆L

A · dL ≈1∆V

N∑m=1

Am,n · e⊥,m,ndL (8.21)

其中,dL表示控制体边界,e⊥,m,n则是边界的切向量,Am,n为矢量A在边界上的值,同样可能需要采用复杂的重构技术。

92

第九章 漂移扩散模型的数值方法

第一节 变量的缩放

在半导体数值模拟中,变量的范围相差十分巨大。比如电势一般在几V,但是载流子密度一般在1018cm−3,如此巨大的差别,如果不经过处理,事实上不能将电场Poisson方程与电流方程进行耦合求解,因为计算机double类型浮点数能表示的精度只有最多16位有效数字,但是电势和载流子密度的差别已经超出此精度能表示的范围,电势的起伏将淹没在载流子巨大的数量内。在这种情况

下,需要对变量进行缩放。

虽然变量的无量纲化是达到变量缩放的常见手段,但是GSS还是选择了另一种思路。半导体模拟涉及的参数数量很多,这些参数一般都是有量纲的,对其进行无量纲化并不直观,也非常容易出

错,于是作者保留了量纲,采用一套自己的基本单位制来代替原来的单位。

物理量的单位很多,但是只要5个相互独立的基本单位就可以了,国际单位制(SI)选择了属于力学的长度、质量、时间,属于电学的电流强度和属于热学的温度,其他的作为导出单位。GSS则选择了长度、时间、电势、电量和温度作为基本单位,其他的作为导出单位。在GSS软件内部,依然存在例如cm,s这样表示单位的变量,但是它们的值则是自己设定的,如下表所示。

单位性质 单位 单位的设定值 注释

基本单位 cm max−1/3(Doping) 长度单位可以根据不同的器件弹性设定

基本单位 s 1012 以SI的皮秒作为基本时间单位

基本单位 V 1.0 电势的单位与SI相同

基本单位 C 1.0/1.602176462 × 10−19 设电子电量为1

基本单位 K 1.0/300 以SI的300K作为基本温度单位

导出单位 m 100cm

导出单位 µm 10−4cm

导出单位 J C · V

导出单位 kg J/m2 · s2 通过J = C · V = kg ·m2/s2得到

导出单位 eV 1.0 · V 电子电量为1

导出单位 A C/s

导出单位 mA 10−3A

这样,半导体控制方程以及参数在形式上不变,比如载流子密度仍然可以写成n = 1018cm−3,但

是通过选取max(Doping) = 1018cm−3,可以让n = 1.0。在GSS的材料参数数据库中,大量参数都得以

93

第二节 POISSON方程的二维有限体积解法 第九章 漂移扩散模型的数值方法

用自然的带量纲形式写出,提高了编程效率并减少了出错的可能。

第二节 Poisson方程的二维有限体积解法为循序渐进起见,在正式求解半导体DDM方程之前,首先介绍Poisson方程在二维非结构网格

上的有限体积方法。这里将求解如下方程

∇ · ε∇ψ = −ρ (9.1)

边界条件包括第一、第二、第三类边界条件以及不同物质的界面。

图 9.1 Poisson方程内点离散 图 9.2 Poisson方程边界点离散

设P0为内点,如图(9.1),P1 ∼ P6是和P0相邻的格点,m1 ∼ m6是三角形P0PiPi+1(设P7 = P1,下

同)的外接圆圆心,G0是由六边形m0m1 · · ·m6围成的控制体,在区域G0积分,得到"G0

∇ · ε∇ψ dV = −"G0

ρ dV (9.2)

利用Green公式,上式可以改写为 ∫∂G0

ε∇ψ · dS = −"G0

ρ dV (9.3)

∂G0是G0的边界,注意到∫∂G0

ε∇ψ · dS =6∑

i=1

∫mimi+1

ε∂ψ

∂ndS ≈

6∑i=1

mimi+1

P0Pi+1εi+1 [ψ (Pi+1) − ψ (P0)] (9.4)

其中,n是∂G0的外法向量,εi+1是ε在控制体边界mimi+1处的值,对于非均匀介质可以用线性插值得

εi+1 =ε(P0) + ε(Pi+1)

2(9.5)

94

第九章 漂移扩散模型的数值方法 第二节 POISSON方程的二维有限体积解法

一般而言,可以认为电荷密度ρ在控制体内变化不大,因此式(9.3)右端的面积分可以写为

"G0

ρ dV ≈ −ρV (G0) (9.6)

其中,V (G0)是控制体G0的面积。

于是,点P0的有限体积离散方程可以写为

6∑i=1

mimi+1

P0Pi+1εi+1 [ψ (Pi+1) − ψ (P0)] = −ρV (G0) (9.7)

然后需要建立边界点的有限体积离散方程,如图(9.2),设P0为边界点,此时的控制体

为P0m1m2m3m4m5P0。如果在P0处为第一类边界条件,例如ψ = ψ0,则强制

ψ (P0) = ψ0 (9.8)

即可。如果在P0处为第二或第三类边界条件,例如

∂ψ

∂n+ kψ = r (9.9)

则需要回到Green公式。此时与式(9.3)类似,边界上的Poisson方程在控制体G0的离散可以写为∫∂G0

ε∂ψ

∂ndS =

4∑i=1

∫mimi+1

εi+1∂ψ

∂ndS +

∫P0m1

ε∂ψ

∂ndS +

∫P0m5

ε∂ψ

∂ndS (9.10)

其中,上式右端第一项可以按照式(9.4)离散,对于后两项,则需要从边界条件式(9.9)出发,消去法向导数,得到仅含ψ的积分。假设k、r为常数,ψ在P0m1和P0m5上线性分布,则可以用梯形公式计算相

应的积分,于是有

ψ(m1) =ψ(P0) + ψ(P1)

2

ψ(m5) =ψ(P0) + ψ(P4)

2

(9.11)

则沿着P0m1的积分可以写为∫P0m1

ε∂ψ

∂ndS =

∫P0m1

ε(r − kψ) dS

= P0m1ε(P0)[r − k

ψ (P0) + ψ (m1)2

]= P0m1ε(P0)

[r − k

3ψ (P0) + ψ (P1)4

] (9.12)

同理 ∫P0m5

ε∂ψ

∂ndS = P0m5ε(P0)

[r − k

3ψ (P0) + ψ (P4)4

](9.13)

将式(9.12)与式(9.13)带入式(9.10),就得到边界点的有限体积离散方程。

95

第二节 POISSON方程的二维有限体积解法 第九章 漂移扩散模型的数值方法

特别的,如果是Neumann类型的边界条件:

∂ψ

∂n= 0 (9.14)

显然,边界不需要加以处理。在程序设计时,这种边界点可以与内点归为一类。

如果遇到两种物质的界面,如图(9.3),P0、P1、P4是界面上的点,P0的控制体跨越两种物

质。s1、s2分别为P0P1和P0P4的中点。边界s1s2将P0的控制体分成GI与GII两个部分,分别在这两个

图 9.3 界面上Poisson方程的离散

子控制体上积分得到 ∫s1m1m2m3 s2

ε∂ψ

∂ndS +

∫s2s1

εI∂ψ

∂ndS = −

"GI

ρdV (9.15)∫s2m4m5m6 s1

ε∂ψ

∂ndS +

∫s1s2

εII∂ψ

∂ndS = −

"GII

ρdV (9.16)

上面两个环路积分中,沿着介质分界面积了两次,认为介电常数ε分别取区域GI与GII的值。将上面

两式相加,并且利用界面条件

εI∂ψ

∂n− εII

∂ψ

∂n= σ (9.17)

得到 ∫∂GI+∂GII

ε∂ψ

∂ndS+σs1s2 = −

"GI+GII

ρdV (9.18)

接下来,就可以按照式(9.4)进行离散,离散过程中注意ε要取控制体边界中点处的值,对于s1、s2处,ε为

ε = 0.5(εI + εII) (9.19)

显然,在三角形网格上对于Poisson方程的离散十分方便,边界条件和物质界面的处理更为灵活。只要网格支持函数设计得好,离散过程甚至比有限差分方法更加简单。

所有内点、边界点和界面点的有限体积离散方程组成封闭的线性代数方程组,其系数矩阵是带

状稀疏矩阵。对于矩阵的数值求解,参见后继章节。

96

第九章 漂移扩散模型的数值方法 第三节 一维DDM方程组的数值方法

第三节 一维DDM方程组的数值方法

本节将介绍DDM方程组的一维离散方法。虽然是一维情况,很多相应的概念都能够照搬到高维应用中。设ψ, n, p为基本变量,半导体材料是单一的,且内部温度均匀恒定,将DDM方程组按一维情况写出:

∂2ψ

∂x2 = −qε

(ND − NA + p − n) (9.20)

∂n∂t=

1q∂Jn

∂x− R (9.21)

∂p∂t=−1q∂Jp

∂x− R (9.22)

Jn = qµn

(−n

∂ψ

∂x+ VT

∂n∂x

)(9.23)

Jp = qµp

(−p

∂ψ

∂x− VT

∂p∂x

)(9.24)

其中VT =kbT

q为热电压常数。

用N个节点将计算域均匀划分为N − 1个子区域,网格间距为∆x,如图(9.4)。为简单起见,这里

图 9.4 一维离散的网格点

只考虑稳态问题,即时间偏导项为0。在网格点 i将 Poisson方程按三点中心差分离散,连续性方程则用 i − 1/2与 i + 1/2的半点电流值离散,得到:

ψi−1 − 2ψi + ψi+1

∆2x= −

(ND − NA + pi − ni) (9.25)

1q

Jn,i+1/2 − Jn,i−1/2

∆x− Ri = 0 (9.26)

−1q

Jp,i+1/2 − Jp,i−1/2

∆x− Ri = 0 (9.27)

其中Ri = R(ni, pi)是仅包含载流子密度的代数方程。一维 Poisson方程的三点中心差分离散是很经典的算法,这里略过。可见DDM数值算法的关键在于得到半点 i + 1/2与 i − 1/2处的电流值。

以式(9.23)电子电流方程在 i + 1/2处的离散为例

Jn,i+1/2 = qµi+1/2

(−ni+1/2

ψi+1 − ψi

∆x+ VT∇n

∣∣∣∣i+1/2

)(9.28)

97

第三节 一维DDM方程组的数值方法 第九章 漂移扩散模型的数值方法

一个直观的线性差分方案可以写成

ni+1/2 =ni + ni+1

2(9.29)

∇n∣∣∣∣i+1/2

=ni+1 − ni

∆x(9.30)

可惜的是,数值实验表明,这个简单的离散格式限制性非常强,必须在由电场引起的漂移电流远小

于扩散电流的情况下才能保持稳定。换句话说,这个格式只能用于很小的网格间距、较弱的电场强

度及较低的载流子浓度的情况。

为了能够在漂移电流很强的情况下也能保持数值稳定,常常使用 Scharfetter-Gummel格式来离散半导体电流方程,这个格式可以很自然的导出。从[xi, xi+1]区间内电子的电流方程

Jn = qµ(n (x) E + VT

dndx

)(9.31)

出发,其中E = −ψi+1 − ψi

∆x为电场强度。假设在区间内除了载流子密度以外的量,包括电场强度、载

流子迁移率以及电流密度均保持恒定,将上式改写为有关电子密度的微分方程:

dndx+

EVT

n = C0 (9.32)

注意,此处的电流Jn为未知量,已经合并到常数C0中。求解这个微分方程,得到

n(x) =VT

EC0 +C1 exp

(−

EVT

x)

(9.33)

其中C0与C1为待定系数。将电子密度在节点 i与 i + 1的值作为边界条件代入上式,解出C0与C1后,

得到电子密度在[xi, xi+1]之间的分布

n(x) = ni[1 − g(x)

]+ ni+1g(x) (9.34)

其中

g(x) =1 − exp

(ψi+1 − ψi

VT

x − xi

∆x

)1 − exp

(ψi+1 − ψi

VT

) (9.35)

有了载流子密度的分布,就可以求得网格中点 i + 1/2处的载流子密度与载流子密度梯度,进而带入式(9.28)得到该点的电流。

使用同样的方法,可以得到空穴电流在区间[xi, xi+1]中点的表达式。事实上,还可以用更简洁的类比方法。注意空穴电流方程(9.24),使用如下的代换

Jn → Jp

n→ p

µn → µp

kb → −kb

98

第九章 漂移扩散模型的数值方法 第三节 一维DDM方程组的数值方法

则代换后的方程与电子电流方程(9.23)形式上一致。因此只需对点 i + 1/2处的电子电流方程进行代换即可得到该点的空穴电流方程。

为了简洁起见,引入两个辅助函数,它们的函数图形如图(9.5)及图(9.6)所示,

aux1(x) =x

sinh(x)(9.36)

aux2(x) =1

1 + ex (9.37)

图 9.5 aux1(x)函数 图 9.6 aux2(x)函数

半格点的载流子密度、载流子梯度和电流可以用这两个辅助函数表示为

n|mid = ni aux2(ψi − ψi+1

2VT

)+ ni+1 aux2(

ψi+1 − ψi

2VT) (9.38)

∇n∣∣∣∣mid= aux1

(ψi − ψi+1

2VT

)ni+1 − ni

∆x(9.39)

Jn|mid = qµn|mid

(n|mid

ψi − ψi+1

∆x+ VT∇n

∣∣∣∣mid

)(9.40)

p|mid = pi aux2(ψi+1 − ψi

2VT

)+ pi+1 aux2

(ψi − ψi+1

2VT

)(9.41)

∇p∣∣∣∣mid= aux1

(ψi − ψi+1

2VT

)pi+1 − pi

∆x(9.42)

Jp|mid = qµp|mid

(p|mid

ψi − ψi+1

∆x− VT∇p

∣∣∣∣mid

)(9.43)

(9.44)

如果不需要得到半格点载流子密度等中间变量,电流也可以用下面等价的式子直接表示

Jn|mid =qVTµn

∆x

[ni+1 B

(ψi+1 − ψi

VT

)− ni B

(ψi − ψi+1

VT

)](9.45)

Jp|mid =qVTµp

∆x

[pi B

(ψi+1 − ψi

VT

)− pi+1 B

(ψi − ψi+1

VT

)](9.46)

99

第四节 对流扩散问题的再讨论 第九章 漂移扩散模型的数值方法

其中B (x) =x

ex − 1是 Bernouli函数。

在上面的离散中,需要得到半格点处迁移率的值。一般而言,弱场迁移率可以表示为

µ = µ(NA,ND, n, p,T ) (9.47)

由于在半格点处NA,ND的值采用线性插值误差太大,一般不采用在半格点直接计算迁移率的方案,

而是采用格点处的迁移率插值的方案。比如可以采用线性插值

µ|mid =µi + µi+1

2(9.48)

更符合物理实际一些,认为正比于迁移率倒数的驰豫时间在相邻格点间是线性函数,这导致下面的

插值方法

µ−1|mid =

12

(1µi+

1µi+1

)(9.49)

两种插值方法在实际应用中得到的结果差别不大,因此可以选用计算简单的线性插值方法。得到

半格点处弱场迁移率后,再利用半格点的电场强度进行强场修正。最后,将电流的离散格式代入

式(9.26)与式(9.27),就完成DDM方程组的离散。

第四节 对流扩散问题的再讨论

漂移扩散模型的电流方程是典型的对流扩散型方程,从“漂移扩散模型”本身就可见一斑。这

种类型的方程既有对流项,也有扩散项,在不同的情况下可能对流占优,表现得像流体,也可能扩

散占优,表现得像传热。

9.4.1 对流问题的数值格式

对流问题的数值模拟,一向是非常困难的课题。在教科书上,一般用一阶线性波动方程作为对

流问题的模型方程:∂u∂t+ a

∂u∂x= 0 (9.50)

其中a > 0为波的传播速度。对于线性波动方程,最简单的格式是一阶迎风格式,它来自于朴素的想法:既然波是由上游传过来的,差分格式自然要利用上游的信息。

un+1i − un

i

∆t+ a

uni − un

i−1

∆x= 0 (9.51)

当a∆t∆x6 1时,这是一个稳定的格式。但是,一阶迎风格式的数值耗散太过严重,实际应用中

可能超过了真实物理过程的耗散,以致得不到正确的物理图象。图(9.7)显示了初始三角形波采

用a∆t∆x= 0.5的计算结果,仅仅推进了20步,峰值就差不多下降了一半。因为一阶迎风格式的数值耗

散性太强,所以国际上一般不接受由它计算得到的数值结果。另一个一阶的Lax-Friedrichs格式:

un+1i − 1

2

(un

i+1 + uni−1

)∆t

+ aun

i+1 − uni−1

∆x= 0 (9.52)

100

第九章 漂移扩散模型的数值方法 第四节 对流扩散问题的再讨论

其数值耗散性甚至还要更加严重一点。

所有经典的二阶格式,包括二阶Lax-Wendroff格式、二阶迎风格式和Bean-Warming格式,虽然数值耗散有所减弱,但是无一避免的受到数值色散问题的困扰,表现在数值解梯度大的地方产生寄

生或者虚假的振荡。二阶迎风格式

un+1i − un

i

∆t+ a

3uni − 4un

i−1 + uni−2

2∆x= 0 (9.53)

计算得到的大梯度区域的振荡如图(9.8)所示。

图 9.7 一阶迎风格式的耗散效果 图 9.8 二阶迎风格式的色散效果

数值耗散(也称数值粘性)的概念,在上世纪50年代起就已经得到广泛的认识。到上世纪60年代后期,Hirt提出了启发性的判稳理论,利用差分格式偶数阶数值耗散余项的正负,来判断差分格式的稳定[52]。一个稳定的数值格式,必须是耗散的,比如各种迎风格式,或者是中性耗散的,比如蛙跳格式。耗散的格式在稳定数值解的同时会虚假的消耗体系的能量,抹平波峰与波谷;而中性耗散

指数值格式本身不会耗散体系的能量。这两种类型的格式有各自的应用场合。耗散型格式在流体中

得到广泛的应用,由于流体本身就是有粘性的,只要附加的数值粘性控制在一定程度,影响就可以

忽略。中性格式在电磁场计算中比较有用,比如FDTD方法就是采用蛙跳格式[53],因为Maxwell方程组是线性、无粘且单一波速的波动方程,数值粘性的引入相当于求解有耗介质的电磁传播问题,

在很多时候是不可容忍的。

随着计算流体力学的发展,所采用的格式精度越来越高,数值耗散越来越弱,计算流体

专家Harten在1983年发表的论文第一次提出了”high resolution”的口号,同时提出了著名的TVD格式[54][55]。但是很快就发现了数值耗散减弱后,原本被掩盖的数值色散带来的麻烦。数值色散一般不会导致计算的失败(但也有可能引起非线性不稳定性),但是它会影响物理波速。由于微分方程的

准确解可以看成不同波长的子波迭加而成(参考傅利叶变换),而数值解由于色散误差,让这些波的

波速发生了变化,当遇到大梯度、大变形、边界等等就会发生分离、错位、虚假振荡等等。后来人们

意识到一个好的计算流体力学数值格式除了耗散必须微弱而适中外,色散也必须尽可能的微弱,标

准是数值耗散能够抑制数值色散带来的不良影响。因此,Harten在1986的口号改为”high resolution,none oscillation”,提出ENO(essentially non-oscillatory)格式[56][57],来减弱或者消除数值色散引起的寄生振荡和非线性不稳定性。中性耗散的数值格式本质上无力抑制数值色散带来的振荡,但是在电

101

第四节 对流扩散问题的再讨论 第九章 漂移扩散模型的数值方法

磁学中,波速是固定的光速c,虽然蛙跳格式会造成光速大小的偏离,但是这种偏离对所有波速是一致的,因此不会导致数值结果的振荡,当然一些数值色散性更小的格式也在不断的提出[58]。

在讨论了数值耗散与数值色散之后,再回到对流问题。显然,我们需要一个”high resolution,none oscillation”的方法。这里的”high resolution”至少指二阶精度,而且它还不能出现振荡。我们可以在计算流体力学中找到合适的方案:TVD或者ENO格式。而SG格式给出了另一个解决方案:中心差分加人工粘性项(见下文)。图(9.9)是初值在x = 20处的间断面,以a = 1的速度向右传播,计算t = 30时的波形,理论解是波不变的传播到x = 50处。图(9.10)给出了TVD格式与二阶迎风格式的对比,可以看出,TVD格式耗散较小而且没有出现振荡现象。

图 9.9 间断面 图 9.10 TVD格式与二阶迎风格式的对比

9.4.2 扩散问题的数值格式

扩散问题的模型方程则是二阶热传导方程,对于向四面八方传播的问题,采用对称的中心差分

也是一个很自然的选择。对于扩散问题,一般都认为比较好解决,因为它的物理本质就是耗散的。

采用中心差分格式离散二阶导数项既有二阶精度也有足够的数值耗散,因此数值离散上并没有困

难。

扩散问题最大的麻烦在于满足稳定性条件的时间步长一般都很小,很多情况下需要隐式求解。

考虑模型方程

∂u∂t= b

∂2u∂x2 (9.54)

的中心差分格式

un+1i − un

i

∆t= b

uni+1 − 2un

i + uni−1

∆x2 (9.55)

稳定性条件为b∆t∆x2 6

12,在∆x比较小的情况下时间步长的限制很强。所以,扩散问题往往采用隐式

格式,比如时空二阶精度的Crank-Nicolson格式

un+1i − un

i

∆t=

b2

uni+1 − 2un

i + uni−1

∆x2 +un+1

i+1 − 2un+1i + un+1

i−1

∆x2

(9.56)

102

第九章 漂移扩散模型的数值方法 第四节 对流扩散问题的再讨论

在对流-扩散的混合问题中,往往扩散项对时间步长的限制大大强于对流项。早期常常使用半隐式格式,即扩散项用隐式格式,对流项用显式格式。不过随着计算方法的进步,目前越来越倾向于全部

采用绝对稳定的全隐格式。

9.4.3 Scharfetter-Gummel格式的本质

在上一节中,介绍了著名的 Scharfetter-Gummel格式,简称SG格式,这是在对流扩散问题中用的比较多的一种格式,但决不是唯一的格式,只是SG格式本身的特点决定了它在半导体与等离子体放电模拟中被广泛采用。将电流离散格式重写如下

Jn|mid =qVTµn

∆x

[ni+1 B

(ψi+1 − ψi

Vt

)− ni B

(ψi − ψi+1

Vt

)](9.57)

注意到

limx→0

B (x) = limx→0

xex − 1

= 1 (9.58)

limx→+∞

B (x) = limx→+∞

xex − 1

= 0 (9.59)

limx→−∞

B (x) = limx→−∞

xee − 1

∼ −x (9.60)

当ψi = ψi+1时,电场为0,不存在漂移运动,电流以扩散方式存在。相应的SG格式为

Jn|mid =qVTµn

∆x(ni+1 − ni) (9.61)

这是一个三点中心差分的离散格式(只有一侧),适合离散扩散问题。

而当ψi ψi+1时,扩散可以忽略,极限情况下SG格式为

Jn|mid = qµEni+1 (9.62)

反之,当ψi ψi+1时,有

Jn|mid = qµEni (9.63)

显然,式(9.62)与式(9.63)显示了电流是由低电势处的电子在电场作用下漂移而形成的,这里体现了SG格式的迎风性。

从另一方面看,权函数g(x)表示了两个节点电子密度对中间电子密度的贡献,图(9.11)显示了不同∆ψ/VT下的归一化g(x)函数曲线,可以发现,当∆ψ/VT较大时,中点处电子密度更多的由上风处决

定。

更进一步可以证明,SG格式可以写成中心差分加上一个人工扩散项的形式。设a = qD,b =

−qEkbT,电流方程可以写为

j = −abn + adndx

(9.64)

此时连续性方程依然为d jdx= R在均匀网格上中心离散这个方程,设a、b与R都为常数,得到(1 −

b∆x2

)ni+1 − 2ni +

(1 +

b∆x2

)ni−1 = a−1∆x2R (9.65)

103

第四节 对流扩散问题的再讨论 第九章 漂移扩散模型的数值方法

图 9.11 g(x)函数

引入两端的边界条件后,上述三对角方程组可以用追赶法求得通解:

ni = A + B

(1 +

b∆x2

)i

(1 −

b∆x2

)i −∆xRab

i (9.66)

其中A与B为边界条件决定的常数。显然,如果Reynolds数b∆x/2 > 1,当下标i从奇数变为偶数或者反过来,ni的值都会发生振荡。解决的方法之一是引进人工扩散项Da,此时电流方程离散成为

j1+1/2 =

(−abn + a

dndx+ Da

dndx

) ∣∣∣∣i+1/2

= −ab(ni + ni+1

2

)+ a

(ni+1 − ni

∆x

)+ Da

(ni+1 − ni

∆x

) (9.67)

加入人工扩散项的目的是让新的Reynolds数

b∆x2 (1 + Da/a)

(9.68)

保持小于1。一个合适的选择是Da = a

(αi+1/2 cothαi+1/2 − 1

)(9.69)

其中

αi+1/2 =ψi+1 − ψi

2VT(9.70)

此时的离散方程可以写成

B(2αi+1/2

)ni+1 −

[B

(2αi−1/2

)+ B

(−2αi+1/2

)]ni + B

(−2αi−1/2

)ni−1 = a−1∆x2Ri (9.71)

104

第九章 漂移扩散模型的数值方法 第五节 GSS第一层DDM求解器

B (x)仍然是 Bernouli函数。这就是SG离散格式。

SG格式引入的人工扩散项在一维计算中问题不大,因为扩散方向与漂移方向是一致的。但是在高维情况,扩散是向四面八方进行的,于是在漂移方向之外引发了虚假的扩散效应,称为侧风扩散。

由于漂移越强,引入的人工扩散越多,在MOS管的模拟中电流主要沿着沟道传输,此时侧风效应导致的垂直于沟道的扩散电流可能引起较大的数值误差。

9.4.4 设计自己的格式

到了这里,SG格式也就没有什么神秘了,它可以算是一个自适应的对流扩散格式。也许有人就会想到构造自己的格式代替SG。比如式(9.61)-式(9.63)就可以用在DDM离散中。不过,由于SG是中心差分的,它的格式精度有二阶。上面的扩散项中心差分是二阶的,对流项的迎风离散却只有一阶

精度。为了提高对流项的离散精度,有人就去迎风格式大本营–计算流体力学–中去找高级迎风格式。在理论上,这样做并不错,计算流体力学中有很多高精度格式如TVD,ENO等,但麻烦是在后面。后文会提到,DDM离散后构成非线性方程组,求解非线性方程组需要牛顿迭代,因此需要构造非线性方程组的 Jacobian矩阵。SG格式比较简单,Jacobian矩阵可以精确的算出来,但是对于高级迎风格式,由于采用了复杂的重构与限制器技术,几乎没有办法构造精确的 Jacobian矩阵,只能用近似矩阵代替(计算流体力学也为同样的问题苦恼)。使用近似矩阵会导致牛顿迭代的收敛速度降

为线性收敛,在某些不利的情况下甚至会出现发散的结果。高精度格式对于实验室应用,比如寻找

新算法发文章而言并没有问题,但是GSS作为一个通用的半导体模拟软件,对计算速度与收敛性都有要求,因此还是采用了简单有效的SG格式。

第五节 GSS第一层DDM求解器

本节将介绍GSS软件内置的二维基本漂移扩散模型的数值离散方法。在前面提到的一维DDM算法和二维Poisson方程离散方法的基础上,二维DDM离散方法已经呼之欲出。

为了描述的方便,引入解向量Q,通量F与源S

Q =

0

n

p

,F =

ε∇ψ

1q

Jn

−1q

Jp

,S =

ρ

G − R

G − R

将式(7.9)基本DDM方程组写为紧凑形式:

∂Q∂t= ∇ · F + S (9.72)

在类似于图(9.1)的控制体上积分,并采用Green定理得到∫Ωi

∂Qi

∂tdV =

∑e

Fele +∫Ωi

SidV (9.73)

105

第五节 GSS第一层DDM求解器 第九章 漂移扩散模型的数值方法

其中Ωi为属于格点i的控制体,Fe为通量函数F在控制体边界的取值。

对于式(9.73)左端第一项,认为电子、空穴密度在一个控制体内是恒定值,这虽然是个粗糙的近似,但是目前还没有其他更好的方法。此时,积分可以写成∫

Ωi

∂Qi

∂tdV =

∂Qi

∂t∆VΩi (9.74)

其中,∆VΩi为控制体i的面积。对时间导数的离散将在后文阐述,这里先认为是稳态问题,对时间偏导为零。

暂时不考虑载流子的生成,同时认为复合率在控制体内保持恒定,则源项S的积分也可以写成∫Ωi

SidV = Si∆VΩi (9.75)

因此,二维DDM离散最为困难的是控制体界面上通量函数Fe的取值。由于Poisson方程的离散方式前文已经描述过,这里不再重复,这里主要介绍载流子连续性方程的通量函数,也就是电子电

流密度和空穴电流密度的离散方法。

虽然GSS采用有限体积法,但是在实际的代码中,控制体通量是通过扫描所有的三角形单元来得到[59]。这是由于GSS实现了双重嵌套网格,如图(8.7)所示,三角形的顶点也是控制体的中心,扫描所有的三角形相当于扫描所有的控制体。后文会提到,这样做的好处是在三角形单元内计算电场

与电流远比控制体内方便。

图 9.12 三角形单元

下面的电流密度可以指电子电流密度也可以表示空穴电流密度,如图(9.12)所示,对于节点i, j, k分别所属的控制体(以不同的阴影表示),单个三角形通量对三个顶点贡献分别为:

J jd j − Jkdk (9.76)

Jkdk − Jidi (9.77)

Jidi − J jd j (9.78)

其中,sk是边i j的单位方向矢量,Jk = J · sk是节点i, j之间电流密度矢量J在三角形k边投影的平均值,Ji, J j的含义类似,它们均由S-G离散格式得到,见下文。上式体现了通量函数的守恒性,以Jkdk为

106

第九章 漂移扩散模型的数值方法 第六节 二维迁移率模型

例,它是离开控制体i进入控制体 j的电流值,因此该通量对于控制体i为负,而对于控制体 j为正,并且绝对值相等。这样依次扫描所有的三角形单元,并进行求和,最后就可以得到进入每一个控制体

的通量。

在计算沿着三角形棱边的电流密度时,需要假设电场强度与电流密度沿着三角形的棱边变化缓

慢,以至于可以看成定值,于是沿着三角形棱边的电流传输可以看成三个一维问题。此时式(9.40)、式(9.43)或者式(9.45)、式(9.46)均可以计算电流,以式(9.45)与式(9.46)计算沿k边电流为例,

Jnk =

qµnVT

Lk

[n jB

(ψ j − ψi

VT

)− niB

(−ψ j − ψi

VT

)](9.79)

Jpk =

qµpVT

Lk

[piB

(ψ j − ψi

VT

)− p jB

(−ψ j − ψi

VT

)](9.80)

其中,Lk为k边的长度,µn与µp为迁移率在k边中点的值。

第六节 二维迁移率模型

从上文可以看出,二维控制体边界上电流密度的表达形式与一维情况非常类似。但是二维情

况对迁移率µ的处理与一维有很大不同。这是由于一维情况下电场方向与电流方向总是一致(或相反)的,但是二维情况下,电场矢量与电流密度矢量之间可能存在夹角。由于强场迁移率模型与表面迁移率模型需要平行与垂直电流方向的电场强度,见载流子迁移率,第73页,为此必须小心的处理。

如何计算三角形棱边中点处的迁移率值是二维半导体数值模拟的难点。GSS软件计算三角形顶点处的迁移率值,然后采用线性插值(9.48)得到三角形棱边中点处的迁移率。注意到µ =µ(NA,ND, n, p, E//, E⊥),节点处掺杂浓度与载流子浓度并不难得到,困难的是如何求得E//与E⊥。

理论上来说,计算E//与E⊥需要得到节点的E与载流子电流密度矢量J,然后依据下式进行投影运算:

E// =max(0,E · J)| J |

(9.81)

E⊥ =|E × J || J |

(9.82)

由很多方法可以求E//与E⊥. 如果在控制体内部求解,注意到式(5.41)与式(5.43),电流密度可以用准费米势的梯度表示:

Jn = −qµnn∇φn (9.83)

Jp = −qµp p∇φp (9.84)

于是,以电子的迁移率为例,可以在控制体上用最小二乘法(见微分算子的有限体积离散,第89页)同时得到电势与电子准费米势的梯度,这样就得到了电场矢量和电流密度矢量,然后用式(9.81)与式(9.82)计算E//与E⊥。计算中出现的µn可以消去。有了E//与E⊥后,接下来就可以计算节点处的电

107

第六节 二维迁移率模型 第九章 漂移扩散模型的数值方法

子迁移率。这个方法的缺点是,在控制体处用最小二乘法计算梯度涉及的邻点太多。一般控制体

有5 ∼ 7个邻点,而控制体界面处的迁移率是相邻两个控制体迁移率的插值函数,所以,总共涉及的点多达10个以上,在计算 Jacobian矩阵时非常的麻烦,所形成的矩阵带宽也比较大。

为了降低编程的工作量,Laux建议梯度的计算转到三角形单元中进行。从有限元分析可知,已知变量ψ在三角形顶点的值,那么在三角形内部,∇ψ可以看成定值,并且

Ex = −ψx = −(y2 − y3)ψ1 + (y3 − y1)ψ2 + (y1 − y2)ψ3

2∆(9.85)

Ey = −ψy = −(x3 − x2)ψ1 + (x1 − x3)ψ2 + (x2 − x1)ψ3

2∆(9.86)

其中,ψ1、ψ2、ψ3为ψ在三角形顶点的值,∆为三角形面积。

对于三角形内部电流矢量的计算,则采用加权插值的方法进行[59],如图(9.12)所示。首先,如上一小节所述,认为在三角形单元中存在电流矢量J,S-G离散格式在三角形边上计算得到的电流是电流矢量J在三边上的投影。但是由于S-G离散格式是非线性的,这个电流矢量并不像电场矢量一样可以很容易的求出,甚至都不是唯一的。有3种不同的插值方式可以表征电流矢量J:

J jk =1

sin2 i

[(J j + cos i · Jk

)s j +

(Jk + cos i · J j

)sk

](9.87)

Jki =1

sin2 j

[(Jk + cos j · Ji) sk + (Ji + cos j · Jk) si

](9.88)

Ji j =1

sin2 k

[(Ji + cos k · J j

)si +

(J j + cos k · Ji

)s j]

(9.89)

其中,Ji,J j以及Jk为三角形各边的S-G格式离散电流;J jk,Jki和Ji j为不同线性插值方式得到的三角

形内部电流矢量。Laux使用了一种加权平均的方法来得到所需要的电流矢量。比如,对于图(9.12)属于k边的小三角形∆io j内,其电流矢量认为是J jk与Jki的加权平均

Jk =di · Jki + d j · J jk

di + d j(9.90)

此时,因为Ex与Ey以及电流矢量已知,(9.81)与(9.82)就可以用来计算沿着k边的E//与E⊥,进而求出k边的迁移率。其余两边可以照此处理,就不一一列出。请注意,在计算三角形边上的S-G电流时,需要迁移率的信息,而Laux方法计算迁移率又需要S-G电流,似乎是一个互相耦合的过程。其实,迁移率仅仅影响电流的大小,不会改变其方向,而Laux方法仅需要电流的方向。因此,可以先任意选用一个迁移率的数值计算S-G电流,一般让其数值保持在O(1)范围,以提高数值运算精度,等到实际迁移率完毕,再将S-G电流按比例缩放到正常数值。这样,在三角形单元内部计算E//与E⊥,仅涉及3个点,计算量大大减小了,同时计算精度依然保持在较高的水准。这个方法的缺点是当电流密度很低时,计算E · J以及E × J带来的数值误差可能较大,影响计算的收敛性。

在要求不高时,还有一种较为简单的方法,如图(9.13)。在计算由节点1到节点2的电流时,可以采用

E// =|ψ2 − ψ1 |

d12(9.91)

E⊥ =|ψ3 − ψp |

d3p(9.92)

108

第九章 漂移扩散模型的数值方法 第七节 GSS第二层DDM求解器

图 9.13 E//与E⊥简单求法

这种方法的好处是编程实现比较简单,计算速度快,收敛性也更好一些。而且当器件的电流大致沿

着三角形的棱边流动时,这种方法是比较精确的。不过这种方法计算的电流值与网格相关性很大,

当不能保证上面的条件,还是要回到式(9.81)与式(9.82)。

GSS的DDML1E/DDML2E/EBML3E求解器基于三角形单元,同时支持Laux提出的三角形单元处理与简化处理方式,分别适用于精度优先与速度优先的情况。在后文中,这两种方式分别称

为EJ模型和ESimple模型。

第七节 GSS第二层DDM求解器

GSS内置的第二层DDM求解器考虑了器件的热效应,除了多出一个晶格热传导方程外,电流密度的表达式也有变化,见式(7.14)。相应的,基本变量除了ψ,n,p外,还增加了晶格温度T。将电子、空穴电流密度重写如下:

Jn = µn(qE + kb∇T )n + µnkbT∇n (9.93)

Jp = µp(qE − kb∇T )p − µpkbT∇p (9.94)

由于半导体的热传导性能一般都很好,比如硅的热传导率达到铜的三分之一,加上半导体器件尺度

很小,因此器件内部温度的梯度不会很大。除了前面的电场、迁移率不变的假设外,还假设器件的

温度在相邻的两个点之间变化不大,可以看成常数,并且温度的梯度也看作常数:

Dn =µnkbT

q≈ const

Dp =µpkbT

q≈ const

E ≈ const

∇T ≈ const

109

第七节 GSS第二层DDM求解器 第九章 漂移扩散模型的数值方法

下面以电子的电流密度离散为例,推导带温度的Scharfetter-Gummel格式。此时的电子密度方程可以写为

dndx+µn (qE + kb∇T )

qDnn =

Jn

qDn(9.95)

a =µn (qE + kb∇T )

qDn=

EVT (T )

+∇TT

(9.96)

C0 =Jn

qDn(9.97)

则微分方程(9.95)的通解可以写成

n =C0

a+C1e−ax (9.98)

代入ni、n j的边界条件,则

n = ni[1 − g (x)

]+ n j g (x) (9.99)

其中

g (x) =1 − e−ax

1 − e−a∆x(9.100)

得到电子密度的表达式后,求出中点x = ∆x/2处电子密度与电子密度的梯度,就可以得到电子电流密度的SG格式。

因为后面需要用到中点的载流子密度,因此将SG格式写为下面的形式:

n|mid = ni aux2 (αn) + n j aux2(−αn) (9.101)

∇n∣∣∣∣mid= aux1(αn)

n j − ni

∆x(9.102)

Jn|mid = qµn|mid

(n|mid

ψi − ψ j

∆x+

kbT |mid

q∇n

∣∣∣∣mid+

kbn|mid

q∇T

∣∣∣∣mid

)(9.103)

p|mid = pi aux2(−αp

)+ p j aux2

(αp

)(9.104)

∇p∣∣∣∣mid= aux1

(αp

) p j − pi

∆x(9.105)

Jp|mid = qµp|mid

(p|mid

ψi − ψ j

∆x−

kbT |mid

q∇p

∣∣∣∣mid−

kb p|mid

q∇T

∣∣∣∣mid

)(9.106)

(9.107)

其中,

αn =ψi − ψ j

2VT |mid+

T j − Ti

2T |mid(9.108)

αp =ψi − ψ j

2VT |mid−

T j − Ti

2T |mid(9.109)

所涉及的温度都可以用线性插值,比如

T |mid =Ti + T j

2(9.110)

∇T∣∣∣∣mid=

T j − Ti

∆x(9.111)

VT |mid =kbT |mid

q(9.112)

110

第九章 漂移扩散模型的数值方法 第八节 GSS第三层EBM求解器

在DDML2中,GSS将求解晶格的热传导方程:

ρcp∂T∂t= ∇ · κ∇T + J · E + (Eg + 3kbT ) · (U −G) (9.113)

暂时不考虑瞬态问题与载流子生成,(Eg + 3kbT ) · U可以认为在控制体内不变而直接积出,有了Poisson方程的基础后,∇ · κ∇T的离散也不是问题。其中最难处理的,是欧姆加热项J · E,下面介绍一下GSS采用的离散方法。

将欧姆加热项写为

J · E = −(Jn + Jp) · ∇ψ (9.114)

考虑Jn · ∇ψ在控制体Ωi的积分,假设电势在半导体内部变化是缓慢的,有下面的近似:∫Ωi

Jn · ∇ψdV =∫Ωi

∇ · (Jnψ) dV −∫Ωi

ψ∇ · JndVi

∮∂Ωi

Jnψ · dS − ψi

∮∂Ωi

Jn · dS

=∑

j

ψi + ψ j

2Jmid∆L j − ψi

∑j

Jmid∆L j

=∑

j

ψi − ψ j

2Jmid∆L j

(9.115)

这样,通过Gauss公式和一个近似避免了在控制体内部求J · E的体积分,而且最后的离散形式十分简单。这个离散形式是作者独立想出来的,不过后来作者在一篇1994年的文献上也看到了同样的形式[60]。

第八节 GSS第三层EBM求解器GSS第三层EBM求解器需要求解6个方程,分别为Poisson方程,电子与空穴的连续性方程,电子

与空穴的能量守恒方程以及晶格热传导方程。由于Poisson方程与晶格热传导方程的离散与上两节类似,这里就不再叙述,重点阐述连续性方程与能量守恒方程的数值离散方法。

由于空穴方程可以由电子方程作代换kb → −kb完美的得到,因此仅将电子电流方程(7.15)重写如下:

Jn = −qµnn∇(ψ −

kbTn

q

)+ qDn∇n (9.116)

按照SG格式的手续,将其改写为关于电子密度n的方程

dndx−

1∆x

qkb∆ψ − ∆Tn

Tn (x)

· n = Jn

qDn(9.117)

假设电场强度以及电子温度的梯度恒定,在已知两端电子密度的条件下求解上面的方程。经过一番

复杂的推导,可以得到电子电流的SG离散格式[61]

Jn =qDn

∆xT j − Ti

ln T j − ln Ti

[B (α)

n j

T j− B (−α)

ni

Ti

](9.118)

111

第八节 GSS第三层EBM求解器 第九章 漂移扩散模型的数值方法

其中

α =ln T j − ln Ti

∆T

[qkb∆ψ − 2∆T

](9.119)

对于能量平衡方程的离散,同样采取推导SG格式的方法,将电子能流(7.17)重写如下

S n = −

(52+ γ

)k2

b

qTnµnn∇Tn −

52

kbTnJn

q(9.120)

将上式改写为以Tn作为变量的微分方程

dTn

dx+

52(

52+ γ

) Jn

qDnn (x)· Tn = −

S n(52+ γ

)kbDnn (x)

(9.121)

边界条件为已知两端的电子温度。

事实上,最为合理的方法是联合求解式(9.118)与式(9.121),不过很不幸的是,这种情况下解为无穷级数的形式。因此必须采用一些近似条件。比如在求解电流方程式(9.118)时假定了电子温度的梯度恒定,但是显然,求解能流方程式(9.121)时破坏了这个假定。目前,对于能流的离散存在好几种不同的方法。Tang的方法中,电子密度分别从电流方程与能流方程求出,两个解的差别很大[62]。而Forghieri的方法离散式(9.121)时直接假定电子密度是指数函数分布[61]。1994年,Choi提出了一种新的能流方程离散方法,将由电流方程(9.118)求解得到的电子密度带入能流方程(9.121),最大程度的减小了两者的不匹配程度,新的离散格式能够显著的减小电子温度的计算误差,并且收敛速度很

快[63]。

GSS采用了Choi离散格式,其电子能流为

S n = −

(52+ γ

)kbDn

∆x∆T

ln T j − ln Ti

B (α)B (Φ)

B(Φ)n j − B (−α)

B (Φ)

B(Φ)ni

(9.122)

其中

Φ =ln T j − ln Ti

∆T

(qkb∆ψ − ∆T

)− ln

n j

ni

Φ =

52(

52 + γ

)Φ (9.123)

注意电流与能流的离散中均涉及下式∆T

ln T j − ln Ti(9.124)

在 limTi→T j

时需要进行特殊的处理。

在EBML3E的实现中自变量的选取是需要注意的,对于多出来的能量平衡方程(以Fωn与Fωp表

示),作者首先想到的自变量是电子温度Tn与空穴温度Tp。但是后来发现,对于电子密度很小的区

域,有∂Fωn

∂n

∂Fωn

∂Tn,从而Jacobian矩阵失去对角占优,同时过大的

∂Fωn

∂n项也导致矩阵条件数恶劣,

经常会造成收敛困难。后来参照流体方程,将自变量设为载流子密度与温度的乘积nTn与pTp,这样

可以保证Jacobian矩阵的对角占优,收敛性就好多了。

112

第九章 漂移扩散模型的数值方法 第九节 GSS量子修正DG-DDM求解器

第九节 GSS量子修正DG-DDM求解器

Andreas Wettstein博士从2000年起发表了一系列论文[64][65][26]仔细研究了DG-DDM的离散格式。他的格式虽然不是完美无缺,但在应用中被证明很有效,此格式后来集成在了dessis软件中。

对于DG-DDM方程组(7.19),其Poisson方程以及连续性方程的离散与经典DDM方程组一致,在此不再重复。这里仅讨论电子密度梯度修正的离散方法,对于空穴可以照此处理。将式(7.27)在控制体i上积分,并利用高斯公式可得 ∫

Ωi

ΛndV = −bn

∮∂Ωi

∇√

n√

ndS (9.125)

其中bn =~2γn

6qm∗n注意到

n = n0 exp(

EFn − Eqc

kbT

)= n0 exp (−Φ) (9.126)

其中Φ =Eqc − EFn

kbT。将上式代入式(9.125),可得

Λn∆VΩi = −bn

∑j

( √n j −√

ni

di j·

1√

ni

)· ∆L j

= bn

∑j

(1 − exp

(Φi − Φ j

2

))·∆L j

di j

(9.127)

这里 j是指对控制体i的所有相邻节点求和,∆L j为控制体与节点 j对应的边界,di j为节点i、j的距离。

Wettstein博士最初使用式(9.127)作为电子密度梯度修正的离散方法,但是其中的指数项很容易在初值不好的情况下导致发散的结果,后来他在指数大于零的情况下采用其泰勒展开以避免数值溢

出,大大改进了数值稳定性。改进后的离散格式为

Λn∆VΩi =

bn

∑j

(1 − exp

(Φi − Φ j

2

))·∆L j

di jf or Φi < Φ j

bn

∑j

Φ j − Φi

2−

(Φ j − Φi

)2

8

· ∆L j

di jotherwise

(9.128)

Wettstein格式最大的问题是不守恒。比如在Φi < Φ j的情况下,控制体i量子势Λn的增加量显然

不等于控制体 j量子势Λn的减少量。我曾经就这个问题询问过Wettstein博士,他的回答是:对于流体而言,这种不守恒是不能忍受的,但是量子势不是守恒量,而且在应用中这个格式表现很好。

在GSS软件中,DG-DDM的实现还遭遇了另一个问题。作者选择的基本变量为ψ,n,p,Eqc,Eqv(最后两个变量等价于Λn与Λp)。注意到电子密度梯度修正离散方程中包含

EFn = −qφn = −q(ψ −

kbTe

ln(

nnie

))113

第十节 载流子生成项的离散方法 第九章 漂移扩散模型的数值方法

在求Jacobian矩阵时,此方程对电子密度的偏导数会出现1n,在电子密度很低的区域,此偏导项将十

分巨大,从而导致Jacobian矩阵失去对角占优,条件数变坏,最终反映在计算的收敛性变差(空穴也有类似问题)。在能量平衡模型的实现中,作者通过重新选择自变量解决了类似的问题,但是这一次绕不过去了。Silvaco公司的ATLAS软件同样为这个问题苦恼,他们设置了一个QMINCONC变量,当载流子密度低于这个值就不考虑量子效应[66]。GSS不修改方程,但是当载流子密度小于本征载流子密度时,求Jacobian矩阵时不再考虑电子(空穴)密度偏导项,但是这样导致了不精确的Jacobian矩阵,从而收敛速度大受影响。

作者目前还没有好办法解决离散格式不守恒与载流子偏导项量级不合适两个问题,如果读者有

办法,请不吝给作者发E-mail.

第十节 载流子生成项的离散方法

碰撞电离与击穿是半导体的重要现象,但不幸的是,对它们的数值模拟一般都很困难,容易遇

到计算不收敛的问题。GSS集成了碰撞电离模型和隧道跃迁电离模型。虽然作者花了很多精力加强这些模型的数值健壮性,但是仍然不能保证其收敛性,参见如何克服收敛性问题,第255页。

将式(7.69)的碰撞电离项GII重写如下

GII = αn(E)| Jn | + αp(E)| Jp | (9.129)

根据有限体积法,需要计算GII在控制体Ωi的积分。其中αn与αp的计算还涉及驱动电场E,比如Selberherr模型(7.70)。

计算GII仍然在三角形中进行,如图(9.14)所示,然后GII乘上三个节点所属的控制体所占该三角

形的面积,分配到三个控制体中。

图 9.14 碰撞电离项在三角形单元内的处理

事实上对于电场强度以及电流的定义有很多选择。最为简单也是最不符合物理的方法是电场

与电流均定义在三角形边界,这种方法后面称为ESide模型。GII在图(9.14)所示的阴影区中视为定

114

第九章 漂移扩散模型的数值方法 第十节 载流子生成项的离散方法

值,其电场强度直接从节点v1,v2的电势梯度得到,电流则可以直接使用三角形边上S-G格式计算的结果。这个方法因为其实现简单,数值稳定性好,在早期的半导体数值模拟软件中使用较多,但

是其模拟结果往往会高估击穿所需的电压,同时模拟结果与网格关联性很强,因此一般不推荐使

用ESide模型。作者将其加入是因为当其它模型都遇到收敛性问题时,也许ESide模型能够收敛,得到一个可供参考的结果。

另一种改进的方法是将电场强度定义在三角形内部,称之为EVector模型。这个模型使用如式(9.85)以及式(9.86)来计算Ex以及Ey,再得到电场强度矢量在三角形内部的模。这样,电场强度在

整个三角形内部为定值,而电流仍然使用三角形边上S-G格式计算的结果。EVector模型比ESide模型要精确一些,但仍然有不符合物理之处。

在Laux的论文中提到的EdotJ模型是最为复杂,同时也最为符合物理过程的模型[67]。这个模型与其迁移率计算[59]有异曲同工之处。事实上实现了Laux迁移率模型同时,实现其碰撞电离模型也就没有了障碍。在EdotJ模型中,电场强度按照如迁移率EJ模型的方式定义:

E// =max(0,E · J)| J |

(9.130)

也就是说,仅有沿着电流方向的电场才对碰撞电离起作用。电流则使用三角形内部的电流矢量模值,

比如图(9.14)所示的阴影区域电流就由式(9.90)得到。它唯一的缺点是收敛性最差,计算容易发散。

此外还有另一种方式定义电场强度,称为GradQf模型。定义

En = | ∇φn | (9.131)

Ep = | ∇φp | (9.132)

作为碰撞电离项中的驱动电场强度。其中准费米势φn与φp见式(5.45)。在GradQf模型中,电流不能使用三角形边上的S-G格式离散电流,否则会引起严重的振荡。后来作者改用如式(5.41)与式(5.43)的方法得到电流的值,此时它们的离散形式如下

| Jn | = µnn|mid|φn,v2 − φn,v1 |

v1v2(9.133)

| Jp | = µp p|mid|φp,v2 − φp,v1 |

v1v2(9.134)

这时,计算结果是光滑的。而事实上,由于碰撞电离必须在强电场作用下才能发生,此时顺着电场

的漂移作用大大强于扩散作用。如果略去扩散电流,仅考虑漂移电流,最后结果的差别小于10%,因此,要求不高时,上面两式可以简化为

| Jn | = µnn|mid|ψv2 − ψv1 |

v1v2(9.135)

| Jp | = µp p|mid|ψv2 − ψv1 |

v1v2(9.136)

注意图(9.14)左边阴影区域是属于节点v1所在的控制体,碰撞电离项在此区域上的积分可以写为∫shadow

GIIdV =d34

[αnµnn|mid

(|φn,v2 − φn,v1 |

)+ αpµp p|mid

(|φp,v2 − φp,v1 |

)](9.137)

115

第十一节 边界条件的处理 第九章 漂移扩散模型的数值方法

三角形的其他区域照此处理即可。在GSS软件中,GradQf模型是默认的碰撞电离模型,它的收敛性比较好,对于二极管、三极管的模拟也有足够精度。但是对于电流不沿着电场方向运动的情况,比

如用于ESD保护的ggNMOS击穿特性模拟,第202页,GradQf模型无法给出正确的结果。

隧道跃迁引起的载流子生成率GBB,有如下的形式

GBB = α ·E2√Eg· exp

(−β ·

E3/2g

E

)(9.138)

它仅仅涉及电场强度E,离散相对简单。在三角形单元内,电场强度可以由式(9.85)与式(9.86)计算,将GBB在三角形单元内看作恒定,然后按顶点所在控制体所占三角形面积的比例分配到各控制体。

第十一节 边界条件的处理

由微分方程理论可知,边界条件必须与偏微分方程相容并且符合物理条件,偏微分方程的解才

能唯一收敛于物理真解。半导体模拟中边界条件的设置是一个非常重要的问题,必须根据不同的器

件结构与模拟状态灵活选择。GSS支持的半导体边界条件有电极和界面两种,电极边界包括

欧姆接触电极

肖特基接触电极

栅接触电极

简化的栅接触电极

每个电极都可以包含外部集总参数的电路元件,或者连接到其它电极,也可以为它们选择电压激励

或者是电流激励。其中电流激励模式可以在半导体器件电流是电压的多值函数时使用,此时使用电

压条件会遭遇分歧。

除此之外,GSS还支持物质界面边界条件,包括

半导体-氧化物界面

半导体-金属界面

半导体-半导体界面,异质结

半导体-半导体界面,同质结

Neumann边界

9.11.1 Neumann边界

Neumann边界出现在半导体块的表面处,或者是人为在远离器件有源区的地方截断半导体材料而引入的人工边界。电子不能穿越此边界,并且认为垂直于界面的电场强度为零,有n · ∇ψ = 0.

在边界处,控制体只有体内控制体的一半,如图(9.15)所示。由Neumann边界条件可知,对于控

116

第九章 漂移扩散模型的数值方法 第十一节 边界条件的处理

图 9.15 边界处的控制体

制体P0而言,通量函数

F =

ε∇ψ

1q

Jn

−1q

Jp

在边界m1m5处为零。即Neumann边界对控制体总通量没有贡献,事实上不用加以考虑。

值得注意的是,不能将某个器件所有的外边界都设为Neumann边界。此时器件是浮空的,电势ψ没有一个参考值,结果中的ψ值是不确定的,在ψ上迭加任何满足∇2ψ′ = 0的函数ψ′,原方程依然成立。为了固定ψ值,从数学上说必须至少在一个边界点上给定第一或者第三类边界条件,从器

件角度看,必须至少给定一处电极边界条件。

9.11.2 欧姆接触电极

欧姆电极是最简单的电极类边界,这里的电势以及载流子浓度都是固定的,因此这是一

个Dirichlet型的边界条件。此时多子和少子的准费米势都等于外电压

φn = φp = Vapp (9.139)

其中,准费米势与准费米能级的关系EFn = −qφn,EF p = −qφp。

对于满足Boltzmann分布的非简并载流子,由电荷平衡条件出发:

n + NA = p + ND (9.140)

注意到式(4.2)与式(4.3)中准费米势与载流子浓度的关系,可以得到

n =ND − NA +

√(ND − NA)2 + 4n2

ie

2(9.141)

p =NA − ND +

√(ND − NA)2 + 4n2

ie

2(9.142)

以及

ψintrinsic = φn +kbT

qln

(n

nie

)= φp −

kbTq

ln(

pnie

)= Vapp +

kbTq

asinh(

ND − NA

2nie

)(9.143)

117

第十一节 边界条件的处理 第九章 漂移扩散模型的数值方法

注意到GSS中ψ与ψintrinsic的关系式(7.4),实际代码中的电势为

ψ = Vapp +kbT

qasinh

(ND − NA

2nie

)−χ

q−

Eg

2q−

kbT2q

ln(

Nc

Nv

)(9.144)

对于简并情况,需要考虑Fermi分布。GSS求解下面的方程组Fψ (ψ, n, p) = Nc F (ηn) + N+A − Nv F

(ηp

)− N+D = 0

Fn (ψ, n, p) = n − Nc F (ηn) = 0

Fp (ψ, n, p) = p − Nv F(ηp

)= 0

(9.145)

其中,N+A与N+D为考虑不完全电离后的杂质浓度,其余变量如下所示

ηn =−qφn − Ec

kbT=−qVapp − Ec

kbT(9.146)

ηp =Ev + qφp

kbT=

Ev + qVapp

kbT(9.147)

Ec = −qψ − χ (9.148)

Ev = Ec − Eg (9.149)

可见上面三式中,仅有ψ、n、p为独立变量。通过牛顿迭代求解方程组(9.145),就可以解出ψ、n和p.注意,Fψ不能写成Fψ = n + N+A − p − N+D,这样在数学上虽然是等价的,但是牛顿迭代时,其 Jacobian矩阵对角元素为0,很可能会造成预条件的失败。

通过欧姆电极的总电流密度是各个节点电流密度之和,如图(9.16)。由于节点的电荷密度保持

图 9.16 欧姆接触电极的总电流密度

不变,因此控制体通过欧姆接触边界流出的电流密度等于流入控制体的电流密度,在图(9.16)中,通过控制体c边界流出的电流密度为

J = h1Jca + h2Jcb + h3Jcd + h4Jce (9.150)

其中包含了位移电流密度与传导电流密度,以Jca为例

Jca = Jn,ca + Jp,ca + εs∂Eca

∂t(9.151)

由于GSS只考虑二维模型,为了能够考虑电极上电阻、电容、电感等器件的影响,GSS定义了器件在第三维的延展深度Z.Width变量,这样就可以把电流密度转为电流。

118

第九章 漂移扩散模型的数值方法 第十一节 边界条件的处理

9.11.3 肖特基接触电极

肖特基接触电极的边界条件需要金属的功函数WORKFUNC。电势的定义如下

ψ = Vapp −WORKFUNC (9.152)

此处电势仍然是Dirichlet边界条件。

值得注意的是,由于界面复合率不可能无限大,φn、φp不再与Vapp相等。为了得到载流子密度

的方程,引入肖特基界面的发射电流密度[68]:

Jsn = qvsn(ns − neq

)(9.153)

Jsp = qvsp(ps − peq

)(9.154)

其中Jsn、Jsp是通过肖特基界面的电流密度,ns与ps为界面处的电子、空穴密度。neq与peq是假设表

面复合率无限时的电子、空穴密度:

neq = Nc exp(−qΦB

kbT

)(9.155)

peq = Nv exp(−Eg + qΦB

kbT

)(9.156)

其中ΦB为势垒高度。vsn与vsp为表面复合速度:

vsn =A∗nT 2

qNc(9.157)

vsn =A∗pT 2

qNv(9.158)

其中A∗n和A∗p分别为电子和空穴的有效Richardson系数。为了考虑镜像力修正及隧道跃迁带来的势垒降低效应,在GSS代码中对势垒修正如下[20]:

∆ΦB(E) =

√qE

4πεsemi+ α · Eγ (9.159)

其中,E为界面处电场强度的绝对值,α与γ的典型值可以在[20]中找到。于是,式(9.155)与式(9.156)中,电子的势垒修正为ΦB − ∆ΦB,而空穴的势垒修正为ΦB + ∆ΦB。

得到通过界面发射的电流密度后,电子与空穴密度的值可以通过连续性方程求解得到。而肖特

基电极的总电流密度值则等于每个控制体的发射电流密度与位移电流密度之和。

9.11.4 半导体绝缘层界面

半导体绝缘层界面在半导体器件中经常碰到,比如MOS结构,SOI结构等等。GSS软件完整的支持半导体绝缘层界面,另外还提供了一个较为简单的方法来模拟MOS器件的栅极。

事实上,半导体绝缘层界面对于载流子而言就是一个固体壁面,因此对于载流子连续性方程而

言,半导体绝缘层界面是Neumann类型的边界。所有重要的界面性质都通过Poisson方程来体现。

119

第十一节 边界条件的处理 第九章 漂移扩散模型的数值方法

对于半导体-绝缘体界面,Poisson方程的边界条件是

εs∂ψ

∂n− εi

∂ψ

∂n= σ (9.160)

其中εs与εi分别是半导体与绝缘体的介电常数,n是由半导体指向绝缘体的法向量。在绝缘体一侧如果加上了金属或者多晶硅构成栅极,那么栅极与绝缘体接触处构成栅电极边界条件。在GSS中,栅电极的电势为

ψ = Vapp −WORKFUNC (9.161)

这个表达式与肖特基电极的电势边界条件一致。

由于MOS器件栅极氧化层很薄,很多情况下对它的建模比较困难,而且这种薄结构对于网格划分也是一种挑战,常常造成过多的节点。GSS提供了简化的栅极边界条件,用户只需指定栅极氧化层厚度d,介电常数εi,栅电极功函数WORKFUNC,不需要显式建立栅氧化层模型。但是这种模型无法考虑氧化层内的固定电荷。在图(9.17)中,将Poisson方程的边界条件式(9.160)氧化层一侧的方向导数近似为

εi∂ψ

∂n= εi

Vapp −WORKFUNC − ψd

(9.162)

于是,半导体绝缘层界面硅一侧的边界条件成为

εs∂ψ

∂n− εi

Vapp −WORKFUNC − ψd

= σ (9.163)

这是第三类边界条件。

图 9.17 简化的MOS栅极

9.11.5 电极外电路

到目前为止,GSS有三种电极边界条件,欧姆电极与肖特基电极在稳态与瞬态情况下都可能有电流通过,但是MOS栅极只有瞬态情况可能有位移电流通过。

为了将半导体器件放在合适的激励条件下考虑,GSS规定了电极的外电路结构。欧姆电极与肖特基电极可以由电压源激励也可以由电流源激励,但是MOS栅极只能被电压源激励。

在GSS软件中,为所有的电极补充了一个外电路电流-电压方程。为此,还引入了器件在第三维伸展的尺度Z.Width来将电流密度换算为电流。

有了这两种外电路结构,GSS软件虽然不能模拟很复杂的电路,但是对于简单的三极管或者MOS管放大电路的模拟已经可以胜任了。对于更为复杂的外电路,可以将GSS与SPICE软件协同工作,进行混合模拟。见半导体软件的扩展功能一章。

120

第九章 漂移扩散模型的数值方法 第十一节 边界条件的处理

图 9.18 电极的电压边界条件与电流边界条件

9.11.6 传热的边界条件

GSS第二层求解器支持半导体温度场的计算,为此需要引进相应的热传导方程边界条件。GSS中,热传导方程边界条件分为两种物质界面和传热边界两种。

两种物质界面的热传导方程边界条件适合硅与二氧化硅接触,假设在界面上没有热源,对此有

类似Poisson方程的界面条件:

κ1∂T∂n− κ2

∂T∂n= 0 (9.164)

而在Neumann边界、电极边界处,则采用传热边界条件。引入热交换系数h,表示边界与外界进行热交换的速度,传热边界条件为

∂T∂n= h (Text − T ) (9.165)

其中Text为外界温度。Neumann边界默认的热交换系数h为零,但是电极边界的热交换系数h则取铜与半导体的热交换系数,这是一个相当大的值。注意,如果将所有边界的热交换系数设为零,相当

于系统是绝热的,对于内部有热源的绝热系统,进行稳态分析显然不可能得到恒定的结果,在数值

模拟时要注意这一点。

9.11.7 载流子温度的边界条件

GSS第三层求解器涉及载流子的温度,需要为它们设定边界条件。在固体壁面处,能量守衡方程采用Neumann边界;而在电极处,则认为载流子温度与晶格温度相等:

Tn = Tp = T (9.166)

实际上,目前载流子温度的边界条件十分粗糙。尤其是电极处的边界条件,需要电极远离器件的强

场区才能满足。在建模时候需要考虑这一点。

9.11.8 异质结

异质结在物理上十分的复杂,尤其是穿过异质结的电流。GSS作为经典模拟软件,只能有限的支持异质结的描述。异质结界面的电势条件就是两种物质界面处的Poisson方程。图(9.19)显示了异质结的能带,图中可以看出,除了真空能级外,导带能级、价带能级以及本征费米能级都在界面处

121

第十一节 边界条件的处理 第九章 漂移扩散模型的数值方法

图 9.19 异质结能带图

出现了不连续。由于电势是不能突变的,因此采用真空势作为半导体的Poisson方程的变量最为合适。

图(9.19)中还可以看出真空势与本征费米势的关系

ψ = ψvacuum = ψintrinsic − θ (9.167)

其中,θ表示了能带参数

θ =χ

q+

Eg

2q+

kbT2q

ln(

Nc

Nv

)(9.168)

在界面处,Poisson方程还是满足界面条件

εs1∂ψ

∂n− εs2

∂ψ

∂n= 0 (9.169)

这里不考虑界面态导致的面电荷。

异质结的电流采用 K. Hess和 G. J. Iafrate提出的模型[69],假设电子从材料1到材料2需要越过势垒,亦即Ec2 > Ec1,此时电子电流可以表示如下:

Jn,1−>2 = A · T 21 · exp

(EFn1 − Ec2

kbT1

)(9.170)

Jn,2−>1 = A · T 22 · exp

(EFn2 − Ec2

kbT2

)(9.171)

其中A为Richardson系数。空穴电流有类似的形式。

9.11.9 DG-DDM的边界条件

事实上,量子效应仅仅发生在特定的有限区域,比如MOS反型层,量子阱等区域,离开这些区域后就会迅速衰减,因此远离这些区域处的量子势方程就不是很重要。

122

第九章 漂移扩散模型的数值方法 第十二节 时间推进

器件的电极以及外边界一般而言都远离量子区,它们的边界条件并不是非常重要。量子势在外

边界可以设为Neumann边界条件:∂nΛn = ∂nΛp = 0。在电极处,一般可设量子导带与量子价带能级等于导带与价带能级,即:

Λn =Eqc − Ec

q= 0

Λp =Eqv − Ev

q= 0

(9.172)

不过也有严格的数学分析指出,欧姆电极处量子势应该满足Neumann边界条件[70]。但是实际上,二者对结果影响不大。

MOS器件的二维电子气出现在Si/SiO2界面,此处的边界条件需要仔细考虑。对于简化的MOS结构,由于不显式的出现SiO2层,需要在界面上截断式(9.125)。根据量子WBK方程的计算,电子进入SiO2内部后按照下面的关系衰减[71]:

n(x) = n0 exp(−2x/xnp

)(9.173)

其中

xnp =~

√2mnoxΦBn

(9.174)

为WKB方程计算得到的电子渗透深度。mnox = 0.4m0为电子在SiO2内的有效质量,ΦBn = 3.15eV为电子势垒高度。因此在Si/SiO2界面有下面的关系存在

bnox∇√

n = −bnox

xnp

√n0 (9.175)

这里

bnox =~2

6qm∗nox(9.176)

而m∗nox = 0.14m0为DG模型的SiO2电子有效质量。

空穴有类似的关系存在,然而目前空穴的数据不全,能确定的仅有ΦBp = 4.10eV,作者设mpox = 0.4m0,m∗pox = 1.0m0,在得到更详细的数据后将进行修正。

对于建立了SiO2以及多晶硅栅极的器件,则将SiO2看作为宽禁带的半导体材料,统一求解DG-DDM方程,此时量子势在界面上连续。此外还有采用不同禁带宽度材料制作的量子阱器件,在界面上同样有量子势连续。

第十二节 时间推进

空间离散完成后,DDM方程组可以写成常微分方程组的形式

dxdt= F(x) (9.177)

稳态情况下有dxdt= 0,如果进行瞬态求解,则必须考虑合适的时间离散方案。前面已经提到,显式

方法满足半导体方程组稳定性条件的时间步长都在飞秒量级,实际运用中受到很大限制。实用化的

123

第十二节 时间推进 第九章 漂移扩散模型的数值方法

程序必须采用绝对稳定的隐式算法,以便采用较大的时间步长。然而由于半导体方程组的刚性很

强,要求算法除了A稳定外还必须是L稳定的[72]。

对于模型方程

x′ = λx , Re(λ) ≤ 0 (9.178)

考虑一阶隐式欧拉法(EB)和二阶梯形格式(CN)的稳定性函数:

REB(z) =1

1 − z(9.179)

RCN(z) =1 −

z2

1 +z2

(9.180)

其中,z = ∆t · λ,∆t为时间步长。上面两式都满足|R(z)| ≤ 1的绝对稳定条件。但是对于刚性问题,有λ ∆,等价于z很大。对于z趋于无穷大的极限情况,一阶隐式欧拉格式的稳定性函数

limz→∞

REB(z) = limz→∞

11 − z

= 0 (9.181)

而二阶梯形格式的稳定性函数

limz→∞

RCN(z) = limz→∞

1 +z2

1 −z2

= −1 (9.182)

注意到xn+1 = R(z)xn,可见二阶梯形格式虽然是A稳定的但是不满足L稳定条件。数值实验证明,二阶梯形格式在半导体数值模拟中会出现振荡的结果,这种格式是不能采用的。

图 9.20 模型方程x′ = −200(x − cos t) , x(0) = 0的数值结果

隐式欧拉法虽然满足A稳定和L稳定,但它是一阶精度的算法,截断误差较大。二阶算法中满足条件的有BDF2(Backward Differentiation Formulae 2)和TR-BDF2(Trapezoidal Rule BDF2)[73]。BDF2是个两步格式的算法,对内存要求较高:

3xn+1 − 4xn + xn−1 = 2∆t f (xn+1) (9.183)

124

第九章 漂移扩散模型的数值方法 第十三节 自动时间步长控制

TR-BDF2是单步格式,截断误差小于BDF2,但是每推进一步需要两次牛顿迭代,计算量高于BDF2:

x∗ = xn +∆t4

( f (xn) + f (x∗))

3xn+1 − 4x∗ + xn = ∆t f (xn+1)(9.184)

计算流体力学中大量采用BDF2算法,一是因为计算流体力学计算量比较大,用内存换速度是合适的;其次因为BDF2虽然误差大一些,然而误差引入的数值粘性可以平滑数值解,有时刻意使用BDF2来得到光滑的结果。PISCES-IIB采用了TR-BDF2算法[3],那是由于当时机器内存非常有限,它要求能够在只有8MB内存的机器上运行,而PISCES-IIB的商业版本MEDICI则采用了BDF2算法。

GSS同样采用BDF2算法,由于BDF2需要前两步的计算结果,因此第一步计算只能采用隐式欧拉法,截断误差是O(∆t),第一步的时间步长不能取得太大,以免带来太大的误差。BDF2启动之后,截断误差是O(∆2t),时间步长就可以取大一些。由于前后时间步长可能不一致,BDF2需要修改如下

1tn+1 − tn−1

(2 − r1 − r

xn+1 −1

r (1 − r)xn +

1 − rr

xn−1

)= f (xn+1) (9.185)

其中

r =tn − tn−1

tn+1 − tn−1(9.186)

第十三节 自动时间步长控制

基于局部截断误差(LTE)的常微分方程自动步长控制已经是很成熟的技术,在半导体器件数值模拟中的应用可以推到20年前[74]。由于瞬态模拟的重要性,GSS也实现了这一技术。

对于一阶隐式欧拉法,半离散数值格式为

xn+1 − xn

hn+ f (xn+1) = 0 (9.187)

其中,hn = tn+1 − tn. 上式的LTE为

LTE =xn+1 − xn

hn−

dxdt=

h2n

2d2xdt2 + O

(d3xdt3

)(9.188)

为了得到LTE的2阶导数项,可以从xn−1,xn线性插值得到预估值xpn+1

xpn+1 =

(1 +

hn

hn−1

)xn −

hn

hn−1xn−1 (9.189)

注意到通过泰勒展开可得:

xn+1 − xpn+1 =

hn (hn + hn−1)2

d2xdt2 + O

(d3xdt3

)(9.190)

因此,LTE可以最终表示为LTE(BE) =

hn

hn + hn−1

(xn+1 − xp

n+1

)(9.191)

125

第十三节 自动时间步长控制 第九章 漂移扩散模型的数值方法

对于BDF2,可以通过同样的推导得到其LTE[75]。其半离散格式的LTE可以表示为

LTE = −h2

n (hn + hn−1)6

d3xdt3 + O

(d4xdt4

)(9.192)

此时预估值xpn+1也需要有二阶精度,故使用xn,xn−1,xn−2进行二次插值:

xpn+1 = c1xn + c2xn−1 + c3xn−2 (9.193)

这里

c1 = 1 +hn (hn + 2hn−1 + hn−2)

hn−1 (hn−1 + hn−2)

c2 = −hn (hn + hn−1 + hn−2)

hn−1hn−2

c3 =hn (hn + hn−1)

hn−2 (hn−1 + hn−2)

同样,泰勒展开xn+1 − xpn+1可得:

xn+1 − xpn+1 =

hn

6(hn + hn−1) (hn + hn−1 + hn−2)

d3xdt3 + O

(d4xdt4

)(9.194)

LTE可以最终表示为:

LTE(BDF2) =hn

hn + hn−1 + hn−2

(xn+1 − xp

n+1

)(9.195)

时间步长控制要求每一步的截断误差满足

LTE < Euser (9.196)

在应用中,Euser一般表示为解的相对误差εr与绝对误差εa的形式

Euser = εr |xn+1| + εa (9.197)

默认εr = 10−3,εa = 10−4.

注意到LTE与Euser的比值总可以表示为

r =LTEEuser

=Ck+1hk+1

n x(k+1) (tn)

Ck+1hk+1allowablex(k+1) (tn)

=

(hn

hallowable

)k+1

(9.198)

这里k是数值方法的阶数,k(EB) = 1, k(BDF2) = 2.

在半导体模拟中,电场Poisson方程不含有时间变量,在计算r时不需加以考虑。实际应用中,以DDML1模型为例,r可以表示为:

r =

1N

∑LET(

fn, fp)

εr |n, p| + εa

2

1/2

(9.199)

设rLE = r−1

k+1,GSS采用的自动时间步长策略如下:

126

第九章 漂移扩散模型的数值方法 第十四节 非线性方程组的牛顿迭代法

• 如果rLE < 0.9,拒绝当前结果,使用h∗n = hn · rLE重新计算。

• 否则,接受当前结果,并设下一个时间步长为min(hn · rLE , 2hn, hmax). 这里,hmax是用户定义的

最大时间步长。

由于预估值需要前几步解的数据,因此对于隐式欧拉法,自动时间步长控制要到第3步才能启动,而对于BDF2则要第4步才能启动。此外,预估算法可以用于下一时间步的初值计算,以提高收敛性与计算速度。

第十四节 非线性方程组的牛顿迭代法

当空间、时间离散后,半导体漂移扩散模型最后形成的是非线性的代数方程组。半导体数值方

法的最后一步就是求解这个高达数千阶的非线性方程组。

在历史上,半导体模型方程离散后的解法有非耦合的 Gummel方法[1]和全耦合的 Newton方法两种。Gummel方法不同时求解所有的方程,而是通过逐次迭代的技术:先假设载流子浓度不变,求解 Poisson方程,然后将 Poisson方程的结果代入两个连续性方程求解载流子浓度,如此反复迭代直到收敛。Gummel方法是个’穷人’的方法,需要的内存小,某些情况下速度也快,但是这种非耦合的算法在方程之间的耦合比较强,比如电流主要由电场驱动下的漂移电流组成时,需要很多次的

迭代才能收敛。相反的,Newton方法同时考虑所有的方程组,具有很好的稳定性和较快的收敛速度(这里指迭代次数较少,但是每次迭代的代价很高)。Newton方法的缺点是需要构造和存储复杂的 Jacobian矩阵,每次迭代需要解庞大的线性方程组,幸好随着计算机内存和性能的提高,解大规模线性方程组所需要的内存和时间变得可以接受,因此 Newton方法得到了广泛的应用。GSS仅提供了对全耦合 Newton方法的支持。

广义上说,非线性方程求解就是寻找一个解向量 x,让方程 f (x) = 0的过程。一直以来,非线性方程的求解都是比较困难的课题,从方法而言,有不动点迭代法、最速下降法以及牛顿法。目前看

来非线性方程求解最好的方法还是牛顿法,尽管当前的牛顿法已经经过种种改良。这里将简单介绍

牛顿法及其改良算法,想更加具体的了解非线性方程求解的理论可以参考[76]。

9.14.1 Line Search方法

牛顿法需要计算 f (x)与它的梯度g(x) = ∇ f (x),通过求解线性方程

gT (x) · pk = − f (xk) (9.200)

得到pk为 f (xk)的牛顿下降矢量,牛顿法的迭代为

xk+1 = xk + pk (9.201)

迭代一直到满足某种收敛性条件,比如

‖xk+1 − x∗‖ 6 β‖xk − x∗‖ (9.202)

127

第十四节 非线性方程组的牛顿迭代法 第九章 漂移扩散模型的数值方法

其中β为某个正的常数。

牛顿迭代的收敛性与初值和g(x)有关。如果初值在真解的收敛域内并且g(x)是精确的,牛顿迭代法有二阶的收敛速度。虽然牛顿法有超线性收敛的优点,但是很多情况下精确的计算g(x)十分困难,并且准确的初值也不容易得到。为了提高牛顿法的通用性,有两种技术:线搜索方法(Line Search)和置信域方法(Trust Region)可以用来增强收敛性能[76][77]。

线搜索方法在本质上是求解一个一维的最小化问题,如图(9.21)。注意到式(9.200)解得的pk代

图 9.21 线搜索方法的示意图

表了 f (x)在x = xk的下降方向,将式(9.201)改为

xk+1 = xk + λpk (9.203)

其中,λ为一个可调节的参数,表示在pk方向的搜索步长,如果λ = 1就是基本牛顿法,而典型的线搜索方法使用三次多项式插值来使 f (x)沿着pk方向达到最小值。

实际的算法定义斜率g(λ) = gT (xk + λpk) · pk。线搜索方法一般从已知λ = λ1、λ = λ2的函数

值 f1 = f (xk + λ1pk)、f2 = f (xk + λ2pk)与斜率g1 = g(λ1)、g2 = g(λ2)开始,构造三次多项式

p (λ) = a (λ − λ1)3 + b (λ − λ1)2 + c (λ − λ1) + d (9.204)

其中

a =−2 ( f2 − f1) + (g1 + g2) (λ2 − λ1)

(λ2 − λ1)3

b =3 ( f2 − f1) − (2g1 + g2) (λ2 − λ1)

(λ2 − λ1)2

c = g1

d = f1

于是通过求p (λ)的最小值可以得到

λ = λ1 +−b +

√b2 − 3ac

3a(9.205)

128

第九章 漂移扩散模型的数值方法 第十四节 非线性方程组的牛顿迭代法

此时要求a , 0和b2 − 3ac > 0,如果上面的条件不能满足,那么使用 f1、f2和g1进行二次插值,得到

p (λ) = b (λ − λ1)2 + c (λ − λ1) + d (9.206)

此时p (λ)的最小值要求

λ = λ1 −c

2b(9.207)

因为采用了 f1、f2和g1三个值来构造p (λ),b = 0表示p (λ)是个线性函数这种情况不会出现。

当λ确定之后,还需要一套机制来判断插值得到的λ是否可以被接受,Armijo的判据实现起来比较方便,得到了广泛的采用[76],这个判据要求 f (xk + λpk) 6 f (xk) + αλgT (xk) pk

| gT (xk + λpk) pk | 6 | βgT (xk) pk |(9.208)

其中0 < α < β < 1,α表示了从函数值方面对λ施加的上限,β表示了对λ施加的下限。GSS软件的非线性求解器默认α = 10−4,β = 0.9。一般从λ1 = 0,λ2 = 1开始,如果λ被接受,此次迭代结束,否则收缩λ2的值,寻找下一个能接受的λ。

上面的讨论是针对单个非线性方程而言,如果是方程组,也有类似的结论,此时单个方程的梯

度g(x)变为方程组的 Jacobian矩阵,而λ也必须针对方程组的每一个方程分别计算。并且从上面的讨论可以看出,搜索方向pk在线搜索方法中一直认为是精确的,因此梯度g(x)或者方程组的 Jacobian矩阵要求是精确的,至少是接近精确的,否则线搜索方法很容易失败。

9.14.2 最速下降法

在介绍Trust Reign方法之前,有必要提一下最速下降法,这是由法国科学家Cauchy提出来的,也称Cauchy方法。设非线性方程 f (x)的梯度为g(x) = ∇ f (x),目标函数在xk附近连续可微,于是将

f (x)在xk处泰勒展开得

f (x) = f (xk) + gTk (x − xk) + o (‖x − xk‖) (9.209)

设x − xk = dk,上式可以写成

f (x) = f (xk) + gTk dk + o (‖dk‖) (9.210)

如果gTk dk < 0,则dk是下降方向,它使 f (xk + dk) < f (xk)。为了达到最速下降,需要gT

k dk的值最小,可

以证明,只有当dk = −gk时,gTk dk取极小值。从而称−gk为最速下降方向。

从而最速下降法的迭代为:

xk+1 = xk − g (xk) (9.211)

这个方法虽然计算简单,但是下降非常缓慢,可以证明,它的收敛速度是线性的。

9.14.3 Trust Region方法

置信域方法(Trust Region)不需要精确的 Jacobian矩阵J,考虑如下的牛顿迭代法

J · ∆xk = − f (xk) (9.212)

129

第十四节 非线性方程组的牛顿迭代法 第九章 漂移扩散模型的数值方法

如果 Jacobian是不精确的,那么如果使用B = J + λI代替 Jacobian矩阵,其中λ是一个很大的值。显然,J的值被λI掩盖而变得不是很重要,∆xk将大致沿着− f (xk)的方向,牛顿迭代法此时成为最速下降法,并且步长‖∆xk ‖将变得很小。可以证明,如果步长足够小,那么迭代可以在J即使非正定的条件下收敛,这就是置信域方法的原理。

在实现中,置信域方法设xk是当前迭代点,在以xk为中心, δk为半径的闭球邻域内求解一个子问题。其中δk由具体问题决定,往往需要人为给出。

设dC为最速下降法的搜索方向,dN为牛顿法的下降方向,则试探步dk为

dk = dC + λ (dN − dC) (9.213)

可见试探步由最速下降法和牛顿法组合而成,如果 Jacobian矩阵是奇异的,试探步将更偏向最速下降法。在搜索过程中,要求试探步dk在信赖域内,即在每次迭代时要求试探步满足‖dk ‖ < δk,所以λ ∈ [0, 1]且取试探步满足‖dk ‖ < δk的最大值。得到dk后,用一评价函数决定该dk是否被接受,若

被接受,则令xk+1 = xk + dk;否则缩小信赖域的半径。在实际使用中,初始的δk取大一些也无妨,若初始δk太小则置信域方法容易收敛到局部最优解。

9.14.4 Jacobian矩阵的构造

牛顿法需要构造Jacobian矩阵,这一步在GSS软件的编写中占用了非常多的精力。考虑DDML1的方程组:

Fψ (ψ, n, p) = 0

Fn (ψ, n, p) = 0

Fp (ψ, n, p) = 0

(9.214)

其Jacobian矩阵有如下的形式

∂Fψ∂ψ

∂Fψ∂n

∂Fψ∂p

∂Fn

∂ψ

∂Fn

∂n∂Fn

∂p∂Fp

∂ψ

∂Fp

∂n∂Fp

∂p

(9.215)

对于N个节点的问题,DDML1的方程组共有3N个方程,而 Jacobian矩阵则有3N × 3N的规模。不过由于微分算符的局域性质,每个节点的方程只与它的邻接节点有关,求偏导数时,每个节点的方程

只需对本节点和邻接节点的变量进行,因此 Jacobian矩阵是稀疏的。一般而言,每个节点的邻接节点只有5 ∼ 7个,相应的矩阵带宽为3*(邻接节点数+1),大约在18 ∼ 24的范围。

由于漂移扩散模型离散得到的非线性方程组比较容易求微分,GSS的代码中,Jacobian矩阵是手工编写的,并且花费了很多精力以保证其准确1。因此GSS建议优先使用Line Search方法,实际的计算显示这种方法对于大多数问题收敛很快,迭代次数一般少于10次。Trust Region方法的计算时间往往要长于Line Search方法,但是对于一些 Jacobian矩阵接近奇异的问题则效果较好。

如果有一个新的算法要加入GSS软件,此时先采用自动差分代替手工微分来得到近似的Jacobian矩阵,称之为Matrix-Free方法[78]。将牛顿法求解的线性方程组

f ′(x) · ∆xk = − f (xk) (9.216)1从0.46版起,GSS已经全面采用自动微分技术

130

第九章 漂移扩散模型的数值方法 第十四节 非线性方程组的牛顿迭代法

中的左端用差分

f ′(x) · ∆xk ≈f (xk + h∆xk) − f (xk)

h(9.217)

作为近似,其中h为一个可调节的参数。Matrix-Free方法不用显式的建立Jacobian矩阵,在实现上比较简单。但是由于它只能得到矩阵与解向量的乘积,因此只能用迭代法求解线性方程组。它的缺点

是非常耗时,并且差分法究竟不是很精确,有些情况下会遇到收敛性问题。一般而言,当新的算法

被证明有效之后,则会手工编写优化的代码来完成精确Jacobian矩阵的计算,以加快运行速度。

9.14.5 DDM方程组精细收敛判据

非线性方程组 f (x) = 0的收敛判据可以用两种方法表示:绝对收敛和相对收敛。绝对收敛是指 f (x)的模小于某一个定值。而相对收敛是指两次迭代过程中解x的相对变化量小于某一个定值εr:

‖ xk+1 − xk ‖

‖ xk ‖< εr (9.218)

这两种收敛判据在半导体数值模拟中都有应用。当半导体外加偏压较低,通过的电流较小时,

少数载流子的数量对于电流值几乎没有影响,此时采用绝对收敛判据是合适的。如果强行要求少数

载流子的相对变化量小于某值,则需要更多的迭代次数,甚至因为机器精度的影响而不能达到。而

当注入电流较大时,由于数值误差导致电流连续性方程的绝对收敛较难达到,但是相对误差则与电

流大小无关,此时相对收敛条件更为有用。在对二极管进行正向IV曲线的计算时往往可以发现,低电压时GSS报告绝对收敛,而进入导通区后GSS则报告相对收敛。

GSS软件中,对漂移扩散模型方程组绝对收敛的要求是:

方程类型 收敛要求(2-范数)

Poisson方程 10−29C/µm

电子和空穴连续性方程 5 × 10−18A/µm

热传导方程 10−11W/µm

电子和空穴的能量守恒方程  10−18W/µm

电极边界条件的外电路方程 10−9V

表 9.1 绝对收敛条件

对于相对收敛的要求则是所有变量2-范数两步迭代之间的相对改变量εr小于10−5,同时为了保

证计算精度,方程组必须满足放松4个数量级后的绝对收敛要求。

当绝对收敛与相对收敛二者之一被满足时,GSS认为牛顿迭代收敛。

131

第十五节 线性方程组的KRYLOV子空间方法 第九章 漂移扩散模型的数值方法

第十五节 线性方程组的krylov子空间方法

非线性迭代的每一步需要解一个线性方程组,这一步在整个GSS求解过程中最为耗时。线性方程组的求解方法大致分为直接法(LU分解),固定点迭代算法(高斯-赛德尔迭代,超松弛迭代等)和Krylov子空间迭代算法(共轭梯度类,最小余量类)。

半导体器件模型方程组离散而成的系数矩阵是稀疏的不对称带状矩阵。LU分解不能利用这一点,计算量在O(N3)量级;固定点迭代算法收敛速度很慢,目前已不推荐使用;Krylov子空间类的算法只要求矩阵向量相乘,对于本类问题,计算量在O(KMN)量级,其中K为迭代次数,一般数十次迭代即可收敛,M为矩阵带宽,在18 ∼ 24之间。由此可见Krylov类算法可以极大地加速运算。

对于线性方程组求解,有两个需要权衡的问题:一是矩阵条件数,二是浮点运算的舍入误

差。大的条件数会引起LU算法的失败,增加Krylov类算法的迭代次数。通过变量缩放,将多数载流子的浓度约束在1附近可以减小条件数,但是由于半导体器件中电子-空穴乘积是个常数,这样做会导致少数载流子的绝对数量变得更小,导致少数载流子浓度对浮点运算舍入误差敏感,因此

变量的缩放需要控制在一定范围。一般而言,漂移扩散模型中求解线性方程组优先选择最小余

量类的TFQMR(Tranport Free Quasi-Minimal Residual)和GMRES(Generalized Minimal Residual)算法,它们的解收敛过程比较光滑。双共轭梯度类算法CGS(Conjugate Gradient Squared)、BICG(Bi-Conjugate Gradient)、BCGS(Bi-Conjugate Gradient Stabilized)等收敛速度很快,但是没有对余量最小化,收敛过程不规律,有很强的跳跃性,运算过程中密度的中间值可能会出现负数。漂移扩散模型

对负密度抵抗能力虽然比较好,但程序中仍然需要增加额外的处理过程。问题规模比较小(1000节点以下)的时候可以选择LU。目前流行的商用半导体模拟软件中,MEDICI整合了LU与CGS算法,DESSIS则采用了LU与TFQMR算法。GSS软件内置的线性方程求解器PETSC[79]包含了LU方法以及几乎所有的Krylov子空间方法供用户选用。

9.15.1 共轭方向法

共轭方向法是共轭梯度类方法的基础,本节简要介绍它的原理,更详细的内容可参考文

献[80][81]。

设待求解的线性方程组为

Ax = f (9.219)

其中A ∈ Rn,n, f ∈ Rn,A对称正定。为了进一步说明问题,首先引入向量关于矩阵相互共轭的概念。

给定一个对称正定矩阵B,称任意两个非零向量x, y是关于矩阵B相互共轭(也称B正交的),若

xT By = 0 (9.220)

现在假设对于(9.219)式中的矩阵A,存在n个非零向量p1, p2, · · · , pn,满足

(pi, Ap j) = 0, ∀i, j, i , j (9.221)

则p1, p2, · · · , pn相互A正交或A共轭。显然这n个非零向量线性无关。因此,若x∗是方程(9.219)的解,x0为任一向量,则x∗ − x0可表示为这些pi的线性组合

x∗ − x0 =

n∑k=1

αk pk (9.222)

132

第九章 漂移扩散模型的数值方法 第十五节 线性方程组的KRYLOV子空间方法

其中αk均为常数。方程两边同乘A,得到

f − Ax0 = A(x∗ − x0) =n∑1

αkApk (9.223)

令r0 = f − Ax0,把r0和pk作内积,结合(9.221)式,得到

αk =(r0, pk)

(Apk, pk), k = 1, 2, · · · , n (9.224)

若取

xk = x0 +

k∑i=1

αi pi, k = 1, 2, · · · , n (9.225)

则有

xk = xk−1 + αk pk, k = 1, 2, · · · , n (9.226)

由(9.226)式可知,若能够找到n个A正交的向量p1, p2, · · · , pn,则任取一个初始点x0,可以

由(9.226)式迭代求得方程组(9.219)的解。其中αk由(9.224)式给出。假设不考虑迭代过程中的舍入误差,则经过n步的迭代可以求得精确解。

剩下的问题就是如何确定n个A正交的向量p1, p2, · · · , pn。根据Gram-Schmidt正交化方法,对r0应

用以下公式递推可以产生A正交的n个向量。

p1 = r0

pk+1 = Apk −

k∑i=1

βi,k pi

βi,k =(A2 pk, pi)(Api, pi)

(9.227)

综合式(9.224)-(9.227)得到共轭方向法的算法步骤如下。

步骤1:初始化r0 = f − Ax0 p1 = r0 (9.228)

步骤2:k = 1, · · · , n

αk =(r0, pk)

(Apk, pk)

xk = xk−1 + αk pk

βi,k =(A2 pk, pi)(Api, pi)

, i = 1, 2, · · · , k

pk+1 = Apk −

k∑i=1

βi,k pi

(9.229)

文献[80]中给出了扩展子空间定理,从这个定理可以很直观地理解共轭方向法。可以证明上述线性方程组求解问题等价于求目标函数

J(x) =12

xT Ax − f T x (9.230)

133

第十五节 线性方程组的KRYLOV子空间方法 第九章 漂移扩散模型的数值方法

图 9.22 共轭方向法搜索示意图

最小值的问题。

扩展子空间定理 令x0是一个任意选择的初始点,p1, p2, · · · , pn为非零的A共轭向量。若解序列xk是由共轭方向法(9.228) (9.229)产生,则xk在直线xk−1+αk pk以及在直线族x0+S panp1, p2, · · · , pk方

向上使函数J(x)最小化。

扩展子空间定理表明,共轭方向法中每迭代一步,就找到了高一维空间中的最小点,那么,显

然当算法迭代n步后,就找到了函数J(x)在Rn中的最小点。图9.22显示了共轭方向法在三维空间中的搜索过程。第一步,从x0出发,沿p1方向搜索得到最小点x1;第二步,从x1出发,沿p2方向搜索得到

由p1, p2确定的平面上的最小点x2;第三步,从x2出发,沿p3方向搜索得到由p1, p2, p3确定的三维空

间中的最小点x3。

9.15.2 共轭梯度法

共轭梯度法是以共轭方向法为基础的,它与共轭方向法的不同在于,n个共轭方向的确定方法不同。在共轭方向法中,共轭方向是预先给定的,应用了Gram-Schmidt正交化方法,而在共轭梯度法中,共轭方向向量的更新利用了每一迭代点的梯度向量,具体地说,在共轭梯度算法中,共轭方

向向量的更新公式为

pk+1 = rk − βk+1 pk (9.231)

其中rk = f − Axk。如图9.22中,p2由r1和p1确定,p3由r2和p2确定。

共轭梯度法的算法步骤如下。

步骤1:初始化

r0 = f − Ax0 p1 = r0 (9.232)

134

第九章 漂移扩散模型的数值方法 第十五节 线性方程组的KRYLOV子空间方法

步骤2:k = 1, 2, · · · ,

αk =(rk, pk)

(Apk, pk)

xk = xk−1 + αk pk

rk = b − Axk

βk+1 =(Apk, rk)(Apk, pk)

pk+1 = rk − βk+1 pk

(9.233)

当线性方程组系数矩阵的条件数较大时,共轭梯度法的收敛速度也是很慢的,为了提高它的收

敛速度,在求解方程之前对原方程加以适当的处理。这些处理方法统称为预处理技术。

预处理的基本思想是将原方程化为一个与之等价的方程组

Ax = f (9.234)

而方程组(9.234)的系数矩阵的最大、最小特征值之比远小于原方程的相应的部分,从而可以加速共轭梯度法的收敛。常用的预处理技术有多项式预处理和不完全因子分解方法。这里主要介绍不完全

因子分解方法。

不完全因子分解方法的基本出发点是取一个“尽可能靠近”A−1的矩阵M,将原方程等价为

MAx = M f (9.235)

最直接的办法是取M为A的对角线部分的逆,而且记M1/2 = diag[1/√

a11, 1/√

a22, · · · , 1/√

ann],并把方程(9.235)写成

Ax = f (9.236)

其中A = M1/2AM1/2, x = M−1/2x, f = M1/2 f。用共轭梯度法求解x后不难求得x。对于一大类由偏微分方程离散化得到的矩阵,上面的办法确实能减小A的条件数。

9.15.3 双共轭梯度法

在前面介绍的共轭方向类算法中,要求待求解的线性方程组的系数矩阵A是对称正定矩阵。双共轭梯度法适用于系数矩阵A不是对称正定矩阵时线性方程组的求解。在这种方法中,每一步有两个搜索方向p, p,它们关于矩阵A共轭,且满足

pTi Ap j = pT

i Ap j = 0, i , j

rTi r j = rT

i p j, i , j

rTi p j = rT pT

j , j < i

(9.237)

双共轭梯度法的算法步骤如下。

步骤1:初始化

p0 = r0 p0 = r0 (9.238)

135

第十五节 线性方程组的KRYLOV子空间方法 第九章 漂移扩散模型的数值方法

步骤2:k = 1, 2, · · · ,

αk =rT

k rk

( pTk Apk)

rk+1 = rk − αkApk

rk+1 = rk − αkAT pk

βk =rT

k+1rk+1

rTk rk

pk+1 = rk+1 + βk pk

pk+1 = rk+1 + βk pk

xk+1 = xk + αk pk

xk+1 = xk + αk pk

(9.239)

共轭梯度法不适用于非对称系统,这是因为不能使得每一步的余向量相互正交。双共轭梯度方

法采用了另一种方法,用两个相互正交的序列代替正交的余向量,这样做的代价是可能不能提供最

小值。

在实际应用中,双共轭梯度法收敛过程可能十分不稳定,甚至可能breakdown. 这种情况可用“前瞻”策略解决。这种方法会导致算法的实现更为复杂。breakdown问题还可以通过采用其它更鲁棒的算法来解决。例如GMRES方法。

9.15.4 广义最小余量法(GMRES)

在实际工程问题中,待求解线性方程组的系数矩阵可能不再是对称正定的,而是“结构化”的

稀疏矩阵。求解这类方程是近些年的研究热点,已经发展了十多种算法,但在理论上,每个算法都

不十分完善。下面介绍广义最小余量法的基本内容。在广义最小余量法中要用到Arnoldi过程,所以首先给出Arnoldi过程。

对任意给定的向量r0,记Km = S panr0, Ar0, · · · , Am−1r0,Arnoldi过程实际上是建立空间Km中的

一组标准正交基的过程。

Arnoldi过程

1. 定义v1 = v/ ‖ v ‖2.

2.f or : j = 1, 2, · · · ,m

w = Av j

hi, j = vTi w, w = w − hi, jvi, i = 1, 2, · · · , j

do

h j+1,i =‖ w ‖2

while(h j+1,i , 0)

v j+1 = w/h j+1, j

end

(9.240)

136

第九章 漂移扩散模型的数值方法 第十六节 自动微分技术

定义矩阵Vm = [v1, v2, · · · , vm],矩阵Hm为

Hm =

h11 h12 · · · h1,m−1 h1m

h21 h22 · · · h2,m−1 h2m

0 h32 · · · h3,m−1 h3m

· · · · · · · · · · · · · · ·

0 · · · · · · hm,m−1 hmm

(9.241)

Hm =

Hm

hm+1,meTm

(9.242)

其中,eTm = (0, 0, · · · , 1)。

GMRES算法步骤如下:

步骤1:初始化

选择x0 ∈ Rn,并计算

r0 = b − Ax0 v1 = r0/ ‖ r0 ‖ (9.243)

步骤2:对于 j = 1, 2, · · · , k,计算直到满意

用Arnoldi过程求出vi, i = 1, 2, · · · , k

步骤3:求解最小二乘问题miny∈Rn‖ βe1 − Hky ‖ (9.244)

得到的解为yk.

步骤4:计算xk = x0 + Vkyk.

在GMRES方法中,如何求解极小化‖ βe1 − Hky ‖是一个关键问题,具体方法可参考文献[82]。

事实上,很难对GMRES方法和BICG方法进行比较。GMRES方法最小化了残差,但是计算量大,内存容量要求大。BICG方法没有最小化残差,但它求得的解的精度常常与GMRES求得的解的精度相当。BICG方法在每一步要求进行两次矩阵向量相乘,计算量和内存要求相对较小,但算法收敛稳定性不如GMRES.

第十六节 自动微分技术

从非线性方程组的牛顿迭代法,第127页讨论可知,为了求解非线性方程组,需要建立起Jacobian矩阵。作者以亲身体会证明了,手工建立这样的矩阵是一件多么复杂,枯燥而又容易出错的工程。为DDML1模型建立精确 Jacobian矩阵的工作量是实现该模型控制方程的9倍,这足以让人望而生畏。更可怕的是,随着DDML2,EBM,QDDM这些高级模型的出现,Jacobian矩阵难度在以平方比例增长着,到了EBM,Jacobian矩阵的工作量已经是该模型控制方程的36倍。

137

第十六节 自动微分技术 第九章 漂移扩散模型的数值方法

幸运的是,自动微分技术(AD)让GSS摆脱了越来越力不从心的 Jacobian矩阵长征。AD使建立Jacobian矩阵成为一件轻松愉快的事情,其工作量几乎可以忽略不计,同时也大大减少了代码出错的可能。作者估计,AD使GSS开发的工作量减少了70-80%。这样,开发者可以把精力更多的集中于物理模型本身。

AD技术起源于1977-1980年Bill Gear的博士论文,他证明了对于任何单变量函数求导,花费的运算量不会超过5倍该函数的计算量[83]。从理论上证明AD的高效后,诞生了很多AD软件。这些软件分为两个流派,一个是以ADIC[84],ADIF为代表的代码生成流派,它们读入用户提供的函数C或者Fortran代码,然后生成计算导数的C或者Fortran代码;另一个是以ADOL-C[85]为代表的算符重载流派,它提供特殊的变量以及重载后的C++算符,在计算函数值的同时计算其导数。

代码生成十分的复杂。以ADIC为例,它需要读入用户C代码,检查其正确性,然后生成导数代码,这个过程中,还要优化链式求导规则,合并其中的重复计算代码。它的优点是生成的导数计

算代码效率高;但是缺点在于它糟糕的C语言语法分析器:ADIC无法分析复杂的C代码,更不用说C++代码,使用时需要在它能识别的范围内书写自己的C代码。这种写代码就像踩地雷一样,不知何时ADIC就不认的情况让人实在难以容忍。此外,它生成的代码从人的观点看杂乱无章,没有可读性这点也很糟糕。

相反,ADOL-C的效率不是最高的,但是它可以很容易的集成到C++软件中,用户只要用它提供的特殊变量写一遍函数,就可以同时得到函数值与其导数值。作者利用它2 改写了GSS计算 Jacobian矩阵的函数,费时仅仅2周。而在手工微分时代,这些 Jacobian矩阵函数花费了作者数个月的时间。

这里简单介绍一下ADOL-C的原理。不妨设y是x的一个函数,它包含加减乘除以及sin函数运算

y =5x+ 2x + x2 + sin(x) (9.245)

那么在C++语言中,当x = 2.5时y的计算可以表述为:

1

2 double x=2.5;

3 double y;

4 y = 5/x + 2*x + x*x + sin(x);

5 cout<<”y=”<<y<<endl;6

在头文件 ”ad.h”中,ADOL-C定义新的数据类型 adouble3:

1 #ifndef _ad_h_

2 #define _ad_h_

34 class adouble

5

6 public:

7 // internal variables

2ADOL-C分为tap与tapless版本,GSS使用了tapless版本,并稍稍进行了修改3只是一个例子,实际使用需要重载更多的算符

138

第九章 漂移扩散模型的数值方法 第十六节 自动微分技术

8 double value;

9 double ad_value;

10 public:

11 // addition

12 const adouble operator + (const double v) const;

13 const adouble operator + (const adouble& a) const;

14 friend const adouble operator + (const double v, const adouble& a);

15 // substraction

16 const adouble operator - (const double v) const;

17 const adouble operator - (const adouble& a) const;

18 friend const adouble operator - (const double v, const adouble& a);

19 // multiplication

20 const adouble operator * (const double v) const;

21 const adouble operator * (const adouble& a) const;

22 friend const adouble operator * (const double v, const adouble& a);

23 // division

24 const adouble operator / (const double v) const;

25 const adouble operator / (const adouble& a) const;

26 friend const adouble operator / (const double v, const adouble& a);

27 // functions

28 friend const adouble sin(const adouble &a);

29 // assignment

30 void operator = (const adouble& a);

31 // constructor

32 adouble(const double v, const double adv):value(v),ad_value(adv);

33 adouble();

34 ;

35 #endif

那么计算y以及dy/dx的C++代码可以简单的写为

1 #include ”ad.h”2 ...

3

4 adouble x(2.5,1.0);

5 adouble y;

6 y = 5/x + 2*x + x*x + sin(x);

7 cout<<”y=”<<y.value<<” ”<<”dy/dx=”<<y.ad_value<<endl;8

除了包含一个新的头文件以及将变量 double替换为 adouble,没有其他的改动。因此,在ADOL-C框架下,书写自动微分代码是十分简单的。

139

第十六节 自动微分技术 第九章 漂移扩散模型的数值方法

在这段简单的代码背后,ADOL-C悄悄做了很多工作。每个变量都有2个值,一个是本身的值(value),另一个是微分值(ad value)。变量x初始化为x(value = 2.5, advalue = 1),表示这是一个独立变量。下面来分析y的计算中到底发生了哪些事情。

首先,5/x的计算代码调用了重载算符”/”,它被声明为友元:

1 const adouble operator / (const double v, const adouble& a)

2

3 adouble tmp;

4 tmp.value=v/a.value;

5 tmp.ad_value=(-v*a.ad_value)/(a.value*a.value);

6 return tmp;

7

重载后的”/”同时计算了5/x的数值以及导数值,储存在临时变量tmp(value = 2 , advalue = −0.8)中返回。

同样优先级的2 ∗ x计算代码调用了重载算符”*”,它也是友元函数:

1 const adouble operator * (const double v, const adouble& a)

2

3 adouble tmp;

4 tmp.value=v*a.value;

5 tmp.ad_value=v*a.ad_value;

6 return tmp;

7

这里返回了临时变量tmp(value = 5 , advalue = 2)。

注意,x ∗ x的计算代码调用了重载算符”*”的另一个实现:

1 const adouble adouble::operator * (const adouble& a) const

2 adouble tmp;

3 tmp.value=value*a.value;

4 tmp.ad_value=ad_value*a.value+value*a.ad_value;

5 return tmp;

6

它返回了临时变量tmp(value = 6.25 , advalue = 5)。

友元函数sin(x)也被重载为:

1 const adouble sin(const adouble &a)

2 adouble tmp;

3 double tmp2;

4 tmp.value=sin(a.value);

5 tmp2=cos(a.value);

140

第九章 漂移扩散模型的数值方法 第十六节 自动微分技术

6 tmp.ad_value=tmp2*a.ad_value;

7 return tmp;

8

这里返回的临时变量tmp(value = sin(2.5) , advalue = cos(2.5))。

之后处理加法运算,它的优先级低于其他算符,这里调用重载算符”+”:

1 const adouble adouble::operator + (const adouble& a) const

2 adouble tmp;

3 tmp.value = value + a.value;

4 tmp.ad_value = ad_value + a.ad_value;

5 return tmp;

6

前面返回的临时变量被逐个相加,最后通过赋值算符”=”,将右端计算结果赋给y

1 void adouble::operator = (const adouble& a)

2 value=a.value;

3 ad_value=a.ad_value;

4

显然,通过重载算符,dy/dx被悄悄的计算出来,整个过程简练而优雅。

前面给出的例子是单变量的自动微分过程,GSS使用的是多变量ADOL-C的实现,基本原理一致,感兴趣的读者可以参考其源代码在$GSS DIR/src/include/adolc.h。

此外,在二维迁移率模型,第107页中已经提到,GSS总是在三角形内处理模型方程,这意味着同时涉及三个顶点,即使是最复杂的EBM模型,每个点也只有6个变量,因此对任意一个半导体控制方程,同时涉及的基本变量数目不会超过18个。ADOL-C处理这种稀疏问题效率还可以,根据作者的测试,仅比手工优化的代码慢20-30%,相比较AD带来的好处,这点效率的损失是可以容忍的。

141

第十章 半导体模拟软件的扩展功能

第一节 AC小信号模型

除了基本的稳态计算与瞬态计算功能外,GSS还支持小信号交流扫描(AC sweep)作为稳态计算的后处理过程。在实际应用中,小信号交流扫描被广泛用于评估放大器的带宽、截止频率等。

小信号交流扫描是直流稳态计算的后处理过程,用户必须首先计算半导体器件处于直流偏置电

压下的状态,然后输入一个幅度很小正弦信号,典型的信号幅值是0.0026V,以至于可以认为半导体器件的状态没有明显偏离直流稳态计算的结果,然后利用泰勒展开求解小信号输入器件的响应。具

体过程如下。

假设在电极上施加的电压为

V = V0 + Ve jωt (10.1)

其中V0是直流偏置电压,V是正弦小信号的幅度,ω是信号的圆频率。而直流计算的结果满足下面的半导体基本方程组

Fψ (ψ, n, p) = ∇ · ε∇ψ + q (p − n + ND − NA) = 0 (10.2)

Fn (ψ, n, p) =1q∇ · Jn − U =

∂n∂t= 0 (10.3)

Fp (ψ, n, p) = −1q∇ · Jp − U =

∂p∂t= 0 (10.4)

加上交流小信号后的解可以写成

ψi = ψi0 + ψie jωt (10.5)

ni = ni0 + nie jωt (10.6)

pi = pi0 + pie jωt (10.7)

其中ψi0、ni0和pi0是节点i处直流计算的结果,ψ、ni和 pi则是对应的交流信号响应值,一般而言,它们

都是复数。将解(10.5)-(10.7)代入半导体基本方程组,并根据小信号近似,将其泰勒展开到一阶,三个半导体方程有下面的形式

Fψ (ψ, n, p) = Fψ (ψ0, n0, p0) +∂Fψ∂ψ

ψe jωt +∂Fψ∂n

ne jωt +∂Fψ∂p

pe jωt = 0 (10.8)

Fn (ψ, n, p) = Fn (ψ0, n0, p0) +∂Fn

∂ψψe jωt +

∂Fn

∂nne jωt +

∂Fn

∂ppe jωt = jωne jωt (10.9)

Fp (ψ, n, p) = Fp (ψ0, n0, p0) +∂Fp

∂ψψe jωt +

∂Fp

∂nne jωt +

∂Fp

∂ppe jωt = jωpe jωt (10.10)

142

第十章 半导体模拟软件的扩展功能 第一节 AC小信号模型

注意到F (ψ0, n0, p0) = 0满足直流解,于是可以得到交流情况下内点满足的线性方程组

∂Fψ∂ψ

∂Fψ∂n

∂Fψ∂p

∂Fn

∂ψ

∂Fn

∂n− jω

∂Fn

∂p∂Fp

∂ψ

∂Fp

∂n∂Fp

∂p− jω

ψ

n

p

=

0

0

0

(10.11)

而在电极处,则满足下面的方程 ψ = P

n = 0

p = 0

(10.12)

其中P为电极处的电势,P与V的关系由电极外电路决定,GSS默认的电极外电路结构如图(10.1)所示。因此需要补充方程

图 10.1 AC扫描中的电极

V − (Z1Y2 + 1) P = Z1 I (10.13)

其中Z1 = R + jωL,Y2 = jωC为外电路的阻抗与导纳参数,I为流入电极的电流。

内点满足的线性方程组(10.11)左边矩阵显然就是由直流状态计算时采用的 Jacobian矩阵在主对角线上减去− jω而得到。如果有复数的线性方程求解器,问题已经解决了,如果只有实数的线性方程求解器,则需要再进一步,将(10.11)写成实数的形式 J −D

D J

XR

XI

= 0

0

(10.14)

其中J为直流状态计算时采用的 Jacobian矩阵,XR与XI是交流解的实部与虚部,D是对角阵

D =

0

−ω

−ω

(10.15)

在GSS的代码中,AC求解器与DDML1E共享 Jacobian 矩阵,因此AC求解器的调用必须紧跟在DDML1E稳态求解之后。每求解一次式(10.14),可以得到半导体器件对于一个频率的正弦输入的响应,在应用中往往扫描一个很宽的频带来得到器件的频域特性。由式(10.15)可知,式(10.14)中ω并不在主对角线上,因此当ω很高时,矩阵将失去对角占优,条件数明显变坏。一般来说当扫描频率接

近器件的截止频率时,收敛将变得困难[86]。

143

第二节 电路级混合模拟 第十章 半导体模拟软件的扩展功能

第二节 电路级混合模拟

GSS是一个器件级的模拟软件,仅能对单个晶体管进行数值模拟,虽然在电极上附加集总参数电路元件后,可以计算一些简单的电路,但是对于稍微复杂一些的外电路结构就无能为力。为了弥

补这一缺陷,GSS设计了与SPICE软件的接口,扩展了GSS在电路模拟方面的使用范围。在实际的应用中,电路模拟在SPICE控制下完成,电路中不重要的元件可以直接使用SPICE提供的模型,关键器件则采用GSS进行精细的数值模拟。如果在一个电路中需要数值模拟多个器件,SPICE可以同时调用多个GSS进程,每个GSS进程完成一个器件的计算,最后由SPICE将它们耦合到一起。

SPICE软件是美国UC Berkeley于1972年用Fortran语言开发的模拟电路仿真软件,正式版本SPICE2G于1975年推出。1985年,Berkeley用C语言重写了SPICE3,最后的版本 SPICE3f5在1994年推出,此后Berkeley宣布不再继续开发。基于SPICE的商业化软件大约有十多种,包括Orcad公司的PSPICE,以及Synopsys公司的HSPICE,NanoSim等等。事实上,商用化SPICE版本的内核没有多大变化,外观上仅增加了电路原理图的图形化输入界面,最主要的增强是收集了大量器件的参数,

比如PSPICE据说收集了超过十万种器件的参数。

由于原来的SPICE已经有十多年的历史,其中的部分代码已经不能与当今的编译器兼容,SourceForge支持了NGSPICE项目,这是一个重写过的SPICE版本,修正了原来版本的一些错误,并增加了一些新的功能[87]。在NGSPICE的开发基本完成后,开发小组的成员大部分转向了GNUCap(GNU Circuit Analysis Package)项目,这是一个用C++语言开发的先进数字/模拟电路混合仿真软件包,与SPICE基本兼容的同时提供了很多优良的特性。GSS目前可以与NGSPICE协同工作,实现混合模拟,在不远的将来,GSS也许会被GNUCap接受为半导体器件数值模型插件。在混合模拟的开发过程中得到了NGSPICE/GNUCap开发小组的很多帮助,在这里对他们表示感谢。

下面将首先简单介绍电路方程的建立,在此基础上给出NGSPICE将器件加入电路的方法,最后介绍GSS软件与NGSPICE软件的接口。

10.2.1 电路的节点分析法

目前的PSPICE软件可以分析含有成千上万电子器件的复杂电路,人们往往惊讶于它的强大。这里将讨论这个强大软件的基本原理,并且这个原理十分的简单。

任何一门电路分析课程都会提到基尔霍夫提出的两种电路分析方法:节点电流守恒和环路电压

守恒。在实践中,用节点来描述电路的拓扑结构比用有向环路简单得多。SPICE软件采用了节点电流守恒方法来建立方程,它的输入文件要求人为给出器件的节点编号,然后根据每个器件的电流电

压特性建立节点电流方程,这个方法称为电路的节点分析法[88]。

节点分析法的变量是电压,以图(10.2)的简单电路为例:根据基尔霍夫节点电流守恒定律,流入流出某个节点的电流必须相等,可得关于节点1和节点2的方程:

− Is +V1

R1+

V1 − V2

R2= 0 (10.16)

V2 − V1

R2+

V2

R3= 0 (10.17)

为清晰起见,将上面的方程写为矩阵形式: 1R1+ 1

R2− 1

R2

− 1R2

1R2+ 1

R3

V1

V2

= Is

0

(10.18)

144

第十章 半导体模拟软件的扩展功能 第二节 电路级混合模拟

图 10.2 节点分析法电路图

其中,左端的矩阵称为电路的传导矩阵,右端则是电路中的电流源。只要求解这个矩阵,就能得到

电路中的节点电压信息。

计算机可以方便的建立传导矩阵。以上图的电路为例,计算机逐个扫描电路中的器件。扫描到

连接节点1与地的电流源Is时,将电流值赋给节点1在式(10.18)中的右端向量。扫描到电阻2时,设它的两个端点分别为R+、R−,通过它的电流与两端电压的关系为:

IR+ =VR+ − VR−

R2(10.19)

IR− =VR− − VR+

R2(10.20)

电阻的传导矩阵为: ∂IR+

∂VR+

∂IR+

∂VR−∂IR−

∂VR+

∂IR−

∂VR−

=

1R2−

1R2

−1

R2

1R2

(10.21)

得到R2电阻的传导矩阵后,计算机按照对应节点位置,将其插入到式(10.18)左端的矩阵中(类似于有限元分析的刚度矩阵加载)。扫描到电阻1与电阻3时照此处理。它们有一端接地,由于接地点电压

恒为0,因此只要计算非接地端的∂I∂V即可。当扫描完所有器件后,电路方程式(10.18)也就建立了。

上面涉及到了器件的传导矩阵概念,对于一个有N个端点的器件,每个端点的电流可以写成

Ii = I (V1,V2 · · ·VN) (10.22)

则传导矩阵为

∂I1∂V1

∂I1∂V2· · ·

∂I1∂VN

∂I2∂V1

∂I2∂V2· · ·

∂I2∂VN

...

∂IN∂V1

∂IN∂V2· · ·

∂IN∂VN

(10.23)

对于任意含有电阻与电流源的电路(但是不能有电压源),理论上只要按照上面的方法,将每个电阻的传导矩阵插入电路传导矩阵的对应位置,以及将电流源加入对应节点方程的右端,就可以建

立电路方程。剩下来的工作只是解一个线性方程组了。

节点分析法有着先天的局限,它无法描述纯粹的电压源,因为电压源的电流与自身的电压毫无

关系。老版本的SPICE给每个电压源附加了一个微小的内阻,强行将电压与电流通过内阻联系起来。

145

第二节 电路级混合模拟 第十章 半导体模拟软件的扩展功能

新的SPICE版本则采用改进的节点分析法,这个方法允许电压源以及模型中包括了电压源的器件增加一个电流变量。

实际的电路不可能仅含电阻,电容与电感在稳态计算中可以忽略,但它们是瞬态电路不可缺少

的元件。电容与电感的电流-电压关系包含时间导数,建立传导矩阵需要一定的技巧。实际上,下面的处理方法可以推广到任意与时间导数相关的器件。

电容的电流电压关系为:

IC = CdVC

dt(10.24)

上式是一个微分方程,SPICE利用数值积分来求解上式。下面是一阶和二阶的数值积分

In+1C =

C∆tn Vn+1

C −C∆tn Vn

C (10.25)

In+1C =

2C∆tn Vn+1

C −2C∆tn Vn

C − InC (10.26)

实际的SPICE代码中甚至提供了更高阶精度的数值积分方法,它们的通式为:

In+1C =

Cb−1∆tn︸ ︷︷ ︸

geq

Vn+1C −

a0 ·Cb−1∆tn Vn

C −b0

b−1InC −

b1

b−1In−1C − . . . −

bk

b−1In−kC︸ ︷︷ ︸

Ieq

(10.27)

于是,电容的等效电路如图(10.3)所示,电流电压关系可以写为:

In+1C = geq · Vn+1

C + Ieq (10.28)

或者按照节点分析法,写为矩阵的形式:+geq −geq

−geq +geq

· Vn+1

1

Vn+12

=−Ieq

+Ieq

(10.29)

电感元件的电流电压关系

VL = LdIL

dt(10.30)

在SPICE中,电感同样用数值积分表示

Vn+1L =

Lb−1∆tn︸ ︷︷ ︸

req

In+1L −

a0Lb−1∆tn In

L −b0

b−1Vn

L −b1

b−1Vn−1

L − . . . −bk

b−1Vn−k

L︸ ︷︷ ︸Veq

(10.31)

电感的等效电路如图(10.4)所示,相当于一个附加有内阻的电压源。电感的电流电压关系可以写为:

Vn+1L = req · In+1

L + Veq (10.32)

由于电压源的出现,必须将电压源支路的电流作为变量。电感在改进的节点分析法中的矩阵形式

为: 0 0 +1

0 0 −1

+1 −1 −req

·

Vn+11

Vn+12

In+1L

=

0

0

Veq

(10.33)

146

第十章 半导体模拟软件的扩展功能 第二节 电路级混合模拟

图 10.3 电容的等效电路 图 10.4 电感的等效电路

一般而言,复杂器件的电流电压关系为非线性函数,典型的例子是二极管,前面的线性器件都

可以看成非线性器件的特例。这里从更一般的情况出发,推导电路求解的方法。设所求解电路的方

程为:

I (V) = 0 (10.34)

其中,V表示了电路中的节点电压向量,I表示流入每一个节点的电流值。如果电路中有N个节点,V和I都有N个元素。使用牛顿迭代法求解上式,迭代过程为

Vn+1 = Vn − J−1 (Vn) I

(Vn) (10.35)

其中,上标n表示迭代的序列数

J (V) =

∂I1∂V1

∂I1∂V2· · ·

∂I1∂VN

· · · · · ·

∂IN∂V1

∂IN∂V2· · ·

∂IN∂VN

在每一次迭代中,当前电压向量Vn是已知的,因此下一步的电压向量Vn+1可以从式(10.35)得到。

SPICE求解的是式(10.35)的变形,习惯上将 Jacobian矩阵J称为传导矩阵G,式(10.35)可写为:

GnVn+1 = GnVn − In (10.36)

传导矩阵G相当于非线性器件在电压为Vn时的线性电导,而方程右端的GnVn − In则相当于非线性器

件在电压为Vn时的等效电流源。SPICE在每一步迭代前要得到每个器件的线性电导与等效电流源,这部分信息则是由器件模型来提供。式(10.36)的迭代直到收敛条件达到后停止。

10.2.2 GSS的电路混合模拟模块

器件/电路混合模拟可以采用两种思路。第一种是将电路方程与半导体方程混合在一起,构成一

个统一的方程组求解,称之为耦合方法[89]。第二种是二层迭代方法:外部是电路方程的迭代,而每一次电路迭代内部,器件模拟单元根据电路传来的器件节点电压值迭代至收敛,然后计算本器件的

传导矩阵以及等效电流源反馈给外电路[90]。耦合方法总的迭代次数少,但是它的最大问题是能够处理的器件有限。由于所有方程要在一起计算,比如有10个半导体器件,每个半导体器件的控制方程有3000个,那么最后形成的矩阵规模会非常庞大。并且矩阵的迭代计算量至少按照O(n2)增长,在矩阵很大的时候每次迭代的计算量会非常大。一般来说,当问题比较小,比如仅有一个器件需要数

值模拟时,耦合方法占优。二层迭代方法将大问题分而治之,适合大规模问题的求解。虽然需要更

147

第二节 电路级混合模拟 第十章 半导体模拟软件的扩展功能

多的迭代次数,但是由于避免了过大的矩阵规模,大大降低了每一次迭代的代价。同时,二层迭代

方法有天然的并行特征,正如前文所言,每一个数值器件可以用一个单独的CPU计算,SPICE只需要等待最慢的器件计算完毕就可以进行电路迭代。

GSS与NGSPICE采用二层迭代方法协同工作。在实现上,作者为NGSPICE增加了一个数值器件(NDEV),NDEV本质上是一个TCP/IP的网络接口,如图(10.5)所示。它向GSS发送器件节点的电压信息,GSS接收后计算出传导矩阵以及等效电流源再发回NDEV[91][92]。

图 10.5 混合模拟层次结构

为了配合SPICE工作,GSS需要能够提供器件的传导矩阵以及等效电流源信息。从式(10.36)可

知,最为关键的是如何得到器件的传导矩阵G =∂i∂V。一个简单的想法是利用有限差分近似,对于传

导矩阵的每一个元素

Geq =∂i∂V≈

i (V0 + ∆V) − i (V0)∆V

(10.37)

这个方法虽然实现起来简单,但是当i (V0 + ∆V)与i (V0)接近时误差比较大,何况如何确定∆V 也是令人头疼的问题。

从解析方法确定G需要更多的努力,但是为了更加精确的结果,这点代价还是值得的[75][93]。将GSS求解的半导体方程组写为下面的形式

F (w,V) = 0 (10.38)

其中,w表示了半导体的基本变量,包括静电势ψ、电子密度n、空穴密度p以及温度T;V则表示作用在某一个电极上的外电压。注意到半导体的基本变量w依赖于外电压,因此可以写为w = w (V)。器件电极的电流则可以写为i = I (w),因为电极电流不显式依赖于外电压。采用链式求导法则可以将Geq表示为

Geq =∂i∂V=∂I∂w·∂w∂V

(10.39)

148

第十章 半导体模拟软件的扩展功能 第三节 器件IV曲线自动扫描

由于电极电流的表达式已知,因此∂I∂w可以直接推导得到。为了得到

∂w∂V,对式(10.38)求偏导数得到

Jw∂w∂V+∂F∂V= 0 (10.40)

其中,Jw为半导体控制方程组的 Jacobian矩阵,在GSS迭代时已经求出;∂F∂V则可以通过对器件电极

边界控制方程的符号微分得到。因此通过求解上式的线性方程组就可以得到∂w∂V。

得到∂I∂w与∂w∂V后,可以通过式(10.39)求解Geq。对于含多个电极的器件,传导矩阵有下面的形式

G =

∂I1

∂w∂w∂V1

∂I1

∂w∂w∂V2

· · ·∂I1

∂w∂w∂VN

· · · · · ·

∂IN

∂w∂w∂V1

∂IN

∂w∂w∂V2

· · ·∂IN

∂w∂w∂VN

(10.41)

在得到传导矩阵之后,等效电流源可以由式(10.36)直接导出。

在上面的推导中,GSS还可以获得另一个好处。以前的GSS求解总是利用前一步的结果作为下一步的迭代初值,但是得到了

∂w∂V后,下一步的迭代初值可以用更好的近似式:

wn+1 = w(Vn) + (

∂w∂V

)n

∆V (10.42)

这样做往往可以增强收敛性。

第三节 器件IV曲线自动扫描

计算器件的IV曲线一般是采用电压扫描的方式:逐步的增加电极电压,对于每一个电压值计算流过器件的电流,然后将结果绘成IV曲线图。这个方法很容易想到,但是在实际应用中会出现一些问题。在二极管的数值模拟,第159页中会提到,二极管正向IV曲线图(12.7)的高偏压部分,电流是电压的指数函数,略微增加电压都将导致很大的电流变化,这意味着用上一个电压下的解作为牛顿

迭代的初值是比较糟糕的,体现在电压扫描收敛比较困难。此外,用于ESD保护的ggNMOS击穿特性模拟,第202页,其IV曲线会出现回溯现象,由于在回溯点的电流是电压的多值函数,电压扫描无法收敛。

为了解决上面两个问题,可以人为的使用电流扫描。对于二极管的正向导通,增加较大的电流

也仅意味着电压的微小变化,这样牛顿迭代的初值就好多了。而在ggMOS击穿的回溯点,电流仍然是单值函数,这样就消除了多重解问题。

总之,当IV曲线比较平坦(与电压轴平行)时,适合采用电压扫描;而当IV曲线比较陡峭(与电流轴平行)时,适合采用电流扫描。器件IV曲线自动扫描功能可以自动在两者之间切换,避免了人工干预[94]。

149

第三节 器件IV曲线自动扫描 第十章 半导体模拟软件的扩展功能

图 10.6 器件IV曲线自动扫描电路结构 图 10.7 器件的IV线与负载线

器件IV曲线自动扫描采用如图(10.6)所示的电路结构。一个电压源通过一个可调电阻连接到需要扫描的器件端口。从电路分析可知,一个带内阻R的电压源在IV图上是一条斜率K = 1/R的直线,这里称之为负载线。当R→ 0时,斜率K→ ∞,表示负载线垂直于电压轴,相当于理想电压源情况,如图(10.7)中(a)线;当R→ ∞时,斜率K→ 0,表示负载线垂直于电流轴,相当于理想电流源情况,如图(10.7)中(b)线。因此,通过调整R的大小1,就能让负载线与器件IV线垂直,如图(10.7)中(c)线所示。

图 10.8 器件IV曲线自动扫描过程

器件IV曲线自动扫描算法保证每个扫描点处,负载线与IV线保持正交状态。其算法过程如图(10.8)所示。在P点,GSS计算器件在当前点的I = I(V),以及IV曲线的斜率K = ∂I/∂V。设负载线的

1允许出现负电阻

150

第十章 半导体模拟软件的扩展功能 第三节 器件IV曲线自动扫描

电阻RLoad = −1/K,垂直于当前IV线的斜率。然后改变外电源电压Vext,相当于负载线沿着电压轴

平行移动δVext,设负载线与IV线应该相交于Q点。GSS计算Q点的位置,同时计算Q点IV曲线的斜率,然后再次设置负载线的电阻,相当于负载线在Q点旋转一个角度,使其保持与IV线垂直。此时负载线与电压轴的交点变为Vnew

ext ,意味着负载电阻改变后,外电压必须设为Vnewext ,以使负载线与IV线保

持相交于Q点。如此循环,直到扫描完整条IV曲线。

值得注意的是出现回溯点的情况。在回溯点,电压值的步长应该改变符号。图(10.9)显示了如何确定回溯点:在回溯点前后,IV线的斜率S1,S2一正一负,其乘积为负数;连接1,2两点的直线T斜率绝对值大于S1的斜率绝对值。满足上面两个条件,即可判断IV曲线出现回溯点,需要改变电压步长的正负号。

图 10.9 回溯点的判断

最后提一下IV曲线自动扫描的缺点,由于它需要引入一个额外的电阻(这个电阻在IV曲线陡峭时会非常大),电极上附加的大电阻会显著的导致问题条件数变大,因此IV曲线自动扫描可能会导致更加严重的收敛性问题。

151

第十一章 半导体光学吸收的模拟

半导体器件在光电探测中起着非常重要的作用。硅器件禁带宽度正好落在可见光范围内,其最

典型的应用就是数字相机的CCD光敏探测器。而一些窄禁带的材料如GaSb,InSb以及HgCdTe适用于红外波段,它们均有强烈的军用背景,比如红外照相,红外制导等。

本章基于张相华同学为GSS软件增加的电磁有限元求解器EMFEM。设计之初,张相华在调研中发现光吸收在目前的半导体模拟软件中一般采用射线追踪法计算[4][5],很有些不屑,打算采用更为精确的电磁有限元方法。最后的结果表明,有限元方法得到的光分布比起射线追踪法要精细很多,

但是用两种方法得到的器件光电流差别却很小。从效率上说,射线追踪法几乎不占CPU时间,适合工程应用;电磁有限元算法需要划分细致的网格,还需要建立真空区域与PML边界,耗费的的内存与CPU时间远大于射线追踪法,比较适合研究目的。

第一节 电磁散射问题有限元方法基本原理

电磁有限元方法基本原理在很多教科书上都有阐述,金建铭著,我的导师王建国译于1997年的“电磁场有限元方法”就是比较好的一本中文书[95]。之后,金建铭于2002年还出版了其第二版[96]。

对电磁有限元方法能在书[95]中找到的部分,在此就不再详细叙述,这里着重介绍如何在电磁有限元计算中使用UPML吸收边界。UPML全称为统一的完全匹配层,电磁波可以无反射的进入UPML,并且在其内部迅速衰减。这是最近才发展起来的方法,它比传统的吸收边界可以更加贴近散射体,同时吸收效果好很多。为了实现UPML,张相华同学付出了很多的努力,在此表示感谢。

光线入射到光电器件的二维数值模拟需要建立如图(11.1)所示的模型。最内侧为所要模拟的光电器件,其外部需要有一定的真空区域,一般为1 ∼ 2个波长,以便加载入射波,最外侧是厚度为1 ∼ 2个波长的UMPL吸收边界以截断入射波的散射场。整个计算区域都要划分网格,其网格特征尺寸需要小于1/10波长。

从电磁理论可知,在二维情况下,任何入射平面波都可以分解为TM模与TE模的叠加。TM模与TE模可能有不同的相位因子,其相位之差对应着不同的偏振情况。不过为了简单起见,在下面的方程推导中都略去了相位因子。

11.1.1 材料的电磁参数

除了真空介电率εr = 1.0外,半导体、绝缘体以及金属在GSS电磁模块中都被看作各向同性有耗

152

第十一章 半导体光学吸收的模拟 第一节 电磁散射问题有限元方法基本原理

图 11.1 二维光学吸收模型

介质,其介电率为:

εr = ε′r − jε′′r (11.1)

其中,ε′r与ε′′r与材料的复折射率n + ik有如下关系:

ε′ = n2 − k2

ε′′ = 2nk(11.2)

在GSS材料数据库中,每种材料都以表格的形式给出了复折射率系数与波长的关系。大部分数据来自FreeSnell[97]。下表给出了GSS提供的各种材料复折射率系数的波长范围。

Material λ µm Material λ µm Material λ µm

Ag 0.0506-10.002 Air all range Al 0.0165-15.0

Cu 0.02-10.0 GaAs 0.0620-2.0 Ge 0.1240-1.7710

HgCdTe 0.2066-0.9534 InAs 1.0-20.0 InGaAs/AlGaAs the same as GaAs

InN not available InP 0.0620-0.9759 InSb 0.2296-6.9

Nitride 0.0512-1.240 PolySi 0.1240-0.9613 Si 0.1240-1.240

SiGe the same as Si SiO2 0.0496-7.5000 TiSi2 the same as Al

同时,电磁模拟中涉及的半导体、绝缘体、金属和真空,都可以认为是非磁性材料介质,因此

有µr = 1.

对于UPML材料,其介电率以及导磁率都为对角张量的形式,将在后面介绍。

11.1.2 TM模散射方程

对于TM模,入射波设为:Einc

z = E0 exp(− jk · r) (11.3)

153

第一节 电磁散射问题有限元方法基本原理 第十一章 半导体光学吸收的模拟

在物理区域(真空与器件区域),总场为入射场与散射场的叠加,分别以Eincz 以及Esc

z 表示入射场

与散射场,总场需要满足广义Helmholtz方程[96]:

∂2Escz

∂x2 +∂2Esc

z

∂y2 + k20εrEsc

z = Finc (11.4)

其中,入射场部分

Finc =

∂2Eincz

∂x2 +∂2Einc

z

∂y2 + k20εrEinc

z

(11.5)

从式(11.3)可得:Einc

z = E0 exp(− jk · r) = E0 exp[− jk0 (x cos θ − y sin θ)

](11.6)

因此,Finc是已知的,它可以写为:

Finc =[−k2

0Eincz + k2

0εrEincz

](11.7)

= −[k2

0 (1 − εr) Eincz

](11.8)

= −[k2

0E0(1 − ε′r + jε′′r

)(cosα + j sinα)

](11.9)

= −k2

0E0[(

1 − ε′r)

cosα − ε′′r sinα]+ jk2

0E0[ε′′r cosα +

(1 − ε′r

)sinα

](11.10)

这里,α = −k0 (x cos θ − y sin θ)。

在UPML区域,仅有散射场存在[∂

∂x

(µ−1

ry∂

∂x

)+∂

∂y

(µ−1

rx∂

∂y

)+ k2

0εrz

]Esc

z = 0 (11.11)

习惯上,将UPML的外边界设为金属边界,有Escz = 0。

因此,任意给定TM模入射场,即可通过式(11.4)与式(11.11)求解散射场,二者的叠加就是TM模散射问题的解。

11.1.3 TE模散射方程

对于TE模,入射波设为:Hinc

z = H0 exp(− jk · r) (11.12)

类似于TM模的推导,可以得到TE模所需要满足的方程:[∂

∂x

(ε−1

ry∂

∂x

)+∂

∂y

(ε−1

rx∂

∂y

)+ k2

0µrz

]Hsc

z = Finc (11.13)

其中,入射场部分在UPML中为0,在物理区域

Finc = k20H0

[(1 −

ε′r

ε′r2 + ε′′r

2

)cosα +

ε′′r

ε′r2 + ε′′r

2 sinα]+ j

[(1 −

ε′r

ε′r2 + ε′′r

2

)sinα −

ε′′r

ε′r2 + ε′′r

2 cosα]

(11.14)同样,α = −k0 (x cos θ − y sin θ)。

UPML的外边界同样设为金属边界,于是有∂Hz

∂n= 0,这里n表示边界的法线方向。

154

第十一章 半导体光学吸收的模拟 第一节 电磁散射问题有限元方法基本原理

图 11.2 UPML各区域电学参数

11.1.4 二维UPML的设置

在xOy平面内的物理模型如图(11.2)所示,根据匹配理论,UPML电学参数需要分上下、左右以及四角三种情况,其取值同样示于图(11.2)中。

图(11.2)所示的各张量如下:

Sx =

s−1

x 0 0

0 sx 0

0 0 sx

Sy =

sy 0 0

0 s−1y 0

0 0 sy

SxSy =

s−1

x sy 0 0

0 sxs−1y 0

0 0 sxsy

这里

sx = 1 +σx

jωε0

sy = 1 +σy

jωε0

(11.15)

并且

σx =

(x

dx

)m

σmax

σy =

(ydy

)m

σmax

(11.16)

其中,dx、dy分别表示x、y方向的UPML层厚度;σmax为经验值,根据[98]中的建议,可以按照下面的规则取值:

σmax =(m + 1) ε0v

2dln

1R

(11.17)

式中,d表示UPML层厚度,v表示传输波到达UPML界面时的速度,m为UPML层数,R表示理论反射系数。根据实际情况,选取比较好的R(比如1e-4)和m(比如4)就可以得到较为理想的σmax值。

根据上式的取值及v = c = 1/√

ε0µ0,可以得到以下表达式:

sx = 1 − j(m + 1) λ

4πdln

(1R

) (x

dx

)m

sy = 1 − j(m + 1) λ

4πdln

(1R

) (x

dx

)m (11.18)

155

第一节 电磁散射问题有限元方法基本原理 第十一章 半导体光学吸收的模拟

不妨设p =(

xdx

)m

,q =(

ydy

)m

,以及t =(m + 1) λ

4πdln

(1R

),则有:

sx = 1 − jpt (11.19)

sy = 1 − jqt (11.20)

sx

sy=

(1 + qpt2

)+ j (q − p) t

1 + (qt)2 (11.21)

sy

sx=

(1 + qpt2

)+ j (p − q) t

1 + (pt)2 (11.22)

sxsy =(1 − pqt2

)− j (p + q) t (11.23)

在UPML层中,介电率与导磁率都是对角张量的形式:

εr =

εx 0 0

0 εy 0

0 0 εz

µr =

µx 0 0

0 µy 0

0 0 µz

对于二维TM情况,TM模在UMPL层中Helmholtz方程可以写为:

∂x

(1µy

∂xEz

)+∂

∂y

(1µx

∂yEz

)+ k2

0εzEz = 0 (11.24)

对比图(11.2)UPML各部分的电学参数值,可以得到:

在四个角上

1µx=

sx

sy=

(1 + qpt2

)+ j (q − p) t

1 + (qt)2

1µy=

sy

sx=

(1 + qpt2

)+ j (p − q) t

1 + (pt)2

εz = sxsy =(1 − pqt2

)− j (p + q) t

(11.25)

在左右两侧

1µx= sx = 1 − jpt

1µy=

1sx=

1 + jpt

1 + (pt)2

εz = sx = 1 − jpt

(11.26)

在上下两侧

1µx=

1sy=

1 + jqt

1 + (qt)2

1µy= sy = 1 − jqt

εz = sy = 1 − jqt

(11.27)

156

第十一章 半导体光学吸收的模拟 第二节 载流子生成率的计算

对于二维TE模情况,TE模在UMPL层中Helmholtz方程可以写为

∂x

(1εy

∂xHz

)+∂

∂y

(1εx

∂yHz

)+ k2

0µzHz = 0 (11.28)

对比图(11.2),同样可以求出:

在四个角上

1εx=

sx

sy=

(1 + qpt2

)+ j (q − p) t

1 + (qt)2

1εy=

sy

sx=

(1 + qpt2

)+ j (p − q) t

1 + (pt)2

µz = sxsy =(1 − pqt2

)− j (p + q) t

(11.29)

在左右两侧

1εx= sx = 1 − jpt

1εy=

1sx=

1 + jpt

1 + (pt)2

µz = sx = 1 − jpt

(11.30)

在上下两侧

1εx=

1sy=

1 + jqt

1 + (qt)2

1εy= sy = 1 − jqt

µz = sy = 1 − jqt

(11.31)

有趣的是,TM模的UMPL参数与TE模的UMPL参数完全对称。

有了上述方程与参数,在二维情况下对散射问题进行求解已经是非常简单的问题,读者可以参

考[95],在此不作详细的论述。

第二节 载流子生成率的计算

在得到半导体器件内部光强分布后,需要将其换算为光生载流子生成率,以便与GSS的半导体求解器耦合。设电磁场的能流密度矢量为S,能量密度为J ,载流子产生率为G ,单个光子的能量为hc/λ,材料量子效率为η,即一个光子被吸收所产生的电子-空穴对数目,不计其他方式的能量损失。

对于一封闭区域σ,其边界为Γ,规定边界法向向外,根据能量守恒定律:

∮Γ

S · dΓ =∫σ

ηλ

hcGdσ +

ddt

∫σ

Jdσ (11.32)

157

第二节 载流子生成率的计算 第十一章 半导体光学吸收的模拟

其微分形式为

∇ · S +∂J∂t= −

ηλ

hcG (11.33)

在稳态条件下,则有

G = −ηλ

hc∇ · S (11.34)

定义复数Poynting矢量:

S =12

E ×H∗ (11.35)

式中S、E、H都是复矢量,H∗是H的共轭值。

由Maxwell方程组及矢量恒等式∇ · (a × b) = b · (∇ × a) − a · (∇ × b),可得:

−∇ ·

(12

E ×H∗)= − j2ωε0ε

′rE2

4+ ωε0ε

′′r

E2

2− j2ωµ0

H2

4(11.36)

这里,εr = ε′r − jε′′r 表示介质的复相对介电常数。

将复数Poynting矢量写为S = S + jq,其中S = Re(12

E ×H∗)为功率流密度的时间平均值,即有功

功率流密度,q = Im(12

E ×H∗)为无功功率流密度;于是:

−∇ · S = −∇ · Re(12

E ×H∗)= ω

ε0ε′′r E2

2(11.37)

−∇ · q = −∇ · Im(12

E ×H∗)= −2ω

(µ0H2

4+ε0ε′rE2

4

)(11.38)

由式(11.34)和式(11.37),可以得到光生载流子产生率的表达式为:

G =ηλωε0ε

′′r

2hcE2 (11.39)

在半导体光辐照的模拟中,GSS认为半导体对光的吸收仅与其能带宽度有关,而与半导体内载流子浓度无关。这是一个较为粗糙的近似,实际上,载流子会改变半导体对光的吸收能力,在半导

体激光器的模拟中必须考虑这点。这个近似的好处是割裂了光生载流子浓度与半导体偏置状态之

间的关系,不管半导体加了怎样的偏置电压,只要光强不变,光生载流子浓度就不改变。因此对于

某固定强度的单色光,其光生载流子浓度仅需要计算一次。非单色光需要对其中每一个光谱进行计

算,然后将光生载流子浓度进行叠加。对于光强随时间变化的瞬态问题,由于光子辐照下载流子跃

迁时间远小于载流子状态驰豫时间,只要将光生载流子乘以相应的光强包络信息,就可以得到任意

时刻的光生载流子浓度。

158

第十二章 GSS软件的应用

作为一个通用数值模拟软件,GSS可以模拟Si、Ge、GaAs以及多元复合材料如AlGaAs、InGaAs、SiGe等构成的二极管、三极管、JFET、MOSFET和MESFET等器件。本章将介绍如何使用GSS软件对一些典型的半导体器件进行数值模拟,同时还有一些带有技巧性的应用,希望能够对用户起一个抛砖引玉

的作用。限于篇幅,除了本书例举的一些例子外,GSS软件包内附带的算例没有能够完全纳入用户手册,其他的算例可以在GSS软件的example目录下找到。由于本章涉及GSS的语法,建议用户首先阅读附录中的GSS命令文件说明。

第一节 二极管的数值模拟

二极管是半导体中最悠久,最常见,研究最透彻的结构。在这一节里,将对硅材料二极管进行

详细的数值分析,主要模拟二极管的几个重要特性,如电流电压特性、反向击穿特性以及瞬态情况

的电容效应等。

12.1.1 建立器件模型

建立器件的模型永远是数值模拟的第一步。这里我们将建立一个平面工艺生产的二极管模

型[37]。整个器件是在掺杂浓度为1015cm−3的均匀N型衬底上通过离子注入形成1019cm−3的P型区域而制成。因为器件左右对称,这里只对右边的一侧建模。GSS的输入文件如下:

1 #==============================================================================

2 # GSS example: PN Diode simulation

3 # On the first step, we will generate simulation structure for the diode.

4 # Then the generated CGNS file will be used on later steps.

5 #==============================================================================

67 # Create an initial simulation mesh

8 MESH Type=GSS ModelFile=pn.cgns Triangle="pzA"

9 XMESH WIDTH=3.0 N.SPACES=30

10 YMESH DEPTH=3.0 N.SPACES=30

1112 # Region and electrode statements

13 REGION Label=Si Material=Si

159

第一节 二极管的数值模拟 第十二章 GSS软件的应用

14 SEGMENT Label=Anode Location=TOP X.MIN=0.0 X.MAX=1.0

15 SEGMENT Label=Cathode Location=BOTTOM

1617 # Specify impurity profiles

18 PROFILE Type=Uniform Ion=Donor N.PEAK=1E15 X.MIN=0.0 X.MAX=3.0 \

19 Y.TOP=0.0 Y.BOTTOM=-3.0

20 PROFILE Type=Gauss Ion=Acceptor N.PEAK=1E18 X.MIN=0.0 X.MAX=1.0 \

21 Y.TOP=0.0 Y.BOTTOM=0.0 X.CHAR=0.2 Y.JUNCTION=-0.5

2223 #------------------------------------------------------------------------------

24 set Carrier = pn # specify carrier type

25 set Z.Width = 10 # device width in Z dimension. Unit: um

26 set LatticeTemp = 3e2 # specify initial temperature of device at 300K.

27 set DopingScale = 1e16

2829 #------------------------------------------------------------------------------

30 # no voltage source is needed here.

3132 #------------------------------------------------------------------------------

33 # specify boundary condition.

34 boundary Type = OhmicContact ID=Anode Res=0 Cap=0 Ind=0

35 boundary Type = OhmicContact ID=Cathode Res=0 Cap=0 Ind=0

3637 #------------------------------------------------------------------------------

38 # drive command, specify the solving process.

39 PLOT Variable=DeviceMesh

4041 #refine by doping

42 REFINE Variable=Doping Measure=SignedLog Dispersion=3

43 PLOT Variable=DeviceMesh

4445 # specify DDML1 method,this is the default method.

46 METHOD Type=DDML1 Scheme=Newton NS=LineSearch LS=BCGS

47 SOLVE Type=EQUILIBRIUM #compute equilibrium state

4849 #refine by potential

50 REFINE Variable=Potential Measure=Linear Dispersion=0.1

51 PLOT Variable=DeviceMesh

5253 #compute equilibrium state again on the refined mesh

54 SOLVE Type=EQUILIBRIUM

5556 # plot simulation variables

57 PLOT Variable=Na Resolution=RES.High AzAngle=40 ElAngle=40

58 PLOT Variable=Nd Resolution=RES.High AzAngle=40 ElAngle=40

160

第十二章 GSS软件的应用 第一节 二极管的数值模拟

59 PLOT Variable=ElecDensity Resolution=RES.High AzAngle=40 ElAngle=40

60 PLOT Variable=HoleDensity Resolution=RES.High AzAngle=40 ElAngle=40

61 PLOT Variable=Potential Resolution=RES.High AzAngle=40 ElAngle=40

6263 # export mesh and solution

64 EXPORT CoreFile=pn.cgns AscFile=pn.tif VTKFile=pn.vtk

65 END

GSS软件中,建立器件结构的过程同时也是划分网格的过程。在输入文件中,除去开头的注释,第8行到第10行指定了器件的结构与网格划分。MESH命令用于启动GSS网格划分功能,其中ModelFile给出网格完成之后输出的CGNS文件名,Triangle则包含了传递给GSS内置网格生成器的控制参数。XMESH与 YMESH命令指出器件在横向和纵向各伸展3µm,网格线是等距离划分的,共30段。至此,器件的几何形状已经确定,并且初步的划分了网格。由于二极管的结构比较简单,不像MOS管那样包含二氧化硅层,因此第13行 REGION命令指出了整个区域都是由硅材料构成。第14-15行 SEGMENT命令定义了边界上两个Segment的名字以及位置,这两个Segment后面将作为电极边界。接下来的17-21行 PROFILE命令分别给出N型与P型掺杂的分布。其中N型掺杂分布是均匀的,而P型分布则为高斯分布,在 X方向,高斯分布的特征长度由 X.CHAR参数给出,Y.Junction参数指出pn结在y = −0.5µm的位置,由这个参数加上N型衬底的掺杂浓度,GSS自动换算出高斯分布在 Y方向的特征长度。

图 12.1 二极管初始网格 图 12.2 经过Refine后的最终网格

接下来是全局的设定,第24-27行 set命令给出了模拟考虑的载流子种类为双载流子,器件的初始温度为300K,在第三维方向的延展尺寸为10µm,以及变量缩放的参考值。第34-35行 BOUNDARY命令设定器件的边界条件,指定前面由 Segment给出的边界类型为欧姆接触。余下的边界将被自动设为 Neumann边界,不用显式的指定。

最后是求解部分的命令,这些命令将被顺次执行。第39行 PLOT 画出器件的初始网格如图(12.1)所示,接下来第42行 REFINE命令按照掺杂浓度 Refine网格,第43行画出 Refine之后的网格。第46行METHOD命令设定了使用 DDML1求解器,求解器采用LineSearch加速的牛顿迭代法,内部线性方程组则使用BCGS算法。第47行 SOLVE驱动GSS求解平衡态问题。第51-52行根据前面结果中的电势梯度 Refine网格,经过两次Refine过程后的网格如图(12.2)所示。第54行在新的网格上

161

第一节 二极管的数值模拟 第十二章 GSS软件的应用

再次求解平衡态问题。第57-61行的 PLOT命令则将结果用图形方式显示。最后第64行将器件网格以及平衡态的结果数据保存到 CGNS文件,以备将来使用,同时还输出了与MEDICI兼容的 TIF文件和用于后处理的 VTK文件。

掺杂施主浓度Nd是均匀的,这里没有画出,掺杂受主浓度Na如图(12.3)所示。平衡态求解的结果如图(12.4)至图(12.6)所示,分别给出了电子浓度、空穴浓度以及二极管内部电势分布。

图 12.3 二极管掺杂受主浓度Na分布 图 12.4 二极管平衡态电子密度分布

图 12.5 二极管平衡态空穴密度分布 图 12.6 二极管平衡态电势分布

12.1.2 正向与反向电流的数值模拟

建立了器件模型之后,第二步将计算二极管的正向和反向IV曲线。正向情况下二极管的导通电阻很小,器件的发热并不严重,因此采用了不考虑温度的DDML1E求解器。但是计算反向击穿时,温度成为影响器件行为的重要参数,此时必须采用考虑到温度变化的DDML2E求解器。相应的GSS输入文件如下:

1 #==============================================================================

2 # GSS example: PN Diode simulation

3 # On this step, we will first calculate the forward IV curve by voltage

4 # and current sewwps. Then we will compute reverse breakdown IV curve.

162

第十二章 GSS软件的应用 第一节 二极管的数值模拟

5 #==============================================================================

67 set Carrier = pn # specify carrier type support p,n or pn

8 set Z.Width = 10 # device width in Z dimension. Unit: um

9 set LatticeTemp = 3e2 # specify initial temperature of device. Unit:K

10 set DopingScale = 1e16

1112 #------------------------------------------------------------------------------

13 # no voltage source is needed.

1415 #------------------------------------------------------------------------------

16 # specify boundary condition.

17 boundary Type = OhmicContact ID = Anode Res=0 Cap=0 Ind=0

18 boundary Type = OhmicContact ID = Cathode Res=0 Cap=0 Ind=0

1920 #------------------------------------------------------------------------------

21 # Import CGNS file generated at first step

22 IMPORT CoreFile=pn.cgns

2324 #------------------------------------------------------------------------------

25 # DC sweep forward

26 # sweep with voltage boundary condition

27 METHOD Type=DDML1E Scheme=Newton NS=LineSearch LS=GMRES

28 SOLVE Type=DCSWEEP VScan=Anode IVRecord=Anode IVRecord=Cathode \

29 IVFile=ivfp1.txt VStart=0 VStep=0.02 VStop=0.7

30 EXPORT CoreFile=f0.6.cgns

3132 # sweep with current boundary condition

33 METHOD Type=DDML1E Scheme=Newton NS=LineSearch LS=GMRES

34 SOLVE Type=DCSWEEP IScan=Anode IVRecord=Anode IVRecord=Cathode \

35 IVFile=ivfp2.txt IStart=0.015 IStep=0.05 IStop=1.0

363738 #------------------------------------------------------------------------------

39 # DC sweep backward

40 IMPORT CoreFile=pn.cgns

41 METHOD Type=DDML2E Scheme=Newton NS=Basic LS=GMRES ImpactIonization=On

42 SOLVE Type=DCSWEEP VScan=Anode IVRecord=Anode IVRecord=Cathode \

43 IVFile=ivb.txt VStart=0 VStep=-0.5 VStop=-85

4445 PLOT Variable=ElecDensity Resolution=RES.High AzAngle=40 ElAngle=40

46 PLOT Variable=HoleDensity Resolution=RES.High AzAngle=40 ElAngle=40

47 PLOT Variable=Potential Resolution=RES.High AzAngle=40 ElAngle=40

48 PLOT Variable=EFieldX Resolution=RES.High AzAngle=40 ElAngle=40

49 PLOT Variable=EFieldY Resolution=RES.High AzAngle=40 ElAngle=40

163

第一节 二极管的数值模拟 第十二章 GSS软件的应用

50 PLOT Variable=Temperature Resolution=RES.High AzAngle=40 ElAngle=40

51 END

输入文件头部的全局设定和边界条件的设定与前文一致,在进行正向模拟前,由第22行的IMPORT命令导入了前面计算的结果。并且在进行反向模拟前,第40行又导入一次,让器件恢复平衡态的数据。

在正向计算过程中,低电压部分采用电压扫描,二极管导通以后,则采用电流扫描技术。这是

一个计算的技巧。对于电压扫描而言,扫描电压为自变量,器件电流为函数值。如果IV曲线的斜率接近于0,那么即使扫描电压增加较多,器件电流也就是系统状态的改变量也不大,满足了牛顿迭代法要求初值良好的条件。反之,如果IV曲线斜率很大,比如二极管导通后,电流随着电压指数上升,微小的电压改变就将导致电流的很大变化,电压扫描难以满足牛顿法的初值条件。如果从电流扫描

的观点看,器件电流为自变量,而电压成为函数值。此时较大的电流改变却只会引起电压的微小变

化,因此更容易保证牛顿初值条件。正向IV曲线如图(12.7)所示,图中显示的开启电压大约在0.6V,超过这个电压后电流迅速上升。

GSS拥有很好的击穿模拟能力,在很多商用软件都无法收敛的情况下能顺利地计算。这里反向计算得到的IV曲线如图(12.8)所示,击穿大约从−70V开始。该二极管N侧的掺杂浓度较低,pn结也是缓变的,因此该器件发生的是雪崩击穿,击穿电压比较高。

图 12.7 二极管正向IV曲线 图 12.8 二极管反向IV曲线

图(12.9)至图(12.12)展示了反向−85V的器件内部电势分布、电场分布与温度分布。在pn结曲率最大的位置,电场最强,也是碰撞电离产生的主要区域。由于反向电压很高,器件内部的温度随着

反向电流的增大升高得很快。值得注意的是,碰撞电离作用会随着温度升高而减弱,见载流子生成

率,第79页。因此图(12.8)的反向IV曲线中,电流并没有指数增长,而是近似线形的增加。

12.1.3 二极管的瞬态模拟

在这一小节里,将对二极管进行小信号瞬态模拟。低频情况下,二极管有良好的单向导通能力,

但是随着频率的升高,二极管的电容效应逐渐明显,反向情况的漏电流会逐渐增加。在小信号情况,

使用DDML1E求解器就足够了。

1 #==============================================================================

2 # GSS example: PN Diode simulation

164

第十二章 GSS软件的应用 第一节 二极管的数值模拟

图 12.9 反向−85V器件内部电势分布 图 12.10 反向−85V器件内部X方向电场分布

图 12.11 反向−85V器件内部Y方向电场分布 图 12.12 反向−85V器件内部温度分布

3 # advanced topic:we will compute transient reaction of a pn diode with

4 # external resistance and capacitance

5 # for running it, use "gss step3.inp"

6 #==============================================================================

7 ASSIGN _fenq = 1e6 # 1MHz

89 set Carrier = pn # specify carrier type

10 set Z.Width = 100 # device width in Z dimension. Unit: um

11 set LatticeTemp = 3e2 # specify initial temperature of device. Unit:K

1213 #------------------------------------------------------------------------------

14 # voltage sources.

15 vsource Type = VDC ID = GND Tdelay=0 Vconst=0

16 vsource Type = VDC ID = VCC Tdelay=0 Vconst=0.5

17 vsource Type = VSIN ID = Vs Tdelay=0 Vamp=1 Freq=_fenq

1819 #------------------------------------------------------------------------------

20 # specify boundary condition.

165

第一节 二极管的数值模拟 第十二章 GSS软件的应用

21 boundary Type = OhmicContact ID = Anode Res=1000 Cap=0 Ind=0

22 boundary Type = OhmicContact ID = Cathode Res=0 Cap=0 Ind=0

2324 #------------------------------------------------------------------------------

25 # import equilibrium state result computed in step 1

26 IMPORT CoreFile=pn.cgns

27 METHOD Type = DDML1E Scheme = Newton NS=LineSearch LS=GMRES

2829 ATTACH Electrode=Cathode VApp=GND

30 ATTACH Electrode=Anode VApp=VCC VApp=Vs

31 SOLVE Type=TRANSIENT IVRecord=Anode IVFile=iv.txt ODE.Formula=BDF2\

32 TStart = 0 TStep = 1.0/_fenq/20 TStop = 3*1.0/_fenq

33 END

输入文件的开头通过 ASSIGN 定义了一个常量 freq,这样可以方便的更改信号源的频率。第14-16行定义了直流源GND、VCC和正弦交流源VSIN,然后由第28-29行的 ATTACH命令赋予电极边界。第21行的 BOUNDARY命令给阳极附加了1K的电阻。整个电路的结构如图(12.13)所示

图 12.13 二极管瞬态模拟电路图

第31与32行的 SOLVE命令中,时间步长为信号周期的1/20,共模拟3个周期,由于时间步长比较大,为了保证精度起见时间推进采用了二阶精度的BDF2格式。

图 12.14 信号频率1M时二极管电流 图 12.15 信号频率1G时二极管电流

图(12.14)显示了信号频率为1M时通过二极管的电流,此时二极管表现出很好的单向导通性。但

166

第十二章 GSS软件的应用 第一节 二极管的数值模拟

是如果将频率提高到1G,即将输入文件的 freq改为109,则二极管的电容效应占据了优势,交流信号

能够顺利的通过二极管,如图(12.15)所示。由于GSS仅能模拟单个晶体管,并在外围电路上有诸多限制,因此使用GSS做瞬态模拟意义不

大。在实际应用中往往需要使用GSS与SPICE进行混合模拟。这里给出对图(12.13)所示电路进行混合模拟的例子。此时电路结构用SPICE语言进行描述:

1 Mixed Device/Circuit simulation of Diode

23 VDC 1 0 0.5V

4 Vs 2 1 SIN(0 1.0V 1MEGHz)

5 R1 2 3 1k

6 N1 3=Anode 4=Cathode M_N1

7 Vnn 4 0 0.0V

89 .MODEL M_N1 NDEV remote=localhost port=17001

1011 .option acct itl2=100

12 .tran 0.001us 3us

13 .END

SPICE输入文件中定义了数值器件N1,这就是分配给GSS模拟的器件。第9行N1的模型命令中指定运行GSS的计算机是localhost,也就是本机,数据交换端口在17001.同时GSS的输入文件如下

1 #==============================================================================

2 # GSS example: PN Diode Mix Type Simulation

3 # GSS will provide numerical diode model to NGSPICE

4 #==============================================================================

5 set Carrier = pn # specify carrier type support p,n or pn

6 set Z.Width = 100 # device width in Z dimension. Unit: um

7 set LatticeTemp = 3e2 # specify initial temperature of device. Unit:K

8 set DopingScale = 1e16

910 #------------------------------------------------------------------------------

11 # specify boundary condition.

12 boundary Type = OhmicContact ID = Anode Res=0 Cap=0 Ind=0

13 boundary Type = OhmicContact ID = Cathode Res=0 Cap=0 Ind=0

1415 #------------------------------------------------------------------------------

16 # Import CGNS file generated at first step

17 IMPORT CoreFile=pn.cgns

1819 # GSS use port 17001 to exchange data with NGSPICE

20 METHOD Type=DDML1MIX Scheme=Newton NS=LineSearch LS=LU ServerPort=17001

21 # The solve process is controled by NGSPICE.

22 SOLVE

23 END

167

第一节 二极管的数值模拟 第十二章 GSS软件的应用

由于GSS完全在SPICE的控制下运行,因此它只需读入器件模型,然后在端口17001等待SPICE的消息。当用户执行SPICE之后,GSS会根据SPICE发送的电路信息自动运行。

运行的结果可以借助SPICE自带的绘图功能显示,通过二极管的电流如图(12.16)与图(12.17)所示。混合模拟的结果与GSS单独模拟的结果完全一致。

图 12.16 信号频率1M时二极管电流 图 12.17 信号频率1G时二极管电流

12.1.4 延迟击穿二极管的模拟

这一小节介绍瞬态情况下的二极管的击穿现象。瞬态模拟在数值稳定性上比稳态模拟好很

多,GSS可以计算极高的脉冲冲击下半导体器件的瞬态响应。

这里模拟的对象是一个用于快速开关的延迟击穿二极管(Delayed Breakdown Diode, DBD)。当硅二极管两端加上的电压脉冲超过静态击穿电压时,器件在击穿前有数十至数百ps的延迟。由于器件击穿仅需要ps量级的时间,因此DBD可以将输入脉冲缓慢的前沿整形,负载上可以得到一个十分陡峭的上升沿[99]。

图 12.18 DBD二极管结构及电路图

DBD二极管的结构以及电路如图(12.18)所示。电源是一个上升沿和下降沿都是300ps, 脉宽300ps,幅值3kV的脉冲。DBD阴极和阳极掺杂1019cm−3 ,中间的N型区掺杂1014cm−3,器件横截面

168

第十二章 GSS软件的应用 第一节 二极管的数值模拟

积0.01cm2。负载设为50欧姆。由于脉冲很短,热效应并不显著,这里采用了DDML1E求解器进行模拟,实际上DDML2E求解器将给出几乎一致的结果,但是要花费更多的时间。GSS输入文件如下:

1 #==============================================================================

2 #DBD(delayed breakdown diode) simulation

3 #It needs about half an hour on 3.4G Athlon64.

4 #==============================================================================

56 # Create an initial simulation mesh

7 MESH Type=GSS ModelFile=pn.cgns Triangle="pzA"

8 XMESH WIDTH=1.0 N.SPACES=1

9 YMESH DEPTH=135.0 N.SPACES=135

1011 # Region and electrode statements

12 REGION Label=Si Material=Si

13 SEGMENT Label=Anode Location=TOP

14 SEGMENT Label=Cathode Location=BOTTOM

1516 # Specify impurity profiles

17 PROFILE Type=Uniform Ion=Acceptor N.PEAK=1E19 X.MIN=0.0 X.MAX=10.0 \

18 Y.TOP=0.0 Y.BOTTOM=-50.0

1920 PROFILE Type=Uniform Ion=Donor N.PEAK=1E14 X.MIN=0.0 X.MAX=10.0 \

21 Y.TOP=-50.0 Y.BOTTOM=-125.0

2223 PROFILE Type=Uniform Ion=Donor N.PEAK=1E19 X.MIN=0.0 X.MAX=10.0 \

24 Y.TOP=-125.0 Y.BOTTOM=-135.0

2526 #------------------------------------------------------------------------------

27 set Carrier = pn # specify carrier type

28 set LatticeTemp = 3e2 # specify initial temperature of device at 300K.

29 set DopingScale = 1e16

3031 # device depth in Z dimension. make device section area to 0.01cmˆ2

32 set Z.Width = 1e6.0

3334 #----------------------------------------------------------------------

35 # voltage source.

36 vsource Type = VPULSE ID = Vp Tdelay=0 Tr=0.3e-9 Tf=0.3e-9 Pw=0.3e-9 Pr=1 \

37 Vlo=0 Vhi=3e3

3839 #------------------------------------------------------------------------------

40 # specify boundary condition.

41 boundary Type = OhmicContact ID=Anode Res=50 Cap=0 Ind=0

42 boundary Type = OhmicContact ID=Cathode Res=0 Cap=0 Ind=0

43

169

第一节 二极管的数值模拟 第十二章 GSS软件的应用

4445 PLOT Variable=DeviceMesh

46 REFINE Variable=Doping Measure=SignedLog Dispersion=3 #refine by doping

47 PLOT Variable=DeviceMesh

4849 #compute equilibrium state

50 METHOD Type=DDML1 Scheme=Newton NS=LineSearch LS=GMRES

51 SOLVE Type=EQUILIBRIUM

5253 #use DDML1E solver. The DDML2E should give the same result.

54 METHOD Type=DDML1E Scheme=Newton NS=LineSearch LS=GMRES ImpactIonization=On

55 ATTACH Electrode=Cathode VApp=Vp

56 SOLVE Type = TRANSIENT IVRecord=Anode IVRecord=Cathode \

57 IVFile=biv.txt TStart=0 TStep=1e-12 TStop = 1.0e-9

58 END

瞬态计算结果如图(12.19)所示,显示了DBD管延迟击穿和脉冲前沿快速上升特性,从260ps到360ps的平均电压上升率达到15.7kV/ns,与文献实验结果17kV/ns[100]基本一致。

图 12.19 驱动电压波形与负载电压波形

12.1.5 齐纳二极管隧道击穿的模拟

齐纳击穿不同于雪崩电离击穿,它的机制是电子的隧道跃迁,一般发生在两侧均是高掺杂

的pn结。齐纳击穿的电压较低,只要控制击穿后的电流,对管子就没有危险,因此低电压的稳压用二极管都是齐纳型的。下面给出GSS的输入文件:

1 #==============================================================================

2 # GSS example: Zener Diode simulation

3 # On the first step, we will generate simulation structure for the diode.

170

第十二章 GSS软件的应用 第一节 二极管的数值模拟

4 # Then the generated CGNS file will be used on later steps.

5 #==============================================================================

67 # Create an initial simulation mesh

8 MESH Type=GSS ModelFile=pn.cgns Triangle="pzA"

9 XMESH WIDTH=3.0 N.SPACES=30

10 YMESH DEPTH=3.0 N.SPACES=30

1112 # Region and electrode statements

13 REGION Label=Si Material=Si

14 SEGMENT Label=Anode Location=TOP X.MIN=0.0 X.MAX=1.0

15 SEGMENT Label=Cathode Location=BOTTOM

1617 # Specify impurity profiles, hervy doped.

18 PROFILE Type=Uniform Ion=Donor N.PEAK=5E18 X.MIN=0.0 X.MAX=3.0 \

19 Y.TOP=0.0 Y.BOTTOM=-3.0

20 PROFILE Type=Gauss Ion=Acceptor N.PEAK=2E19 X.MIN=0.0 X.MAX=1.0 \

21 Y.TOP=0.0 Y.BOTTOM=-0.4 X.CHAR=0.2 Y.JUNCTION=-0.5

2223 #------------------------------------------------------------------------------

24 set Carrier = pn # specify carrier type

25 set Z.Width = 100 # device width in Z dimension. Unit:um

26 set LatticeTemp = 3e2 # specify initial temperature of device at 300K.

27 set DopingScale = 1e18

2829 #------------------------------------------------------------------------------

30 # no voltage source is needed here.

3132 #------------------------------------------------------------------------------

33 # specify boundary condition.

34 boundary Type = OhmicContact ID=Anode Res=0 Cap=0 Ind=0

35 boundary Type = OhmicContact ID=Cathode Res=0 Cap=0 Ind=0

3637 #------------------------------------------------------------------------------

38 # drive command, specify the solving process.

39 PLOT Variable=DeviceMesh

40 REFINE Variable=Doping Measure=SignedLog Dispersion=3 #refine by doping

41 PLOT Variable=DeviceMesh

42 # specify DDM method,this is the default solver.

43 METHOD Type=DDML1 Scheme=Newton NS=LineSearch LS=BCGS

44 SOLVE Type=EQUILIBRIUM #compute equilibrium state

4546 #------------------------------------------------------------------------------

47 # DC sweep backward

48 # sewwp with voltage boundary condition

171

第二节 三极管的数值模拟 第十二章 GSS软件的应用

49 METHOD Type=DDML2E Scheme=Newton NS=Basic LS=BCGS BandBandTunneling=On

50 SOLVE Type=DCSWEEP VScan=Anode IVRecord=Anode IVRecord=Cathode \

51 IVFile=ivb.txt VStart=0 VStep=-0.05 VStop=-10

52 END

注意到p区与n区的掺杂分别为2 × 1019cm−3与5 × 1018cm−3,形成了一个高掺杂的pn结。模拟采用DDML2E求解器,打开了BandBandTunneling选项。得到的齐纳二极管反向IV曲线如图(12.20)所示。

图 12.20 齐纳二极管反向IV曲线

第二节 三极管的数值模拟

在详细的讨论了二极管的数值模拟之后,这一节转向更高级的三极管1。三极管于1946年发明,这是历史上第一款有放大作用的半导体器件。

12.2.1 建立三极管的模型

数值模拟的第一步仍然是建立三极管的模型,包括尺寸与掺杂分布。为了使三极管具有电流放

大作用,在制作工艺上要求:

1. 发射区的掺杂浓度最高,有利于多数载流子的产生与发射。

2. 基区应该做得很薄,而且掺杂浓度较低,使载流子通过基区时间很短,减少在基区的复合。

3. 集电区掺杂浓度最低,而且集电区面积大,便于收集由基区来的载流子,且利于散热。

这里将建立一个平面工艺的NPN三极管模型[37]。用户可以仔细观察模型文件中的掺杂命令,体会一下这三个要求是如何满足的。

1在写该例子时,能带变窄效应尚未使用,因此本例子计算得到的电流放大系数明显偏大。从GSS-0.46版起,能带变窄效应已经被考虑进去

172

第十二章 GSS软件的应用 第二节 三极管的数值模拟

1 #==============================================================================

2 # GSS example: NPN Transistor Simulation

3 # On this step, we will create the initial mesh, do some refine

4 # and compute equilibrium state.

5 #==============================================================================

67 MESH Type=GSS ModelFile=npn.cgns Triangle="pzA"

8 XMESH WIDTH=6.0 H1=0.250

9 YMESH DEPTH=0.5 H1=0.125

10 YMESH DEPTH=1.5 H1=0.125 H2=0.2

11 REGION Label=Si Material=Si

1213 # Electrodes

14 SEGMENT Label=Base X.MIN=1.25 X.MAX=2.00 Location=TOP

15 SEGMENT Label=Emitter X.MIN=2.75 X.MAX=4.25 Location=TOP

16 SEGMENT Label=Collector Location=BOTTOM

1718 # doping profile

19 PROFILE Ion=Donor Type=Uniform N.PEAK=5e15 Y.TOP=0 Y.BOTTOM=-2.0 \

20 X.MIN=0.0 X.MAX=6.0

21 PROFILE Ion=Acceptor Type=Gauss N.PEAK=6e17 \

22 Y.TOP=0 Y.BOTTOM=-0.35 Y.CHAR=0.16 \

23 X.MIN=1.25 X.MAX=4.75 X.CHAR=0.12

24 PROFILE Ion=Acceptor Type=Gauss N.PEAK=4e18 \

25 Y.TOP=0 Y.BOTTOM=0 Y.CHAR=0.16 \

26 X.MIN=1.25 X.MAX=4.75 X.CHAR=0.12

27 PROFILE Ion=Donor Type=Gauss N.PEAK=7e19 \

28 Y.TOP=0 Y.BOTTOM=0 Y.CHAR=0.17 \

29 X.MIN=2.75 X.MAX=4.25 X.CHAR=0.1275

30 PROFILE Ion=Donor Type=Gauss N.PEAK=1e19 \

31 Y.TOP=-2 Y.BOTTOM=-2 Y.CHAR=0.27 \

32 X.MIN=0.0 X.MAX=6.0

3334 set Carrier = pn # specify carrier type

35 set Z.Width = 100 # device width in Z dimension.

36 set LatticeTemp = 3e2 # specify initial temperature of device.

37 set DopingScale = 1e18

3839 #------------------------------------------------------------------------------

40 # specify boundary condition.

41 boundary Type = OhmicContact ID=Base Res=0 Cap=0 Ind=0

42 boundary Type = OhmicContact ID=Emitter Res=0 Cap=0 Ind=0

43 boundary Type = OhmicContact ID=Collector Res=0 Cap=0 Ind=0

4445 #------------------------------------------------------------------------------

173

第二节 三极管的数值模拟 第十二章 GSS软件的应用

46 # drive command, specify the solving process.

47 PLOT Variable=DeviceMesh

48 #refine by doping

49 REFINE Variable=Doping Measure=SignedLog Dispersion=3 Triangle="praDzQ"

50 PLOT Variable=DeviceMesh

51 #refine by doping again

52 REFINE Variable=Doping Measure=SignedLog Dispersion=3 Triangle="praDzQ"

53 PLOT Variable=DeviceMesh Resolution=RES.High

5455 #compute equilibrium state

56 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=TFQMR

57 SOLVE Type=EQUILIBRIUM

58 PLOT Variable=Nd Resolution=RES.High AzAngle=310 ElAngle=50

59 PLOT Variable=Na Resolution=RES.High AzAngle=310 ElAngle=50

60 PLOT Variable=Doping Resolution=RES.High AzAngle=250 ElAngle=65

61 PLOT Variable=ElecDensity Resolution=RES.High AzAngle=310 ElAngle=50

62 PLOT Variable=HoleDensity Resolution=RES.High AzAngle=310 ElAngle=50

63 PLOT Variable=Potential Resolution=RES.High AzAngle=310 ElAngle=50

64 # export mesh and solution

65 EXPORT CoreFile=npn_refined.cgns

经过两次Refine的过程,最后生成的三极管网格如图(12.21)所示。

图 12.21 NPN三极管的网格

受主与施主掺杂浓度如图(12.22)与图(12.22)所示。它们的合成效果,即净掺杂浓度如图(12.24)所示。显然,总的掺杂浓度保证了发射区最高,基区次之(基区为P型,净掺杂用负值表示),最低是集电区。但要注意,集电区靠近电极的区域掺杂浓度也比较高,这是为了形成良好的欧姆接触,降低

电阻。平衡态计算完毕后GSS给出了电势分布,如图(12.25)所示;电子分布,如图(12.26)所示以及空穴分布,如图(12.27)所示。

12.2.2 三极管的输出特性曲线

三极管共射极输出特性曲线是指基极偏置恒定时,三极管集电极电流与集电极-发射极电压之间的关系。这里采用GSS的直流扫描功能计算三极管输出特性。在如图(12.28)的电路中,三极管基极加上了一个恒流源,然后扫描集电极电压以得到三极管的输出特性曲线。如果需要得到不同基极

电流的输出特性曲线,则需要改变恒流源的电流值,反复进行数值模拟。

174

第十二章 GSS软件的应用 第二节 三极管的数值模拟

图 12.22 三极管掺杂受主浓度Na分布 图 12.23 三极管掺杂施主浓度Nd分布

图 12.24 三极管净掺杂分布 图 12.25 三极管平衡态电势分布

图 12.26 三极管平衡态电子分布 图 12.27 三极管平衡态空穴分布

实际应用中电流源并不常见,常常用另一种思路来获得基极偏置,如图(12.29)所示,使用固定的电压源与基极电阻获得合适的基极偏置。假设基极电压固定为0.7V,将集电极电压VCC从0V逐渐增大到3V,就可以得到一条输出特性曲线。如果需要得到不同基极偏压的输出特性曲线,则需要改变基极偏压,反复进行数值模拟。

运行下面的GSS输入文件,可以得到基极外接1K电阻,电压固定为0.7V时的一条输出特性曲

175

第二节 三极管的数值模拟 第十二章 GSS软件的应用

图 12.28 三极管直流扫描电路,电流偏置 图 12.29 三极管直流扫描电路,电压偏置

线。更改偏置电压反复运行,可以得到如图(12.30)所示的结果。

1 #==============================================================================

2 # GSS example: NPN Transistor Simulation

3 # On this step, we will compute IV curve.

4 #==============================================================================

56 set Carrier = pn # specify carrier type

7 set Z.Width = 100 # device width in Z dimension.

8 set LatticeTemp = 3e2 # specify initial temperature of device.

9 set DopingScale = 1e18

1011 #------------------------------------------------------------------------------

12 # voltage/current source is needed here.

13 vsource Type = VDC ID = GND Tdelay=0 Vconst=0

14 vsource Type = VDC ID = VCC Tdelay=0 Vconst=3.0

15 vsource Type = VDC ID = Vb Tdelay=0 Vconst=0.70

16 isource Type = IDC ID = Ib Tdelay=0 Iconst=0.002

17 #------------------------------------------------------------------------------

18 # specify boundary condition.

19 boundary Type = OhmicContact ID=Base Res=1000 Cap=0 Ind=0

20 boundary Type = OhmicContact ID=Emitter Res=0 Cap=0 Ind=0

21 boundary Type = OhmicContact ID=Collector Res=1000 Cap=0 Ind=0

2223 #------------------------------------------------------------------------------

24 # drive command, specify the solving process.

25 IMPORT CoreFile=npn_refined.cgns

26 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=TFQMR

27 ATTACH Electrode=Emitter VApp=GND

176

第十二章 GSS软件的应用 第二节 三极管的数值模拟

28 ATTACH Electrode=Base VApp=Vb # set voltage(Base) to Vb

29 #ATTACH Electrode=Base IApp=Ib # set current(Base) to Ib

3031 # compute STEADYSTATE to get a initial value

32 SOLVE Type=STEADYSTATE

33 METHOD Type = DDML1E Scheme = Newton NS=Basic LS=GMRES

34 SOLVE Type=DCSWEEP VScan=Collector IVRecord=Collector IVRecord=Base \

35 IVFile=iv070.txt VStart=0.00 VStep=0.05 VStop=3

36 # we get an iv curvy on Vbe=0.7V.

37 # User can change the Vconst of Vb for arbitrary bias voltages.

3839 # we need the result as pre-computed initial value for next step

40 EXPORT CoreFile=bias.cgns

图 12.30 不同基极偏压输出特性曲线

12.2.3 三极管放大电路的数值模拟

三极管最典型的应用是共射极放大器电路,这种电路可以在任何一本模拟电路的教材中找

到。图(12.29)就是一个典型的共射极放大器电路的直流偏置部分。加上1MHz输入信号源的电路如图(12.31)所示。放大器的基极加上了电感与电容元件这两类仅在瞬态模拟中才起作用的元件。

GSS的输入文件如下,注意第20行的BOUNDARY命令,指定了基极的外电路元件。运行GSS后器件基极与集电极的电流电压随时间的变化数据写在文件ivt.txt中。

1 #==============================================================================

2 # GSS example: NPN Transistor Simulation

3 # On this step, we will do transient simulation when the base electrode

4 # stimulated by voltage source.

5 #==============================================================================

6 set Carrier = pn # specify carrier type.

7 set Z.Width = 100 # device width in Z dimension.

177

第二节 三极管的数值模拟 第十二章 GSS软件的应用

图 12.31 共射极放大器原理图

8 set LatticeTemp = 3e2 # specify initial temperature of device.

9 set DopingScale = 1e18

1011 #------------------------------------------------------------------------------

12 # voltage source and current is needed here.

13 vsource Type = VDC ID = GND Tdelay=0 Vconst=0

14 vsource Type = VDC ID = VCC Tdelay=0 Vconst=3.0

15 vsource Type = VDC ID = Vb Tdelay=0 Vconst=0.7

16 vsource Type = VSIN ID = Vs Tdelay=0 Vamp=0.01 Freq=1e6 # 1MHz

1718 #------------------------------------------------------------------------------

19 # specify boundary condition.

20 boundary Type = OhmicContact ID=Base Res=1000 Cap=1e-9 Ind=1e-6

21 boundary Type = OhmicContact ID=Emitter Res=0 Cap=0 Ind=0

22 boundary Type = OhmicContact ID=Collector Res=1000 Cap=0 Ind=0

2324 #------------------------------------------------------------------------------

25 # import result computed in step 2

26 IMPORT CoreFile=bias.cgns

27 # set voltage source to electrode

28 ATTACH Electrode=Collector VApp=VCC

29 ATTACH Electrode=Emitter VApp=GND

30 ATTACH Electrode=Base VApp=Vb VApp=Vs

31 # compute STEADYSTATE to get a initial value

32 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=LU

33 SOLVE Type=STEADYSTATE

34 # do transient simulation

35 METHOD Type = DDML1E Scheme = Newton NS=LineSearch LS=LU

36 SOLVE Type = TRANSIENT ODE.Formula=BDF2 IVRecord=Collector IVRecord=Base \

37 IVFile=ivt.txt TStart=0 TStep=0.2e-7 TStop = 5e-6

178

第十二章 GSS软件的应用 第二节 三极管的数值模拟

38 END

基极电流与集电极电流波形分别如图(12.32)以及图(12.33)所示。因为输入信号幅度小,频率也不高,三极管的电流放大倍数差不多达到了100。两图中都出现了电流平均值的下滑现象,这是由于基极电容和基极电感的充放电作用引起的。随着时间推进,基极RLC电路逐渐达到平衡点,电流的平均值也就停止变化。

图 12.32 信号频率1M时三极管基极电流 图 12.33 信号频率1M时三极管集电极电流

12.2.4 三极管放大电路的交流小信号扫描

器件的带宽和截至频率等频域响应特性对于放大器的设计来说非常重要。最直接的方法是利

用瞬态计算,设置不同频率的信号源,逐个计算放大器对它们的响应,然后得出频域响应特性。正

如上面的例子中,我们给出了三极管在1MHz信号源激励下的响应,结果证明此时三极管工作十分良好。但是这个方法计算量很大,用起来不是很方便,此时交流小信号扫描可以轻松完成这一工

作。还是针对图(12.31)所示电路,但是去掉了基极的电容与电感(这两个器件严重影响整个系统的带宽),GSS的交流小信号扫描输入文件如下:

1 #==============================================================================

2 # GSS example: NPN Transistor AC sweep Simulation

3 #==============================================================================

45 set Carrier = pn # specify carrier type

6 set Z.Width = 100 # device width in Z dimension.

7 set LatticeTemp = 3e2 # specify initial temperature of device.

8 set DopingScale = 1e18

910 #------------------------------------------------------------------------------

11 vsource Type = VDC ID = GND Tdelay=0 Vconst=0

12 vsource Type = VDC ID = VCC Tdelay=0 Vconst=3.0

13 vsource Type = VDC ID = Vb Tdelay=0 Vconst=0.7

14 #------------------------------------------------------------------------------

15 # specify boundary condition.

16 boundary Type = OhmicContact ID=Base Res=1000 Cap=0 Ind=0

179

第二节 三极管的数值模拟 第十二章 GSS软件的应用

17 boundary Type = OhmicContact ID=Emitter Res=0 Cap=0 Ind=0

18 boundary Type = OhmicContact ID=Collector Res=1000 Cap=0 Ind=0

1920 #------------------------------------------------------------------------------

21 # drive command, specify the solving process.

22 # import bias.cgns computed in step 2.

23 IMPORT CoreFile=bias.cgns

2425 #call DDML1E to give a initial value for AC sweep.

26 METHOD Type = DDML1E Scheme = Newton NS=LineSearch LS=TFQMR

27 ATTACH Electrode=Emitter VApp=GND

28 ATTACH Electrode=Base VApp=Vb # set voltage(Base) to Vb

29 ATTACH Electrode=Collector VApp=VCC

30 # compute STEADYSTATE to get a initial value

31 SOLVE Type=STEADYSTATE

3233 # Do AC sweep here.

34 # It runs very slow. Each step requires nearly 300 iterations.

35 METHOD Type = DDML1AC LS=GMRES

36 SOLVE Type=ACSWEEP ACScan=Base IVRecord=Base IVRecord=Collector \

37 IVFile=ivac.txt FStart=1e5 FMultiple=1.1 FStop = 4e9

38 END

第26-31行设置了放大器的直流偏置,然后第35-37行调用DDML1AC求解器扫描基极输入的响应,信号幅度默认值为0.0026V,扫描从0.1MHz开始直到4GHz。图(12.34)与图(12.35)分别是基极与集电极的电流(这里的电流是指信号的电流,与直流偏置的电流无关)幅值随频率的变化曲线。

图 12.34 三极管基极电流AC扫描曲线 图 12.35 三极管集电极电流AC扫描曲线

从图(12.34)中可以看出,信号频率较低时,基极的信号电流大约为0.65µA,然后随着频率的增长,基极-发射极的pn结电容效应开始突出,导致电流快速上升,直到被基极电阻钳制在0.0026mA以内。而从图(12.35)中可以看出,信号频率较低时,集电极的电流大约为0.071mA,此时的电流放大系数β ≈ 109。信号频率超过10MHz后,电流放大系数迅速下降,整个系统的3db带宽大约为50MHz。

180

第十二章 GSS软件的应用 第二节 三极管的数值模拟

12.2.5 异质结晶体管的数值模拟

在这一节里,将对SiGe材料的异质结NPN型三极管进行数值模拟。对于三极管来说,要提高它的性能需要改善基区到发射区的电流注入效率。NPN管的电流注入效率定义为

γ =Jn

Jn + Jp

式中,Jn与Jp分别为基区与发射区界面的电子电流与空穴电流密度。只有当γ接近1时,才能获得高的电流放大倍数。同质晶体管采用很高的发射区掺杂与较低的基区掺杂来提高电流注入效率,但是

由于较低的基区掺杂会增加电阻,而如果加大基区面积来减小电阻,则会因为电容增大而影响高频

特性。异质结三极管用一种巧妙的方法解决了这一问题。HBJT的模型如图(12.36)所示:源区与集电

图 12.36 HBJT结构[37] 图 12.37 HBJT掺杂分布[37]

区仍然为N型硅材料,基区则用窄禁带的P型Si0.8Ge0.2材料制成。发射区的禁带宽度1.12eV大于基区禁带宽度0.984eV,见图6.15。由于异质Np结的电子电流与空穴电流之比为:

Jn

Jn∝

ND

NAexp

(∆EkbT

)基区掺杂浓度2 × 1018cm−3(前面的NPN管基区掺杂只有6 × 1017cm−3),仅比发射区掺杂浓度7 ×1019cm−3低一个量级,电子电流与空穴电流之比却可以达到6500左右,相应的效率十分接近1。这样就可以把基区做得很薄(0.1µm),增强高频特性。

GSS建模的输入文件如下,注意第14-19行REGION命令中指出了SiGe材料的组分。

1 #==============================================================================

2 # GSS example: SiGe BJT simulation

3 #==============================================================================

45 MESH Type=GSS ModelFile=hbjt.cgns Triangle="pzA"

6 XMESH X.MIN=0.0 X.MAX=0.50 N.SPACES=8

7 YMESH DEPTH=0.1 N.SPACES=8 RATIO=0.8

181

第二节 三极管的数值模拟 第十二章 GSS软件的应用

8 YMESH DEPTH=0.1 N.SPACES=20

9 YMESH DEPTH=0.6 H1=0.005 H2=0.050

1011 REGION Label=Si1 Material=Si Y.TOP= 0.000 Y.BOTTOM=-0.100

12 REGION Label=SiGe1 Material=SiGe Y.TOP=-0.100 Y.BOTTOM=-0.125 \

13 X.MOLE=0.0 Mole.End=0.2

14 REGION Label=SiGe2 Material=SiGe Y.TOP=-0.125 Y.BOTTOM=-0.200 \

15 X.MOLE=0.2

16 REGION Label=SiGe3 Material=SiGe Y.TOP=-0.200 Y.BOTTOM=-0.230 \

17 X.MOLE=0.2 Mole.End=0.0

18 REGION Label=Si2 Material=Si Y.TOP=-0.230

1920 SEGMENT Label=Emitter Location=TOP

21 SEGMENT Label=Base Location=LEFT Y.TOP=-0.125 Y.BOTTOM=-0.140

22 SEGMENT Label=Collector Location=BOTTOM

2324 PROFILE Ion=Donor Type=Uniform N.PEAK=2E16 Type=Uniform

25 PROFILE Ion=Donor Type=Gauss N.PEAK=5E19 Y.MIN=-0.80 \

26 Y.MAX=-0.80 Y.CHAR=0.125 X.MIN=0 X.MAX=0.50

27 PROFILE Ion=Acceptor Type=Gauss N.PEAK=2E18 Y.MIN=-0.12 \

28 Y.MAX=-0.12 Y.CHAR=0.03 X.MIN=0 X.MAX=0.50

29 PROFILE Ion=Donor Type=Gauss N.PEAK=7E19 Y.MIN= 0.0 \

30 Y.MAX= 0.0 Y.CHAR=0.06 X.MIN=0 X.MAX=0.50

3132 set DopingScale = 1e18

3334 #------------------------------------------------------------------------------

35 boundary Type = OhmicContact ID=Emitter Res=0 Cap=0 Ind=0

36 boundary Type = OhmicContact ID=Base Res=0 Cap=0 Ind=0

37 boundary Type = OhmicContact ID=Collector Res=0 Cap=0 Ind=0

3839 #------------------------------------------------------------------------------

40 # drive command, specify the solving process.

41 PLOT Variable=DeviceMesh

42 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=GMRES

43 # compute equilibrium state

44 SOLVE Type=EQUILIBRIUM

45 EXPORT CoreFile=hbjt.cgns

46 END

得到器件模型后,第二步计算它的频率响应曲线。首先第26-30行使用DC扫描功能计算器件的直流工作点,然后第33-36行在直流工作点计算器件的交流小信号响应。相应的输入文件如下:

1 #==============================================================================

2 # GSS example: SiGe BJT simulation

3 # we will calculate IV curve with Vc=2V.

4 # Then, we will do ac sweep at bias point Vce=2V Vbe=0.8V

182

第十二章 GSS软件的应用 第三节 砷化镓MESFET管的数值模拟

5 #==============================================================================

67 set Carrier = pn

8 set Z.Width = 100

9 set LatticeTemp = 3e2

10 set DopingScale = 1e20

1112 #------------------------------------------------------------------------------

13 VSOURCE Type=VDC ID=VCC Tdelay=0 Vconst=2

14 vsource Type = VDC ID = Vb Tdelay=0 Vconst=0.8

15 #------------------------------------------------------------------------------

16 # specify boundary condition.

17 boundary Type = OhmicContact ID=Emitter Res=0 Cap=0 Ind=0

18 boundary Type = OhmicContact ID=Base Res=1000 Cap=0 Ind=0

19 boundary Type = OhmicContact ID=Collector Res=1000 Cap=0 Ind=0

2021 #------------------------------------------------------------------------------

22 # drive command, specify the solving process.

23 IMPORT CoreFile = hbjt.cgns

2425 # do steady-state solve at bias point Vce=2V Vbe=0.8V

26 METHOD Type = DDML1E Scheme = Newton NS=Basic LS=LU

27 ATTACH Electrode=Collector Vapp=VCC

28 SOLVE Type=STEADYSTATE

29 SOLVE Type=DCSWEEP VScan=Base IVRecord=Base IVRecord=Collector \

30 IVFile=iv.txt VStart=0.0 VStep=0.02 VStop=0.8

3132 # do AC sweep here

33 ATTACH Electrode=Base VApp=Vb # set voltage(Base) to Vb

34 METHOD Type = DDML1AC LS=TFQMR

35 SOLVE Type=ACSWEEP ACScan=Base IVRecord=Collector IVFile=ivac.txt \

36 FStart=1e6 FMultiple=1.1 FStop = 1e10

37 END

图(12.38)给出了集电极电流的AC扫描结果,可见3db截至频率比普通三极管有较大提高(对比图(12.35))。

第三节 砷化镓MESFET管的数值模拟从这一节开始,我们将讨论几种场效应管。场效应管是用电场控制通过晶体管电流的器件,一

般而言,场效应管都有一个导电沟道,沟道的电导能够被晶体管的电场所调制。常见的电场引入

机制包括反向偏置的pn结(JFET),反向偏置的肖特基接触(MESFET)和金属氧化物接触(MOSFET)。由于砷化镓材料难以形成良好的绝缘层,基于砷化镓材料的MOSFET一直没有获得实际应用,但

183

第三节 砷化镓MESFET管的数值模拟 第十二章 GSS软件的应用

图 12.38 HBJT集电极电流AC扫描结果

是砷化镓MESFET早在1966年就制成了。在这一节里,我们将对砷化镓材料的金属半导体场效应管(metal-semiconductor field-effect transistor, MESFET)进行数值模拟。

我们的目的主要是测试GSS对非硅材料的支持,同时测试肖特基接触边界条件,因此MESFET的模型比较简单,如图(12.39)所示。图中上层是一个沿Y方向厚度为0.1µm重掺杂的沟道,掺杂浓度为Nd = 2 × 1017cm−3;下层是一个沿Y方向厚度为0.4µm的轻度掺杂衬底,掺杂浓度Nd =1014cm−3。器件最终的掺杂分布如图(12.40)所示。所有三个电极都是0.5µm长(沿x方向),Source-Gate距离0.5µm,Gate-Drain距离1.0µm。

图 12.39 GaAs MESFET器件结构

GSS建模的输入文件如下:

1 #==============================================================================

2 # GSS example: MESFET

3 # Create an initial simulation mesh

4 #==============================================================================

5 MESH Type=GSS ModelFile=mesfet.cgns Triangle="pzA"

6 XMESH WIDTH=3.0 N.SPACES=50

7 YMESH DEPTH=0.2 N.SPACES=30

8 YMESH DEPTH=0.3 N.SPACES=10

9

184

第十二章 GSS软件的应用 第三节 砷化镓MESFET管的数值模拟

10 # Region and electrode statements

11 REGION Label=MESFET Material=GaAs

12 SEGMENT Label=SOURCE Location=TOP X.MIN=0.0 X.MAX=0.5

13 SEGMENT Label=GATE Location=TOP X.MIN=1.0 X.MAX=1.5

14 SEGMENT Label=DRAIN Location=TOP X.MIN=2.5 X.MAX=3.0

1516 PROFILE Type=Uniform Ion=Donor N.PEAK=1E14 X.MIN=0.0 X.MAX=3.0 \

17 Y.TOP=0.0 Y.BOTTOM=-0.5

18 PROFILE Type=Uniform Ion=Donor N.PEAK=2E17 X.MIN=0.0 X.MAX=3.0 \

19 Y.TOP=0.0 Y.BOTTOM=-0.1

2021 #------------------------------------------------------------------------------

22 set Carrier = pn

23 set LatticeTemp = 3e2

24 set DopingScale = 2e17

2526 #------------------------------------------------------------------------------

27 # specify boundary condition.

28 boundary Type=OhmicContact ID=SOURCE Res=0 Cap=0 Ind=0

29 boundary Type=OhmicContact ID=DRAIN Res=0 Cap=0 Ind=0

30 boundary Type=SchottkyContact ID=GATE Res=0 Cap=0 Ind=0 Workfunction=4.9

3132 #------------------------------------------------------------------------------

33 # drive command, specify the solving process.

34 PLOT Variable=Mesh

35 #specify DDM method,this is the default solver.

36 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=TFQMR

37 #compute equilibrium state

38 SOLVE Type=EQUILIBRIUM

39 PLOT Variable=Nd Resolution=RES.High AzAngle=40 ElAngle=40 Style=Color

40 PLOT Variable=ElecDensity Resolution=RES.High AzAngle=40 ElAngle=40

41 PLOT Variable=HoleDensity Resolution=RES.High AzAngle=40 ElAngle=40

42 PLOT Variable=Potential Resolution=RES.High AzAngle=40 ElAngle=40

4344 # export mesh and solution

45 EXPORT CoreFile=mesfet.cgns

46 END

注意第11行REGION命令指定的材料为GaAs。第30行BOUNDARY命令指定了栅极为肖特基接触,金属的功函数为4.9V

由于肖特基势垒的存在,栅极周围形成了电子的耗尽区,如图(12.41)所示。从图(12.41)中可以看出,不加偏压的情况下,耗尽区的范围已经几乎夹断了导电沟道,栅极电压越负,耗尽区的范围

越大,电子通过导电沟道越困难,因此图中的管子是耗尽型的。图(12.42)给出了空穴的分布,从图中可以看出,空穴的浓度相当的低,对器件的性能几乎没有影响,事实上,对于MESFETE器件仅考虑电子是可行的。图(12.43)显示了器件内部的电势分布,可以看出肖特基接触附近电势最低,该区

185

第三节 砷化镓MESFET管的数值模拟 第十二章 GSS软件的应用

域对电子而言形成势垒区。

图 12.40 MESFET掺杂施主浓度Nd分布 图 12.41 MESFET平衡态电子密度分布

图 12.42 MESFET平衡态空穴密度分布 图 12.43 MESFET平衡态电势分布

得到MESFET器件的模型后,继续考虑它的IV曲线。这里固定栅极电压为0V,逐渐增加源极电压,得到栅压固定为0V的一条IV曲线。GSS输入文件如下:

1 #==============================================================================

2 # GSS example: MESFET

3 # here, we solve the IV curve at Vgs=0V.

4 #==============================================================================

5 set Carrier = pn

6 set Z.Width = 100

7 set LatticeTemp = 3e2

8 set DopingScale = 2e17

9 #------------------------------------------------------------------------------

10 # gate voltage source

11 vsource Type = VDC ID = VGATE Tdelay=0 Vconst=0.0

1213 #------------------------------------------------------------------------------

14 # specify boundary condition.

186

第十二章 GSS软件的应用 第四节 CMOS工艺小规模数字器件的数值模拟

15 boundary Type=OhmicContact ID=SOURCE Res=0 Cap=0 Ind=0

16 boundary Type=OhmicContact ID=DRAIN Res=0 Cap=0 Ind=0

17 boundary Type=SchottkyContact ID=GATE Res=0 Cap=0 Ind=0 Workfunction=4.9

1819 #PMIS Region=MESFET Mobility=Hypertang

2021 #------------------------------------------------------------------------------

22 # drive command, specify the solving process.

23 IMPORT CoreFile=mesfet.cgns

24 # set gate bias, we change the drain voltage.

25 ATTACH Electrode=GATE VApp=VGATE

26 METHOD Type = DDML1E Scheme = Newton NS=LineSearch LS=GMRES

27 SOLVE Type=DCSWEEP VScan=DRAIN IVRecord=DRAIN IVRecord=GATE \

28 IVFile=iv.txt VStart=0.0 VStep=0.01 VStop=2

29 # we get a IV curve at V(GATE)=0V.

30 PLOT Variable=ElecDensity Resolution=RES.High AzAngle=40 ElAngle=40

31 PLOT Variable=HoleDensity Resolution=RES.High AzAngle=40 ElAngle=40

32 PLOT Variable=Potential Resolution=RES.High AzAngle=40 ElAngle=40

33 END

计算得到的IV曲线如图(12.44)。实验证明,MESFET的输出特性可能出现三种类型:栅触发不稳定性,稳定负阻特性和沟道夹断模型[101]。这里的IV特性曲线与栅触发不稳定性结果类似,这种不稳定性是耿氏(Gunn)振荡器的工作模式。出现这种输出特性是由于GaAs的迁移率有一个极大值,当电场强度超过某个临界点后,迁移率将会下降。于是随着源漏电压的增长,迁移率下降和导电区

域增加互相竞争,导致了电流的大小变化。如果采用Hypertang迁移率模型(把输入文件第19行注释去掉),就不会出现振荡的电流,这个模型可以用于平均电流的计算。

同时,Vgs = 0V,Vds = 2V情况下的电子密度与电势分布,分别见图(12.45)与图(12.46)。可见在偏压作用下,导电沟道向体内扩展了。

第四节 CMOS工艺小规模数字器件的数值模拟

CMOS器件由于其较低的功耗,在数字芯片的生产中占据绝对主流,是目前半导体产业中最为重要的器件。CMOS器件由NMOS与PMOS的对管组成,两者有对称的电特性。

前文模拟的半导体器件都可以仅用一个半导体区域来描述,但是MOS管至少涉及硅与二氧化硅两个区域,模型更为复杂。现代工艺条件下的MOS管还有LDD结构,离子注入沟道等特性,加剧了建模的困难。GSS软件目前对MOS器件的建模支持只能说差强人意,勉强可以建立薄层二氧化硅栅极结构,但是对形状复杂的栅氧结构则比较吃力。

在这一节里,将首先建立NMOS与PMOS管的模型,借助GSS/NGSPICE的混合电路分析能力,对反相器和与非门这两种数字器件的基础单元进行数值模拟。

187

第四节 CMOS工艺小规模数字器件的数值模拟 第十二章 GSS软件的应用

图 12.44 栅压0V的源漏IV曲线

图 12.45 MESFET偏压状态电子密度分布 图 12.46 MESFET偏压状态电势分布

12.4.1 NMOS管与PMOS管的建模

第一步是建立NMOS与PMOS的器件模型。对于数字集成芯片,内部的MOS管使用同一套工艺制作,如果忽略制作过程中的个体差异,可以用同一个模型描述所有的MOS管。

NMOS管[37]在均匀掺杂3 × 1015cm−3的P型衬底上制作,沟道长1.5µm,栅极氧化物厚25nm,采用多晶硅栅极(功函数4.17V),源漏区域N+掺杂浓度为2 × 1020cm−3,为了调整开启电压,沟道表面

注入了浓度为2 × 1016cm−3的P型杂质,器件在第三维宽度为2µm。在工艺上,NMOS与PMOS完全对称,但是由于空穴的迁移率只有电子的一半左右,为了达到同样的电流驱动能力,PMOS管在宽度上设为NMOS管的2倍。

建立NMOS器件与PMOS器件的GSS输入文件分别如下,二者基本上是对偶的。

1 #==============================================================================

188

第十二章 GSS软件的应用 第四节 CMOS工艺小规模数字器件的数值模拟

2 # GSS example: 1.5 Micron N-Channel MOSFET

3 #==============================================================================

45 MESH Type=GSS ModelFile=nmos.cgns Triangle="pzADY"

6 XMESH WIDTH=0.6 N.SPACES=5

7 XMESH WIDTH=1.8 N.SPACES=24

8 XMESH WIDTH=0.6 N.SPACES=5

910 YMESH Y.TOP=0.025 DEPTH=0.025 N.SPACES=2

11 YMESH DEPTH=0.5 N.SPACES=6

12 YMESH DEPTH=0.5 N.SPACES=4

13 YMESH DEPTH=1.0 N.SPACES=4

1415 # Eliminate some unnecessary substrate nodes

16 ELIMINATE Direction=COLUMNS Y.TOP=-1.1

1718 SPREAD Location=Left Width=0.625 Upper=0 Lower=2 Thickness=0.1 Encroach=1

19 SPREAD Location=Right Width=0.625 Upper=0 Lower=2 Thickness=0.1 Encroach=1

2021 # Specify oxide and silicon regions

22 REGION Label=NSilicon Material=Si

23 REGION Label=NOxide IY.MAX=2 Material=Ox

24 REGION Label=NSource X.MAX=0.5 IY.MAX=2 Material=Elec

25 REGION Label=NDrain X.MIN=2.5 IY.MAX=2 Material=Elec

2627 SEGMENT Label=NGate X.MIN=0.625 X.MAX=2.375 Location=TOP

28 SEGMENT Label=NSubstrate Location=BOTTOM

293031 #Specify impurity profiles and fixed charge

32 PROFILE Type=Uniform Ion=Acceptor N.PEAK=3E15 X.MIN=0.0 \

33 X.MAX=3.0 Y.TOP=0 Y.BOTTOM=-2.5

34 PROFILE Type=Gauss Ion=Acceptor N.PEAK=2E16 X.MIN=0.0 \

35 X.MAX=3.0 Y.TOP=0 Y.CHAR=0.25

36 PROFILE Type=Gauss Ion=Donor N.PEAK=2E20 Y.CHAR=0.1 \

37 X.MIN=0.0 X.MAX=0.5 X.CHAR=0.1

38 PROFILE Type=Gauss Ion=Donor N.PEAK=2E20 Y.CHAR=0.1 \

39 X.MIN=2.5 X.MAX=3.0 X.CHAR=0.1

4041 #------------------------------------------------------------------------------

42 set Carrier = pn

43 set Z.width = 2

44 set LatticeTemp = 3e2

45 set DopingScale = 1e16

46

189

第四节 CMOS工艺小规模数字器件的数值模拟 第十二章 GSS软件的应用

47 #------------------------------------------------------------------------------

48 # specify boundary condition.

49 boundary Type = InsulatorInterface ID = IF_NOxide_to_NSilicon QF=0

50 boundary Type = GateContact ID = NGate WorkFunction=4.17

51 boundary Type = OhmicContact ID = NSubstrate Res=0 Cap=0 Ind=0

52 CONTACT Type = OhmicContact ID = NSource Res=0 Cap=0 Ind=0

53 CONTACT Type = OhmicContact ID = NDrain Res=0 Cap=0 Ind=0

5455 #------------------------------------------------------------------------------

56 # drive command, specify the solving process.

57 PLOT Variable=DeviceMesh

58 REFINE Variable=Doping Measure=SignedLog Dispersion=3 Triangle="praDz"

59 PLOT Variable=DeviceMesh

6061 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=GMRES

62 # compute equilibrium state

63 SOLVE Type = TRANSIENT TStart = 0 TStep=1e-12 TStop = 3e-11

64 SOLVE Type=EQUILIBRIUM

65 # refine by potential

66 REFINE Variable=Potential Measure=Linear Dispersion=0.1 Triangle="praDz"

67 PLOT Variable=DeviceMesh Resolution=RES.High TIFF.OUT = nmos_mesh.tiff

6869 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=GMRES

70 SOLVE Type = TRANSIENT TStart = 0 TStep=1e-12 TStop = 3e-11

71 SOLVE Type=EQUILIBRIUM

7273 PLOT Variable=Na Resolution=RES.High AzAngle=120 ElAngle=60

74 PLOT Variable=Nd Resolution=RES.High AzAngle=120 ElAngle=60

75 PLOT Variable=Potential Resolution=RES.High AzAngle=240 ElAngle=20

76 PLOT Variable=ElecDensity Resolution=RES.High AzAngle=240 ElAngle=20

77 PLOT Variable=EFieldX Resolution=RES.High AzAngle=40 ElAngle=20

78 PLOT Variable=EFieldY Resolution=RES.High AzAngle=40 ElAngle=20

79 EXPORT CoreFile = nmos_init.cgns

1 #==============================================================================

2 # GSS example: 1.5 Micron P-Channel MOSFET

3 #==============================================================================

45 MESH Type=GSS ModelFile=pmos.cgns Triangle="pzADY"

6 XMESH WIDTH=0.6 N.SPACES=5

7 XMESH WIDTH=1.8 N.SPACES=24

8 XMESH WIDTH=0.6 N.SPACES=5

910 YMESH Y.TOP=0.025 DEPTH=0.025 N.SPACES=2

11 YMESH DEPTH=0.5 N.SPACES=6

12 YMESH DEPTH=0.5 N.SPACES=4

190

第十二章 GSS软件的应用 第四节 CMOS工艺小规模数字器件的数值模拟

13 YMESH DEPTH=1.0 N.SPACES=4

1415 # Eliminate some unnecessary substrate nodes

16 ELIMINATE Direction=COLUMNS Y.TOP=-1.1

1718 SPREAD Location=Left Width=0.625 Upper=0 Lower=2 Thickness=0.1 Encroach=1

19 SPREAD Location=Right Width=0.625 Upper=0 Lower=2 Thickness=0.1 Encroach=1

2021 # Specify oxide and silicon regions

22 REGION Label=PSilicon Material=Si

23 REGION Label=POxide IY.MAX=2 Material=Ox

24 REGION Label=PSource X.MAX=0.5 IY.MAX=2 Material=Elec

25 REGION Label=PDrain X.MIN=2.5 IY.MAX=2 Material=Elec

2627 SEGMENT Label=PGate X.MIN=0.625 X.MAX=2.375 Location=TOP

28 SEGMENT Label=PSubstrate Location=BOTTOM

293031 #Specify impurity profiles and fixed charge

32 PROFILE Type=Uniform Ion=Donor N.PEAK=3E15 X.MIN=0.0 \

33 X.MAX=3.0 Y.TOP=0 Y.BOTTOM=-2.5

34 PROFILE Type=Gauss Ion=Donor N.PEAK=2E16 X.MIN=0.0 \

35 X.MAX=3.0 Y.TOP=0 Y.CHAR=0.25

36 PROFILE Type=Gauss Ion=Acceptor N.PEAK=2E20 Y.CHAR=0.1 \

37 X.MIN=0.0 X.MAX=0.5 X.CHAR=0.1

38 PROFILE Type=Gauss Ion=Acceptor N.PEAK=2E20 Y.CHAR=0.1 \

39 X.MIN=2.5 X.MAX=3.0 X.CHAR=0.1

4041 #------------------------------------------------------------------------------

42 set Carrier = pn

43 set Z.width = 4

44 set LatticeTemp = 3e2

45 set DopingScale = 1e16

4647 #------------------------------------------------------------------------------

48 # specify boundary condition.

49 boundary Type = InsulatorInterface ID = IF_POxide_to_PSilicon QF=0

50 boundary Type = GateContact ID = PGate WorkFunction=5.25

51 boundary Type = OhmicContact ID = PSubstrate Res=0 Cap=0 Ind=0

52 CONTACT Type = OhmicContact ID = PSource Res=0 Cap=0 Ind=0

53 CONTACT Type = OhmicContact ID = PDrain Res=0 Cap=0 Ind=0

5455 #------------------------------------------------------------------------------

56 # drive command, specify the solving process.

57 PLOT Variable=DeviceMesh

191

第四节 CMOS工艺小规模数字器件的数值模拟 第十二章 GSS软件的应用

58 REFINE Variable=Doping Measure=SignedLog Dispersion=3 Triangle="praDz"

59 PLOT Variable=DeviceMesh

6061 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=GMRES

62 # compute equilibrium state

63 SOLVE Type = TRANSIENT TStart = 0 TStep=1e-12 TStop = 3e-11

64 SOLVE Type=EQUILIBRIUM

65 # refine by potential

66 REFINE Variable=Potential Measure=Linear Dispersion=0.1 Triangle="praDz"

67 PLOT Variable=DeviceMesh Resolution=RES.High TIFF.OUT = pmos_mesh.tiff

6869 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=GMRES

70 SOLVE Type = TRANSIENT TStart = 0 TStep=1e-12 TStop = 3e-11

71 SOLVE Type=EQUILIBRIUM

7273 PLOT Variable=Na Resolution=RES.High AzAngle=120 ElAngle=60

74 PLOT Variable=Nd Resolution=RES.High AzAngle=120 ElAngle=60

75 PLOT Variable=Potential Resolution=RES.High AzAngle=240 ElAngle=20

76 PLOT Variable=EFieldX Resolution=RES.High AzAngle=40 ElAngle=20

77 PLOT Variable=EFieldY Resolution=RES.High AzAngle=40 ElAngle=20

78 EXPORT CoreFile = pmos_init.cgns

以NMOS器件的建模文件为例,其中出现了SPREAD与ELIMINATE命令。SPREAD命令用于控制网格线在Y方向移动,人为的做出栅氧边界的鸟嘴结构。而ELIMINATE命令则可以消去衬底多余的网格点,加快模拟的速度。建立后的器件模型如图(12.47)以及(12.48)所示。

图 12.47 NMOS管的网格 图 12.48 PMOS管的网格

模型建立后还需要计算器件的平衡态用于后继的分析。事实上,以GSS设置的初始态作为计算平衡态分布的初值是无法收敛的。注意到在不加偏压的情况下,使用瞬态求解器推进足够长的时间

能够得到平衡态的解,但是耗费的时间较长。这里首先调用瞬态求解器推进一段时间后,器件内部

的载流子分布已经接近平衡态,换句话说,此时的初值已经比较接近平衡态解,然后再换用稳态求

解器直接计算。具体过程见NMOS建模输入文件的第61-64以及69-71行。图(12.49)与图(12.50)分别给出NMOS管与PMOS管平衡态的电势分布。

192

第十二章 GSS软件的应用 第四节 CMOS工艺小规模数字器件的数值模拟

图 12.49 NMOS平衡态电势分布 图 12.50 PMOS平衡态电势分布

12.4.2 MOS管传输特性的模拟

在建立了器件模型之后,还需要检测NMOS管与PMOS管的其他特性,比如开启电压以及电流驱动能力,以判断其组成CMOS电路的能力。

用于NMOS管测试的输入文件如下,而PMOS管的测试文件几乎与此相同,因此略去。

1 #==============================================================================

2 # GSS example: 1.5 Micron N-Channel MOSFET

3 # We fix the gate potential at 5V and sweep source-drain IV curve with both

4 # DDML1E and DDML2E solver.

5 #==============================================================================

67 set Carrier = pn

8 set Z.width = 2

9 set LatticeTemp = 3e2

10 set DopingScale = 1e18

1112 #------------------------------------------------------------------------------

13 # voltage sources are needed here.

14 vsource Type = VDC ID = GND Tdelay=0 Vconst=0

15 vsource Type = VDC ID = VCC Tdelay=0 Vconst=5

16 vsource Type = VDC ID = VGATE Tdelay=0 Vconst=5

1718 #------------------------------------------------------------------------------

19 # specify boundary condition.

20 boundary Type = InsulatorInterface ID = IF_NOxide_to_NSilicon QF=0

21 boundary Type = GateContact ID = NGate WorkFunction=4.17

22 boundary Type = OhmicContact ID = NSubstrate Res=0 Cap=0 Ind=0

23 CONTACT Type = OhmicContact ID = NSource Res=0 Cap=0 Ind=0

24 CONTACT Type = OhmicContact ID = NDrain Res=0 Cap=0 Ind=0

2526

193

第四节 CMOS工艺小规模数字器件的数值模拟 第十二章 GSS软件的应用

27 #------------------------------------------------------------------------------

28 # specify physical model, use Lucent mobility here.

29 PMIS region=Si mobility=Lucent

3031 #------------------------------------------------------------------------------

32 # drive command, specify the solving process.

33 # solve the tranfer function

34 IMPORT CoreFile=nmos_init.cgns

35 METHOD Type = DDML1E Scheme = Newton NS=Basic LS=GMRES EJModel=On

36 SOLVE Type=DCSWEEP VScan=NDrain VStart=0.0 VStep=0.1 VStop=5.0

37 ATTACH Electrode=NDrain VApp=VCC

38 SOLVE Type=DCSWEEP VScan=NGate IVRecord=NGate IVRecord=NDrain \

39 IVFile=tfn.txt VStart=0.0 VStep=0.1 VStop=5.0

4041 # set gate voltage to 5V

42 IMPORT CoreFile=nmos_init.cgns

43 METHOD Type = DDML1E Scheme = Newton NS=Basic LS=GMRES

44 SOLVE Type=DCSWEEP VScan=NGate VStart=0.0 VStep=0.1 VStop=5.0

45 EXPORT CoreFile=nmos_bias.cgns

4647 # get drain-source IV at Vgs=5V by DDML1E solver

48 IMPORT CoreFile=nmos_bias.cgns

49 ATTACH Electrode=NGate VApp=VGATE

50 METHOD Type = DDML1E Scheme = Newton NS=Basic LS=GMRES

51 SOLVE Type=DCSWEEP VScan=NDrain IVRecord=NDrain \

52 IVRecord=NSource \

53 IVFile=iv1n.txt VStart=0.0 VStep=0.1 VStop=5.0

54 EXPORT CoreFile=nmos_open.cgns

5556 END

注意,为了准确模拟通过MOS器件的电流,需要考虑硅-二氧化硅表面的迁移率下降效应。此处已经不能使用GSS默认的Analytic迁移率模型,输入文件的第29行利用PMIS命令指定了使用Lucent迁移率模型。

输入文件中包含了对NMOS管与PMOS管开启电压的测试,结果分别如图(12.51)以及图(12.52)所示。从图中可以看出,它们的开启电压都在0.4V左右。

NMOS管与PMOS管栅极电压分别为5V以及−5V时的源漏驱动能力分别如图(12.53)以及图(12.54)所示,由于PMOS管的宽度为NMOS管的两倍,抵消了迁移率的差别,两管的驱动能力基本平衡。从以上分析可见,前面设计的NMOS管与PMOS管有很好的对称性能。另外,图(12.53)分别给出了考虑与不考虑温度情况下的NMOS管源漏电流,可见由于器件温度升高,迁移率下降而导致的电流减小并不明显,使用 DDML1E求解器已经有足够精度。

194

第十二章 GSS软件的应用 第四节 CMOS工艺小规模数字器件的数值模拟

图 12.51 NMOS开启电压 图 12.52 PMOS开启电压

图 12.53 NMOS源漏IV曲线 图 12.54 PMOS源漏IV曲线

12.4.3 反相器74HC04的混合模拟

在前面已经完成了对互补NMOS管与PMOS管的建模。利用这二者的不同组合可以搭配出数字器件的基础单元,比如反相器、与门、或门、D触发器等等[102]。成千上万的基础单元按一定的规律组合在一起,就构成了大规模数字集成电路。CMOS反相器应该是最简单的数字器件,它广泛用作数字芯片的输入极,同时为其它逻辑电路提供逻辑反转或者延迟等辅助功能。这里首先对CMOS反相器74HC04进行数值模拟。

反相器的电路原理图与硅芯片版图分别如图(12.55)以及图(12.56)所示。注意,这里的版图中PMOS管的宽度大约为NMOS的3倍。而在模拟中,取的是2倍的关系。

这里模拟两个级联的反相器在脉冲方波作用下的响应,电路如图(12.57)所示。其中,电阻R1、R2以及电容C1分别表示互联线的电阻和电容。驱动信号为幅值5V,频率为250MHz的方波,上升沿与下降沿均为20ps。电源电压5V。第一个反相器(U1A)的PMOS管与NMOS管分别采用两个GSS进程计算,后一个反相器(U1B)采用SPICE解析模型以节省计算时间。

NMOS管以及PMOS管的输入文件如下,它们分别在端口17001、17002接受NGSPICE的信息。

1 #==============================================================================

2 # GSS mix-type simulation file for 1.5 Micron N-Channel MOSFET

195

第四节 CMOS工艺小规模数字器件的数值模拟 第十二章 GSS软件的应用

图 12.55 CMOS反相器 图 12.56 CMOS反相器版图

图 12.57 反相器电路图

3 #==============================================================================

45 set Carrier = pn

6 set Z.width = 2

7 set LatticeTemp = 3e2

8 set DopingScale = 1e18

910 #------------------------------------------------------------------------------

11 # voltage sources are needed here.

12 vsource Type = VDC ID = GND Tdelay=0 Vconst=0

13 vsource Type = VDC ID = VCC Tdelay=0 Vconst=5

14 vsource Type = VDC ID = VGATE Tdelay=0 Vconst=5

1516 #------------------------------------------------------------------------------

17 # specify boundary condition.

18 boundary Type = InsulatorInterface ID=IF_NOxide_to_NSilicon QF=0

19 boundary Type = GateContact ID=NGate WorkFunction=4.17

20 boundary Type = OhmicContact ID=NSubstrate Res=0 Cap=0 Ind=0

21 CONTACT Type = OhmicContact ID=NSource Res=0 Cap=0 Ind=0

196

第十二章 GSS软件的应用 第四节 CMOS工艺小规模数字器件的数值模拟

22 CONTACT Type = OhmicContact ID=NDrain Res=0 Cap=0 Ind=0

2324 #------------------------------------------------------------------------------

25 # specify physical model, use Lucent mobility here.

26 PMIS region=Si mobility=Lucent

2728 #------------------------------------------------------------------------------

29 # IMPORT NMOS MODEL

30 IMPORT CoreFile=nmos_init.cgns

31 METHOD Type = DDML1MIX Scheme = Newton NS=Basic LS=GMRES ServerPort=17001

32 SOLVE

3334 END

1 #==============================================================================

2 # GSS mix-type simulation file for 1.5 Micron P-Channel MOSFET

3 #==============================================================================

45 set Carrier = pn

6 set Z.width = 4

7 set LatticeTemp = 3e2

8 set DopingScale = 1e18

910 #------------------------------------------------------------------------------

11 # voltage sources are needed here.

12 vsource Type = VDC ID = GND Tdelay=0 Vconst=0

13 vsource Type = VDC ID = VCC Tdelay=0 Vconst=5

14 vsource Type = VDC ID = VGATE Tdelay=0 Vconst=5

1516 #------------------------------------------------------------------------------

17 # specify boundary condition.

18 boundary Type = InsulatorInterface ID=IF_POxide_to_PSilicon QF=0

19 boundary Type = GateContact ID=PGate WorkFunction=5.25

20 boundary Type = OhmicContact ID=PSubstrate Res=0 Cap=0 Ind=0

21 CONTACT Type = OhmicContact ID=PSource Res=0 Cap=0 Ind=0

22 CONTACT Type = OhmicContact ID=PDrain Res=0 Cap=0 Ind=0

2324 #------------------------------------------------------------------------------

25 # specify physical model, use Lucent mobility here.

26 PMIS region=Si mobility=Lucent

2728 #------------------------------------------------------------------------------

29 # IMPORT PMOS MODEL

30 IMPORT CoreFile=pmos_init.cgns

31 METHOD Type = DDML1MIX Scheme = Newton NS=Basic LS=GMRES ServerPort=17002

32 SOLVE

197

第四节 CMOS工艺小规模数字器件的数值模拟 第十二章 GSS软件的应用

3334 END

NGSPICE的输入文件如下所示:

1 CMOS Invertor mix-type transient simulation

23 VCC P_VCC 0 5V

4 VIN P_R2 0 0V (PULSE 0 5 0n 20p 20p 2n 4n)

5 R2 P_R2 N_R2 100

67 * P channel compact load transistor

8 * MA1 P_R1 N_R2 P_VCC P_VCC MPM

9 * + PS=8u PD=8u AS=6p AD=6p W=3u L=1.25u

10 * N channel compact load transistor

11 * MA2 P_R1 N_R2 0 0 MNM

12 * + PS=5u PD=5u AS=2p AD=2p W=1.5u L=1.25u

1314 * numerical PMOS

15 NPMOS1 P_R1=PDrain N_R2=PGATE P_VCC=PSource P_VCC=PSubstrate PMOS

16 * numerical NMOS

17 NNMOS1 P_R1=NDrain N_R2=NGATE 0=NSource 0=NSubstrate NMOS

18 R1 P_R1 P_C1 100

19 C1 P_C1 0 20f

2021 * P channel compact load transistor

22 MB1 VOUT P_C1 P_VCC P_VCC MPM PS=8u PD=8u AS=6p AD=6p W=3u L=1.25u

23 * N channel compact load transistor

24 MB2 VOUT P_C1 0 0 MNM PS=5u PD=5u AS=2p AD=2p W=1.5u L=1.25u

2526 * Models to use for the compact MOS transistors

27 .MODEL MNM NMOS LEVEL=2 TOX=1.5e-7 NSUB=3E15 LD=.15u UO=600

28 + VMAX=1E7 XJ=.3 JS=1E-15 VTO=.7

29 .MODEL MPM PMOS LEVEL=2 TOX=1.5e-7 NSUB=3E15 LD=.15u

30 + XJ=.3 UO=300 JS=1E-15 VMAX=5E6 VTO=-.7

3132 * Models for numerical MOS transistors

33 .MODEL NMOS NDEV remote=localhost port=17001

34 .MODEL PMOS NDEV remote=localhost port=17002

3536 .OPTION acct itl2=100 icstep=2e12

37 .TRAN 1ps 9ns

38 .plot tran v(vout)

39 .END

整个系统在一台双Xeon 3.6GHz CPU的工作站上模拟。运行过程中,NGSPICE占有的CPU时间可以忽略,主要是两个GSS进程各占用一个CPU,同时两个CPU的负载均在90%以上,显示了良好的

198

第十二章 GSS软件的应用 第四节 CMOS工艺小规模数字器件的数值模拟

并行能力。虽然计算时间长达1小时,但是由于并行的程度很高,在集群环境下模拟包含更多数值器件的电路所需时间不会显著增长。

图(12.58)给出了两极反相器的输入输出波形,延迟大约0.2ns。图(12.59)给出了通过U1A反相器NMOS管的电流波形,注意到仅有在器件翻转时才有电流通过。

图 12.58 反相器输入与输出波形 图 12.59 通过U1A反相器NMOS管的电流

12.4.4 与非门74HC00的混合模拟

与非门在CMOS组合逻辑器件中比较简单,第二个混合模拟的例子将考虑与非门74HC00器件的数值模拟。与非门的电路原理图与硅芯片版图分别如图(12.60)以及图(12.61)所示。

图 12.60 CMOS与非门 图 12.61 CMOS与非门版图

199

第四节 CMOS工艺小规模数字器件的数值模拟 第十二章 GSS软件的应用

模拟的电路如图(12.62)所示,由于加上了作为负载的反相器,实际上图(12.62)是一个与门电路。对与非门的4个MOS管采用GSS数值模拟,其它电路元件包括作为负载的反相器,均采用SPICE解析模型。

图 12.62 与门电路图

电路中有两个相同的NMOS管与两个相同的PMOS管,它们的GSS输入文件除了端口号的差异外与上一个反相器的例子相同,在此不再列出。NGSPICE的输入文件如下所示,4个数值器件分别在本机的17001 ∼ 17004端口。

1 CMOS nand mix-type transient simulation

23 VCC P_VCC 0 5V

4 VIN1 P_R1 0 0V (PULSE 0 5 0n 20p 20p 5n 10n)

5 VIN2 P_R2 0 0V (PULSE 0 5 2.5n 20p 20p 5n 10n)

6 R1 P_R1 N_R1 100

7 R2 P_R2 N_R2 100

89 * P channel compact load transistor

10 * MP0 nand_out N_R1 P_VCC P_VCC MPM

11 * + PS=8u PD=8u AS=6p AD=6p W=3u L=1.25u

12 * MP1 nand_out N_R2 P_VCC P_VCC MPM

13 * + PS=8u PD=8u AS=6p AD=6p W=3u L=1.25u

1415 * N channel compact load transistor

16 *MN0 MN1_SOURCE N_R1 0 0 MNM

17 *+ PS=5u PD=5u AS=2p AD=2p W=1.5u L=1.25u

18 *MN1 nand_out N_R2 MN1_SOURCE MN1_SOURCE MNM

19 *+ PS=5u PD=5u AS=2p AD=2p W=1.5u L=1.25u

2021 * numerical PMOS

22 NPMOS0 nand_out=PDrain N_R1=PGATE P_VCC=PSource P_VCC=PSubstrate PMOS0

23 NPMOS1 nand_out=PDrain N_R2=PGATE P_VCC=PSource P_VCC=PSubstrate PMOS1

24 * numerical NMOS

25 NNMOS0 MN1_SOURCE=NDrain N_R1=NGATE 0=NSource 0=NSubstrate NMOS0

200

第十二章 GSS软件的应用 第四节 CMOS工艺小规模数字器件的数值模拟

26 NNMOS1 nand_out=NDrain N_R2=NGATE MN1_SOURCE=NSource MN1_SOURCE=NSubstrate NMOS1

27 R3 nand_out P_C1 100

28 C1 P_C1 0 20f

2930 * P channel compact load transistor

31 MB1 VOUT P_C1 P_VCC P_VCC MPM PS=8u PD=8u AS=6p AD=6p W=3u L=1.25u

32 * N channel compact load transistor

33 MB2 VOUT P_C1 0 0 MNM PS=5u PD=5u AS=2p AD=2p W=1.5u L=1.25u

3435 * Models to use for the compact MOS transistors

36 .MODEL MNM NMOS LEVEL=2 TOX=1.5e-7 NSUB=3E15 LD=.15u UO=600

37 + VMAX=1E7 XJ=.3 JS=1E-15 VTO=.7

38 .MODEL MPM PMOS LEVEL=2 TOX=1.5e-7 NSUB=3E15 LD=.15u

39 + XJ=.3 UO=300 JS=1E-15 VMAX=5E6 VTO=-.7

4041 * Models for numerical MOS transistors

42 .MODEL NMOS0 NDEV remote=localhost port=17001

43 .MODEL NMOS1 NDEV remote=localhost port=17002

44 .MODEL PMOS0 NDEV remote=localhost port=17003

45 .MODEL PMOS1 NDEV remote=localhost port=17004

4647 .IC V(P_VCC)=5V V(nand_out)=5V V(MN1_SOURCE)=2.5V

48 .OPTION acct itl2=100 icstep=2e12

49 .TRAN 1ps 9ns

50 .plot tran v(vout)

51 .END

混合模拟的结果如图(12.63)所示,V(P R1)以及V(P R2)分别为两个输入脉冲信号的波形,V(vout)为末端反相器的输出。可见只有输入脉冲同时为高时,输出为高。

图 12.63 与门输入输出波形

201

第四节 CMOS工艺小规模数字器件的数值模拟 第十二章 GSS软件的应用

12.4.5 用于ESD保护的ggNMOS击穿特性模拟

由于CMOS器件以栅极作为输入,其氧化层薄膜很容易被静电击穿,因此数字芯片必须具有ESD(静电放电)保护功能。对于速度较慢的芯片,往往采用二极管的正向导通(也有采用反向击穿原理的)作为ESD保护,如图(12.64)左图所示。不过由于二极管制造工艺与CMOS工艺不兼容,当今的高速数字芯片往往采用栅极接地的MOS器件作为ESD保护,称为ggMOS,如图(12.64)右图所示。这样做的好处是ESD器件本身也是MOS管,与CMOS工艺兼容,降低了成本。

图 12.64 二极管与ggMOS作为CMOS输入极的ESD保护器件

ggNMOS器件最显著的特点是其IV曲线在击穿后有一个明显的回溯(snap back)现象。正是由于这个回溯的存在,ggNMOS可以把输入电压钳制在对于输入栅极安全的范围内。回溯现象的解释如下:对于NMOS管,其内部总有一个寄生的NPN晶体管,如图(12.65)所示。ggNMOS工作时,源极、栅极以及衬底接地,漏极加上正向电压。击穿总是在漏极PN结附近先发生,产生电子-空穴对。其电子可以被漏极吸纳,而空穴则通过衬底等效电阻R流向衬底电极B。注意到空穴电流通过电阻将形成电压降,这个电压降加在NPN三极管基极-发射极之间,当其足够大时,寄生NPN三极管导通。导通的寄生NPN三极管提供了一个低阻的电流通道,造成MOS击穿电压的降低,于是在IV图上形成回溯现象。

从数值模拟的角度说,对ggNMOS器件进行IV曲线回溯的模拟并不是件轻松的事情。首先,ggNMOS工作在击穿区域,其物理特性就决定了这是一个奇异性比较严重的问题。其次,在回溯点,直流扫描无法收敛,必须采用手工电流扫描或者IV曲线自动扫描技术,无论哪种方法,都会增大问题的奇异性。最后,由于在本文的模型中,衬底电极在器件底部,衬底电流(它决定着寄生NPN管的开启)事实上是沿着y轴方向运动,注意到电场是沿着x轴方向,因此衬底电流实际上垂直于电场流动。这里碰撞电离必须使用EdotJ模型,以准确描述垂直于电场流动的电流。其他模型都会造成不准确甚至完全失败。比如采用GradQf碰撞电离模型完全无法得到回溯现象,而ESide碰撞电离模型则会大大高估回溯点的电压。此外,迁移率最好也使用较为准确的EJ模型,ESimple模型也会稍微高估回溯点。

202

第十二章 GSS软件的应用 第四节 CMOS工艺小规模数字器件的数值模拟

图 12.65 ggNMOS的击穿

为了方便起见,这里采用的是与MEDICI软件算例mdex1b一致的模型,以便有一个良好的对比物。输入文件如下:

1 #------------------------------------------------------------------------------

2 # ggNMOS snap back simulation by IV curve automatically TRACE

3 #------------------------------------------------------------------------------

4 set Carrier = pn

5 set Z.width = 1

6 set LatticeTemp = 3e2

7 set DopingScale = 1e20

89 vsource Type = VDC ID = GND Tdelay=0 Vconst=0

10 vsource Type = VDC ID = VGATE Tdelay=0 Vconst=0.5

1112 BOUNDARY Type = InsulatorInterface ID = IF_Oxide1_to_Silicon0 QF=1e10

13 BOUNDARY Type = GateContact ID = Gate WorkFunction=4.17

14 BOUNDARY Type = OhmicContact ID = Substrate Res=2e5

15 CONTACT Type = OhmicContact ID = Source2

16 CONTACT Type = OhmicContact ID = Drain3

1718 PMIS Region=Silicon0 Mobility=HP #II.Model=Valdinoci

19 IMPORT ModelFile=gnmos.cgns

2021 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=GMRES

22 SOLVE Type = TRANSIENT TStart = 0 TStep=1e-11 TStop = 3e-10

23 SOLVE Type = EQUILIBRIUM

2425 ATTACH Electrode=Gate Vapp=VGATE

26 SOLVE Type = STEADYSTATE

2728 METHOD Type = DDML1E Scheme = Newton NS=Basic LS=GMRES \

29 EJModel=On ImpactIonization=On II.Type=EdotJ

30 SOLVE Type=DCSWEEP VScan=Drain3 VStart=0.0 VStep=0.05 VStop=5.0

31

203

第四节 CMOS工艺小规模数字器件的数值模拟 第十二章 GSS软件的应用

32 METHOD Type = DDML1E Scheme = Newton NS=TrustRegion LS=LU \

33 EJModel=On ImpactIonization=On II.Type=EdotJ

34 SOLVE Type=TRACE VScan=Drain3 IVRecord=Drain3 IVRecord=Source2 \

35 IVFile=iv.txt VStart=5.0 VStep=0.05 VStop=15.0 IStop=0.02

36 END

在MEDICI运行后,其器件结构保存在TIF文件中。GSS提供了TIFTOOL,将TIF文件转化为能够识别的CGNS文件,这样GSS就能够导入MEDICI建立的模型,如图(12.66)所示。在GSS输入文件中,

图 12.66 ggNMOS模型

第14行指定了衬底电阻为200K,这个电阻用于补偿模型与真实器件的衬底电阻由于建模而导致的差异。第18行指定使用HP迁移率模型,这里也可以指定GSS所使用的碰撞电离模型。第21-23行计算器件的平衡态,第25-26行是为了与MEDICI保持一致起见,在栅极加上了0.5V电压。第28-30行先用电压扫描逐步将源漏电压提高到5V,最后32-35行调用TRACE进行IV曲线自动扫描。这里使用TrustRegion作为非线性方程搜索算法以增强收敛性。

GSS模拟的回溯结果与MEDICI模拟的结果分别如图(12.67)与图(12.68)所示。从结果上看,GSS成功的解析出了IV曲线的回溯,但是与MEDICI结果还是稍有差异,这应该来自于二者对某些细节处理方式的不同。

图 12.67 GSS计算得到的回溯曲线 图 12.68 MEDICI计算得到的回溯曲线

204

第十二章 GSS软件的应用 第五节 绝缘层上硅器件的数值模拟

第五节 绝缘层上硅器件的数值模拟

随着加工工艺的进步,绝缘层上硅的MOS工艺开始流行,称为SOI器件。这种SOI的MOS管比起常规MOS管有很多好处,速度更快,避免了闭锁效应。但是由于二氧化硅的导热性比硅差很多,SOI器件运行时产生的热量不容易散发,内部的温度比起常规MOS器件要高很多。由于较高的温度会降低载流子的迁移率,导致源漏电流的下将,因此在模拟SOI器件时,必须考虑热效应。

我们将模拟一个SOI-NMOS管[37],如图(12.69)所示。器件的栅极氧化层10nm,作为导电沟道的硅片厚度为0.1µm,隔离用二氧化硅层厚0.3µm,最底下为厚1µm的体硅层,器件沟道长0.5µm。将SOI器件栅极电压设为5V,源极接地。此外,为了增强收敛性,将SOI衬底硅也接地,原因可见如何克服收敛性问题,第255页。计算漏极电压从0V变为5V时的IV曲线,分别使用 DDML1E 以及DDML2E求解器计算。

图 12.69 SOI晶体管网格

对应的GSS输入文件如下

1 #==============================================================================

2 # GSS example: SOI heat simulation

3 #==============================================================================

45 set Carrier = pn # specify carrier type.

6 set Z.width = 1 # device width in Z dimension.

7 set LatticeTemp = 3e2 # specify initial temperature of device.

8 set DopingScale = 1e17

910 MESH Type=GSS ModelFile=SOI.cgns Triangle="pzA"

1112 XMESH WIDTH=0.5 H1=0.1 H2=0.020

13 XMESH WIDTH=0.5 H1=0.020 H2=0.020

14 XMESH WIDTH=0.5 H1=0.020 H2=0.1

205

第五节 绝缘层上硅器件的数值模拟 第十二章 GSS软件的应用

1516 YMESH N.SPACES=2 Y.MAX=0.02 Y.MIN=0

17 YMESH DEPTH=0.1 H1=0.020 H2=0.020

18 YMESH DEPTH=0.3 H1=0.05

19 YMESH DEPTH=1 H1=0.2

2021 ELIMINATE DIRECTION=COLUMNS X.MIN=0.4 X.MAX=1.1 Y.TOP=-0.1

22 ELIMINATE DIRECTION=COLUMNS Y.TOP=-0.5

2324 REGION Label=Gate_Ox Y.TOP=0.02 Y.BOTTOM=0.00 Material=SiO2

25 REGION Label=Device Y.TOP=0.0 Y.BOTTOM=-0.1 Material=Si

26 REGION Label=Buried_Ox Y.TOP=-0.1 Y.BOTTOM=-0.4 Material=SiO2

27 REGION Label=Bulk Y.TOP=-0.4 Y.BOTTOM=-1.4 Material=Si

2829 REGION Label=Source X.MIN=0.0 X.MAX=0.3 Y.MIN=0.0 Y.MAX=0.02 Material=Elec

30 REGION Label=Drain X.MIN=1.2 X.MAX=1.5 Y.MIN=0.0 Y.MAX=0.02 Material=Elec

31 REGION Label=Gate X.MIN=0.5 X.MAX=1.0 Y.MIN=0.01 Y.MAX=0.02 Material=Elec

32 SEGMENT Label=Substrate Location=BOTTOM

3334 PROFILE Ion=Acceptor N.PEAK=1E16 Type=Uniform X.MIN=0.0 X.MAX=1.5\

35 Y.MAX=0.0 Y.MIN=-1.4

36 PROFILE Ion=Donor Type=Gauss N.PEAK=2E17 X.MIN=0.0 X.MAX=0.5 X.CHAR=0.05 \

37 Y.MAX=0.0 Y.MIN=-0.1 Y.CHAR=0.01

38 PROFILE Ion=Donor Type=Gauss N.PEAK=2E17 X.MIN=1.0 X.MAX=1.5 X.CHAR=0.05 \

39 Y.MAX=0.0 Y.MIN=-0.1 Y.CHAR=0.01

4041 #------------------------------------------------------------------------------

42 vsource Type = VDC ID = GND Tdelay=0 Vconst=0

43 vsource Type = VDC ID = VCC Tdelay=0 Vconst=5

44 vsource Type = VDC ID = VGATE Tdelay=0 Vconst=5

4546 #------------------------------------------------------------------------------

47 # specify boundary condition.

48 boundary Type = InsulatorInterface ID=IF_Device_to_Gate_Ox QF=0

49 contact Type = GateContact ID=Gate WorkFunction=4.17 Heat.Transfer=0

50 contact Type = OhmicContact ID=Source Heat.Transfer=1e3

51 contact Type = OhmicContact ID=Drain Heat.Transfer=1e3

52 boundary Type = InsulatorInterface ID=IF_Buried_Ox_to_Device QF=0

53 boundary Type = InsulatorInterface ID=IF_Bulk_to_Buried_Ox QF=0

54 boundary Type = OhmicContact ID=Substrate Heat.Transfer=1e4

5556 PMIS Region=Device Mobility=Lucent

57 PMIS Region=Bulk Mobility=Analytic

5859 #------------------------------------------------------------------------------

206

第十二章 GSS软件的应用 第五节 绝缘层上硅器件的数值模拟

60 # compute a initial distrubution of p and n

61 # here we first use a transient solver to dump the init shock.

62 # then compute the steady-state distributions.

63 PLOT Variable=DeviceMesh

64 REFINE Variable=Doping Measure=SignedLog Dispersion=3 Triangle="praDzQ"

65 PLOT Variable=DeviceMesh

66 METHOD Type = DDML1 Scheme = Newton NS=Basic LS=GMRES

67 SOLVE Type = TRANSIENT TStart = 0 TStep=1e-12 TStop = 1e-11

68 SOLVE Type = STEADYSTATE

69 EXPORT CoreFile=soi_init.cgns

7071 PLOT Variable=Nd Resolution=RES.High AzAngle=120 ElAngle=60

72 PLOT Variable=Na Resolution=RES.High AzAngle=120 ElAngle=60

73 PLOT Variable=ElecDensity Resolution=RES.High AzAngle=120 ElAngle=60

74 PLOT Variable=HoleDensity Resolution=RES.High AzAngle=120 ElAngle=60

75 PLOT Variable=Potential Resolution=RES.High AzAngle=240 ElAngle=20

7677 # set gate bias by dcsweep method

78 METHOD Type = DDML1 Scheme=Newton NS=Basic LS=GMRES

79 SOLVE Type=DCSWEEP VScan=Gate VStart=0.0 VStep=0.02 VStop=5

80 EXPORT CoreFile=gate.cgns

8182 # add source-drain bias. we use ddm solver without lattice heating here.

83 METHOD Type = DDML1E Scheme = Newton NS=Basic LS=LU

84 ATTACH Electrode=Gate Vapp=VGATE

85 SOLVE Type=DCSWEEP VScan=Drain VStart=0.0 VStep=0.02 VStop=5 \

86 IVRecord=Drain IVFile=drain_nh.txt

8788 IMPORT CoreFile=gate.cgns

89 ATTACH Electrode=Gate Vapp=VGATE

90 # we use ddm solver with lattice heating here.

91 METHOD Type = DDML2E Scheme = Newton NS=Basic LS=LU

92 SOLVE Type=DCSWEEP VScan=Drain VStart=0.0 VStep=0.02 VStop=5 \

93 IVRecord=Drain IVFile=drain_ht.txt

9495 PLOT Variable=ElecDensity Resolution=RES.High AzAngle=120 ElAngle=60

96 PLOT Variable=HoleDensity Resolution=RES.High AzAngle=120 ElAngle=60

97 PLOT Variable=Potential Resolution=RES.High AzAngle=240 ElAngle=20

98 PLOT Variable=EFieldX Resolution=RES.High AzAngle=40 ElAngle=20

99 PLOT Variable=EFieldY Resolution=RES.High AzAngle=40 ElAngle=20

100 PLOT Variable=Temperature Resolution=RES.High AzAngle=40 ElAngle=20

101102 END

其中,第10-40行建起器件的网格以及掺杂分布。第56-57行分别给绝缘层上硅和体硅指定不同的迁移率模型。第66-68行求解器件的平衡态,这里再次采用了抑制初值振荡的技巧:首先使用了瞬

207

第五节 绝缘层上硅器件的数值模拟 第十二章 GSS软件的应用

态求解器运行10ps,让人为设定的初值随着时间推进变得更加接近平衡值,再进行平衡态的求解。第78-79行使用直流扫描方法,将SOI器件的栅极电压逐渐提高到5V。第83-86行调用不涉及温度的DDML1E求解器计算栅极电压为5V状态下的源漏IV曲线,第89-93行则用 DDML2E求解器进行同样的工作。

SOI晶体管的掺杂平衡态电子浓度、空穴浓度分别如图(12.70)与图(12.71)所示。注意,二氧化硅区域没有载流子,因此该区域为空白。平衡态电势分布如图(12.72)所示。

使用DDML2E求解器模拟之后,可以得到栅极电压为5V,源漏电压为5V状态下的器件内部温度分布,如图(12.73),此时器件导电沟道的温度已经达到了400K;二氧化硅层由于导热性能较差,在此区域温度的梯度很大;而体硅由于导热性好,并且从二氧化硅层传导过来的热流不大,因此温

度变化很小。可见二氧化硅层的存在阻断了导电沟道的热量散发。此时器件内部的电子浓度与电势

分布如图(12.74)与图(12.75)所示。

图 12.70 SOI晶体管平衡态电子浓度分布 图 12.71 SOI晶体管平衡态空穴浓度分布

图 12.72 SOI晶体管平衡态电势分布 图 12.73 SOI晶体管偏压下温度场

使用DDML1E与DDML2E分别得到的SOI器件在栅压5V情况下的源漏IV曲线如图(12.76)所示。显然,由于SOI器件容易发热,进行数值模拟时需要考虑温度的影响,尤其在源漏电压比较高的情况下。

208

第十二章 GSS软件的应用 第六节 半导体光吸收的数值模拟

图 12.74 SOI晶体管偏压下电子密度分布 图 12.75 SOI晶体管偏压下电势分布

图 12.76 栅压5V的源漏IV曲线

第六节 半导体光吸收的数值模拟

这里首先给出TM模的两个算例,作为有限元求解器的基准测试。第一个例子是方形金属柱的散射问题。入射光从顶部加入,功率密度为I = 10mW · cm−2,其波长λ = 1.0µm;计算区域大小S total = 7.0µm × 7.0µm,PML层厚度为dPML = 1.0µm,散射体Al的尺寸为S Al = 2.0µm × 2.0µm ,其余区域设为真空;计算时将整个区域用210 × 210个矩形网格均匀划分,然后将每个矩形网格剖为2个三角形网格,则网格特征尺寸为波长的1/30。第二个例子是圆形金属柱的散射问题。将上一个例子中的方形金属替换为半径1µm的圆柱,其余条件不变。两个例子的Ez场分布分别如图(12.77)与图(12.78)所示。两图中,UPML层都显示了对散射场的衰减作用,同时也可以看出,UPML厚度需要有1个波长左右,才有较好的吸收作用。

对应的GSS输入文件分别如下

1 #==============================================================================

2 # GSS example: Square Al scattering example with light source and PML boundary

3 # For running it, use "gss Square.inp"

4 #==============================================================================

209

第六节 半导体光吸收的数值模拟 第十二章 GSS软件的应用

56 # Create an initial simulation mesh

7 MESH Type=GSS ModelFile=PMLExam.cgns Triangle="pzA"

8 XMESH WIDTH=7.0 N.SPACES=210

9 YMESH DEPTH=7.0 N.SPACES=210

1011 # Region and electrode statements

12 REGION Label=PML Material=PML

13 REGION Label=Vacuum Material=Vacuum X.MIN=1.0 X.MAX=6.0 Y.MAX=-1.0 Y.MIN=-6.0

14 REGION Label=Square Material=Al X.MIN=2.5 X.MAX=4.5 Y.MAX=-2.5 Y.MIN=-4.5

1516 #------------------------------------------------------------------------------

17 # some light source is needed here.

18 LSOURCE Type=UNIFORM T0=0

1920 #------------------------------------------------------------------------------

21 PLOTMESH

2223 #Photogeneration State

24 PHOTOGEN WAVELEN=1.0 INTENSITY=1.0 ANGLE=90 WTM=0.5 WTE=0.5

25 METHOD Type=EMFEM LS=LU

26 SOLVE

2728 #export scatter field to VTK file format

29 #one can use paraview to view the result

30 EXPORT CoreFile=Square.cgns VTKFile=Square.vtk

1 #==============================================================================

2 # GSS example: Al Cylinder scatter field calculation with 1um light incident

3 # We will compute opitcal-field distribution

4 # For running it, use "gss CircularExam.inp"

5 #==============================================================================

67 # Create an initial simulation mesh

8 MESH Type=GSS ModelFile=CirExam.cgns Triangle="pzqA"

9 XMESH WIDTH=7.0 N.SPACES=210

10 YMESH DEPTH=7.0 N.SPACES=210

1112 # Region and electrode statements

13 REGION Label=PML Material=PML

14 REGION Label=Vacuum Material=Vacuum X.MIN=1.0 X.MAX=6.0 \

15 Y.MAX=-1.0 Y.MIN=-6.0

16 REGION Label=cylinder Material=Al Shape=Ellipse CentreX=3.5 \

17 CentreY=-3.5 Division=120 MajorRadii=1.0 MinorRadii=1.0

18 #------------------------------------------------------------------------------

19 PLOTMESH

210

第十二章 GSS软件的应用 第六节 半导体光吸收的数值模拟

2021 #Photogeneration State

22 #Notice: WAVELEN must not be larger than 1/10 grid size

23 #PML thickness should be at least 1 wave length

24 PHOTOGEN WAVELEN=1.0 INTENSITY=1.0 ANGLE=90 WTM=0.5 WTE=0.5

25 METHOD Type=EMFEM Scheme=Newton NS=LineSearch LS=LU

26 SOLVE

2728 #export scatter field to VTK file format

29 #one can use paraview to view the result

30 EXPORT CoreFile=CirExam.cgns VTKFile=CirExam.vtk

图 12.77 方形金属柱散射问题Ez分布 图 12.78 圆形金属柱散射问题Ez分布

正式的例子是计算一个n型光电导二极管的I-V曲线。图(12.79)给出了GSS建立的n型光电导二极管模型,掺杂浓度Nd = 1014cm−3,电极设在器件的左右两侧,器件外层是真空,最外层为UPML区域。对应的GSS输入文件如下

图 12.79 光电导二极管电磁有限元计算域

211

第六节 半导体光吸收的数值模拟 第十二章 GSS软件的应用

1 #==============================================================================

2 # GSS example: Silicon photoconductive detector simulation with light source and

3 # PML boundary. We will make the same detector model and compare the result with

4 # medici’s result, in this file.

5 # For running it, use "gss diode_dc.inp"

6 #==============================================================================

78 # Create an initial simulation mesh

9 MESH Type=GSS ModelFile=diode.cgns Triangle="pzA"

10 XMESH WIDTH=5.0 N.SPACES=300

11 YMESH DEPTH=4.5 N.SPACES=270

1213 # Region and electrode statements

14 REGION Label=PML Material=PML

15 REGION Label=Vacuum Material=Vacuum X.MIN=1.0 X.MAX=4.0 Y.MAX=-1.0 Y.MIN=-3.5

16 REGION Label=Silicon Material=Si X.MIN=1.5 X.MAX=3.5 Y.MAX=-1.5 Y.MIN=-3.0

17 SEGMENT Label=Source Direction=Vertical X=1.5 Y.MAX=-1.5 Y.MIN=-3.0

18 SEGMENT Label=Drain Direction=Vertical X=3.5 Y.MAX=-1.5 Y.MIN=-3.0

1920 # Specify impurity profiles

21 PROFILE Type=Uniform Ion=Donor N.PEAK=1E14 X.MIN=1.5 X.MAX=3.5 \

22 Y.MIN=-3.0 Y.MAX=-1.5

2324 #------------------------------------------------------------------------------

25 # specify boundary condition.

26 boundary Type=OhmicContact ID=Source Res=0 Cap=0 Ind=0

27 boundary Type=OhmicContact ID=Drain Res=0 Cap=0 Ind=0

2829 set Carrier = pn

30 set DopingScale = 1e14

3132 #------------------------------------------------------------------------------

33 # some voltage source and light source are needed here.

34 vsource Type=VDC ID=GND Tdelay=0 Vconst=0

35 LSOURCE Type=UNIFORM Tdelay=0

3637 #------------------------------------------------------------------------------

38 PLOTMESH

3940 #specify DDM method

41 METHOD Type = DDML1 Scheme = Newton NS=LineSearch LS=BCGS

42 SOLVE Type=EQUILIBRIUM

4344 #Photogeneration State

45 PHOTOGEN WAVELEN=0.532 INTENSITY=1.0E+2 ANGLE=90 WTE=0.00 WTM=1.00

212

第十二章 GSS软件的应用 第六节 半导体光吸收的数值模拟

46 METHOD Type=EMFEM LS=LU

47 SOLVE

4849 #set Source to ground

50 ATTACH Electrode=Source VApp=GND

5152 #specify DDM method

53 METHOD Type = DDML1E Scheme = Newton NS=Basic LS=LU EJModel=ON

5455 # Use DCSWEEP solver to get i-v character

56 SOLVE Type=DCSWEEP VScan=Drain IVRecord=Drain IVFile=iv.txt \

57 VStart=0 VStep=0.025 VStop=1.5

5859 PLOT Variable=OpticalEz Resolution=RES.High Measure=Linear

60 PLOT Variable=OpticalG Resolution=RES.High Measure=Linear

6162 # extract mesh and solution

63 EXPORT CoreFile=diode_dc.cgns VTKFile=diode_dc.vtk

以波长0.532µm,功率密度100W · cm−2的平面波辐照器件,器件内光生载流子的产生率如

图(12.80)所示,图(12.81)给出了MEDICI软件的计算结果。可见GSS采用的电磁有限元方法能准确的得到由于相位差引起的光生载流子不均匀分布,而MEDICI软件采用的射线追踪法只能得到一个平均的结果。

图 12.80 光生载流子的产生率,GSS结果 图 12.81 光生载流子的产生率,MEDICI结果

图(12.82)给出了100W · cm−2的平面波辐照时器件的I-V曲线。图(12.83)给出了500W · cm−2的平

面波辐照时器件的I-V曲线。二者的暗电流计算结果则是一致的,如图(12.84)所示。MEDICI的计算得到的电流仅仅稍大于GSS计算得到结果,这应该来自于电磁有限元方法与射线追踪方法在处理电磁场分布上的不同。

213

第六节 半导体光吸收的数值模拟 第十二章 GSS软件的应用

图 12.82 100W · cm−2光辐照下IV曲线 图 12.83 500W · cm−2光辐照下IV曲线

图 12.84 光电导二极管暗电流

214

第三部分

附录

215

附件一 GSS命令文件语法

I GSS命令文件介绍

A.1.1 命令文件的语法格式

就像PISCES软件一样,GSS同样从一个文本文件内读取进行半导体器件仿真所需要的一切,从建立器件模型、设定掺杂浓度、给出边界条件到控制求解的过程,这些功能则由一条条单独的命令

完成。命令文件被GSS内嵌的语法分析器解析,剥离出命令和它们的参数,放在一个树型结构中。几乎每一个GSS内部模块都需要这棵解析树作为参数设定或者运行控制。

在命令文件内,每一个命令占单独的一行,起头的是命令关键字,然后是命令的参数,如下所

示:

KEYWORD [parameters]

命令与参数,参数与参数之间,必须用空格或者制表符分开。如果命令太长需要续行,当前行的

结尾需要加上’\’。命令的参数包含4种类型:浮点数表达式、整数表达式、布尔类型和字符串类型。整数表达式可以是C语言中定义的十进制整数或者是一个包含加减乘除与括号的表达式如(3+1)∗2。浮点数表达式称为real express,见下文。布尔类型用True或者On表示1,用False或者Off表示0。字符串可以由字母、数字、下划线、小数点和空格构成,必须由下划线或者字母起头,如果带了空格整个

字符串要用双引号括起来,小数点和空格的引进主要为了支持文件名作为参数,要注意的是,字符

串的长度不能超过31个字符。综上所述,参数都具有如下格式:

parameter_name = [real_express|integer_express|bool|string]

为了让器件参数设置更有弹性,命令文件中允许定义浮点数常量,使用

ASSIGN real_parameter_name = real_express

可以定义一个浮点数常量,常量名为real parameter name。注意常量名大小写不敏感,也不能与参数名冲突,因此用下划线起头或者结尾是个好主意。浮点数表达式real express由C格式的双精度浮点数、预先定义的浮点数常量、加减乘除与括号组成。举例如下

ASSIGN _length = 0.3

ASSIGN _depth = (_depth-0.1)*2

...

XMESH WIDTH = _length N.SPACES = _length/0.01

YMESH DEPTH = _depth N.SPACES = _depth/0.01

216

附件一 GSS命令文件语法 I GSS命令文件介绍

在命令文件的头部定义一些浮点数常量,可以方便器件结构的修改。

在命令文件中,关键字和参数名称是大小写不敏感的,但是字符串必须注意大小写。因为在字

符串中可能包含文件名,而Unix/Linux下的文件名是大小写敏感的。注释行以’#’打头,可以是单独的一行也可以跟在某条命令后面。一般而言,GSS输入文件中不能包含中文,仅在某些系统下,允许注释中出现中文。

A.1.2 命令与参数的次序

一些命令在输入文件中的次序是无关紧要的。除了两个特例以外。第一个特例是与网格生成有

关的命令,它们必须按照下面的顺序排列;

MESH

XMESH

YMESH

ELIMINATE

SPREAD

REGION

SEGMENT

除此之外就是那些驱动求解器的命令,包括

IMPORT

EXPORT

ATTACH

METHOD

SOLVE

PLOT

这部分命令的前后次序会影响求解器的行为。

命令参数的出现次序可以任意排列,GSS会依次搜索命令的每一个参数,直到找到该参数或者在找不到的情况下用默认值代替。

A.1.3 符号约定

参数列表中的符号约定

在参数列表中,以下符号分别代表:

尖括号 < > - 参数的类型

方括号 [ ] - 可选参数

竖线 | - 互斥的选项

圆括号 ( ) - 一组参数

花括号 - 一组参数,但是级别比圆括号高

217

I GSS命令文件介绍 附件一 GSS命令文件语法

参数类型

命令的参数有4种类型,尖括号表示了不同的参数类型,如下表。

<n> - 浮点数表达式,见上文

<i> - 整数或者整数达式,允许+,-,*,/和()

<b> - 布尔值

<s> - 字符串

注意大部分的字符串参数有着固定的取值对象集合,比如用于指定线性方程求解器类型的字符串参

数。浮点类型的参数和整数类型的参数大多数需要用户给定合适的值。

218

附件一 GSS命令文件语法 II 全局设定

II 全局设定

A.2.1 SET命令

描述

在GSS内置数据结构和求解器建立之前,需要了解一些全局设定,比如器件在第三维方向的尺度,环境温度等等。SET命令就是用于完成这一功能。

语法

set Carrier=(p|n|pn)

set Z.Width=<n>

set LatticeTemp=<n>

set DopingScale=<n>

参数名 参数类型 默认值 单位 参数介绍

Carrier string pn - Carrier参数用于指定GSS求解单载流子或者双载流子问题。但实际上,GSS忽略此参数,只求解双载流子问题。

Z.Width number 1 µm 在计算电极电流时需要Z.Width参数。因为GSS是一个二维半导体模拟软件,计算电流时必须得到器件在

第三维的长度信息。

LatticeTemp number 300 K LatticeTemp用于指定器件及其周围环境的初始温度。

DopingScale number 1e18 cm−3 DopingScale 的值被用来设定GSS的变量缩放因子。这个值的大小会影响非线性迭代的收敛。一般可以设

为最大器件掺杂浓度,但是有些情况下设定一个稍小

的值可以加速收敛。

例子

set Carrier = pn # specify carrier type.

set Z.Width = 2 # device width in Z dimension.

set LatticeTemp = 3e2 # specify initial temperature of device.

set DopingScale = 1e16 # set carrier scale reference value

219

III 网格生成 附件一 GSS命令文件语法

III 网格生成

A.3.1 网格生成器简介

早期的GSS只是一个纯粹的二维半导体模拟求解器,不包含前处理功能。所需的半导体模型从CGNS(CFD General Notation System)文件中读入。由于作者比较喜欢计算流体力学,因此在GSS中照搬了CFD很多东西,CGNS文件就是其中之一。

CGNS文件是美国航空航天局(NASA)提出的开放CFD数据交换格式,在一个文件中存储了网格信息,边界条件以及解的数据。NASA提供了丰富的库函数读写CGNS文件,并保证它在不同操作系统平台下的兼容性。由于CGNS可以采用ADF或者HDF5作为底层数据存储格式,后者支持并行条件下的读写。更重要的是CGNS已经成为事实上的CFD行业标准,越来越多的商业软件支持这种格式。因此,半导体的模型可以用不同的前处理软件完成,只要保存成CGNS文件,就能被GSS读取。比如,作者修改了SGFramework使它可以生成半导体模型文件;MEDICI的TIF格式器件模型文件可以被作者提供的TIFTOOL软件读取,并完美的转化为CGNS格式;用户甚至可以使用ICEMCFD这样的商用软件生成所需的半导体模型文件。在后处理上,CGNS文件同样占有很大优势,很多优秀的商用后处理软件如Tecplot,FieldView和ICEMCFD等支持CGNS格式。

正因为半导体模型的来源丰富,直到GSS-0.42版,一个与PISCES类似的网格生成器才加入GSS中。网格生成器的工作流程如下:首先,GSS读入用户指定的网格命令,用矩形或者扭曲的四边形单元生成网格骨架;然后,调用Triangle软件,生成最终的三角形网格,期间,可能需要进行几次网格局部加密过程;由于作者的懒惰,生成的网格被先存为中间CGNS文件,然后再被读入,接着跟据用户的掺杂设定,完成计算前的初始化工作。

Triangle软件使用delaunay算法,生成的三角形是各向同性的,并且质量很好,可以保证没有钝角的存在。MEDICI则是使用四叉树来生成网格,生成的三角形比较有规律,但是在边界上容易生成质量很差的单元。

A.3.2 GSS中的坐标系

GSS使用正常的笛卡尔坐标系,上方是y轴的正方向,右方是x轴的正方向。注意,这个设定与PISCES和它的商用版比如MEDICI和ATLAS不同,PISCES认为下方是y轴的正方向。

220

附件一 GSS命令文件语法 III 网格生成

A.3.3 MESH命令

MESH命令指示GSS的网格生成器开始工作。注意,网格命令是有先后次序要求的,MESH命令必须位于其他所有网格命令之前。

语法

MESH [ Type=<s> ] ModelFile=<s> [ Triangle=<s> ]

参数名 参数类型 默认值 单位 参数介绍

Type string - - Type用来指认使用哪个网格生成器,但是目前的GSS仅有一个网格生成器,因此这个参数目前不起作用。

ModelFile string - - ModelFile是用于存放网格的临时CGNS文件名。

Triangle string pzq30AD - Triangle包含了传递给Triangle软件的执行参数。这些参数的具体含义可以参照Triangle的主页。

例子

MESH Type=GSS ModelFile=pn.cgns Triangle="pzA"

221

III 网格生成 附件一 GSS命令文件语法

A.3.4 XMESH和YMESH命令

XMESH和YMESH命令指定初始矩形网格的区域。初始的矩形网格可以被后继的ELIMINATE或者SPREAD命令修改。XMESH或YMESH命令指定x方向或者y方向网格边框的长度和分段方式。后继的XMESH或者YMESH命令指定的线段都附加在前面的网格边框线之后。

语法

XMESH WIDTH=<n> | ( X.MIN=<n> X.MAX=<n> )

N.SPACES=<i> [RATIO=<n>] | H1=<n> [H2=<n>]

YMESH DEPTH=<n> | ( Y.MAX=<n> Y.MIN=<n> )

N.SPACES=<i> [RATIO=<n>] | H1=<n> [H2=<n>]

参数名 参数类型 默认值 单位 参数介绍

WIDTH number - µm x方向网格边框线的长度。

DEPTH number - µm y方向网格边框线的深度。

X.MIN number - µm x方向网格边框线左边界的位置。第一条XMESH命令的X.MIN参数默认值为0.0,后继XMESH命令的X.MIN参数默认值为前一条网格边框线的右边界值。同义词: X.LEFT。

X.MAX number - µm x方向网格边框线右边界的位置。同义词: X.RIGHT。

Y.MIN number - µm y方 向 网 格 边 框 线 下 边 界 的 位 置。 同 义 词:Y.BOTTOM。

Y.MAX number - µm y方向网格边框线上边界的位置。第一条YMESH命令的Y.MAX参数默认值为0.0,后继YMESH命令的Y.MAX参数默认值为前一条网格边框线的下边界值。同义词: Y.TOP。

N.SPACES integer 1 - 网格边框线被划分为多少小段,即在网格边框线内加

上额外的划分点组成更加细致的网格。

RATIO number 1.0 - 网格边框线可以进行不均匀的划分,RATIO参数给出了前后小段的比例。为了保证网格质量,RATIO参数最好在0.667到1.5之间。

H1 number - µm 除了使用N.SPACES与RATIO外,另一种分段方式。指定首尾两个小段的长度来进行分段。H1指定第一个小段的长度。

H2 number H1 µm 最后一个小段的长度,默认等于第一个小段的长度。

如果用户提供的H1 H2不能刚好划分,GSS会自动进行微调。

222

附件一 GSS命令文件语法 III 网格生成

例子

XMESH X.MIN=0.0 X.MAX=0.50 N.SPACES=8

YMESH DEPTH=0.1 N.SPACES=8 RATIO=0.8

YMESH DEPTH=0.1 N.SPACES=20

YMESH DEPTH=0.6 H1=0.005 H2=0.050

注意

XMESH和YMESH命令指定的是网格的边框和边框上的划分点。从这些划分点引x方向或者y方向的线段,就可以将整个区域划分为矩形小块。这些线段,加上原来的边框线,统称为网格线。

223

III 网格生成 附件一 GSS命令文件语法

A.3.5 ELIMINATE命令

ELIMINATE命令用于消去某一区域内多余的网格线。如果某一个区域初始化网格太过密集,这条命令就很有用处。每执行一次ELIMINATE命令按照一条隔一条的方式消去一半的网格线,但是网格的边框(第一条和最后一条网格线)保持不变。如果反复使用这个命令,那么留下来的网格

线将是原来的一半、四分之一、八分之一,依此类推。

语法

ELIMINATE DIRECTION = (ROWS | COLUMNS)

[ X.MIN=<n> | IX.MIN=<i> ] [ X.MAX=<n> | IX.MAX=<i> ]

[ Y.MIN=<n> | IY.MAX=<i> ] [ Y.MAX=<n> | IY.MIN=<i> ]

参数名 参数类型 默认值 单位 参数介绍

DIRECTION string - - 指明对横线(x)还是竖线(y)进行消去。

X.MIN number XMIN µm 消去区域的左边界x坐标。同义词: X.LEFT.

X.MAX number XMAX µm 消去区域的右边界x坐标。同义词: X.RIGHT.

IX.MIN integer 0 - 消去区域的左边界,通过指定第几条网格线的方式。

同义词: IX.LEFT.

IX.MAX integer IXMAX-1 - 消去区域的右边界,通过指定第几条网格线的方式。

同义词: IX.RIGHT.

Y.MIN number YMIN µm 消去区域的下边界y坐标。同义词: Y.BOTTOM.

Y.MAX number YMAX µm 消去区域的上边界y坐标。同义词: Y.TOP.

IY.MIN integer 0 - 消去区域的上边界,通过指定第几条网格线的方式。

同义词: IY.TOP.

IY.MAX integer IYMAX-1 - 消去区域的下边界,通过指定第几条网格线的方式。

同义词: IY.BOTTOM.

例子

ELIMINATE Direction=COLUMNS Y.TOP=-1.0

ELIMINATE Direction=ROWS IX.MAX=8

注意

如果通过指定坐标方式指定消去网格线的范围,当指定坐标与网格线位置不符,则自动寻找最

近的网格线。

网格线的序号从0开始计算。

224

附件一 GSS命令文件语法 III 网格生成

A.3.6 SPREAD命令

SPREAD用于移动某一些网格线的y坐标,以便形成合适的硅-二氧化硅界面或者PN结。

语法

SPREAD LOCATION=(LEFT|RIGHT) WIDTH=<n> UPPER=<i> LOWER=<i> [ENCROACH=<n>]

Y.LOWER=<n> | (THICKNES=<n> [VOL.RAT=<n>])

[GRADING=<n>]

参数名 参数类型 默认值 单位 参数介绍

LOCATION string - - 指明移动左边还是右边的网格线。

WIDTH number 0.0 µm 移动的网格线的宽度(x方向)。

UPPER integer 0 - 需要变形的区域,最上面一根网格线的序号。

LOWER integer 0 - 需要变形的区域,最下面一根网格线的序号。

ENCROACH number 1.0 - 指定变形区域与不动区域之间过渡区域的范

围。GSS使用erf函数来光滑过渡,较小的值使过渡区域更加陡峭。最小可接受值为0.1。

Y.LOWER number - µm 指定由LOWER表示的网格线移动后的位置。在这种方式下,由UPPER指定的网格线保持不动。

THICKNESS number - µm 另一种指定网格线移动的方法。这种方式指定移动

后区域在y方向的厚度。THICKNES 参数可能导致由UPPER和LOWER指定的网格线均改变位置。

VOL.RAT number 0.44 - 这 个 参 数 指 定LOWER网 格 线 移 动

距 离 相 对THICKNESS的 比 例。 如

果VOL.RAT是0, LOWER网 格 线 不 移 动, 如

果VOL.RAT是1, UPPER网格线不移动。

GRADING number 1.0 - 定义UPPER到LOWER之间网格线在y方向的间距变化率,以得到y方向非均匀的网格。为了保持网格质量,GRADING参数被限定在0.667到1.5之间。

例子

SPREAD Location=Left Width=0.625 Upper=0 Lower=2 Thickness=0.1

SPREAD Location=Right Width=0.625 Upper=0 Lower=2 Thickness=0.1

225

III 网格生成 附件一 GSS命令文件语法

A.3.7 REGION命令

REGION命令定义某一个区域的材料特性。目前, GSS支持以下的材料: Air, Si, Ge, GaAs,Si1−xGex, AlxGa1−xAs, InxGa1−xAs和SiO2。

语法

REGION Shape=Rectangle Label=<s> Material=<s>

[ X.MOLE=<n> [ MOLE.SLOPE=<n> | MOLE.END=<n> ]

MOLE.GRAD=(X.Linear|Y.Linear) ]

[ X.MIN=<n> | IX.MIN=<i> ] [ X.MAX=<n> | IX.MAX=<i> ]

[ Y.MIN=<n> | IY.MIN=<i> ] [ Y.MAX=<n> | IY.MAX=<i> ]

REGION Shape=Ellipse Label=<s> Material=<s>

CentreX=<n> CentreY=<n> MajorRadii=<n> MinorRadii=<n>

Theta=<n> Division=<i>

参数名 参数类型 默认值 单位 参数介绍

Shape string Rectangle - 指定区域的形状,默认是矩形区域。

Label string - - 指定该区域的名字,长度限制12个字符。

Material string - - 指定该区域的材料,材料名可以是以下之一:Air, Si,Ge, GaAs, SiGe, AlGaAs, InGaAs和SiO2.

X.MOLE number 0.0 - 复合材料的mole分数。对于线性变化的复合材料,X.MOLE指起点的mole分数。起点从左边或者上面算起,如果MOLE.GRAD分别为X.Linear或者Y.Linear.

MOLE.SLOPE number 0.0 µm−1 复合材料的mole分数变化的斜率。材料的mole分数可以表示为X.MOLE + width * X.SLOPE

MOLE.END number 0.0 - 复合材料的mole分数在区域终点的值。终点从右边或者底面,如果MOLE.GRAD分别为X.Linear或者Y.Linear.

MOLE.GRAD string Y.Linear - 指定mole分数沿x方向或者y方向变化。

X.MIN number XMIN µm 该区域的x左边界。同义词: X.LEFT。

X.MAX number XMAX µm 该区域的x右边界。同义词: X.RIGHT。

IX.MIN integer 0 - 该区域的x左边界,通过指定左边界网格线的方式。同义词: IX.LEFT。

IX.MAX integer IXMAX-1 - 该区域的x右边界,通过指定右边界网格线的方式。同义词: IX.RIGHT。

Y.MIN number YMIN µm 该区域的y下边界。同义词: Y.BOTTOM。

Y.MAX number YMAX µm 该区域的y上边界。同义词: Y.TOP。

IY.MIN integer 0 - 该区域的y上边界,通过指定上边界网格线的方式。同义词: IY.TOP。

226

附件一 GSS命令文件语法 III 网格生成

IY.MAX integer IYMAX-1 - 该区域的y下边界,通过指定下边界网格线的方式。同义词: IY.BOTTOM。

CentreX number 0.0 µm 椭圆形区域圆心x坐标。

CentreY number 0.0 µm 椭圆形区域圆心y坐标。

MajorRadii number 1.0 µm 椭圆形区域x轴长度。

MinorRadii number MajorRadii µm 椭圆形区域y轴长度。

Theta number 0.0 degree 椭圆形区域边界第一个离散点的极角。

Division integer 12 - 椭圆形区域边界离散点个数,离散点越多,越接近正

圆。

例子

REGION Label=Si1 Material=Si Y.TOP= 0.000 Y.BOTTOM=-0.100

REGION Label=SiGe1 Material=SiGe Y.TOP=-0.100 Y.BOTTOM=-0.125 \

X.MOLE=0.0 Mole.End=0.2

REGION Label=Hole Material=SiO2 Shape=Ellipse CentreX=2.0 CentreY=-0.5 \

Division=24 MajorRadii=0.3 MinorRadii=0.3

注意

如果定义不同材料的区域,请注意两个不同的区域不能有边界相交。图(A.1)中(A)和(B)的情况是允许的,但是(C)会中断GSS的网格生成器。椭圆形区域生成主要为了支持光子晶体的模拟,通过

图 A.1 定义多个区域 图 A.2 定义椭圆形区域

选择合适的长短轴与边界离散数,可以构造三角形,四边形,六边形、圆形等区域,如图(A.2)所示。

227

III 网格生成 附件一 GSS命令文件语法

A.3.8 SEGMENT命令

Segment是指一组具有相同边界条件的线段的集合。这些线段可以是区域外边界,也可以是两个区域的界面,甚至是区域内部的线段。SEGMENT命令用于将相同性质的线段集合成起来,然后用户可以使用BOUNDARY命令设定这些Segment的边界条件。

语法

SEGMENT Label=<s> Location=<s> | ( Direction=<s> X=<n> | Y=<n> )

[ X.MIN=<n> | IX.MIN=<n> ] [ X.MAX=<n> | IX.MAX=<n> ]

[ Y.MIN=<n> | IY.MIN=<n> ] [ Y.MAX=<n> | IY.MAX=<n> ]

参数名 参数类型 默认值 单位 参数介绍

Label string - - 指定Segment的名字,长度限于31个字符。

Location string - - 指定外边界Segment的位置。允许:TOP, BOTTOM,LEFT或者RIGHT。

Direction string - - 指 定Segment的 延 展 方 向。 允 许: Horizontal 或者Vertical。

X number 0.0 µm 指定垂直方向Segment的x坐标。

Y number 0.0 µm 指定水平方向Segment的y坐标。

X.MIN number XMIN µm 指定Segment的左边界,限于水平的Segment。同义词:X.LEFT。

X.MAX number XMAX µm 指定Segment的右边界,限于水平的Segment。同义词:X.RIGHT。

IX.MIN integer 0 - 指定Segment的左边界,通过指定左边界网格线的方式。同义词: IX.LEFT。

IX.MAX integer IXMAX-1 - 指定Segment的右边界,通过指定右边界网格线的方式。同义词: IX.RIGHT。

Y.MIN number YMIN µm 指定Segment的下边界,限于垂直的Segment。同义词:Y.BOTTOM。

Y.MAX number YMAX µm 指定Segment的上边界,限于垂直的Segment。同义词:Y.TOP。

IY.MIN integer 0 - 指定Segment的上边界,通过指定上边界网格线的方式。同义词: IY.TOP。

IY.MAX integer IYMAX-1 - 指定Segment的下边界,通过指定下边界网格线的方式。同义词: IY.BOTTOM。

例子

SEGMENT Label=Anode Direction=Horizontal X.MIN=0.0 X.MAX=1.0 Y=0.0

SEGMENT Label=Cathode Direction=Horizontal X.MIN=0.0 X.MAX=3.0 Y=-3.0

228

附件一 GSS命令文件语法 III 网格生成

SEGMENT Label=Anode Location=TOP X.MIN=0.0 X.MAX=1.0

SEGMENT Label=Cathode Location=BOTTOM

注意

Segment所指定的线段集合可以通过插入内点的方式被分解为更多的线段,但是Segment作为一个整体不会移动位置,也不会变形。

默认Segment的起名规则:如果某些边界用户没有指明它们的Segment名字,GSS会给它们默认的名字。区域的外边界默认名字是name Neumann,其中name是区域的名字。连接区域间界面的名字默认为IF name1 to name2,其中name1和name2是两个区域名字按照字母次序的排列。

用户可以指定Segment以作为PROBE之用,参见后文的PROBE命令。这样的Segment必须完全处于某个Region内部,不能跨区域,也不要与区域边界相交。

229

III 网格生成 附件一 GSS命令文件语法

A.3.9 REFINE命令

REFINE命令根据某物理量梯度,细化一个粗糙的网格。网格Refine后,如果给出PROFILE,掺杂用解析值,否则用线性插值得到。其余物理量重新设为初始值。

语法

REFINE Variable=(Doping|Potential) Dispersion=<n> DivisionRatio=<n>

[ Measure=(Linear|SignedLog) ] [ Triangle=<s> ]

参数名 参数类型 默认值 单位 参数介绍

Variable string - - 指定某个物理量,用于Refine的基准。目前,GSS允许根据掺杂或电势Refine。

Measure string Linear - 使用该物理量本身或者是对数值。对于电势,一般使

用自身;对于掺杂,则使用对数值。

Dispersion number 3.0 - Refine某一三角形的判据。如果三角形三个顶点物理量值的差大于这个数值,该三角形就会被分割。

DivisionRatio number 0.25 - 被分割后的三角形面积占原来三角形面积的比率,默

认是将原三角形一分为四。注意,这只是一个参考

值,Triangle软件会根据网格质量进行修正。

Triangle string praq30Dz - 传递给Triangle软件的参数,用于网格控制。

例子

REFINE Variable=Doping Measure=SignedLog Dispersion=1

REFINE Variable=Potential Measure=Linear Dispersion=0.1

图 A.3 对一个二极管Refine的结果

230

附件一 GSS命令文件语法 IV 掺杂浓度的设定

IV 掺杂浓度的设定

PROFILE命令设定器件剖面的掺杂分布。目前,GSS支持三种解析分布:均匀掺杂,在xy方向符合高斯函数的掺杂分布和x方向符合误差函数(erfc)、y方向符合高斯函数的掺杂分布。

语法

PROFILE Type=Uniform |

Type=Gauss [Y.CHAR=<n> | Y.Junction=<n>] [X.CHAR=<n>] |

Type=ErrorFunc [Y.CHAR=<n>] [X.CHAR=<n>]

Ion=(Donor|Acceptor) N.Peak=<n> | Dose=<n>

[ X.MIN=<n> ] [ X.MAX=<n> ] [ Y.MIN=<n> ] [ Y.MAX=<n> ]

参数名 参数类型 默认值 单位 参数介绍

Type string - - 指定掺杂分布,可以是均匀的,高斯分布的或者误差

函数分布的。

Ion string - - 指定杂质为施主还是受主。

N.PEAK number 0.0 cm−3 掺杂分布的峰值浓度。

Dose number 0.0 cm−2 对于高斯分布,Dose表示浓度沿剖面的积分值。已知YCHAR的情况下,可以由Dose求得N.PEAK.

X.MIN number 0.0 µm 掺杂分布的左边界。同义词: X.LEFT。

X.MAX number XMIN µm 掺杂分布的右边界。同义词: X.RIGHT。

Y.MIN number YMAX µm 掺杂分布的底边界。同义词: Y.BOTTOM。

Y.MAX number 0.0 µm 掺杂分布的上边界。同义词: Y.TOP。

Y.CHAR number 0.25 µm y方向的特征长度,用于y值超出以下范围Y.MIN <

y < Y.MAX。

X.CHAR number 0.25 µm x方向的特征长度,用于x值超出以下范围X.MIN <

x < X.MAX。

Y.Junction number 0.0 µm 掺杂分布内部某点的y坐标。此处掺杂浓度与背景掺杂浓度大小相等,符号相反,形成冶金结。如果无法

符合要求,将导致错误。

例子

PROFILE Type=Uniform Ion=Donor N.PEAK=1E15 \

X.MIN=0.0 X.MAX=3.0 Y.TOP=0.0 Y.BOTTOM=-3.0

PROFILE Type=Gauss Ion=Acceptor N.PEAK=1E18 X.CHAR=0.2 Y.JUNCTION=-0.5 \

X.MIN=0.0 X.MAX=0.7 Y.TOP=0.0 Y.BOTTOM=0.0

PROFILE Type=ErrorFunc Ion=Acceptor N.PEAK=2E17 X.CHAR=0.25 Y.CHAR=0.25 \

X.MIN=0.5 X.MAX=1.0 Y.TOP=0.0 Y.BOTTOM=0.0

231

IV 掺杂浓度的设定 附件一 GSS命令文件语法

注意

均匀掺杂设定在X.MIN < x < X.MAX与Y.MIN < y < Y.MAX范围内掺杂浓度均为N.PEAK。

高斯掺杂分布与误差函数掺杂分布符合下面的表达式:

N(x, y) = N.PEAK · a(x) · b(y)

如果是高斯分布

a(x) =

exp

(−

(x−X.MINX.CHAR

)2)

x < X.MIN

1 X.MIN ≤ x ≤ X.MAX

exp(−

(x−X.MAXX.CHAR

)2)

x > X.MAX

b(y) =

exp

(−

(y−Y.MINY.CHAR

)2)

y < Y.MIN

1 Y.MIN ≤ y ≤ Y.MAX

exp(−

(y−Y.MAXY.CHAR

)2)

y > Y.MAX

如果是误差函数分布,b(y)不变,

a(x) =erfc( x−X.MAX

X.CHAR ) − erfc( x−X.MINX.CHAR )

2

232

附件一 GSS命令文件语法 V 电压源与电流源

V 电压源与电流源

A.5.1 简介

为了进行瞬态仿真,GSS内置了几种电压源和电流源以及一个用户接口。这些电压源和电流源的原型可以在SPICE中找到。在一个输入文件中可以定义几个不同的电压源或者电流源,然后这些电源可以用ATTACH命令绑定到半导体器件的电极上。

A.5.2 ISOURCE命令

语法

isource Type=IDC ID=<s> Tdelay=<n> Iconst=<n>

isource Type=ISIN ID=<s> Tdelay=<n> Iamp=<n> Freq=<n>

isource Type=IEXP ID=<s> Tdelay=<n> TRC=<n> TFD=<n>

TFC=<n> Ilo=<n> Ihi=<n>

isource Type=IPULSE ID=<s> Tdelay=<n> Tr=<n> Tf=<n>

Pw=<n> Pr=<n> Ilo=<n> Ihi=<n>

isource Type=ISHELL ID=<s> DLL=<s> Func=<s>

参数名 参数类型 默认值 单位 参数介绍

Type string - - 这个参数指定了电流源的类型。

ID string - - 这是电流源的标识,长度限制31个字符。

Tdelay number 0 s 指定电流源激活的时间延迟。

Iconst number 0 mA IDC的电流强度。

Iamp number 0 mA ISIN的电流峰值。

Freq number 0 Hz ISIN的频率。

TRC number 0 s IEXP上升沿的特征时间。

TFD number 0 s IEXP的下降延迟时间。

TFC number 0 s IEXP下降沿的特征时间。

Tr number 1e-12 s IPULSE上升沿。

Tf number 1e-12 s IPULSE下降沿。

Pw number 0 s IPULSE脉冲宽度。

Pr number 0 s IPULSE重复周期。

Ilo number 0 mA IEXP和IPULSE的低电流强度。

Ihi number 0 mA IEXP和IPULSE的高电流强度。

DLL string - - 动态链接库的文件名。

Func string - - 动态链接库内的函数名。

233

V 电压源与电流源 附件一 GSS命令文件语法

例子

isource Type=IDC ID=I1 Tdelay=0 Iconst=5

isource Type=ISIN ID=I2 Tdelay=0 Iamp=0.1 Freq=1e6

isource Type=IEXP ID=I3 Tdelay=0 TRC=1E-6 TFD=3E-6 \

TFC=1E-6 Ilo=0 Ihi=1

isource Type=IPULSE ID=I4 Tdelay=0 Tr=1E-9 Tf=1E-9 \

Pw=5E-6 Pr=1E-5 Ilo=0 Ihi=1

A.5.3 VSOURCE命令

语法

vsource Type=VDC ID=<s> Tdelay=<n> Vconst=<n>

vsource Type=VSIN ID=<s> Tdelay=<n> Vconst=<n> Vamp=<n> Freq=<n> Alpha=<n>

vsource Type=VEXP ID=<s> Tdelay=<n> TRC=<n> TFD=<n>

TFC=<n> Vlo=<n> Vhi=<n>

vsource Type=VPULSE ID=<s> Tdelay=<n> Tr=<n> Tf=<n>

Pw=<n> Pr=<n> Vlo=<n> Vhi=<n>

vsource Type=VSHELL ID=<s> DLL=<s> Func=<s>

参数名 参数类型 默认值 单位 参数介绍

Type string - - 这个参数指定了电压源的类型。

ID string - - 这是电压源的标识,长度限制31个字符。

Tdelay number 0 s 指定电压源激活的时间延迟。

Vconst number 0 V VDC的电压或者VSIN的直流电压。

Vamp number 0 V VSIN的电压峰值。

Freq number 0 Hz VSIN的频率。

Alpha number 0 - VSIN的指数衰减系数。

TRC number 0 s VEXP上升沿的特征时间。

TFD number 0 s VEXP的下降延迟时间。

TFC number 0 s VEXP下降沿的特征时间。

Tr number 1e-12 s VPULSE的上升沿。

Tf number 1e-12 s VPULSE的下降沿。

Pw number 0 s VPULSE的脉冲宽度。

Pr number 0 s VPULSE的重复周期。

Vlo number 0 V VEXP和VPULSE的低电压值。

Vhi number 0 V VEXP和VPULSE的高电压值。

DLL string - - 动态链接库的文件名。

Func string - - 动态链接库内的函数名。

234

附件一 GSS命令文件语法 V 电压源与电流源

例子

vsource Type=VDC ID=GND Tdelay=0 Vconst=0

vsource Type=VDC ID=VCC Tdelay=0 Vconst=5

vsource Type=VSIN ID=Vs Tdelay=1e-6 Vamp=0.1 Freq=1e6

vsource Type=VEXP ID=V1 Tdelay=0 TRC=1e-6 TFD=1e-6 \

TFC=1e-6 Vlo=0 Vhi=1

vsource Type=VPULSE ID=V2 Tdelay=0 Tr=1e-9 Tf=1e-9 \

Pw=5e-6 Pr=1e-5 Vlo=0 Vhi=1

vsource Type=VSHELL ID=VGauss DLL=foo.so Func=vsrc_gauss

注意

除了内置的电源外,GSS还可以使用共享库方式(.so)加载用户自定义的电压源和电流源。GSS向用户自定义电压源函数vsrc name传递时间参数,单位是秒,电压函数需要返回以伏特为单位的电压值。电流函数与此类似,需要返回以毫安为单位的电流值。下面给出了电压源函数与电流源函数的

原型:

foo.c:

double vsrc_name(double time)

double vsrc_amplitude;

/* calculate the voltage amplitude */

return vsrc_amplitude;

double isrc_name(double time)

double isrc_amplitude;

/* calculate the current amplitude */

return isrc_amplitude;

以上的程序需要编译时加上-shared和-fPIC选项:

gcc -shared -fPIC -o foo.so foo.c -lm

得到的共享库文件foo.so需要与用户的输入文件位于同一个目录下。

235

VI 边界条件 附件一 GSS命令文件语法

VI 边界条件

A.6.1 BOUNDARY与CONTACT命令

BOUNDARY命令和CONTACT命令用于设定器件的边界条件属性,这些属性在后面的数值计算中非常重要。区别在于BOUNDARY用于设定Segment的属性,而CONTACT专门用于设定电极区域的属性。

语法

BOUNDARY Type=OhmicContact ID=<s>

[ Res=<n> ] [ Cap=<n> ] [ Ind=<n> ] [ConnectTo=<s>]

[ Heat.Transfer=<n> ] [EXT.Temp=<n> ]

BOUNDARY Type=SchottkyContact ID=<s>

[ Res=<n> ] [ Cap=<n> ] [ Ind=<n> ]

WorkFunction=<n> [ Heat.Transfer=<n> ] [EXT.Temp=<n> ]

BOUNDARY Type=GateContact ID=<s> WorkFunction=<n>

[ Res=<n> ] [ Cap=<n> ] [ Ind=<n> ]

[ Heat.Transfer=<n> ] [EXT.Temp=<n> ]

BOUNDARY Type=InsulatorContact ID=<s> WorkFunction=<n> [ QF=<n> ]

[ Res=<n> ] [ Cap=<n> ] [ Ind=<n> ]

Thickness=<n> Eps=<n> [ Heat.Transfer=<n> ] [EXT.Temp=<n> ]

BOUNDARY Type=InsulatorInterface ID=<s> [ QF=<n> ]

BOUNDARY Type=Heterojunction ID=<s> [ QF=<n> ]

BOUNDARY Type=NeumannBoundary ID=<s>

[ Heat.Transfer=<n> ] [EXT.Temp=<n> ]

CONTACT Type=OhmicContact ID=<s>

[ Res=<n> ] [ Cap=<n> ] [ Ind=<n> ] [ConnectTo=<s>]

[ Heat.Transfer=<n> ] [EXT.Temp=<n> ]

CONTACT Type=SchottkyContact ID=<s>

[ Res=<n> ] [ Cap=<n> ] [ Ind=<n> ]

WorkFunction=<n> [ Heat.Transfer=<n> ] [EXT.Temp=<n> ]

CONTACT Type=GateContact ID=<s> WorkFunction=<n>

[ Res=<n> ] [ Cap=<n> ] [ Ind=<n> ]

[ Heat.Transfer=<n> ] [EXT.Temp=<n> ]

CONTACT Type=FloatMetal ID=<s> [ QF=<n> ]

参数名 参数类型 默认值 单位 参数介绍

Type string - - 指定边界条件的类型。

236

附件一 GSS命令文件语法 VI 边界条件

ID string - - 指定Segment的名字,边界条件将赋给该Segment。

Res number 0 Ω 串联在电极的集总电阻。

Cap number 0 F 并联在电极的集总电容。

Ind number 0 H 串联在电极的集总电感。

ConnectTo string - - 指定一个欧姆接触的电极直接连接到另一个欧姆

接触的电极,连接将忽略两个电极的集总元件。用

于CMOS结构的模拟。

WorkFunction number 4.7 V 肖特基接触的金属材料功函数或者栅极材料的功函

数。

QF number 1e10 C · cm−2 InsulatorInterface边界条件:半导体-绝缘体界面的面电荷密度。

QF number 1e10 C · cm−2 Heterojunction边界条件:异质结界面的面电荷密度。

QF number 0 C · µm−1 FloatMetal边界条件:浮空金属每微米纵向尺寸的带电量。

Thickness number 2e-7 cm SiO2层的厚度。

Eps number 3.9 - SiO2的相对介电常数。

Heat.Transfer number 1e3 W/(cm · K) 界面的热交换率。

EXT.Temp number LatticeTemp K 界面另一侧的环境温度。

例子

BOUNDARY Type=InsulatorContact ID=SiSiO2 Res=0 Cap=0 Ind=0 \

Thickness=1e-6 Eps=3.9 WorkFunction=4.7 QF=0

BOUNDARY Type=InsulatorInterface ID=IFACE QF=0

BOUNDARY Type=GateContract ID=GATE Res=0 Cap=0 Ind=0 \

WorkFunction=4.7

BOUNDARY Type=NeumannBoundary ID=WALL \

Heat.Transfer=0 EXT.Temp=300

BOUNDARY Type=SchottkyContact ID=sgate Res=0 Cap=0 Ind=0 \

VBarrier=0.8

BOUNDARY Type=OhmicContact ID=OMANODE Res=0 Cap=0 Ind=0

BOUNDARY Type=OhmicContact ID=OMCATHODE Res=0 Cap=0 Ind=0

注意

BOUNDARY命令后面的ID为Segment的名字,CONTACT命令后面的ID参数则为Region的名字。

GSS支持4种电极边界类型,它们都用Contact作为后缀。OhmicContact和SchottkyContact一般而言在稳态计算与瞬态计算中都有电流通过,但是GateContact和InsulatorContact只有在瞬态计算中才有位移电流的存在。

237

VI 边界条件 附件一 GSS命令文件语法

InsulatorContact是一种简化的栅极模型,用户不需要显式建立绝缘体层,而是通过设定绝缘体层的厚度与相对介电常数来描述栅极。

GSS目前支持5种界面,4种可以自动设定:半导体-导体界面(默认为OhmicContract),半导体-绝缘体界面(InsulatorInterface),绝缘体-导体界面(需要手工设定),两种不同半导体材料的界面即异质结(Heterojunction)以及同种半导体材料的界面(Homojunction)。如果用户觉得默认值不需要修改,可以不用显式指定这4种边界。绝缘体-导体界面的情况比较复杂,它可能是栅电极(GateContact),此时需要用户设定;也可能是浮空金属与氧化物的界面,此时同样需要用户设定浮空金属为FloatMetal;最后它还可能是MOS源漏电极与栅极氧化物的界面,此时不用设定,GSS会自动处理这种情况。

GSS可以建立电极区域,并设定该区域的材料为导体,并且GSS内部将电极区域、半导体区域与绝缘体区域联合求解。出现电极区域时,需要使用CONTACT命令来指定它们的边界条件。

NeumannBoundary是所有非界面Segment以及未设定界面的默认边界条件类型,它也可以被GSS自动指定。

238

附件一 GSS命令文件语法 VI 边界条件

A.6.2 ATTACH命令

ATTACH命令用于设定电极上的电流源或者电压源。每一个ATTACH命令将清除电极上的现有的电源,然后将由VApp或IApp参数指定的电源附加到电极上。电极上允许附加多个电源,但是必须是同种类型的,比如都是电压源,总的效果是所有电源的叠加。

语法

ATTACH Electrode=<s> Type=Voltage VApp=<s> [VApp=<s> ...]

ATTACH Electrode=<s> Type=Current IApp=<s> [IApp=<s> ...]

参数名 参数类型 默认值 单位 参数介绍

Electrode string - - 指定电极的名字,电源将被加到该电极上。

Type string Voltage - 指定电源是电压源或者电流源。

VApp string - - 指定附加的电压源的名字。

IApp string - - 指定附加的电流源的名字。

例子

ATTACH Electrode=Collector VApp=VCC

ATTACH Electrode=Emitter VApp=GND

ATTACH Electrode=Base VApp=Vb VApp=Vs

ATTACH Electrode=Base Type=Current IApp=Ib IApp=Is

注意

流入电极的方向是电流的正方向。只有欧姆电极和肖特基电极才可以设定电流源。如果电极上

附加了电压源,该电极的集总参数元件会影响模拟结果,但是如果电极上附加的是电流源,GSS会忽略该电极的集总参数元件,如图A.4。

图 A.4 电压与电流边界

239

VII 物理模型接口 附件一 GSS命令文件语法

VII 物理模型接口

GSS使用动态链接机制来支持多种材料以及材料的多种物理参数。每一种材料都有一个共享库文件,位于$(GSS DIR)/lib目录下,比如硅材料的参数就包含在$(GSS DIR)/lib/libSi.so文件中。用户可以通过修改源代码来更改材料的参数,这些源代码位于$(GSS DIR)/src/material目录下,专家级用户甚至将自己的物理模型编译进GSS材料库内。

目前,GSS有一个PMIS命令来选择模拟时采用的迁移率模型与碰撞电离模型。

语法

PMIS Region=<s> Mobility=<s> II.Model=<s>

参数名 参数类型 默认值 单位 参数介绍

Region string - - 指定区域的名字,必须是半导体区域。

Mobility string Analytic - 指定使用的迁移率类型。

II.Model string Default - 指定使用的碰撞电离模型。

例子

PMIS Region=Si Mobility=Analytic

注意

GSS软件现在可以为不同的区域指定不同的物理模型。

GSS目前内置了Analytic,Philips和Lucent迁移率模型。Analytic和Philips模型只考虑了强电场修正,没有考虑表面迁移率的下降,建议在双极型器件的模拟中使用。这两个模型可以用在所有的半

导体求解器中。

Lucent迁移率模型,同时考虑了平行与垂直电流方向电场的修正,适用于MOS结构的模拟。但是垂直方向电场仅仅在DDML1E/DDML2E/EBML3E求解器中才被实现,因此Lucent迁移率模型只有配合DDML1E/DDML2E/EBML3E求解器才能发挥作用。

对于硅材料,还有额外的HP与Lombardi迁移率模型,它们与Lucent模型一样,均考虑了平行与垂直电流方向电场的修正。

对于GaAs材料,GSS增加了Hypertang迁移率模型,以克服Analytic迁移率模型在MESFET模拟中可能出现的振荡。

240

附件一 GSS命令文件语法 VIII 求解设定

VIII 求解设定

这部分命令用于指令GSS内核运行用户设定的数值模拟。每一次数值模拟过程结束,内核都将保留求解的结果,下一次求解将使用前一次的结果作为初始条件。

A.8.1 METHOD命令

METHOD命令用于指定GSS使用的求解器以及设定该求解器的一些属性。目前,GSS-0.46拥有基本 DDM(DDML1E),温度修正的 DDM(DDML2E),基于能量平衡模型的 EBML3E求解器以及基于密度梯度修正的量子QDDML1E求解器。

语法

METHOD Type=(DDML1E|DDMLE2|EBML3E|QDDML1E) Scheme=Newton

HighFieldMobility=(On|Off) EJModel=(On|Off)

ImpactIonization=(On|Off) II.Type=(EdotJ|EVector|ESide|GradQf)

BandBandTunneling=(On|Off)

Fermi=(On|Off)

NS=(Basic|LineSearch|TrustRegion)

LS=(SuperLU|LU|CGS|BICG|BCGS|GMRES|TFQMR)

Damping=(BankRose|Potential)

MaxIteration=<i> relative.tol=<n>

possion.tol=<n> elec.continuty.tol=<n> hole.continuty.tol=<n>

elec.energy.tol=<n> hole.energy.tol=<n> latt.temp.tol=<n>

electrode.tol=<n> toler.relax=<n>

QNFactor=<n> QPFactor=<n>

参数名 参数类型 默认值 单位 参数介绍

Type string DDML1 - 指定求解器的类型。

Scheme string Newton - 指定GSS的求解方法。目前,GSS只支持全局牛顿迭代法。

HighFieldMobility bool On - 指定是否采用强场迁移率模型。在平衡态时GSS自动关闭此选项。

EJModel bool Off - 指定是否使用EdotJ以及EcrossJ计算强场迁移率。

ImpactIonization bool Off - 此参数用于设定是否考虑碰撞电离。

II.Type string GradQf - 指定碰撞电离的实现方法,具体参考书中相关内容。

BandBandTunneling bool Off - 此参数用于设定是否考虑隧道跃迁。

Fermi bool Off - 此参数用于设定是否考虑Fermi-Dirac分布。

NS string LineSearch - 指定非线性求解器的类型。

LS string GMRES - 指定非线性求解器内部使用的线性求解器类型。

241

VIII 求解设定 附件一 GSS命令文件语法

Damping string No - 指定牛顿阻尼法。

relative.tol number 1e-5 - 当解的相对误差小于这个值时,认为非线性方程迭带

收敛。

possion.tol number 1e-29 C · µm−1 Poisson方程的绝对收敛误差。

elec.continuty.tol number 5e-18 A · µm−1 电子连续性方程的绝对收敛误差。

hole.continuty.tol number 5e-18 A · µm−1 空穴连续性方程的绝对收敛误差。

elec.energy.tol number 1e-18 W · µm−1 电子能量平衡方程的绝对收敛误差。

hole.energy.tol number 1e-18 W · µm−1 空穴能量平衡方程的绝对收敛误差。

latt.temp.tol number 1e-11 W · µm−1 晶格热传导方程的绝对收敛误差。

electrode.tol number 1e-9 V 电极电流方程的绝对收敛误差。

toler.relax number 1e4 - 当解的相对误差已经达到收敛条件,各方程的绝对收

敛误差可以容许的放宽额度。

QNFactor number 1.0 - 电子的量子势方程阻尼系数。

QPFactor number 1.0 - 空穴的量子势方程阻尼系数。

例子

METHOD Type=DDML1 Scheme=Newton NS=LineSearch LS=GMRES

METHOD Type=DDML1 Scheme=Newton NS=TrustRegion LS=LU

METHOD Type=DDML2 Scheme=Newton NS=Basic LS=TFGMR Damping=Potential

注意

GSS采用开放式的结构,物理问题由相对独立的求解器解决.随着GSS的发展,越来越多的求解器加入GSS软件。求解器DDML1以及DDML2是较早加入的,它们基于控制体进行离散,在实现强场迁移率与碰撞电离方面比较困难。在新的基于三角形单元的求解器(带E结尾)加入后,作者已经不再更新它们。在GSS-0.46中它们实际上已经被取消,只是基于兼容性考虑,用户仍然可以指定它们,此时实际调用的是它们的增强版本。

DDML1E / DDML2E /EBML3E /QDDML1E是GSS新一代的求解器,广泛利用了自动微分技术来开发复杂的模型。它们实现了诸多的高级参数,比如考虑了强场迁移率,碰撞电离,费米分布等

等。DDML2E求解器考虑了晶格温度,在热效应显著的器件模拟中可以得到更加精确的结果。因为当碰撞电离很显著时器件温度一般不能保持不变,因此不考虑器件温度变化的DDML1E一般不能得出精确的结果,建议使用DDML2E进行碰撞电离效应模拟。EBML3E基于能量平衡模型,用于亚微米器件的模拟,但是这种算法计算量大,而且稳定性显著差于DDM模型。以器件的直流电压扫描为例,DDM系列求解器一般可将步长设为0.1V,但是EBM求解器的稳定步长一般不超过0.02V.QDDML1E专门为纳米MOS结构设计,考虑了密度梯度(density-gradient)量子效应。

LineSearch和TrustRegion是非线性牛顿迭代的两种加速方法,并且当初值不怎么好时也往往能够收敛。基本牛顿法(Basic Newton)只能用于初值很好的情况,比如直流扫描或者瞬态计算。牛顿阻尼(Damping)方法可以显著增强LineSearch特别是基本牛顿法的稳定性,在遇到收敛性问题时可以尝试一下,往往有很好的效果。

242

附件一 GSS命令文件语法 VIII 求解设定

非线性求解器都需要调用一个线性求解器,选择一个好的线性求解器可以节省时间并且加速收

敛。PETSC内置的线性方程求解器很多。LU分解通常来说是比较精确的,缺点是计算量比较大,适合用于小规模问题的求解。对于大规模问题,一般需要使用迭代算法以加快求解速度。下面介绍几

种性能较好的迭代算法。GMRES通用性很好,但是它需要存储每一步的搜索方向,因此实现中采用了“重新启动”的方法避免过大的内存消耗,如果重启太过频繁,很可能导致求解的失败。GSS初期每30次迭代重启一次,结果导致了GMRES经常不收敛,目前已经改为每150次迭代重启一次。更改重启条件可以用命令行参数-ksp gmres restart n。Bi-CGSTAB很大程度上避免了BiCG和CGS的不规则收敛问题,运行速度也很快,但是某些情况下它的解还是有波动。TFQMR也是一种性能良好的算法,它的收敛比BiCG光滑,而且克服了一些BiCG不收敛的问题。总而言之,求解线性方程组推荐使用LU分解,GMRES,Bi-CGSTAB和TFQMR算法。

牛顿阻尼方法可以极大的提高收敛性能,尤其对于稳定性较差的EBM求解器。在阻尼方法中,Potential阻尼效果最好,但是相对的速度比较慢;BankRose效果不是很明显;GSS还会自动实现内部的阻尼,以保证不会有负载流子浓度的出现。

QNFactor和QPFactor用来增强QDDM求解器的初值计算收敛性。由于量子算法中,Si/SiO2的载流子浓度与经典模型相差很大,因此经典模型的结果不是一个好的初值。此时,可以先设QFactor为一个比较小的值,比如1e-4,仅仅考虑微小的量子效应,这样可以比较容易的收敛。随后逐步增加QFactor,直到QFactor达到1.0,量子效应被完整的考虑进去。

每一个METHOD都是独立的,GSS为求解器设置的参数仅受此METHOD命令决定。比如在上一条METHOD命令中设置Fermi=On,但是本条命令没有设定,则GSS认为Fermi取其默认值Off.

此外,用户可以通过命令行参数设定GSS内部求解器的一些行为,一般情况下,默认值可以取得良好的效果,但是少数特殊情况需要用户手工调整参数。

命令行参数名 默认值 参数介绍

-snes mf operator - 指定使用Matrix-Free方法,此时必须使用迭代法作为线性方程求解器。

-snes atol < n > 1e-12*未知数总数 指定非线性求解的绝对收敛误差,小于此值停止迭代。

-snes rtol < n > 1e-15 指定非线性求解的相对收敛误差,小于此值停止迭代。

-snes stol < n > 1e-9 非线性求解两次迭代过程的改变量小于此值停止迭代。

-snes max it < i > - 非线性求解最大迭代次数,平衡态与稳态计算300次,直流扫描与瞬态计算30次。

-snes mat funcs < i > 2000 非线性求解方程最多计算次数。

-snes trtol < n > 1e-30 TrustRegion方法的收敛误差。

-ksp atol < n > 1e-20*未知数总数 指定线性求解的绝对收敛误差。

-ksp rtol < n > 1e-10*未知数总数 指定线性求解的相对收敛误差。

-ksp max it < i > 未知数总数/10 线性求解最大迭代次数。

243

VIII 求解设定 附件一 GSS命令文件语法

A.8.2 SOLVE命令

SOLVE命令指定求解的类型,并启动求解器开始工作。

语法

SOLVE Type=EQUILIBRIUM

SOLVE Type=STEADYSTATE

SOLVE Type=DCSWEEP VScan=<s> [VScan=<s> ...] [IVRecord=<s> ...]

[IVFile=<s>] VStart=<s> VStep=<s> VStop=<n>

SOLVE Type=DCSWEEP IScan=<s> [IVRecord=<s> ...]

[IVFile=<s>] IStart=<s> IStep=<s> IStop=<n>

SOLVE Type=TRANSIENT ODE.Formula=(BDF1|BDF2) [IVRecord=<s> ...]

[IVFile=<s>] TStart=<n> TStep=<n> TStop=<n>

AutoStep=<b> Predict=<b>

参数名 参数类型 默认值 单位 参数介绍

Type string - - 指定求解的类型。

VScan string - - 指定电极的名字,对这个电极进行电压直流扫描。

VStart number - V 电压直流扫描的起始电压。

VStep number - V 电压直流扫描的电压变化步长。

VStop number - V 电压直流扫描的终止电压。

IScan string - - 指定电极的名字,对这个电极进行电流直流扫描。

IStart number - mA 电流直流扫描的起始电流强度。

IStep number - mA 电流直流扫描的电流变化步长。

IStop number - mA 电流直流扫描的终止电流强度。

IVRecord string - - 指定电极的名字,该电极的电流电压会被记录到数据

文件中。用户可以同时指定几个需要记录的电极。

IVFile string - - 指定数据文件的名字。

ODE.Formula string BDF2 - 指定瞬态模拟中时间推进的格式。

TStart number - s 瞬态模拟起始时间。

TStep number - s 瞬态模拟时间步长。

TStop number - s 瞬态模拟终止时间。

AutoStep bool - True 在瞬态模拟中使用自动步长控制。

Predict bool - True 在瞬态模拟中使用插值算法来预估下一个时刻的解。

例子

SOLVE Type=EQUILIBRIUM

244

附件一 GSS命令文件语法 VIII 求解设定

SOLVE Type=DCSWEEP VScan=Anode IVRecord=Anode IVRecord=Cathode \

IVFile=ivfp.txt VStart=0 VStep=1e-2 VStop=0.6

SOLVE Type=DCSWEEP IScan=Anode IVRecord=Anode IVRecord=Cathode \

IVFile=ivfp2.txt IStart=0.02 IStep=1e-2 IStop=1

SOLVE Type=TRANSIENT IVRecord=Anode IVFile=iv.txt \

TStart=0 TStep=1e-10 TStop=3e-8

说明

平衡态计算建议采用最稳定的DDML1E求解器。

稳态计算将考虑电极上的电压源与电流源,它们的值采用瞬态0时刻的电压/电流值。注意栅电极在稳态没有电流通过,不能进行电流直流扫描。直流扫描的步长采用弹性设置,用户指定的步长

是弹性步长的最大值。如果上一步不收敛,步长减半,否则步长将乘以1.1直到步长恢复到用户指定值。直流电压扫描可以支持多个电极,它们的电压同步变化,这个功能可以方便双栅极(double gate)MOS的模拟。

瞬态模拟默认采用二阶精度的BDF2,同时采用基于局部截断误差的自动步长控制。

245

VIII 求解设定 附件一 GSS命令文件语法

A.8.3 AC小信号扫描

除了上面的求解器外,GSS还提供了AC小信号扫描作为DDML1E求解器的附加功能。

语法

METHOD Type=DDML1AC

HighFieldMobility=(On|Off) EJModel=(On|Off)

ImpactIonization=(On|Off) II.Type=(EdotJ|EVector|ESide|GradQf)

BandBandTunneling=(On|Off)

Fermi=(On|Off)

LS=(LU|CGS|BICG|BCGS|GMRES|TFQMR)

SOLVE Type=ACSWEEP ACScan=<s> [IVRecord=<s> ...]

[IVFile=<s>] FStart=<s> FMultiple=<s> FStop=<n> VAC=<n>

参数名 参数类型 默认值 单位 参数介绍

ACScan string - - 指定电极的名字,用于AC扫描。

FStart number 1e6 Hz AC扫描的起始频率。

FMultiple number 1.1 - AC扫描的频率增长倍率。

FStop number 1e9 Hz AC扫描的终止频率。

VAC number 0.0026 V 作用在扫描电极上的小信号电压幅值。

说明

AC扫描共享了DDML1E的Jacobian矩阵,用户必须在调用DDML1E进行稳态计算,获得所需要的直流偏置状态后直接调用AC扫描,期间不得更改电极的偏置电压,电极集总元件以及METHOD命令中的模型选项。

AC扫描频率越高,收敛越困难,这是由于高频下Jacobian矩阵条件数变得很差。电极的集总元件也会增加收敛难度。

246

附件一 GSS命令文件语法 VIII 求解设定

A.8.4 电磁有限元求解器

GSS拥有一个基于有限元方法的电磁场求解器,用于计算光(电磁)波在半导体中的传播与吸收过程。进一步可以得到半导体器件内部光生载流子的信息,可用于光电器件的数值模拟。

语法

PHOTOGEN WAVELEN=<n> INTENSITY=<n> [ANGLE=<n>] WTM=<n> WTE=<n>

[phase.diff=<n>] [quan.eff=<n>]

METHOD Type=EMFEM [LS=LU]

SOLVE

LSOURCE Type=UNIFORM Tdelay=<n> Power=<n>

LSOURCE Type=PULSE Tdelay=<n> Tr=<n> Tf=<n> Pw=<n> Pr=<n>

Powerhi=<n> Powerlo=<n>

LSOURCE Type=LSHELL DLL=<s> Func=<s>

PHOTOGEN参数名 参数类型 默认值 单位 参数介绍

WAVELEN number 0.532 µm 入射光线的波长。

INTENSITY number 1.0 W · cm−2 入射光线的能量密度。

ANGLE number 90 degree 从x轴顺时针到光线的夹角。

WTM number 1.0 - TM模式所占光波能量的比例。

WTE number 0.0 - TE模式所占光波能量的比例。

phase.diff number 0.0 degree TE模式落后TM模式的相位。

quan.eff number 1.0 - 量子效率,指每个光子产生电子-空穴对的数目。

LSOURCE参数名 参数类型 默认值 单位 参数介绍

Type string - - 入射光源的类型。

Tdelay number 0.0 s 入射光加入的时间延迟。

Tr number 1e-15 s 入射光源上升沿。

Tf number 1e-15 s 入射光源下降沿。

Pw number 0 s 入射光源脉冲宽度。

Pr number 0 s 入射光源重复周期。

Power number 1.0 - 入射光源倍增系数。此数值用于乘以PHOTOGEN得到的光生载流子浓度。

Powerhi number 1.0 - 入射光源高的倍增系数。

Powerlo number 0 - 入射光源低的倍增系数。

DLL string - - 动态链接库的文件名。

Func string - - 动态链接库内的函数名,从中得到Power系数。

247

VIII 求解设定 附件一 GSS命令文件语法

说明

电磁有限元方法需要在器件周围建立真空区域和UPML吸收层。

GSS的电磁求解器工作过程如下:当扫描到输入文件中的METHOD,其Type为EMFEM,GSS设置求解器为电磁场有限元求解器;遇到SOLVE命令后,正式开始求解动作。此时,GSS从输入命令列表中寻找第一个遇到的PHOTOGEN命令,以此PHOTOGEN命令的参数计算电磁场分布以及光生载流子分布,计算完成后将这个PHOTOGEN命令从输入命令列表中删掉。因此,对于非单色光的光生载流子计算,可以设置多个PHOTOGEN命令,并重复多个SOLVE命令,每次计算得到的光生载流子会叠加到上一次的结果上。

电磁求解器形成的有限元矩阵带宽较大,而且矩阵元素不能集中在主对角线附近,使用迭代算

法收敛很困难,建议使用LU分解的方法求解。

在光生载流子计算完成后,还需要设置一个LSOURCE,这个命令描述了光随时间的包络,真正用于半导体模拟的光生载流子浓度是由PHOTOGEN参数计算得到的浓度乘以该包络的结果。同样支持用户自定义方式的光源

foo.c:

double lsrc_power(double time) /* in the unit of s */

double power;

/* calculate the power of light source */

return power;

目前仅有DDML1E支持光生载流子的加入。

248

附件一 GSS命令文件语法 VIII 求解设定

A.8.5 GSS与NGSPICE的混合模拟

为了与NGSPICE配合实现混合模拟,GSS提供了DDML1E/DDML2E求解器的变形,DDML1MIX和 DDML2MIX求解器。这两个求解器核心仍然是原来的 DDML1E/DDML2E,但是改为受控运行模式,对初值设定、收敛判据以及不收敛后的恢复进行了修正,同时修改了对器件电极的处理以适

合NGSPICE的要求。

语法

METHOD Type=(DDML1MIX|DDML2MIX) Scheme=Newton

HighFieldMobility=(On|Off) EJModel=(On|Off)

ImpactIonization=(On|Off) II.Type=(EdotJ|EVector|ESide|GradQf)

BandBandTunneling=(On|Off)

Fermi=(On|Off)

NS=(Basic|LineSearch|TrustRegion)

LS=(SuperLU|LU|CGS|BICG|BCGS|GMRES|TFQMR)

Damping=(BankRose|Potential|No)

ServerPort=<n>

SOLVE

说明

这两个求解器仅多了一个ServerPort参数,用于指定接收NGSPICE数据的端口,默认端口为1611。而SOLVE命令不用任何参数,因为GSS完全在NGSPICE的控制下运行。目前仅支持稳态模拟与瞬态模拟,对混合模式的交流小信号分析、温度分析、噪声分析、敏感度分析均不支持。

混合模式下,GSS将忽略电极的外部电源以及电阻、电容、电感等集总元件。外电路所有元件应该在NGSPICE中指定。

一般而言,执行混合模拟的过程为:GSS建立器件模型或者将已经建立好的模型读入,设置器件的初始偏置电压,计算器件的状态,作为混合模拟的初值,然后GSS打开端口等待NGSPICE的信息。用户启动NGSPICE之后,GSS在NGSPICE的控制下运行。等到用户完成计算,退出NGSPICE,GSS接收到连接中断的信号,自动退出混合模拟模式,继续执行命令文件后面的控制命令(比如绘图)。

建议采用LU分解作为线性方程组的求解器。

249

VIII 求解设定 附件一 GSS命令文件语法

A.8.6 数据文件格式

GSS使用数据文件保存计算过程中的电极电流、电压信息。直流扫描、瞬态计算以及交流扫描的数据文件格式稍有不同,现介绍如下。

直流扫描的文件格式:第一行是注释,以’#’开头,跟着是对每一列数据的描述。剩下的部分是每一个电极的电流和电压,每个占一列。电压的单位是V,电流的单位是mA。瞬态模拟的数据文件格式与直流扫描类似,所不同的在于第一列记录了时间,单位是ps。交流扫描的数据文件第一列记录了频率,单位是MHz。剩下的列记录了电极的电流电压,每个电极占6列,依次是电压的实部、虚步和幅值,电流的实部、虚部和幅值。注意,当电极上存在集总元件,电极的电压可能不等于所加的电

源的电压。

GSS的数据文件完全兼容于GnuPlot软件,作者推荐使用GnuPlot绘制二维曲线图。

250

附件一 GSS命令文件语法 IX 输入输出

IX 输入输出

A.9.1 简介

IMPORT和EXPORT命令用于导入、导出GSS计算数据,用于中断后继续运行或者进一步的后处理。目前,计算数据的导入、导出主要以CGNS格式为主,分为模型CGNS文件与核心CGNS文件。模型CGNS文件仅仅包含半导体模型,核心CGNS文件除了半导体模型外还包括了解的数据。另外,EXPORT命令还可以导出其他数据格式,用作后处理显示。所支持的其他数据格式包括TIF格式与VTK格式,TIF格式主要用意是希望GSS能够使用TIFTOOL作为后处理,而VTK格式则兼容于使用VTK库作为图形显示的后处理软件,比如paraview.

A.9.2 IMPORT和EXPORT命令

语法

IMPORT [CoreFile=<s> | ModelFile=<s>]

EXPORT CoreFile=<s> [ AscFile=<s> ] [ VTKFile=<s> ]

参数名 参数类型 默认值 单位 参数介绍

CoreFile string - - 指定核心CGNS文件的名字。

ModelFile string - - 指定模型CGNS文件的名字,这类CGNS文件可能由SGFramework创建或者从MEDICI的TIF文件转换而来。

AscFile string - - 用TIF格式导出核心计算数据。

VTKFile string - - 用VTK格式导出核心计算数据。

例子

EXPORT CoreFile=init.cgns AscFile=init.tif VTKFile=init.vtk

IMPORT ModelFile=pn.cgns

IMPORT CoreFile=pn.cgns

说明

IMPORT之后,器件电极上以前设置的电源将被清空。

251

X 后处理 附件一 GSS命令文件语法

X 后处理

A.10.1 Plot命令

PLOT命令调用GSS的二维及三维图形功能显示网格及变量。

语法

PLOTMESH

PLOT Variable=Mesh(DeviceMesh) [PS.Out=<s>] [TIFF.Out=<s>]

[ Resolution=(RES.Low|RES.Middle|RES.High) ]

PLOT Variable=(Na|Nd|ElecDensity|HoleDensity|

Potential|EFieldX|EFieldy|Temperature)

[ Measure=(Linear|SignedLog) ]

[ Resolution=(RES.Low|RES.Middle|RES.High) ]

[ PS.Out=<s> ] [TIFF.Out=<s>] [ AzAngle=<n> ] [ ElAngle=<n> ]

[ Style=(Scale|Color|GrayLevel) ]

参数名 参数类型 默认值 单位 参数介绍

Variable string - - 图形显示的变量。

Resolution string RES.Middle - 显示窗口的分辨率。

Measure string Linear 变量以正常值或者对数值显示。

PS.Out string - - 指定postscript文件名,窗口显示的图形将被保存到ps文件。

TIFF.Out string - - 指定TIFF文件名,窗口显示的图形将被保存到TIFF文件。

AzAngle number 240 degree 观察者的方位角,0 ≤ AzAngle < 360。

ElAngle number 60 degree 观察者的俯仰角,0 ≤ ElAngle < 70。

Style string Color - 三维图形的绘图风格。

例子

PLOT Variable=Mesh

PLOT Variable=Na Resolution=RES.High AzAngle=240 ElAngle=40 Style=Scale

PLOT Variable=Potential Resolution=RES.Middle Style=Color

注意

PLOTMESH是一个用来代替PLOT Variable=Mesh的绘图函数,它提供了更多的交互功能。此命令仅对X11系统有效。

三维绘图窗口可以用鼠标旋转,退出请按ESC键。如果指定了PS.Out或者TIFF.Out参数,退出前的图像将被保存。由于目前读取屏幕点颜色值的算法效率不高,TIFF文件保存功能可能需要较长的时间,尤其是登陆远程主机运行,网络速度又很慢的情况。

252

附件一 GSS命令文件语法 X 后处理

A.10.2 Probe命令

PROBE命令用于导出沿着某一条Segment分布的变量。该Segment可以是一条边界,也可以预先定义在求解区域内部。对于定义在区域内部的Segment,虽然它会被赋给Neumann边界条件,但是实际上不会对模拟结果有影响。

语法

Probe Variable=(Na|Nd|ElecDensity|HoleDensity|Potential|EFieldX|EFieldy|Temperature)

Region=<s> Segment=<s> ProbeFile=<s> Append=<b>

parameter type default unit description

Variable string - - 指定需要导出的变量名.

Region string - - 指定该Segment所属于的区域名.

Segment string - - 指定该Segment的名字.

ProbeFile string - - 指定用于保存数据的文件名.

Append bool OFF - 保留旧文件,将数据保存到旧文件尾部.

例子

PROBE Variable=Nd Region=Si Segment=PB1 ProbeFile=Nd.txt Append=Off

PROBE Variable=Potential Region=Si Segment=PB2 ProbeFile=P.txt Append=On

注意

每一个PROBE命令用于保存单独的一个变量到用户指定的文件中。GSS依照其在输入文件中出现的次序,顺次将PROBE命令保存起来。当遇到SOLVE命令,GSS在求解过程中将用户所需数据依次写入PROBE命令指定的文件。求解结束后,GSS会清空所有的PROBE命令。总之,PROBE命令仅对其紧跟着的SOLVE命令有效。

PROBE文件的格式如下:

#region_name segment_name

#node_num X Y

# 0 x0 y0

# 1 x1 y1

# ..............

#SOLVE_TYPE variable_name

[V/I/Time] v0 v1 v2 ...

.....................................

文件头包含了Segment的信息,包括Segment名字,包含的节点数和每个节点的坐标。文件头最后一行是求解类型和PROBE变量名。求解类型可以是”EQUILIBRIUM”, ”STEADYSTATE”, ”DC-

253

X 后处理 附件一 GSS命令文件语法

SWEEP VSCAN”, ”DCSWEEP ISCAN”和”TRANSIENT”. 对于最后的三种求解类型,GSS会在紧跟着的数据部分第一列,保存电压/电流扫描信息或者时间步的信息,各节点变量的值排成一行,紧

跟其后。如果求解类型为”EQUILIBRIUM”或者”STEADYSTATE”,那么仅有各节点变量的值排成一行。

254

附件一 GSS命令文件语法 XI 如何克服收敛性问题

XI 如何克服收敛性问题

半导体数值模拟的核心算法在于求解半导体漂移扩散模型离散得到的大规模非线性方程组。

F (x) = 0 (A.1)

在GSS内部,始终采用牛顿迭代法来求解上述非线性方程组

J · ∆x = −F (x0) (A.2)

众所周知,非线性方程组的收敛取决于初始值、Jacobian矩阵、解的搜索算法以及线性方程组的求解。必须同时保证解的初值充分接近真值,Jacobian矩阵是精确的或者接近精确的,寻找真解的搜索算法正确以及线性方程组求解器能给出足够精确的解,这样才能保证非线性方程求解的收敛,

其中任何一个条件的不满足都会造成求解失败。

A.11.1 克服不良初值

建模完成后的第一次求解,初值一般偏离真解较远,直接进行平衡态求解很可能由于初值问题

而失败。这里有个小技巧可以克服收敛性问题。首先不加任何偏置,进行瞬态求解,设定时间步长

为数个ps,这样在每个时间点计算可以收敛。随着时间的推进,初值慢慢向平衡态靠近,当初值足够接近时,再使用平衡态求解就可能收敛。

A.11.2 物理问题无解

在稳态情况下求解某些器件的击穿问题有可能出现IV曲线的回朔。在回朔点,一个电压值将对应多个电流,此时不能指望稳态直流扫描能够给出收敛的结果。遇到这种情况可以换用Trace求解模式,它可以自动分析回朔点并采取合适的算法保证求解的稳定。

A.11.3 牛顿迭代问题

在Jacobian矩阵的建立上,作者已经尽了最大努力。绝大多数的情况下,Jacobian矩阵是精确的,仅有一些过于复杂的参数,比如强场迁移率以及碰撞电离率参数等,因为采用解析求导太过困难而

采用了差分近似,并且在今后的版本中,这些差分近似会逐渐被解析公式取代。早期的GSS对手工建立的Jacobian矩阵信心不足,提供了Matrix-Free方法作为补充,这种方法完全采用差分近似,只能采用Krylov子空间迭代法作为线性方程求解器,而且计算量很大。Matrix-Free方法可以通过命令行参数-snes mf operator调用,但是目前并不推荐使用。

为了增强收敛性,一些寻找真解的搜索算法被引入PETSC软件包,包括了 LineSearch方法和TrustRegion方法。LineSearch方法需要精确的 Jacobian矩阵,效率较高而且效果很好,但是这个方法偶尔也会误入歧途,比如在碰撞电离刚刚起作用的情况下。如果发现初值很好的情况,例如直流

扫描与瞬态计算中突然无法收敛,GSS不停的收缩步长,也许就是 LineSearch方法加速方法出错,此时改用 TrustRegion方法或者基本牛顿迭代也许可以改进收敛。TrustRegion方法与前面的时间推进方法比较类似,它并不需要精确的 Jacobian矩阵,但是速度稍慢一些。TrustRegion方法的问题是如果初始置信域设置不当,可能收敛于局部最优解。如果发现TrustRegion方法报告达到了相对收敛,但是方程组的绝对误差依然很大,可以通过命令行参数-snes tr delta0 delta0调整初始置信域(一般可以设一个比较大的值),或者换用LU线性方程求解器来解决问题。

255

XI 如何克服收敛性问题 附件一 GSS命令文件语法

A.11.4 浮点数精度问题

最难分析的情况是求解线性方程组(A.2)由于浮点数精度不够而失败。从数值分析中可以得知,最后结果的浮点数精度由三个因素决定

ε∆x = CJ ·CF · ε0 (A.3)

其中ε0则为机器精度,对于双精度浮点数来说,ε0 = 10−16。CJ为 Jacobian矩阵的条件数,CF为方

程F(x)的条件数,它们的定义为cond (J) =

∥∥∥J−1∥∥∥ · ‖J‖

cond (F) =∣∣∣∣∣ xF′ (x)

F (x)

∣∣∣∣∣从大量的数值实验结果来看,为保证牛顿迭代的顺利进行,ε∆x需要有4-5位的精度。也就是说

需要满足

CJ ·CF < 1012 (A.4)

对于二维器件模拟,CJ一般在104 ∼ 1010,而CF一般在101 ∼ 104。用户可以通过命令行参数-ksp singmonitor来检查问题的条件数,但只能用于GMRES线性求解器。

如果出现牛顿迭代无法收敛于预期的精度,那么问题可能出在过大的CJ或者CF,此时需要想办

法减小问题的条件数。如何减小问题的条件数是非常复杂的问题,作者只能给出一些粗糙的意见。

首先需要从物理问题上寻找。如果器件处于接近击穿或者闭锁的状态下,那么物理条件就决定

了该处的条件数很差,由于人工无法干涉物理问题,应该尽可能减小由网格引起的条件数,腾出足

够的精度满足物理问题的需要。如果模拟的结构中有浮空的半导体区域,那么问题的条件数往往很

坏,典型的例子是SOI器件的体硅层。在条件允许情况下可将体硅接地来改善条件数,这样做虽然与真实器件的状况不符,但是对模拟结果影响很小。此外,如果器件设置了电流边界条件,其条件数

往往大于电压边界条件。

其次可以通过改善网格质量来减少条件数[103]。有限元研究表明,二维三角网格上建立的有限元方程条件数有下面的关系成立:

CJ 6 maxi

(qi) ·(

Lmax

hmin

)2

(A.5)

其中,Lmax为模拟区域的尺度,hmin为区域中最短的三角形边长,q为三角形的形状因子:

q =h2

1 + h22 + h2

3

4√

3a(A.6)

这里,a为三角形面积。从式(A.5)可以得出,Jacobian矩阵的条件数将由最坏的三角形单元决定,并且减小计算区域,划分较粗的网格(在物理条件允许的情况下)都能减小条件数。对于好的网格,最好满足下面的条件:1不出现钝角三角形以及包含非常小锐角的三角形;2满足物理分辨率的情况下单元数最少;3三角形单元的面积平滑的变化,不出现三角形大小变化剧烈的区域。通过调整网格来促进收敛是非常有效的方法,虽然没有理论上的证明,但是大量的实际经验显示:一般来说对

某个问题总能找到合适的网格,使其计算收敛1。

1此说法来自TCAD资深人士

256

附件一 GSS命令文件语法 XI 如何克服收敛性问题

然后,条件数与所选用的求解器也有关系。高级的模型在计算精度提高的同时往往收敛性较

差,在两者间要取一个折中。比如基于能量平衡模型的EBML3E求解器非常容易发散,使用时需要特别的小心。

最后,GSS可以编译为使用long double类型的浮点数进行内部运算以提供更高的机器精度。但要注意的是,不是所有的机器都支持long double类型浮点数,对于PC机而言,long double与double精度是一样的;Intel与AMD的64位CPU其long double浮点数为80位,提供17-18位精度;某些IBM高性能工作站则提供完全128位的long double浮点数。限于硬件条件,作者仅仅尝试了在Xeon64+Linux平台下将GSS编译为long double版本,它在GaAs材料器件的模拟中确实显示了更为优良的收敛特性2。

2作为证明,Synopsys公司确实建议在128位精度的平台上运行它的TCAD软件。

257

附件二 GSS软件已经实现的功能

经过2年多的开发,GSS已经实现了很多当今主流TCAD软件所具有的功能,主要的功能罗列如下,在将来的日子里,还会有更多的功能逐步加入GSS软件。

半导体模拟软件应该具有的功能 Medici Dessis GSS

建模,非结构网格生成√ √ √

自适应网格划分√ √ √

漂移-扩散模型√ √ √

考虑温度的漂移-扩散模型√ √ √

能量平衡模型√ √ √

量子漂移-扩散模型√ √

流体动力学模型√

稳态求解√ √ √

瞬态求解√ √ √

AC小信号扫描√ √ √

噪声分析√

与电路的混合模拟√ √ √

强场迁移率模型√ √ √

表面迁移率模型√ √ √

碰撞电离模型√ √ √

隧道跃迁模型√ √ √

MOS栅电流模型√ √

MOS栅极击穿模型

异质结支持√ √ √

EEPROM器件支持√ √

感光器件支持√ √ √

高能粒子入射效应√ √

258

附件三 如何安装GSS

I GSS对内存与CPU的要求

借助C++语言优良的内存动态管理特性,理论上GSS可以求解任意规模的问题。内存的消耗并不会成为严重的瓶颈,因为内存的需求与问题规模基本上是线性关系,即使问题的规模达到10万节点,内存需求也被控制在300MB左右,这个要求对于现代个人计算机并不困难。

由于GSS求解的是非线性问题,涉及到大量的线性方程组求解,显然,GSS的计算复杂度与问题规模不会是线性关系。如果采用LU分解方法求解线性方程组,计算复杂度为O(n3),而迭代法的计算复杂度有希望降为O(n2)。下图显示了用一台Xeon 3.6GHz的工作站对同一个二极管器件用不同分辨率的网格进行计算所需要的时间,线性方程组采用BCGS算法。数值实验的结果表明,GSS运行时间近似正比于问题规模的平方。对于节点数在5000以下的问题,一般数秒钟就可以完成,但是当节点数达到10万,可能需要数分钟之久。

图 C.1 GSS运行时间与问题规模的关系

259

II 从源代码编译GSS 附件三 如何安装GSS

II 从源代码编译GSS

从源代码编译GSS可以获得适合您计算机的最优化GSS版本,但是需要您对Unix/Linux系统有一定的了解,这里假设您了解如何使用Unix/Linux系统,及该系统下的软件编译环境。您需要有一台装安装有Unix/Linux操作系统的计算机,如果使用Windows平台,那么您需要安装Cygwin以模拟Linux环境。

第一步,准备您的编译器,编译GSS需要C/C++编译器,词法分析器flex和语法分析器bison. 尽管GNU的编译器gcc/g++可以工作,但是经过优化的编译器,比如在Intel平台下使用Intel C++编译器,则可以大大提高性能,我们的测试显示性能有50%至200%的提高。这主要由于Intel编译器使用硬件加速power函数的计算(GSS中大量使用power函数),而gcc似乎不能充分利用这点。

第二步,编译两个GSS需要的库。第一个库是PETSC,这是一个线性方程与非线性方程求解包。目前最新版本是petsc-2.3.3,因为PETSC每次升级都要改动函数名(这个习惯非常的糟糕),您必须使用这个版本,它可以在http://www.mcs.anl.gov/petsc下载。第二个库是CGNS,最新版本cgnslib-2.5-1,您可以在http://www.cgns.org/找到它,这个软件库用于读写GSS使用的器件模型文件。编译与安装这两个库的说明可以在它们的主页上找到,在此不再赘述。必须指出的是PETSC必须在配置时加上- -with-clanguage=cxx来支持C++的调用,以及- -with-mpi=0来禁止并行机制。GSS可以使用long double类型的浮点数来获得更高的精度,这个特性需要增加PETSC的配置命令- -with-

precision=longdouble - -download-c-blas-lapack=1,PETSC会下载一个特殊的Blas/Lapack库文件来支持long double浮点数据类型。由于GSS软件70%以上的运行时间是调用PETSC库来求解非线性方程组,因此它的性能直接决定了GSS的运行速度,作者建议花费一点时间来编译一个优化的PETSC版本。此外,GSS的后处理器还需要libtiff库来产生TIFF图形输出,不过所有的Linux系统都会带上这个库,一般不用操心。

第三步,这一步是可选的,如果您需要实现器件/电路混合模拟,您需要编译NGSPICE软件来实现对电路的支持。NGSPICE可以在http://ngspice.sourceforge.net找到,目前只有直接从CVS得到的最新版本才支持混合模拟。注意配置时需要加上- -with-experimental - -with-ndev选项。

第四步,从GSS主页http://gss-tcad.sourceforge.net下载最新版的GSS源代码,并将其解压缩。设定环境变量GSS DIR指向您的GSS目录。比如在bash下,作者的.bashrc文件有如下语句

$ export GSS_DIR=/home/gdiso/gss-0.46

在gss-0.46目录下,依次执行下列命令:

$ ./configure

$ make

$ make install

注意,CGNS库默认安装在/usr/local/lib,如果这个库被放在别处,需要在配置时加上- -with-

cgns=CGNSdir。由于linux的XFress系统改为Xorg后configure脚本可能无法找到X库,可以在make.def文件中手工修改Xlib和X头文件的路径。如果一切顺利,完成GSS的编译工作后,将$(GSS DIR)/bin加入路径,您可以进入example目录,运行其中的例子来测试GSS的安装,比如

$ gss xxxx.inp

260

附件三 如何安装GSS II 从源代码编译GSS

GSS有一个用tcl/tk写成的用户界面,其中包含一个支持关键字彩色高量显示的编辑器,您可以用下面的命令调用它。

$ gssui

261

附件四 GNU Free Documentation License

Version 1.2, November 2002

Copyright© 2000,2001,2002 Free Software Foundation, Inc.59 Temple Place, Suite 330, Boston, MA 02111-1307 USAEveryone is permitted to copy and distribute verbatim copies of this license document, but changing it is notallowed.

PREAMBLE

The purpose of this License is to make a manual, textbook, or other functional and useful document“free” in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, withor without modifying it, either commercially or noncommercially. Secondarily, this License preserves forthe author and publisher a way to get credit for their work, while not being considered responsible formodifications made by others.

This License is a kind of “copyleft”, which means that derivative works of the document must them-selves be free in the same sense. It complements the GNU General Public License, which is a copyleftlicense designed for free software.

We have designed this License in order to use it for manuals for free software, because free softwareneeds free documentation: a free program should come with manuals providing the same freedoms that thesoftware does. But this License is not limited to software manuals; it can be used for any textual work,regardless of subject matter or whether it is published as a printed book. We recommend this Licenseprincipally for works whose purpose is instruction or reference.

I APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work, in any medium, that contains a notice placed bythe copyright holder saying it can be distributed under the terms of this License. Such a notice grants a

262

附件四 GNU FREE DOCUMENTATION LICENSE I APPLICABILITY AND DEFINITIONS

world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein.The “Document”, below, refers to any such manual or work. Any member of the public is a licensee, andis addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiringpermission under copyright law.

A “Modified Version” of the Document means any work containing the Document or a portion of it,either copied verbatim, or with modifications and/or translated into another language.

A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclu-sively with the relationship of the publishers or authors of the Document to the Document’s overall subject(or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if theDocument is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.)The relationship could be a matter of historical connection with the subject or with related matters, or oflegal, commercial, philosophical, ethical or political position regarding them.

The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those ofInvariant Sections, in the notice that says that the Document is released under this License. If a section doesnot fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Documentmay contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there arenone.

The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-CoverTexts, in the notice that says that the Document is released under this License. A Front-Cover Text may beat most 5 words, and a Back-Cover Text may be at most 25 words.

A “Transparent” copy of the Document means a machine-readable copy, represented in a format whosespecification is available to the general public, that is suitable for revising the document straightforwardlywith generic text editors or (for images composed of pixels) generic paint programs or (for drawings) somewidely available drawing editor, and that is suitable for input to text formatters or for automatic translation toa variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file formatwhose markup, or absence of markup, has been arranged to thwart or discourage subsequent modificationby readers is not Transparent. An image format is not Transparent if used for any substantial amount of text.A copy that is not “Transparent” is called “Opaque”.

Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfoinput format, LATEX input format, SGML or XML using a publicly available DTD, and standard-conformingsimple HTML, PostScript or PDF designed for human modification. Examples of transparent image formatsinclude PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only byproprietary word processors, SGML or XML for which the DTD and/or processing tools are not generallyavailable, and the machine-generated HTML, PostScript or PDF produced by some word processors foroutput purposes only.

The “Title Page” means, for a printed book, the title page itself, plus such following pages as are neededto hold, legibly, the material this License requires to appear in the title page. For works in formats whichdo not have any title page as such, “Title Page” means the text near the most prominent appearance of thework’s title, preceding the beginning of the body of the text.

263

II VERBATIM COPYING 附件四 GNU FREE DOCUMENTATION LICENSE

A section “Entitled XYZ” means a named subunit of the Document whose title either is preciselyXYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZstands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “En-dorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Documentmeans that it remains a section “Entitled XYZ” according to this definition.

The Document may include Warranty Disclaimers next to the notice which states that this Licenseapplies to the Document. These Warranty Disclaimers are considered to be included by reference in thisLicense, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimersmay have is void and has no effect on the meaning of this License.

II VERBATIM COPYING

You may copy and distribute the Document in any medium, either commercially or noncommercially,provided that this License, the copyright notices, and the license notice saying this License applies to theDocument are reproduced in all copies, and that you add no other conditions whatsoever to those of thisLicense. You may not use technical measures to obstruct or control the reading or further copying of thecopies you make or distribute. However, you may accept compensation in exchange for copies. If youdistribute a large enough number of copies you must also follow the conditions in section III.

You may also lend copies, under the same conditions stated above, and you may publicly displaycopies.

III COPYING IN QUANTITY

If you publish printed copies (or copies in media that commonly have printed covers) of the Document,numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose thecopies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover,and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as thepublisher of these copies. The front cover must present the full title with all words of the title equallyprominent and visible. You may add other material on the covers in addition. Copying with changes limitedto the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treatedas verbatim copying in other respects.

If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed(as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

If you publish or distribute Opaque copies of the Document numbering more than 100, you must eitherinclude a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaquecopy a computer-network location from which the general network-using public has access to download

264

附件四 GNU FREE DOCUMENTATION LICENSE IV MODIFICATIONS

using public-standard network protocols a complete Transparent copy of the Document, free of added ma-terial. If you use the latter option, you must take reasonably prudent steps, when you begin distributionof Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the statedlocation until at least one year after the last time you distribute an Opaque copy (directly or through youragents or retailers) of that edition to the public.

It is requested, but not required, that you contact the authors of the Document well before redistributingany large number of copies, to give them a chance to provide you with an updated version of the Document.

IV MODIFICATIONS

You may copy and distribute a Modified Version of the Document under the conditions of sections IIand III above, provided that you release the Modified Version under precisely this License, with the ModifiedVersion filling the role of the Document, thus licensing distribution and modification of the Modified Versionto whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and fromthose of previous versions (which should, if there were any, be listed in the History section of theDocument). You may use the same title as a previous version if the original publisher of that versiongives permission.

B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of themodifications in the Modified Version, together with at least five of the principal authors of the Doc-ument (all of its principal authors, if it has fewer than five), unless they release you from this require-ment.

C. State on the Title page the name of the publisher of the Modified Version, as the publisher.

D. Preserve all the copyright notices of the Document.

E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.

F. Include, immediately after the copyright notices, a license notice giving the public permission to usethe Modified Version under the terms of this License, in the form shown in the Addendum below.

G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in theDocument’s license notice.

H. Include an unaltered copy of this License.

I. Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title,year, new authors, and publisher of the Modified Version as given on the Title Page. If there is nosection Entitled “History” in the Document, create one stating the title, year, authors, and publisher of

265

IV MODIFICATIONS 附件四 GNU FREE DOCUMENTATION LICENSE

the Document as given on its Title Page, then add an item describing the Modified Version as statedin the previous sentence.

J. Preserve the network location, if any, given in the Document for public access to a Transparent copyof the Document, and likewise the network locations given in the Document for previous versions itwas based on. These may be placed in the “History” section. You may omit a network location for awork that was published at least four years before the Document itself, or if the original publisher ofthe version it refers to gives permission.

K. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, andpreserve in the section all the substance and tone of each of the contributor acknowledgements and/ordedications given therein.

L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Sectionnumbers or the equivalent are not considered part of the section titles.

M. Delete any section Entitled “Endorsements”. Such a section may not be included in the ModifiedVersion.

N. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invari-ant Section.

O. Preserve any Warranty Disclaimers.

If the Modified Version includes new front-matter sections or appendices that qualify as SecondarySections and contain no material copied from the Document, you may at your option designate some or allof these sections as invariant. To do this, add their titles to the list of Invariant Sections in the ModifiedVersion’s license notice. These titles must be distinct from any other section titles.

You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements ofyour Modified Version by various parties–for example, statements of peer review or that the text has beenapproved by an organization as the authoritative definition of a standard.

You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 wordsas a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage ofFront-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) anyone entity. If the Document already includes a cover text for the same cover, previously added by you or byarrangement made by the same entity you are acting on behalf of, you may not add another; but you mayreplace the old one, on explicit permission from the previous publisher that added the old one.

The author(s) and publisher(s) of the Document do not by this License give permission to use theirnames for publicity for or to assert or imply endorsement of any Modified Version.

266

附件四 GNU FREE DOCUMENTATION LICENSE V COMBINING DOCUMENTS

V COMBINING DOCUMENTS

You may combine the Document with other documents released under this License, under the termsdefined in section IV above for modified versions, provided that you include in the combination all of theInvariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections ofyour combined work in its license notice, and that you preserve all their Warranty Disclaimers.

The combined work need only contain one copy of this License, and multiple identical Invariant Sec-tions may be replaced with a single copy. If there are multiple Invariant Sections with the same name butdifferent contents, make the title of each such section unique by adding at the end of it, in parentheses, thename of the original author or publisher of that section if known, or else a unique number. Make the sameadjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

In the combination, you must combine any sections Entitled “History” in the various original doc-uments, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledge-ments”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements”.

VI COLLECTIONS OF DOCUMENTS

You may make a collection consisting of the Document and other documents released under this Li-cense, and replace the individual copies of this License in the various documents with a single copy that isincluded in the collection, provided that you follow the rules of this License for verbatim copying of eachof the documents in all other respects.

You may extract a single document from such a collection, and distribute it individually under thisLicense, provided you insert a copy of this License into the extracted document, and follow this License inall other respects regarding verbatim copying of that document.

VII AGGREGATION WITH INDEPENDENT WORKS

A compilation of the Document or its derivatives with other separate and independent documents orworks, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyrightresulting from the compilation is not used to limit the legal rights of the compilation’s users beyond whatthe individual works permit. When the Document is included in an aggregate, this License does not applyto the other works in the aggregate which are not themselves derivative works of the Document.

If the Cover Text requirement of section III is applicable to these copies of the Document, then if theDocument is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on coversthat bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is inelectronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

267

VIII TRANSLATION 附件四 GNU FREE DOCUMENTATION LICENSE

VIII TRANSLATION

Translation is considered a kind of modification, so you may distribute translations of the Documentunder the terms of section IV. Replacing Invariant Sections with translations requires special permissionfrom their copyright holders, but you may include translations of some or all Invariant Sections in additionto the original versions of these Invariant Sections. You may include a translation of this License, and all thelicense notices in the Document, and any Warranty Disclaimers, provided that you also include the originalEnglish version of this License and the original versions of those notices and disclaimers. In case of adisagreement between the translation and the original version of this License or a notice or disclaimer, theoriginal version will prevail.

If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the re-quirement (section IV) to Preserve its Title (section I) will typically require changing the actual title.

IX TERMINATION

You may not copy, modify, sublicense, or distribute the Document except as expressly provided forunder this License. Any other attempt to copy, modify, sublicense or distribute the Document is void, andwill automatically terminate your rights under this License. However, parties who have received copies, orrights, from you under this License will not have their licenses terminated so long as such parties remain infull compliance.

X FUTURE REVISIONS OF THIS LICENSE

The Free Software Foundation may publish new, revised versions of the GNU Free DocumentationLicense from time to time. Such new versions will be similar in spirit to the present version, but may differin detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

Each version of the License is given a distinguishing version number. If the Document specifies thata particular numbered version of this License “or any later version” applies to it, you have the option offollowing the terms and conditions either of that specified version or of any later version that has beenpublished (not as a draft) by the Free Software Foundation. If the Document does not specify a versionnumber of this License, you may choose any version ever published (not as a draft) by the Free SoftwareFoundation.

268

附件四 GNU FREE DOCUMENTATION LICENSE X FUTURE REVISIONS OF THIS LICENSE

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document andput the following copyright and license notices just after the title page:

Copyright©YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify thisdocument under the terms of the GNU Free Documentation License, Version 1.2 or any laterversion published by the Free Software Foundation; with no Invariant Sections, no Front-CoverTexts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNUFree Documentation License”.

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with...Texts.”line with this:

with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, andwith the Back-Cover Texts being LIST.

If you have Invariant Sections without Cover Texts, or some other combination of the three, mergethose two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing these ex-amples in parallel under your choice of free software license, such as the GNU General Public License, topermit their use in free software.

269

X FUTURE REVISIONS OF THIS LICENSE 附件四 GNU FREE DOCUMENTATION LICENSE

270

参考文献

[1] H. K. Gummel. A self-consistent iterative scheme for one-dimensional steady state transistor calcu-lations. IEEE Trans. Electron Devices, 11:455–465, 1964. 9, 127

[2] Mark R. Pinto, Conor S. Rafferty, and Robert W. Dutton. PISCES-II - poisson and continuity equationsolver. Technical report, Stanford Electronics Laboratory, Stanford University, September 1984. 9

[3] M. R. Pinto, C. S. Rafferty, H. R. Yeager, and R. W. Dutton. PISCES-II - supplementary report.Technical report, Integrated Circuits Laboratory, Stanford University, 1985. 9, 125

[4] Synopsys Company. http://www.synopsys.com/products/tcad/taurus medici ds.html. 9, 152

[5] Silvaco Company. http://www.silvaco.com/products/device simulation/atlas.html. 9, 152

[6] Synopsys Company. http://www.synopsys.com/products/tcad/sentaurus device ds.html. 9

[7] Yu Zhiping, D. Chen, L. So, and R. W. Dutton. PISCES-2ET and Its Application Subsystems. Tech-nical report, Integrated Circuits Laboratory, Stanford University, 1994. 9, 78

[8] 杨廉峰,吴金,刘其贵,魏同立. SMDS:一个采用面向对象技术设计的半导体器件模拟软件.电子器件, 28:62–64, 2000. 9

[9] 吉利久. 计算微电子学. 北京-科学出版社, 1996. 9

[10] 张义门. 半导体器件计算机模拟. 北京-电子工业出版社, 1991. 9

[11] 贡顶,韩峰,王建国. 基于流体动力学模型的2维砷化镓金属半导体场效应管数值模拟. 强激光与粒子束, 18(7):1134–1138, 2006. 10

[12] 贡顶,王建国,张殿辉等. 通用二维半导体器件模拟软件的设计. 计算物理, 24(2):247–252,2007. 10

[13] J. J. Liou. Modeling the Tunneling Current in Reverse-Biased p/n Junctions. Solid-State Electronics,33:971–972, 1990. 39, 80

[14] B. Gonzalez, V. Palankovski, H. Kosina, A. Hernandez, and S. Selberherr. An energy relaxation timemodel for device simulation. Solid-State Electronics, 43:1791–1795, 1999. 42

271

参考文献 参考文献

[15] D. M. Caughey and R. E. Thomas. Carrier Mobilities in Silicon Empirically Related to Doping andField. Proc. IEEE, 55:2192–2193, 1967. 48, 73, 74

[16] D. B. M. Klaassen. A Unified Mobility Model for Device Simulation - I. Solid-State Electronics,35:953–959, 1992. 48, 74

[17] D. B. M. Klaassen. A Unified Mobility Model for Device Simulation - II. Solid-State Electronics,35:961–967, 1992. 48, 74

[18] J. Holzl and F. K. Schulte. Work Functions of Metals. Springer-Verlag, 1979. 54

[19] S. M. Sze. Physics of Semiconductor Devices, 2nd edition. New York: John Wiley & Sons, 1981. 56,71

[20] J. M. Andrews and M. P. Lepselter. Reverse Current-Voltage Characteristics of Metal-Silicide Schot-tky Diodes. Solid-State Electronics, 13:1011–1023, 1970. 59, 119

[21] U. Lindefelt. Current-Density Relations for Nonisothermal Modeling of Degenerate HeterostructureDevices. J. Appl. Phys., 75(2):958–966, Jan. 1994. 67

[22] M. G. Ancona and H. F. Tiersten. Macroscopic physics of the silicon inversion layer. Phys. Rev. B,35(15):7959–7965, May, 1987. 69

[23] M. G. Ancona and G. J. Iafrate. Quantum correction to the equation of state of an electron gas in asemiconductor. Phys. Rev. B, 39(13):9536–9540, May, 1989. 69

[24] C.S. Rafferty, B. Biegel, Z. Yu, M.G. Ancona, J. Bude, and R.W. Dutton. Multi-dimensional quantumeffect simulation using a density-gradient model and script-level programming techniques. In Proc.SISPAD, page 137–140, 1998. 69

[25] E. Lyumkis, R. Mickevicius, O. Penzin, B. Polsky, K. El Sayed, A. Wettstein, and W. Fichtner. DensityGradient Transport Model for the Simulations of Ultrathin, Ultrashort SOI under Non-EquilibriumConditions. In IEEE International SOI Conference, 2002. 69

[26] A. Wettstein, O. Penzin, and E. Lyumkis. Integration of the Density Gradient Model into a GeneralPurpose Device Simulator. VLSI Design, 15(4):751–759, 2002. 70, 113

[27] Ren-Chuen Chen and Jinn-Liang Liu. A quantum corrected energy-transport model for nanoscalesemiconductor devices. J. Comput Phys., 204:131–156, 2005. 70

[28] C. J. Malgorzata and R. C. Jaeger. Bilow-simulation of lowtemperature bipolar device behavior. IEEETrans. Electron Devices, 36:1475–1488, 1989. 71

[29] J. W. Slotboom. The pn Product in Silicon. Solid-State Electronics, 20:279–283, 1977. 71

[30] D. J. Roulston, N. D. Arora, and S. G. Chamberlain. Modeling and Measurement of Minority-CarrierLifetime Versus Doping in Diffused Layers of n+ − p Silicon Diodes. IEEE Trans. Electron Devices,ED-29:284–291, 1982. 72

272

参考文献 参考文献

[31] S. Selberherr. Process and Device Modeling for VLSI. Microelectron. Reliab., 24(2):225–257, 1984.73

[32] J. J. Barnes, R. J. Lomax, and G. I. Haddad. Finite-Element Simulation of GaAs MESFET’s withLateral Doping Profiles and Sub-Micron Gates. IEEE Trans. Electron Devices, ED-23:1042–1048,1976. 74

[33] H. R. Yeager. Circuit-simulation models for the high electron-mobility transistor. PhD thesis, Stan-ford University, April 1989. 74

[34] C. Lombardi, S. Manzini, A. Saporito, and M. Vanzi. A Physically Based Mobility Model for Nu-merical Simulation of Nonplanar Devices. IEEE Trans. Computer-Aided Design, 7(11):1164–1170,1988. 76

[35] M. N. Darwish, J. L. Lentz, M. R. Pinto, P. M. Zeitzoff, T. J. Krutsick, and H. H. Vuong. An ImprovedElectron and Hole Mobility Model for General Purpose Device Simulation. IEEE Trans. ElectronDevices, 44(9):1529–1538, 1997. 77

[36] K.M. Cham, S-Y Oh, D. Chin, and J.L. Moll. Computer-Aided Design and VLSI Device Development.Kluwer Academic Publishers, 1986. 77

[37] Avant! Corporation. Medici User’s Manual, June, 2001. 78, 159, 172, 181, 188, 205

[38] S. Selberherr. Analysis and Simulation of Semiconductor Devices. Springer-Verlag, 1984. 79

[39] W. B. Joyce and R. W. Dixon. Analytic Approximation for the Fermi Energy of an Ideal Fermi Gas.Appl. Phys. Lett., 31:354–356, 1977. 81

[40] Yu Zhiping and R. W. Dutton. SEDAN III - A Generalized Electronic Material Device AnalysisProgram. Technical report, Stanford Electronics Laboratory Technical Report, July 1985. 81

[41] M. S. Mock. An Initial Value Problem from Semiconductor Device Theory. SIAM Journal on Math-ematical Analysis, 5(4):597–612, 1974. 82, 83

[42] T. I. Seidman. Steady state solutions of diffusion- reactions system with electrostatic convection.Nonlinear Analysis, 4:623 – 637, 1980. 82

[43] M. S. Mock. Analysis of Mathematical Models of Semiconductor Device. Dublin:Boole Press, 1983.83

[44] M. S. Mock. On equations describing steady-state carrier distributions in a semiconductor device.Comm. Pure Appl. Math., 25:781–792, 1972. 83

[45] P. ZHAO. Simulating nanoscale semiconductor devices. Technical report, Electrical and ComputerEngineering Department, North Carolina State University, 2005. 83

[46] L. Geppert. semiconductors. 1999 technology analysis and forecast. IEEE Spectrum, 36:52–56, 1999.84

273

参考文献 参考文献

[47] L. Paul Chew. Guaranteed-quality mesh generation for curved surfaces. In SCG ’93: Proceedingsof the ninth annual symposium on Computational geometry, pages 274–280, New York, NY, USA,1993. ACM Press. 85

[48] Peter Su and Robert L. Scot Drysdal. A comparison of sequential delaunay triangulation algorithms.In Proceedings of the Eleventh Annual Symposium on Computational Geometry, pages 61–70. ACMPress, 1995. 85

[49] Dan X. Yang. Mesh generation and information model for device simulation. PhD thesis, StanfordUniversity, 1994. 85

[50] Zakir Hussain Sahul. Grid and geometry servers for semiconductor process simulation. PhD thesis,Stanford University, 1996. 85

[51] Jonathan Richard Shewchuk. Triangle: Engineering a 2D Quality Mesh Generator and DelaunayTriangulator. In Applied Computational Geometry: Towards Geometric Engineering, volume 1148,pages 203–222. Springer-Verlag, May 1996. 86

[52] C. W. Hirt. Heunstic stability theory for finite difference equations. J. Compute Phys., 2:339–355,1968. 101

[53] K.S. Yee. Numerical solution of initial boundary value problems involving Maxwell’s equations inisotropic media. IEEE Trans. Antennas Propagat, 14:302–307, 1966. 101

[54] A. Harten. High resolution schemes for hyperbolic conservation laws. J. Comput Phys., 49:357–393,1983. 101

[55] A. Harten, P. D. Lax, and Van Leer. On upstream difference and Godunov-type schemes for hyper-bolic conservation laws. SIAM Review, 25:35–61, 1983. 101

[56] Ami Harten, Stanley Osher, Bjorn Engquist, and Sukumar R. Chakravarthy. Some results on uni-formly high-order accurate essentially nonoscillatory schemes. Applied Numerical Mathematics,2(3–5):347–377, October 1986. 101

[57] Ami Harten and Stanley Osher. Uniformly high-order accurate nonoscillatory schemes. SIAM Journalon Numerical Analysis, 24:279–309, April 1987. 101

[58] C. Manry, S. Broschat, and J. Schneider. Higher-order fdtd methods for large problems. J. Appl.Comput. Electromag. Soc., 10(2):302–307, 1995. 102

[59] Steven E. Laux and Robert G. Byrnes. Semiconductor device simulation using generalized mobilitymodels. IBM J. Res. Dev., 29(3):289–301, May 1985. 106, 108, 115

[60] Akira Kato, Mitsutaka Katada, Toyoharu Kamiya, Toyoki Ito, and Tadashi Hattori. A rapid, stabledecoupled algorithm for solving semiconductor hydrodynamic equations. IEEE Trans. Computer-Aided Design, 13(11):1425–1428, 1994. 111

274

参考文献 参考文献

[61] A. Forghieri, R. Guerrieri, P. Ciampolini, A. Gnudi, and M. Rudan. A New Discretization Strategy ofthe Semiconductor Equations Comprising Momentum and Energy Balance. IEEE Trans. Computer-Aided Design, CAD-7:231–242, 1988. 111, 112

[62] T. W. Tang. Extension of the scharfetter-gummel algorithm to the energy balance equation. IEEETrans. Electron Devices, ED-31:1912–1914, 1984. 112

[63] Woo-Sung Choi, Jae-Gyung Ahn, and Young-June Park. A Time Dependent Hydrodynamic DeviceSimulator SNU-2D With New Discretization Scheme and Algorithm. IEEE Trans. Computer-AidedDesign, 13(7):899–908, 1994. 112

[64] A. Wettstein. Quantum Effects in MOS Devices. PhD thesis, Hartung-Gorre, Karlsruhe, 2000. 113

[65] A. Wettstein, A. Schenk, and W. Fichtner. Quantum Device-Simulation with the Density GradientModel on Unstructured Grids. IEEE Trans. Electron Devices, 48(2):279–284, Feb. 2001. 113

[66] SILVACO. ATLAS User’s Manual, March 2, 2007. 114

[67] Steven E. Laux and Bertrand M. Grossman. A General Control-Volumn Formulation for Model-ing Impact Ionization in Semiconductor Transport. IEEE Trans. Computer-Aided Design, CAD-4(4):520–526, Octoble 1985. 115

[68] C. R. Crowell and S. M. Sze. Current Transport in Metal-Semiconductor Barriers. Solid-State Elec-tronics, 9:1035–1048, 1966. 119

[69] K. Hess and G. J. Iafrate. Modern Aspects of Heterojunction Transport Theory. Elsevier SciencePublications, 1987. 122

[70] M.G. Ancona. On Ohmic Boundary Conditions for Density-Gradient Theory. Journal of Computa-tional Electronics, 1:103–107, 2002. 123

[71] Seonghoon Jin, Young June Park, and Hong Shick Min. A numerically efficient method for thehydrodynamic density-gradient model. In Simulation of Semiconductor Processes and Devices, 2003.123

[72] A. De Mari. An accurate numerical one-dimensional solution of the p-n junction under arbitrarytransient conditions. Solid-State Electronics, 11:1021–1053, 1968. 124

[73] C. W. Gear. Numerical Initial Value Problems in Ordinary Differential Equations. Prentice-Hall,1971. 124

[74] R. E. BANK, W. M. COUGHRAN, JR., WOLFGANG FICHTNER, E. H. GROSSE, D. J. ROSE,and R. KENT SMITH. Transient Simulation of Silicon Devices and Circuits. IEEE Trans. ElectronDevices, ED-32:1992–2007, 1985. 125

[75] Kartikeya Mayaram. CODECS: A Mixed-Level Circuit and Device Simulator. Memorandum No.UCB/ERL M88/71, Berkeley: University of California, 1988. 126, 148

275

参考文献 参考文献

[76] J. E. Dennis Jr. and Robert B. Schnabel. Numerical Methods for Unconstrained Optimization andNonlinear Equations. Prentice-Hall, 1983. 127, 128, 129

[77] D. G. Luenberger. Linear and Nonlinear Programming. Addison-Wesley, 2nd edition edition, 1984.128

[78] Peter N. Brown and Youcef Saad. Hybrid Krylov methods for nonlinear systems of equations. SIAMJ. Sci. Stat. Comput., 11:450–481, 1990. 130

[79] Argonne National Laboratory. PETSC User’s Manual, 2006. 132

[80] 张贤达. 矩阵分析与应用. 北京: 清华大学出版社, 2004. 132, 133

[81] 胡家赣. 线性代数方程组的迭代解法. 北京: 科学出版社, 1991. 132

[82] 蔡大用,白峰杉. 高等数值分析. 北京: 清华大学出版社, 1997. 137

[83] Bert Speelpenning. Compiling Fast Partial Derivatives of Functions Given by Algorithms. PhDthesis, University of Illinois at Urbana-Champaign, Department of Computer Science, January, 1980.138

[84] Paul D. Hovland and Boyana Norris. http://www.mcs.anl.gov/adic. Argonne National Laboratory. 138

[85] Andrea Walther, Andreas Kowarz, and Andreas Griewank. http://www.math.tu-dresden.de/ adol-c/.138

[86] S. E. Laux. Techniques for small-signal analysis of semiconductor devices. IEEE Trans. ElectronDevices, ED-32:2028–2037, Oct. 1985. 143

[87] Nenzi Paolo. NGSPICE User Manual. http://ngspice.sourceforge.net, 2005. 144

[88] William J. McCalla. Fundamentals of Computer-Aided Circuit Simulation. Boston: Kluwer Aca-demic Publishers, 1993. 144

[89] Mayaram Kartikeya and Donald O. Pederson. Coupling algorithms for mixed-level circuit and devicesimulation. IEEE Trans. Computer-Aided Design, II(8):1003–1012, 1992. 147

[90] Yu Zhiping, Robert W. Dutton, and Hui Wang, editors. A Modularized, Mixed IC Device/ CircuitSimulation System, Japan, April 1992. Proceedings of the Synthesis and Simulation Meeting andInternational Exchange. 147

[91] Thomas L. Quarles. Adding Devices to SPICE3. Memorandum No. UCB/ERL M89/45. Berkeley:University of California, 1989. 148

[92] Thomas L. Quarles. SPICE3 Implementation Guide. Memorandum No. UCB/ERL M89/44, Berke-ley: University of California, 1989. 148

276

参考文献 参考文献

[93] David Alan Gates. Design-Oriented Mixed-level Circuit and Device Simulation. Memorandum No.UCBERL M93/51, Berkeley: University of California, 1993. 148

[94] R.J.G. Goossens, S.G. Beebe, Yu Zhiping, and R.W. Dutton. An Automatic Biasing Scheme forTracing Arbitrarily Shaped I-V Curves. IEEE Trans. on Computer-Aided Design, 41:310–317, March1994. 149

[95] 金建铭著,王建国译. 电磁场有限元方法. 西安电子科技大学出版社, 1998. 152, 157

[96] JIN JIANMING. The Finite Element Method in Electromagnetics, Second Edition. A Wiley-Interscience Publication, 2002. 152, 154

[97] http://swiss.csail.mit.edu/ jaffer/FreeSnell/. 153

[98] Anastasis C.Polycarpou and Constantine A.Balanis. An optimized anisotropic pml for the analysis ofmicrowave circuits. IEEE MICROWAVE AND GUIDE WAVE LETTERS, 8(1):30–32, 1998. 155

[99] S. N. Rukin and E. A. Alichkin. Sos/dbd-based solid state switching for ultra-high-power short pulsegeneration. In Conference Record of the Twenty-Fifth International Power Modulator Symposiumand High-Voltage Workshop, volume 30, pages 178–182, Hollywood, 2002. 168

[100] C. A. Frost and R. J. Focia. Multi-kilovolt Solid-State Picosecond Switch Studies. In Digest ofTechnical Papers, volume 1, pages 17–22, Las Vegas, 2001. Pulsed Power Plasma Science. 170

[101] 亢宝位. 场效应晶体管理论基础. 科学出版社, 1985. 187

[102] Neil H. E. Weste and David Harris. CMOS VLSI Design: A Circuit and Systems Perspective, ThirdEdition. Pearson Education, 2005. 195

[103] V. Axelrad. Grid Quality and Its Influence on Accuracy and Convergence in Device Simulation. IEEETrans. Computer-Aided Design, 17(2):149–157, 1998. 256

277