Synopsys Sentaurus 综合教程
Sentaurus 是 Synopsys 公司一套用于半导体器件建模、仿真和优化的综合性软件套件,其核心是 Sentaurus Workbench (S/W),它是一个图形化工作流管理和自动化平台,用于整合和运行各种 Sentaurus 工具,而 Sentaurus Device (S/D) 则是其中最核心的器件物理仿真器,用于求解泊松方程和电子/空穴连续性方程,模拟器件的电学特性。

本教程将分为以下几个部分:
- Part 1: 环境准备与核心概念
- Part 2: 第一个仿真项目 (MOSFET)
- Part 3: 工作流进阶 (参数扫描与优化)
- Part 4: 常用命令与技巧
- Part 5: 学习资源与建议
Part 1: 环境准备与核心概念
1 安装与授权
- 安装: Sentaurus 是商业软件,通常由大学或研究机构购买,你需要联系你的系统管理员或 IT 部门获取安装程序和安装指南,安装过程相对复杂,通常需要设置 License 服务器。
- 授权: 确保你的机器能够正确连接到 License 服务器,在终端输入
lmutil lmstat -a可以查看授权状态。
2 核心组件介绍
-
Sentaurus Workbench (S/W):
- 作用: 整个仿真项目的“大脑”和“指挥中心”。
- 功能:
- 图形化界面: 通过拖拽模块来构建仿真流程。
- 参数化: 将仿真中的变量(如几何尺寸、掺杂浓度、电压)定义为参数。
- 自动化执行: 按照定义的流程自动运行所有仿真任务。
- 数据管理: 自动管理输入/输出文件,并将结果与参数关联。
- 分析工具: 内置数据可视化工具(Tcleditor),可以绘制曲线、提取参数。
-
Sentaurus Device (S/D):
- 作用: 器件物理仿真器,是整个流程中最核心的计算模块。
- 输入: 一个或多个描述器件结构、物理模型和仿真命令的文件(通常是
.tdr和.cmd文件)。 - 输出: 包含仿真结果的数据文件(
.tdr是结构文件,.plt是数据文件)。 - 功能: 求解半导体器件的基本方程组,计算电势、载流子浓度、电流等。
-
其他常用工具:
(图片来源网络,侵删)- Sentaurus Structure Editor (SSE): 用于手动创建和编辑器件结构的图形化工具,生成
.tdr文件。 - Sentaurus Visual (SVis): 强大的3D/2D数据可视化工具,用于查看
.tdr文件中的电势、载流子浓度、复合率等物理量分布。 - Tcle/TcleEditor: S/W 内置的基于 Tcl/Tk 的脚本语言和编辑器,用于自动化任务和结果分析。
- Sentaurus Structure Editor (SSE): 用于手动创建和编辑器件结构的图形化工具,生成
3 仿真工作流基本概念
一个典型的 Sentaurus 仿真工作流包括以下步骤:
- 定义几何结构: 使用
DeckBuild(命令行) 或SSE(图形化) 创建器件的二维或三维几何模型,并定义材料区域和网格。 - 定义物理模型: 在 S/D 命令文件 (
.cmd) 中指定要使用的物理模型,如迁移率模型、复合模型、量子势模型等。 - 定义电极和仿真: 定义哪些区域是电极(欧姆接触、肖特基接触等),并施加偏置电压,设置求解器参数。
- 运行仿真: 在 S/W 中构建工作流,提交任务。
- 后处理与分析: 使用 SVis 可视化结果,或使用 Tcle 脚本自动提取关键电学参数(如阈值电压、导通电阻等)。
Part 2: 第一个仿真项目 (MOSFET)
我们将创建一个简单的 nMOSFET 仿真流程,计算其输出特性曲线 (I-V)。
步骤 1: 创建结构文件 (使用 Structure Editor)
- 打开终端,输入
sstructure启动 Structure Editor。 - 创建衬底:
- 在左侧工具栏选择
Rectangle。 - 在画布上拖动一个矩形,代表硅衬底。
- 在右侧属性面板中,设置其
Material为Si,Region Name为substrate。
- 在左侧工具栏选择
- 创建栅极:
- 选择
Rectangle,在衬底上方画一个矩形作为栅极。 - 设置
Material为poly-Si,Region Name为gate。 - 设置
Doping为1e19 cm^-3(Type: Phosphorus)。
- 选择
- 创建源漏区:
- 选择
Rectangle,在栅极两侧的衬底上画两个矩形。 - 设置
Material为Si,Region Name为source和drain。 - 设置
Doping为1e20 cm^-3(Type: Phosphorus)。
- 选择
- 创建电极:
- 选择
Contact工具,分别在gate,source,drain区域上点击,创建电极。 - 在右侧属性面板中,设置
Contact Name分别为G,S,D。
- 选择
- 保存文件: 点击
File -> Save As...,将文件命名为nmosfet.tdr。
步骤 2: 创建仿真命令文件 (使用 DeckBuild)
- 打开终端,输入
deckbuild启动 DeckBuild。 - 输入以下命令,并将其保存为
nmosfet.cmd:
// Sentaurus Device 命令文件
// 加载结构文件
Electrode {
{ Name "G" Voltage 0.0 }
{ Name "S" Voltage 0.0 }
{ Name "D" Voltage 0.0 }
}
// 定义物理模型
Physics {
// 迁移率模型
Mobility(DopingDep HighFieldSaturation) {
HighFieldSaturation(1.0e7 2.0)
}
// 复合模型 (SRH, Auger)
Recombination(Auger SRH)
// 量子势模型 (用于薄栅氧)
QuantumPotential
}
// 定义求解器
Solve {
// 初始化求解
Coupled(InitialStep=0.1 MaxStep=0.1)
// 仿真栅极电压扫描
Coupled(InitialStep=0.05 MaxStep=0.05) {
Name "Gate_Sweep"
Voltage( G 0.0 1.0 0.1 ) // 从 0V 扫描到 1V,步长 0.1V
}
// 仿真漏极电压扫描 (固定栅压)
Coupled(InitialStep=0.05 MaxStep=0.05) {
Name "Drain_Sweep"
Voltage( G 1.0 ) // 固定栅压为 1V
Voltage( D 0.0 1.0 0.1 ) // 从 0V 扫描到 1V,步长 0.1V
}
}
// 输出设置
Output {
// 输出电势和载流子浓度
Current(Potential Electron Hole)
// 输出电流
Current(terminal)
// 输出到 .plt 文件,便于绘图
Plot {
ePotential eDensity hDensity
}
}
步骤 3: 创建 Sentaurus Workbench 项目
- 打开终端,输入
sworkbench启动 Sentaurus Workbench。 - 创建新项目:
File -> New Project...,命名为nmosfet_project。 - 构建工作流:
- 在左侧的
Tool Nodes列表中,找到sdevice,将其拖拽到右侧的画布上。 - 双击
sdevice节点,进行配置:- Command File: 点击
Browse...,选择你刚刚创建的nmosfet.cmd。 - Structure File: 点击
Browse...,选择nmosfet.tdr。 - Working Directory: 设置一个输出目录,
./nmosfet_run。
- Command File: 点击
- 检查连接: 确保
sdevice节点的输入端口是绿色的,表示配置正确。
- 在左侧的
- 运行仿真:
- 点击工具栏上的
Run按钮 (绿色三角形)。 - S/W 会在后台调用
sdevice执行你的命令,你可以在下方的Console窗口看到执行日志。 - 仿真完成后,
nmosfet_run目录下会生成.log,.tdr,.plt等文件。
- 点击工具栏上的
步骤 4: 后处理与分析
- 使用 S/W 内置编辑器:
- 在 S/W 中,右键点击
sdevice节点,选择Plot Results。 - 在弹出的
TcleEditor窗口中,输入以下 Tcl 脚本来绘制输出特性曲线:
- 在 S/W 中,右键点击
# 加载数据 set data [sdevice read "./nmosfet_run/nmosfet.plt"] # 创建新图 set plot [sdevice plot new] # 绘制漏极电流 vs. 漏极电压 sdevice plot line $plot \ -x "Voltage(D)" \ -y "Current(D)" \"nMOSFET Output Characteristics" \ -xlabel "Drain Voltage (V)" \ -ylabel "Drain Current (A)" \ -data $data # 显示图形 sdevice plot show $plot
- 使用 Sentaurus Visual:
- 在终端输入
svisual。 - 打开
nmosfet_run/nmosfet.tdr文件。 - 你可以查看器件结构、电势分布、电子浓度分布等。
- 使用
Plot菜单可以创建各种物理量的分布图。
- 在终端输入
Part 3: 工作流进阶 (参数扫描与优化)
手动修改文件进行参数扫描非常繁琐,S/W 的强大之处在于可以轻松实现自动化。
1 参数扫描
假设我们想研究沟道长度 L 对 MOSFET 阈值电压的影响。

-
修改结构文件: 在
nmosfet.tdr中,将源漏区的长度L定义为一个变量。- 在 Structure Editor 中,选中源区和漏区,在属性面板中,将
X坐标和Width的值改为表达式,gate.x + 0.1和1(这里1是微米,代表沟道长度)。
- 在 Structure Editor 中,选中源区和漏区,在属性面板中,将
-
修改命令文件: 在
nmosfet.cmd中,定义一个参数L。// 在文件开头定义参数 set L 0.1 // 默认值 0.1um // 在定义源漏区位置时使用这个参数 // ... (这通常需要更复杂的脚本或使用 Master Deck + Master Cell)
更规范的做法是使用
Master Deck和Master Cell。- Master Cell: 在
SSE中,将器件的核心部分(如沟道)定义为参数化单元,并导出为.tcl文件。 - Master Deck: 在
nmosfet.cmd的开头,使用source命令加载这个.tcl文件,并传入参数值。
- Master Cell: 在
-
在 S/W 中设置参数扫描:
- 在 S/W 画布上,右键点击
sdevice节点,选择Parameters...。 - 点击
Add...,创建一个新参数:- Name:
L - Value:
1 - Type:
List - List Values:
1 0.2 0.3 0.4 0.5(单位: 微米)
- Name:
- 当你点击
Run时,S/W 会自动为L的每个值运行一次仿真。
- 在 S/W 画布上,右键点击
2 优化
S/W 还可以与 soptimizer 工具结合,进行自动化优化,你可以设定一个目标(如“在特定电流下,阈值电压为 0.7V”),S/W 会自动调整掺杂浓度、氧化层厚度等参数,以找到最接近目标的解,这通常需要定义目标函数、约束条件和变量范围。
Part 4: 常用命令与技巧
-
单位: Sentaurus 默认使用国际单位制,但器件仿真中常用微米 (
um)、厘米 (cm)、电子伏特 (eV),建议在命令文件开头统一单位:// Units: um, cm, eV, s, K, V, A, F
-
网格控制: 网格质量直接影响仿真精度和速度,在
sdevice.cmd中可以使用Mesh命令进行细化,特别是在 PN 结、界面和电极附近。Mesh { // 在特定区域或线上增加网格点 Lines { x = 0.1 0.2 0.3 } // 在x=0.1, 0.2, 0.3um处加线 // 设置最大/最小网格尺寸 MaxSize = 0.05 MinSize = 0.001 } -
求解器稳定性: 如果仿真不收敛,可以尝试:
- 减小
MaxStep。 - 使用
Gummel分离求解器代替Coupled求解器进行初始计算。 - 增加迭代次数
Iterations。
- 减小
-
脚本自动化: 学会写 Tcl 脚本可以极大提高效率,可以写一个脚本来批量处理多个仿真结果,提取关键参数并生成报告。
Part 5: 学习资源与建议
-
官方文档: 这最重要的资源!Synopsys 提供了非常详尽的 PDF 文档。
- Sentaurus Device User Guide: S/D 的“圣经”,详细解释了所有物理模型、命令和选项。
- Sentaurus Workbench User Guide: 介绍如何使用 S/W 构建工作流。
- Sentaurus Structure Editor User Guide: 介绍如何创建结构。
- 这些文档通常随软件一起安装,或者在 Synopsys 的支持门户上可以找到。
-
示例案例: 安装包中包含大量针对不同器件(MOSFET, FinFET, BJT, LED, Solar Cell 等)的完整示例。强烈建议从这些示例开始,模仿和修改它们,是学习最快的方式。
-
社区与支持:
- 如果你所在机构购买了服务,可以向 Synopsys 技术支持求助。
- 与同事和同学交流,分享经验和技巧。
-
学习建议:
- 从简单开始: 先掌握一个简单的器件(如二极管或 MOSFET),再挑战更复杂的结构。
- 理解物理: 软件是工具,理解半导体物理是根本,知道你选择的每个物理模型代表什么物理意义。
- 耐心与调试: 仿真不收敛是家常便饭,学会阅读
.log文件,分析错误信息,逐步排查问题。 - 版本管理: 使用 Git 等工具管理你的项目代码和脚本,避免混乱。
希望这份教程能帮助你顺利开启 Sentaurus 的仿真之旅!祝你学习愉快!
