2. TCAD仿真环境搭建:Sentaurus/Silvaco工具链介绍、项目创建与文件结构
TCAD(Technology Computer-Aided Design)仿真是连接工艺制造与器件物理的桥梁。本章将系统介绍业界主流的两大TCAD工具链——Synopsys Sentaurus与Silvaco Victory/Athena,并详细讲解仿真项目的创建流程、目录结构与关键文件类型。掌握这些基础环境搭建技能,是后续进行MOSFET沟道掺杂与阈值电压控制仿真的前提。
2.1 主流TCAD工具链对比
目前半导体行业广泛使用的TCAD工具主要来自两家供应商:Synopsys(Sentaurus系列)与Silvaco(Victory/Athena系列)。两者在物理模型、求解器效率、用户界面和脚本语言上各有特点。下表从多个维度对两大工具链进行对比:
| 对比维度 | Synopsys Sentaurus | Silvaco Victory/Athena |
|---|---|---|
| 工艺仿真引擎 | Sentaurus Process(一维/二维/三维) | Athena(二维工艺仿真) |
| 器件仿真引擎 | Sentaurus Device(漂移-扩散、流体动力学、蒙特卡洛) | Victory Device / Atlas(漂移-扩散、能量平衡) |
| 可视化工具 | Sentaurus Visual / Inspect | TonyPlot / DeckBuild |
| 脚本语言 | Scheme(SDE/SProcess脚本)+ Tcl(SWB) | DeckBuild脚本(类SPICE语法) |
| 网格生成 | Sentaurus Mesh(Noffset3D / Mesh) | Victory Mesh / Athena自动网格 |
| 典型应用场景 | 先进节点(7nm以下)、FinFET、GAA、应力工程 | 成熟节点(28nm以上)、功率器件、光电器件 |
| 许可证模式 | 按功能模块浮动许可 | 按产品线浮动许可 |
2.2 Sentaurus工具链核心组件详解
Sentaurus工具链采用模块化架构,每个组件负责仿真流程中的一个特定阶段。下图展示了Sentaurus工具链的典型工作流及各组件之间的数据传递关系:
2.3 项目创建与目录结构
一个规范的TCAD仿真项目需要遵循标准化的目录结构,以便于管理多个仿真版本、输入文件、输出数据和脚本。以下是本课程推荐的Sentaurus项目目录模板:
mkdir -p MOSFET_Vth_Project/{sde,sprocess,smesh,sdevice,plot,scripts} 命令即可一键创建上述目录结构。每个子目录内建议再创建 input/ 和 output/ 子目录以进一步分离文件。
2.4 关键文件类型与格式
TCAD仿真过程中涉及多种文件格式,理解每种文件的用途和结构是高效调试的基础。下表列出了Sentaurus工具链中最常见的文件类型:
| 文件扩展名 | 文件类型 | 生成工具 | 内容说明 |
|---|---|---|---|
.scm |
Scheme脚本 | SDE | 器件几何结构定义脚本,包含区域、掺杂、电极等参数 |
.cmd |
命令文件 | SProcess/SMesh/SDevice | ASCII文本格式,包含仿真控制语句、物理模型选择、求解参数 |
.tdr |
TCAD数据记录 | 所有工具 | 二进制/ASCII混合格式,存储网格、掺杂分布、电势、载流子浓度等场量 |
.plt |
曲线数据 | SProcess/SDevice | 一维曲线数据(如掺杂剖面、I-V曲线),可用TonyPlot或SVisual打开 |
.log |
日志文件 | SDevice | ASCII文本,记录仿真过程中的电压/电流点、收敛信息、错误提示 |
.bnd |
边界文件 | SDE | 存储器件几何边界信息,供SProcess识别结构区域 |
.par |
参数文件 | 用户自定义 | 包含材料参数、物理模型参数,可在.cmd中通过ParameterSet引用 |
2.5 创建第一个MOSFET仿真项目
下面通过一个实际步骤演示如何创建一个用于沟道掺杂研究的MOSFET仿真项目。我们将使用Sentaurus Workbench (SWB) 作为项目集成环境,但也会说明手动创建项目的方法。
2.5.1 使用Sentaurus Workbench创建项目
- 启动SWB: 在终端输入
swb &,打开Sentaurus Workbench图形界面。 - 新建项目: 点击
File → New → Project,输入项目名称MOSFET_Vth_Control,选择保存路径。 - 添加工具节点: 在项目树中右键点击
Add Tool,依次添加SDE、SProcess、SMesh、SDevice、SVisual节点。 - 配置节点依赖: 将SDE输出连接到SProcess输入,SProcess输出连接到SMesh输入,SMesh输出连接到SDevice输入,SDevice输出连接到SVisual输入。
- 设置全局变量: 在SWB的
Variables面板中定义工艺参数变量,如沟道掺杂浓度Nch、栅氧厚度tox、沟道长度Lg等。 - 保存并生成目录结构: SWB会自动按照工具节点创建对应的子目录和文件模板。
2.5.2 手动创建项目(推荐用于学习)
手动创建项目有助于深入理解每个文件的作用。以下是手动创建项目的核心步骤:
# 1. 创建项目根目录
mkdir -p ~/tcad_projects/MOSFET_Vth_Manual
cd ~/tcad_projects/MOSFET_Vth_Manual
# 2. 创建子目录
mkdir -p sde sprocess smesh sdevice plot scripts
# 3. 创建SDE脚本文件 (sde/mosfet_des.scm)
cat > sde/mosfet_des.scm << 'EOF'
; MOSFET结构定义 - 沟道掺杂参数化
(sde:set-process "2D")
(sde:create-rectangle "name" "Silicon" "xmin" 0.0 "xmax" 1.0 "ymin" 0.0 "ymax" 0.5)
(sde:create-rectangle "name" "GateOxide" "xmin" 0.3 "xmax" 0.7 "ymin" 0.5 "ymax" 0.52)
(sde:create-rectangle "name" "PolyGate" "xmin" 0.3 "xmax" 0.7 "ymin" 0.52 "ymax" 0.62)
(sde:define-contact "name" "Gate" "xmin" 0.3 "xmax" 0.7 "ymin" 0.62 "ymax" 0.62)
(sde:define-contact "name" "Source" "xmin" 0.0 "xmax" 0.1 "ymin" 0.0 "ymax" 0.0)
(sde:define-contact "name" "Drain" "xmin" 0.9 "xmax" 1.0 "ymin" 0.0 "ymax" 0.0)
(sde:define-contact "name" "Substrate" "xmin" 0.0 "xmax" 1.0 "ymin" 0.0 "ymax" 0.0)
(sde:save-model "mosfet_des")
EOF
# 4. 创建SProcess命令文件 (sprocess/process.cmd)
cat > sprocess/process.cmd << 'EOF'
# 工艺仿真命令 - 沟道注入与退火
SetP "Nch" 1e17
SetP "Egate" 30
SetP "Dgate" 1e15
Line x loc=0.0 spac=0.01 tag=Left
Line x loc=1.0 spac=0.01 tag=Right
Line y loc=0.0 spac=0.005 tag=Bottom
Line y loc=0.5 spac=0.01 tag=Top
Region Silicon xlo=Left xhi=Right ylo=Bottom yhi=Top
Init Silicon Concentration=1e15 Orientation=100
Implant Boron Dose=@Dgate@ Energy=@Egate@ Tilt=0 Rotation=0
Diffuse Temperature=950 Time=30
SaveMesh mosfet_after_imp
EOF
# 5. 创建SDevice命令文件 (sdevice/device.cmd)
cat > sdevice/device.cmd << 'EOF'
# 器件仿真命令 - 转移特性扫描
Device MOSFET {
Electrode {
{Name="Gate" Voltage=0.0}
{Name="Source" Voltage=0.0}
{Name="Drain" Voltage=0.05}
{Name="Substrate" Voltage=0.0}
}
Physics {
Mobility(DopingDep HighFieldSat Enormal)
EffectiveIntrinsicDensity(BandGapNarrowing)
}
Plot {
eDensity hDensity Potential ElectricField
}
Math {
Extrapolate RelErrControl
Iterations=20
}
Solve {
Coupled {Poisson Electron Hole}
Quasistationary (InitialStep=0.01 MaxStep=0.05 MinStep=1e-5
Goal {Name="Gate" Voltage=1.5})
{Coupled {Poisson Electron Hole}}
}
}
EOF
echo "项目创建完成!"
- 文件路径中不要包含中文或空格,否则可能导致Sentaurus工具无法正确读取文件。
- SProcess中的
@变量名@语法用于引用SWB全局变量;若手动运行,需替换为具体数值。 - SDevice的
Math块中Iterations设置过小可能导致不收敛,建议从20开始调整。
2.6 仿真流程执行与监控
完成项目创建和脚本编写后,即可执行仿真流程。以下是两种执行方式:
- SWB图形化执行: 在SWB界面中点击
Run按钮,工具链将按依赖顺序自动执行每个节点。绿色指示灯表示成功,红色表示失败。 - 命令行执行: 进入对应子目录,手动调用工具引擎。例如:
cd sprocess sprocess process.cmd cd ../sdevice sdevice device.cmd
仿真过程中,建议打开 .log 文件实时监控收敛情况。以下是一个典型的SDevice日志片段:
# 从 sdevice/mosfet.log 中截取
Initial guess: V(Gate)=0.0000 V, V(Drain)=0.0500 V
Newton iteration: 1, |F| = 2.34e-02, |dV| = 1.21e-02
Newton iteration: 2, |F| = 4.56e-04, |dV| = 3.78e-04
Newton iteration: 3, |F| = 1.23e-06, |dV| = 9.87e-07
Solution converged after 3 iterations.
V(Gate)=0.1000 V, I(Drain)=1.23e-12 A
...
|F|(残差范数)小于 1e-5 且 |dV|(更新步长)小于 1e-4 时,通常认为仿真已收敛。若迭代次数超过20次仍未收敛,需检查网格质量或物理模型设置。
2.7 本章小结
本章完成了TCAD仿真环境的搭建工作,重点包括:
- 对比了Sentaurus与Silvaco两大工具链的组件构成与适用场景。
- 详细解析了Sentaurus工具链中SDE、SProcess、SMesh、SDevice、SVisual、Inspect六个核心组件的功能与数据流。
- 建立了标准化的项目目录结构,并说明了各子目录的用途。
- 总结了关键文件类型(.scm, .cmd, .tdr, .plt, .log, .bnd, .par)的格式与作用。
- 通过实际步骤演示了如何使用SWB和手动方式创建MOSFET仿真项目。
- 介绍了仿真执行的两种方式以及收敛监控方法。