2. TCAD仿真环境搭建:Sentaurus/Silvaco工具链介绍、项目创建与文件结构

TCAD(Technology Computer-Aided Design)仿真是连接工艺制造与器件物理的桥梁。本章将系统介绍业界主流的两大TCAD工具链——Synopsys Sentaurus与Silvaco Victory/Athena,并详细讲解仿真项目的创建流程、目录结构与关键文件类型。掌握这些基础环境搭建技能,是后续进行MOSFET沟道掺杂与阈值电压控制仿真的前提。

学习目标: 理解Sentaurus与Silvaco工具链的核心组件与分工;掌握TCAD项目标准目录结构;学会创建并配置一个基础的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以上)、功率器件、光电器件
许可证模式 按功能模块浮动许可 按产品线浮动许可
选型建议: 本课程以 Synopsys Sentaurus 为主要工具链进行演示,因为其在先进CMOS工艺仿真中拥有更丰富的物理模型和更成熟的掺杂分布控制能力。但所有仿真原理与分析方法同样适用于Silvaco工具链。

2.2 Sentaurus工具链核心组件详解

Sentaurus工具链采用模块化架构,每个组件负责仿真流程中的一个特定阶段。下图展示了Sentaurus工具链的典型工作流及各组件之间的数据传递关系:

Sentaurus工具链工作流与数据传递 Sentaurus TCAD 工具链工作流与数据传递 Sentaurus Structure Editor (SDE) Sentaurus Process (SProcess) Sentaurus Mesh (Noffset3D) Sentaurus Device (SDevice) Sentaurus Visual (SVisual) Sentaurus Inspect (参数提取) .bnd + .cmd .tdr + .plt .tdr (网格+掺杂) .tdr + .plt .log + .plt 关键数据流说明 • SDE 输出几何边界文件 (.bnd) 和命令文件 (.cmd),传递给 SProcess • SProcess 执行工艺步骤后输出掺杂与应力场文件 (.tdr) 和曲线文件 (.plt) • SMesh 对结构进行网格划分,生成供 SDevice 使用的最终网格文件 (.tdr) • SDevice 运行电学仿真,输出结果文件 (.tdr/.plt/.log) 供 SVisual/Inspect 后处理
组件角色总结: SDE负责器件几何结构定义;SProcess执行工艺步骤(氧化、注入、扩散等);SMesh生成有限元网格;SDevice进行电学特性求解;SVisual用于结果可视化;Inspect用于一维曲线分析与参数提取。整个流程通过标准文件格式(.tdr, .plt, .log, .cmd)串联。

2.3 项目创建与目录结构

一个规范的TCAD仿真项目需要遵循标准化的目录结构,以便于管理多个仿真版本、输入文件、输出数据和脚本。以下是本课程推荐的Sentaurus项目目录模板:

TCAD项目标准目录结构 TCAD仿真项目标准目录结构 MOSFET_Vth_Project/ sde/ sprocess/ smesh/ sdevice/ 各目录内容说明 • sde/ — 存放器件结构定义脚本 (.scm) 和生成的边界文件 (.bnd) • sprocess/ — 存放工艺仿真命令文件 (.cmd) 和中间结果 (.tdr, .plt) • smesh/ — 存放网格控制文件 (.cmd) 和最终网格文件 (.tdr) • sdevice/ — 存放器件仿真命令文件 (.cmd)、电流/电压数据 (.log) 和结果 (.tdr) • plot/ (可选) — 存放后处理生成的图像和曲线截图 • scripts/ (可选) — 存放批处理脚本、参数扫描脚本和自动化工具
实践建议: 在Linux终端中使用 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创建项目

  1. 启动SWB: 在终端输入 swb &,打开Sentaurus Workbench图形界面。
  2. 新建项目: 点击 File → New → Project,输入项目名称 MOSFET_Vth_Control,选择保存路径。
  3. 添加工具节点: 在项目树中右键点击 Add Tool,依次添加 SDE、SProcess、SMesh、SDevice、SVisual 节点。
  4. 配置节点依赖: 将SDE输出连接到SProcess输入,SProcess输出连接到SMesh输入,SMesh输出连接到SDevice输入,SDevice输出连接到SVisual输入。
  5. 设置全局变量: 在SWB的 Variables 面板中定义工艺参数变量,如沟道掺杂浓度 Nch、栅氧厚度 tox、沟道长度 Lg 等。
  6. 保存并生成目录结构: 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仿真项目。
  • 介绍了仿真执行的两种方式以及收敛监控方法。