Appearance
SProcess Ch4:Atomistic KMC Diffusion
来源:
sprocess_ug.pdf第 4 章(W-2024.09,PDF p.434-p.634)。
说明:本页按原章小节顺序进行结构化逐段翻译,命令关键字、文件名、参数名与单位保持原样。
<details> <summary>本章目录</summary>
- 4.1 概述
- 4.2 动力学蒙特卡洛方法
- 4.3 操作模式
- 4.4 仿真域
- 4.5 内部网格
- 4.6 由格子动力学蒙特卡洛定义的原子界面
- 4.7 随机化/边界条件/并行化
- 4.8 原子扩散
- 4.9 粒子
- 4.10 点缺陷、杂质、掺杂剂和杂质配对点缺陷
- 4.11 杂质团簇
- 4.12 费米能级效应:电荷模型
- 4.13 界面和表面
- 4.14 包含新杂质
- 4.15 报告
- 4.16 提取KMC相关信息
- 4.17 Sentaurus Process KMC高级标定
- 4.18 最小可执行示例
- 4.19 关键参数速查表
- 4.20 常见问题与诊断步骤
- 4.21 参考文献 </details>
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仅接受tdr与replace参数
注入
implant 在原子模式下自动使用 Sentaurus MC 并传递完整 cascade;动态退火在注入过程中同步进行。
注入时间由 DoseRate(Implant.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 参数自动启用温度斜坡:
automaticRampUpautomaticRampDownrampUpRate(C/s)rampDownRate(C/s)
示例:
tcl
sprocess> pdbGet KMC rampUpRate
100
sprocess> pdbGet KMC automaticRampUp
0非原子模式
混合模式下可仅对某一步扩散调用 KMC:
tcl
diffuse kmc temperature=<n> time=<n>流程是"进入该步前原子化、该步后反原子化",适合远离平衡的短时段(如 RTA)精细处理。
原子与非原子信息转换
连续场与粒子间转换由 PDE2KMC / KMC2PDE 完成。若需自定义映射,可重写:
PDE2KMCUserKMC2PDEUser
示例(加入 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/MaxYum与MinZum/MaxZum扩展。
可通过如下参数修改:
tcl
pdbSet KMC MinYum <n>
pdbSet KMC MaxYum <n>建议:
- 深亚微米 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 事件选择流程与时间步演化(章节图示页截图)
4.7 随机化/边界条件/并行化
随机化
统计波动分析可通过不同随机种子重复流程:
tcl
pdbSet KMC randomSeed <n>randomSeed 允许范围:0 到 31328。
边界条件
默认左右前后采用周期边界。可通过 KMC PeriodicBC.Y、KMC PeriodicBC.Z 调整。
若周期条件与横向几何不一致,KMC 会自动禁用并给出 warning。
可单独设置 sink 边界概率:
sinkProbLeft/sinkProbRightsinkProbFront/sinkProbBacksinkProbBottom
示例:
tcl
pdbSet Silicon KMC I sinkProbBottom IP 0.2并行化
通过 math 命令设置并行线程:
tcl
math numThreadsKMC=<i>
math numThreadsDeatomize=<i>并行模型假设 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 discardsimple:保留简化行为discard:该材料不进行 KMC 追踪
材料合金化
合金元素(如 Ge)可按准原子框架处理:Ge 作为场量影响能量项,不必总是作为独立粒子追踪。网格过粗会放大合金映射误差。
时间管理/CPU时间
CPU 时间近似与缺陷数、事件数、网格体素数成正相关。HoppingMode 与并行度会显著影响总时长。
快照/动画
快照参数:
DecadeInitOutputTimemaxSnapshots
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 <mode><mode> 可选:short, long, double, longdouble(默认)。
short:固定短跳long:空区长跳,提升性能double:双跳合并longdouble:组合最快
启用和禁用相互作用
通过 ReactionsPointDefect 开关反应:
tcl
pdbSet <material> KMC <dopant> ReactionsPointDefect <string> <true | false>例如:
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.ComplexEm.Complex
示例:
tcl
sprocess> pdbGet Si KMC As Dm.Complex As2V
sprocess> pdbGet Si KMC As Em.Complex As2V簇增长通过捕获中性移动粒子实现,概率由捕获势垒与绑定能共同决定。相关参数包括:
Etotal.ComplexVF.ComplexEbarrierIV.ComplexEbarrierDopant.ComplexCaptVol.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.RadiusSmooth.Power
平滑可避免"稀疏粒子导致局部极端电荷"的数值伪影。
4.13 界面和表面
章节给出界面与表面的点缺陷注入/复合模型,并将 PDE 侧 ReactionSpeed 与 KMC 侧注入前因子耦合。
OED / 氮化注入
OED 模型可在氧化期间给出更合理的点缺陷注入。若不希望网格随氧化前沿移动:
tcl
pdbSet Grid Reaction.Modify.Mesh 0氮化中可用同一参数框架,需显式开启:
tcl
pdbSet Nitride KMC Oxide true杂质界面
杂质界面遵循三相偏析框架,可在界面两侧发射、也可陷获于界面。
4.14 包含新杂质
可在命令文件中扩展新杂质,无需改动发行版内置文件。推荐步骤:
- 在
KMC Impurities注册新杂质 - 在
KMC Pairs注册相关 pair - 补齐允许电荷态参数
- 更新
KMC Aliases/KMC Colors(可选) - 定义材料参数与界面参数
- 补齐
ReactionsPointDefect与簇反应 - 必要时重写
PDE2KMCUser/KMC2PDEUser
类似继承
tcl
pdbKMCLike <new_impurity> <impurity> <symbol> <charge>
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 54.15 报告
KMC 日志提供多种报告:
- Models used
- Particle distribution
- Cluster distribution
- Defect activity
- Interactions
- Event
诊断重点:
Defect activity:看某模型首次/末次活跃时间与温度Interactions:看主导反应通道(如I+V是否远高于次要通道)Event:看跳跃方向计数与 breakup 次数,用于判断各粒子稳定性与扩散主导机制
4.16 提取KMC相关信息
两类提取路径
- 经 Sentaurus Process 接口(
struct、select、print、WritePlx、plot) - 直接调用 KMC 内核(
kmc extract ...)
去原子化
tcl
kmc deatomize name=<c>用于把粒子信息映射为连续场。字段创建后不会自动持续刷新,后续步骤需要再次调用。
平滑
tcl
pdbSet KMC Smooth.Field <field> <n>用于平滑 deatomize 后的离散噪声;超大网格时可能耗时较高。
添加/读写缺陷
tcl
kmc add queue name=<c> coordx=<n> coordy=<n> coordz=<n> [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=<list>] [list=<list>]
kmc extract tdrWrite filename=<c>tcl
kmc extract diffusivity
kmc extract histogram name=<c> [meansize [minsize=<n>]] [materialname=<c>]
kmc extract profile name=<c> [defectname=<c>] [materialname=<c>] [timeaveraged]
kmc extract supersaturation name=<I|V>
kmc extract defects name=<c> defectname=<c>
kmc extract dose name=<c> defectname=<c>
kmc extract materials [detailed]
图 2:KMC TDR 可视化输出示例(章节图示页截图)

图 3:kmc extract profile 示例图(章节图示页截图)
4.17 Sentaurus Process KMC高级标定
章节强烈建议使用 Advanced Calibration。默认参数继承自旧版本,未必适配现代工艺。
调用方式:
tcl
SetAtomistic
...
AdvancedCalibration混合模式或 diffuse kmc 流程推荐:
tcl
AdvancedCalibration KMC4.18 最小可执行示例
下面给出一个"可直接跑通 KMC 注入 + 退火 + 提取"的最小脚本骨架(示意)。
tcl
# ---- geometry / mesh ----
line x location=0.0 spacing=1<nm>
line x location=0.2<um> spacing=2<nm>
line y location=0.0 spacing=20<nm>
line y location=0.04<um> spacing=20<nm>
region Silicon xlo=0 xhi=0.2<um> ylo=0 yhi=0.04<um>
init silicon c.boron=1e15<cm-3>
# ---- KMC setup ----
SetAtomistic
pdbSet KMC randomSeed 1234
pdbSet KMC automaticRampUp 1
pdbSet KMC rampUpRate 100
math numThreadsKMC=8
# ---- implant + anneal ----
implant Boron dose=1e14<cm-2> energy=2<keV> tilt=0 rotation=0
# 混合模式可显式写 diffuse kmc;原子模式下 diffuse 也会走 KMC
# diffuse kmc temperature=950<C> time=10<s>
diffuse temperature=950<C> time=10<s>
# ---- extraction ----
kmc deatomize name=BTotal
kmc deatomize name=NetActive
SetPlxList BTotal NetActive
WritePlx ch4-akmc-boron
struct tdr=ch4-akmc !Gas4.19 关键参数速查表
| 参数 | 作用 | 常见设置 | 备注 |
|---|---|---|---|
AtomisticData | 原子模式开关 | SetAtomistic / UnsetAtomistic | 控制是否保持粒子表示 |
automaticRampUp / automaticRampDown | 自动温度斜坡 | 0 / 1 | 与 rampUpRate / 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.Interfaces | LKMC 实时界面 | 0 / 1 | 外延等界面移动场景建议开启 |
KMC PeriodicBC.Y / KMC PeriodicBC.Z | 周期边界 | 视结构选择 | 几何不匹配会被自动禁用 |
sinkProb* | 边界 sink 概率 | 0..1 | 可按方向独立设置 |
numThreadsKMC | KMC 并行线程 | math numThreadsKMC=<i> | 仅 1D/2D 域允许并行拆分 |
HoppingMode | 跳跃模式 | short/long/double/longdouble | longdouble 常为最快 |
Stress / ChangeAxis | 应力耦合与轴旋转 | pdbSet KMC Stress 1 | ChangeAxis 会显著影响迁移方向 |
Smooth.Field | deatomize 后平滑 | pdbSet KMC Smooth.Field NetActive 1 | 网格很大时可能耗时 |
VisualizeDamage | 可视化损伤采样率 | 默认 50 | 设为 1 会显示全部粒子 |
Decade / maxSnapshots | 快照频率与缓存 | 按仿真时长设置 | 过大可能造成 I/O 压力 |
Implement.Complex | 是否启用杂质簇 | true/false | 高浓度激活/失活通常需要 |
4.20 常见问题与诊断步骤
问题 1:注入后结果噪声很大
诊断:
- 检查横向尺寸是否过小(建议不小于
40 × 40 nm2) - 检查粒子数是否足够(剂量与面积乘积)
- 检查
randomSeed是否固定导致单次样本偏差
处理:
- 增大横向尺寸
- 做多随机种子统计
- 开启并行降低统计样本成本
问题 2:周期边界被自动关闭
诊断:日志出现"material structure is not the same ... periodic boundary ... disabled"。
处理:
- 对 3D 横向非均匀结构,关闭对应周期边界
- 必要时改用
sinkProb*或反射边界
问题 3:select/plot/WritePlx 读不到 KMC 结果
诊断:原子模式下未创建连续场。
处理:
- 先执行
kmc deatomize name=<field> - 多步流程中每次更新后重新 deatomize
问题 4:混合模式几何变化后粒子"残留"
诊断:etch/strip 后 KMC 结构未同步。
处理:
- 在几何变化步骤后立即执行
kmc remesh
问题 5:仿真很慢
诊断:
- 网格过细或体域过大
- 粒子/簇定义过多
Smooth.Field在超大网格上过重
处理:
- 优化内部网格与域尺寸
- 关闭不使用粒子(
KMC Impurities ... false) - 只对必要场做平滑
4.21 参考文献
本章原文引用文献编号沿用 sprocess_ug.pdf 第 4 章末尾 References([1] 起)。实际条目请以原手册末尾列表为准。
Sentaurus Process User Guide W-2024.09 Chapter 4 结构化译稿(首版)