Skip to content

SProcess Ch4:Atomistic KMC Diffusion

来源:sprocess_ug.pdf 第 4 章(W-2024.09,PDF p.434-p.634)。
说明:本页按原章小节顺序进行结构化逐段翻译,命令关键字、文件名、参数名与单位保持原样。

<details> <summary>本章目录</summary>

4.1 概述

本章说明 Sentaurus Process 中用于扩散与激活过程的原子级仿真方法,并介绍面状固相外延再生长(SPER)的替代实现。

第 3 章中的扩散模型属于传统连续介质(continuum)方法,需要求解描述掺杂输运与剂量守恒的一组 PDE。该方法在过去的器件设计中有效,但对于亚 100-nm 工艺,预测性逐步受限。

热预算缩小后,扩散量减小,但非平衡激活过程(掺杂-缺陷对、延伸缺陷)反而更重要。连续模型在这类问题上常需要为每种构型建立方程,方程规模迅速增大。

当阈值电压由几十到几百个杂质原子决定时,离散分布效应变强,连续描述会失去精度。基于 Monte Carlo 的扩散仿真在此场景下是有效替代。

4.2 动力学蒙特卡洛方法

Sentaurus Process KMC 只显式跟踪缺陷与杂质,不显式跟踪全部晶格原子(SPER 与外延模型除外),因此相较于分子动力学或晶格 KMC,大幅降低内存消耗。

KMC 的最小时间尺度通常对应点缺陷跳跃,约为 10^-9 s。当可动点缺陷耗尽后,时间步会自动放大到表面或延伸缺陷发射主导的尺度,约为 10^-3 s

因此仿真初期常见短步长,随后随缺陷被簇和延伸缺陷吸收,自动切换为大步长,能够覆盖工艺级时间窗口。

4.3 操作模式

原子模式

SetAtomistic 会执行以下动作:

  • AtomisticData 置为 true
  • 将扩散方法切换到 Sentaurus Process KMC
  • 将注入模式切换到 MC implantation
  • 调用 PDE2KMC 将已有连续场原子化

UnsetAtomistic 会调用 KMC2PDE,把原子信息回写到场并退出原子模式。

AtomisticData=true 时,KMC 默认不会自动写回连续场;如需场量需显式执行 kmc deatomize

限制

原子模式下限制如下:

  • 不可使用 transform stretch
  • load 仅接受 tdrreplace 参数

注入

implant 在原子模式下自动使用 Sentaurus MC 并传递完整 cascade;动态退火在注入过程中同步进行。

注入时间由 DoseRateImplant.tcl)决定,默认剂量率 1×10^12 /cm2 s。若 implant 命令中指定 dose.rate,则该步改用指定值。

示例:1×10^14 cm^-2 的硼剂量,40 × 40 nm2 表面区域对应约 1600 条硼 cascade。

分子注入也支持。以 BF2 为例,进入 KMC 后会拆分为 2F + 1B

扩散

注入后首个 diffuse 建议设置真实的升温段(ramp-up),使注入损伤先复合并形成簇,可提升后续结果可信度。

可用 PDB 参数自动启用温度斜坡:

  • automaticRampUp
  • automaticRampDown
  • rampUpRateC/s
  • rampDownRateC/s

示例:

tcl
sprocess> pdbGet KMC rampUpRate
100
sprocess> pdbGet KMC automaticRampUp
0

非原子模式

混合模式下可仅对某一步扩散调用 KMC:

tcl
diffuse kmc temperature=&lt;n&gt; time=&lt;n&gt;

流程是"进入该步前原子化、该步后反原子化",适合远离平衡的短时段(如 RTA)精细处理。

原子与非原子信息转换

连续场与粒子间转换由 PDE2KMC / KMC2PDE 完成。若需自定义映射,可重写:

  • PDE2KMCUser
  • KMC2PDEUser

示例(加入 He 映射):

tcl
fproc PDE2KMCUser {} {
  return "Helium He 1 \
HeInt Hei 1 \
HeVac HeV 1"
}

Sano方法

UnsetAtomistic sano 可调用 Sano 方法将粒子映射为更适于器件计算的连续剖面。推荐先设置自适应网格与 contact,再执行 UnsetAtomistic sano

4.4 仿真域

KMC 内部始终运行在 3D 域。

  • 若原结构是 2D,缺失方向由 MinZum/MaxZum 扩展。
  • 若原结构是 1D,默认由 MinYum/MaxYumMinZum/MaxZum 扩展。

可通过如下参数修改:

tcl
pdbSet KMC MinYum &lt;n&gt;
pdbSet KMC MaxYum &lt;n&gt;

建议:

  • 深亚微米 3D 且双对称器件,仿真域可取器件的四分之一。
  • 1D-SIMS 类流程,横向尺寸过小会放大噪声,通常不建议小于 20 nm
  • 对注入 cascade 与损伤累积,建议最小横向尺寸 40 × 40 nm2

4.5 内部网格

KMC 使用独立内部网格(与 Sentaurus Process 连续网格分离),用于几何材料存储、相互作用搜索、电子量计算与浓度输出基础体元。

关键点:

  • 网格最小单元约 0.4 × 0.4 × 0.4 nm3
  • 最小可用间距 4.0×10^-4 um(对应跳跃距离)
  • YMinCell/ZMinCell < 0.8 nm,长跳跃模式会被禁用

可通过 pdbSet KMC 参数与 refinebox kmc 自定义。

默认 SetAtomistic 会施加一组 refinebox kmc 细化,可重写 kmcDefaultRefinement 替换。

4.6 由格子动力学蒙特卡洛定义的原子界面

在 LKMC 外延场景,若界面由网格单元离散定义,可能出现"边界单元未填满导致掺杂暂时丢失"的伪影。

启用:

tcl
pdbSet KMC Atomistic.Interfaces 1

即可让 LKMC 原子结构实时定义 KMC 材料界面,减轻界面延迟更新问题。

图 1:KMC 事件选择流程与时间步演化(PDF p.457)

图 1:KMC 事件选择流程与时间步演化(章节图示页截图)

4.7 随机化/边界条件/并行化

随机化

统计波动分析可通过不同随机种子重复流程:

tcl
pdbSet KMC randomSeed &lt;n&gt;

randomSeed 允许范围:031328

边界条件

默认左右前后采用周期边界。可通过 KMC PeriodicBC.YKMC PeriodicBC.Z 调整。

若周期条件与横向几何不一致,KMC 会自动禁用并给出 warning。

可单独设置 sink 边界概率:

  • sinkProbLeft / sinkProbRight
  • sinkProbFront / sinkProbBack
  • sinkProbBottom

示例:

tcl
pdbSet Silicon KMC I sinkProbBottom IP 0.2

并行化

通过 math 命令设置并行线程:

tcl
math numThreadsKMC=&lt;i&gt;
math numThreadsDeatomize=&lt;i&gt;

并行模型假设 z 方向无各向异性,因此只允许 1D/2D 工艺域并行拆分(内部仍是 3D KMC)。

4.8 原子扩散

基本机制

非晶格 KMC 只追踪缺陷相关粒子,利用事件频率随机选择迁移/捕获/发射,时间步不是常数,而由当前可发生事件集合决定。

单位

章节中所有温度、时间、长度和浓度保持工艺常用单位体系(如 C, s, um, cm^-3)。

空间管理/材料和空间

KMC 将空间划分为内部元素以提升邻域搜索效率。材料从 Sentaurus Process 同步到 KMC 后,会检查界面与材料一致性;若几何过薄或网格畸形,会出现一致性 warning。

支持的材料模型

可为材料选择不同 KMC 模型,例如:

tcl
pdbSet AnotherSilicon KMC Model simple
pdbSet AnotherSilicon KMC Model discard
  • simple:保留简化行为
  • discard:该材料不进行 KMC 追踪

材料合金化

合金元素(如 Ge)可按准原子框架处理:Ge 作为场量影响能量项,不必总是作为独立粒子追踪。网格过粗会放大合金映射误差。

时间管理/CPU时间

CPU 时间近似与缺陷数、事件数、网格体素数成正相关。HoppingMode 与并行度会显著影响总时长。

快照/动画

快照参数:

  • Decade
  • InitOutputTime
  • maxSnapshots

Movie 钩子可在每个快照执行 Tcl 逻辑,例如动态写 TDR 或实时绘图:

tcl
pdbSet KMC Movie {kmc extract tdrAdd concentrations defects}
tcl
pdbSet KMC Movie {
  kmc deatomize name=ITotal; sel z=log(ITotal+1); plot.1d label=I clear;
  kmc deatomize name=VTotal; sel z=log(VTotal+1); plot.1d label=V !clear
}

4.9 粒子

kmc particletypes 可列出当前粒子集合。默认包含 I/V 多电荷态与常见掺杂/配对粒子。

命名注意:末尾 P 表示正电荷,因此含 phosphorus 的簇名不能写成末尾 P 形式,避免语义冲突。

模型中的粒子

通过下列参数定义允许杂质及配对:

tcl
pdbSet KMC Impurities As,1 true
pdbSet KMC Impurities B,-1 true

pdbSet KMC Pairs Asi,As,I,0 true
pdbSet KMC Pairs AsV,As,V,0 true
pdbSet KMC Pairs Bi,B,I,0 true

别名/颜色/参数

  • 别名:KMC Aliases
  • 颜色:KMC Colors#rrggbb
  • 参数族:Dm, Em, VD, VF, ReactionsPointDefect, Implement.Complex

取消定义粒子

tcl
pdbSet KMC Impurities In,-1 false
pdbSet KMC Pairs BiP,B,I,1 false

可减少不需要粒子带来的内存与 CPU 开销。

4.10 点缺陷、杂质、掺杂剂和杂质配对点缺陷

间隙原子和空位

I/V 迁移频率由前因子 Dm、迁移能 Em、应力激活体积 VD 与 Ge 修正 EmGe 共同决定。

典型查询:

tcl
sprocess> pdbGet Si KMC I Dm
sprocess> pdbGet Si KMC I Em
sprocess> pdbGet Si KMC I VD
sprocess> pdbGet Si KMC I EmGe

跳跃长度对应硅第二近邻距离,约 0.384 nm

配对扩散/分离

Bi 为例:替位 B 与 I 结合形成可动对,迁移后可 breakup 回 B + I。宏观有效扩散不仅取决于配对迁移,也取决于 breakup 频率。

跳跃模式

tcl
pdbSet KMC HoppingMode &lt;mode&gt;

&lt;mode&gt; 可选:short, long, double, longdouble(默认)。

  • short:固定短跳
  • long:空区长跳,提升性能
  • double:双跳合并
  • longdouble:组合最快

启用和禁用相互作用

通过 ReactionsPointDefect 开关反应:

tcl
pdbSet &lt;material&gt; KMC &lt;dopant&gt; ReactionsPointDefect &lt;string&gt; &lt;true | false&gt;

例如:

tcl
pdbSet Si KMC C ReactionsPointDefect C,V true

相互作用规则

反应需满足:

  • 参与粒子已定义
  • 结果粒子/簇已定义
  • 满足微观可逆性
  • 排斥反应默认禁止(渗流模型例外)

应力耦合

tcl
pdbSet KMC Stress 1
# 或
 diffuse kmc.stress time=...

KMC 使用来自 Sentaurus Process 的应力场,每个 diffuse 步更新。ChangeAxis 可控制是否按主应力轴旋转扩散方向。

4.11 杂质团簇

杂质簇可视为无序聚集体(如 AnXm 或多杂质扩展形式),支持迁移、捕获、发射、重组。

簇扩散参数:

  • Dm.Complex
  • Em.Complex

示例:

tcl
sprocess> pdbGet Si KMC As Dm.Complex As2V
sprocess> pdbGet Si KMC As Em.Complex As2V

簇增长通过捕获中性移动粒子实现,概率由捕获势垒与绑定能共同决定。相关参数包括:

  • Etotal.Complex
  • VF.Complex
  • EbarrierIV.Complex
  • EbarrierDopant.Complex
  • CaptVol.Complex

限制项:

  • 杂质簇扩散默认无 SiGe/应力/电荷依赖
  • 不参与长跳/双跳加速
  • 与界面作用按模型配置,常见设置下可近似镜像边界

4.12 费米能级效应:电荷模型

电荷态模型通过能级参数 e0 与带隙模型参数联立计算费米能级与本征载流子浓度。

示例:

tcl
pdbSet Si KMC I e0 IP 0.35

sprocess> pdbGet Si KMC BandGap Eg0
sprocess> pdbGet Si KMC BandGap Agap
sprocess> pdbGet Si KMC BandGap Bgap
sprocess> pdbGet Si KMC BandGap Nc300
sprocess> pdbGet Si KMC BandGap Nv300
sprocess> pdbGet Si KMC BandGap expNc
sprocess> pdbGet Si KMC BandGap expNv

局部费米能级按体元统计平滑处理,核心参数:

  • Smooth.Radius
  • Smooth.Power

平滑可避免"稀疏粒子导致局部极端电荷"的数值伪影。

4.13 界面和表面

章节给出界面与表面的点缺陷注入/复合模型,并将 PDE 侧 ReactionSpeed 与 KMC 侧注入前因子耦合。

OED / 氮化注入

OED 模型可在氧化期间给出更合理的点缺陷注入。若不希望网格随氧化前沿移动:

tcl
pdbSet Grid Reaction.Modify.Mesh 0

氮化中可用同一参数框架,需显式开启:

tcl
pdbSet Nitride KMC Oxide true

杂质界面

杂质界面遵循三相偏析框架,可在界面两侧发射、也可陷获于界面。

4.14 包含新杂质

可在命令文件中扩展新杂质,无需改动发行版内置文件。推荐步骤:

  1. KMC Impurities 注册新杂质
  2. KMC Pairs 注册相关 pair
  3. 补齐允许电荷态参数
  4. 更新 KMC Aliases / KMC Colors(可选)
  5. 定义材料参数与界面参数
  6. 补齐 ReactionsPointDefect 与簇反应
  7. 必要时重写 PDE2KMCUser / KMC2PDEUser

类似继承

tcl
pdbKMCLike &lt;new_impurity&gt; &lt;impurity&gt; &lt;symbol&gt; &lt;charge&gt;

pdbKMCLike Aluminum Boron Al -1
pdbKMCLike Xenon Impurity Xe 0

无配对扩散

无配对扩散适用于中性杂质场景,替位杂质可直接迁移,pair 可存在但不必承担主要扩散。

示例(F):

tcl
sprocess> pdbGet Silicon KMC F Dm
F 5e-3
FV 0
FI 0

sprocess> pdbGet Silicon KMC F Em
F .8
FV 5
FI 5

4.15 报告

KMC 日志提供多种报告:

  • Models used
  • Particle distribution
  • Cluster distribution
  • Defect activity
  • Interactions
  • Event

诊断重点:

  • Defect activity:看某模型首次/末次活跃时间与温度
  • Interactions:看主导反应通道(如 I+V 是否远高于次要通道)
  • Event:看跳跃方向计数与 breakup 次数,用于判断各粒子稳定性与扩散主导机制

4.16 提取KMC相关信息

两类提取路径

  • 经 Sentaurus Process 接口(structselectprintWritePlxplot
  • 直接调用 KMC 内核(kmc extract ...

去原子化

tcl
kmc deatomize name=&lt;c&gt;

用于把粒子信息映射为连续场。字段创建后不会自动持续刷新,后续步骤需要再次调用。

平滑

tcl
pdbSet KMC Smooth.Field &lt;field&gt; &lt;n&gt;

用于平滑 deatomize 后的离散噪声;超大网格时可能耗时较高。

添加/读写缺陷

tcl
kmc add queue name=&lt;c&gt; coordx=&lt;n&gt; coordy=&lt;n&gt; coordz=&lt;n&gt; [amorphous] [crystalline]
kmc add
kmc defects.read= my_filename
kmc defects.write= my_filename

混合模式下拓扑变更后需显式:

tcl
kmc remesh

直接导出 TDR 与剖面

tcl
kmc extract tdrAdd [concentrations] [defects] [Stress] [histogram] [visual=&lt;list&gt;] [list=&lt;list&gt;]
kmc extract tdrWrite filename=&lt;c&gt;
tcl
kmc extract diffusivity
kmc extract histogram name=&lt;c&gt; [meansize [minsize=&lt;n&gt;]] [materialname=&lt;c&gt;]
kmc extract profile name=&lt;c&gt; [defectname=&lt;c&gt;] [materialname=&lt;c&gt;] [timeaveraged]
kmc extract supersaturation name=&lt;I|V&gt;
kmc extract defects name=&lt;c&gt; defectname=&lt;c&gt;
kmc extract dose name=&lt;c&gt; defectname=&lt;c&gt;
kmc extract materials [detailed]

图 2:KMC TDR 可视化示例(PDF p.606)

图 2:KMC TDR 可视化输出示例(章节图示页截图)

图 3:KMC profile 提取示例(PDF p.615)

图 3:kmc extract profile 示例图(章节图示页截图)

4.17 Sentaurus Process KMC高级标定

章节强烈建议使用 Advanced Calibration。默认参数继承自旧版本,未必适配现代工艺。

调用方式:

tcl
SetAtomistic
...
AdvancedCalibration

混合模式或 diffuse kmc 流程推荐:

tcl
AdvancedCalibration KMC

4.18 最小可执行示例

下面给出一个"可直接跑通 KMC 注入 + 退火 + 提取"的最小脚本骨架(示意)。

tcl
# ---- geometry / mesh ----
line x location=0.0 spacing=1&lt;nm&gt;
line x location=0.2&lt;um&gt; spacing=2&lt;nm&gt;
line y location=0.0 spacing=20&lt;nm&gt;
line y location=0.04&lt;um&gt; spacing=20&lt;nm&gt;
region Silicon xlo=0 xhi=0.2&lt;um&gt; ylo=0 yhi=0.04&lt;um&gt;
init silicon c.boron=1e15&lt;cm-3&gt;

# ---- KMC setup ----
SetAtomistic
pdbSet KMC randomSeed 1234
pdbSet KMC automaticRampUp 1
pdbSet KMC rampUpRate 100
math numThreadsKMC=8

# ---- implant + anneal ----
implant Boron dose=1e14&lt;cm-2&gt; energy=2&lt;keV&gt; tilt=0 rotation=0
# 混合模式可显式写 diffuse kmc;原子模式下 diffuse 也会走 KMC
# diffuse kmc temperature=950&lt;C&gt; time=10&lt;s&gt;
diffuse temperature=950&lt;C&gt; time=10&lt;s&gt;

# ---- extraction ----
kmc deatomize name=BTotal
kmc deatomize name=NetActive
SetPlxList BTotal NetActive
WritePlx ch4-akmc-boron
struct tdr=ch4-akmc !Gas

4.19 关键参数速查表

参数作用常见设置备注
AtomisticData原子模式开关SetAtomistic / UnsetAtomistic控制是否保持粒子表示
automaticRampUp / automaticRampDown自动温度斜坡0 / 1rampUpRate / rampDownRate 联动
rampUpRate / rampDownRate斜坡速率100 C/s(示例)建议按设备真实热历程设置
randomSeed随机数种子0..31328用于统计波动复现实验
MinYum / MaxYum / MinZum / MaxZum低维流程的横向扩展按结构尺寸1D/2D 会自动扩展为 3D
YMinCell / ZMinCell内部网格最小单元>= 4.0e-4 um小于 0.8 nm 时长跳会被禁用
Atomistic.InterfacesLKMC 实时界面0 / 1外延等界面移动场景建议开启
KMC PeriodicBC.Y / KMC PeriodicBC.Z周期边界视结构选择几何不匹配会被自动禁用
sinkProb*边界 sink 概率0..1可按方向独立设置
numThreadsKMCKMC 并行线程math numThreadsKMC=&lt;i&gt;仅 1D/2D 域允许并行拆分
HoppingMode跳跃模式short/long/double/longdoublelongdouble 常为最快
Stress / ChangeAxis应力耦合与轴旋转pdbSet KMC Stress 1ChangeAxis 会显著影响迁移方向
Smooth.Fielddeatomize 后平滑pdbSet KMC Smooth.Field NetActive 1网格很大时可能耗时
VisualizeDamage可视化损伤采样率默认 50设为 1 会显示全部粒子
Decade / maxSnapshots快照频率与缓存按仿真时长设置过大可能造成 I/O 压力
Implement.Complex是否启用杂质簇true/false高浓度激活/失活通常需要

4.20 常见问题与诊断步骤

问题 1:注入后结果噪声很大

诊断:

  1. 检查横向尺寸是否过小(建议不小于 40 × 40 nm2
  2. 检查粒子数是否足够(剂量与面积乘积)
  3. 检查 randomSeed 是否固定导致单次样本偏差

处理:

  • 增大横向尺寸
  • 做多随机种子统计
  • 开启并行降低统计样本成本

问题 2:周期边界被自动关闭

诊断:日志出现"material structure is not the same ... periodic boundary ... disabled"。

处理:

  • 对 3D 横向非均匀结构,关闭对应周期边界
  • 必要时改用 sinkProb* 或反射边界

问题 3:select/plot/WritePlx 读不到 KMC 结果

诊断:原子模式下未创建连续场。

处理:

  • 先执行 kmc deatomize name=&lt;field&gt;
  • 多步流程中每次更新后重新 deatomize

问题 4:混合模式几何变化后粒子"残留"

诊断:etch/strip 后 KMC 结构未同步。

处理:

  • 在几何变化步骤后立即执行 kmc remesh

问题 5:仿真很慢

诊断:

  1. 网格过细或体域过大
  2. 粒子/簇定义过多
  3. Smooth.Field 在超大网格上过重

处理:

  • 优化内部网格与域尺寸
  • 关闭不使用粒子(KMC Impurities ... false
  • 只对必要场做平滑

4.21 参考文献

本章原文引用文献编号沿用 sprocess_ug.pdf 第 4 章末尾 References([1] 起)。实际条目请以原手册末尾列表为准。


Sentaurus Process User Guide W-2024.09 Chapter 4 结构化译稿(首版)

基于 Sentaurus TCAD 官方文档构建

代码块