Skip to content

SWB 第 1 章:Sentaurus Workbench 简介

来源:swb_ug.pdf 第 1 章(W-2024.09)
说明:本页按原章小节顺序进行逐段翻译,并在对应位置插入图示。

本章目录

1.1 Sentaurus Workbench 功能

Sentaurus Workbench 是一个框架环境,目的是简化 Synopsys TCAD 工具的使用。
它可以让你不再手工输入用于处理数据文件或启动应用程序的系统命令。
它的一个主要优势是:可以对输入文件做参数化,并自动运行一组仿真。

Sentaurus Workbench 的主要功能包括:

  • 用户界面可简化复杂仿真项目的编辑与管理;开放式工具接口允许接入第三方工具。
  • 可灵活配置并保存项目仿真流程视图。
  • 仿真可以按项目与文件夹组织,便于清晰掌握整体仿真环境。
  • 项目数据库映射到底层原生文件系统,在多用户分布式环境下可实现稳健文件管理。
  • 可构建包含同一工具多个实例的工具流。
  • 仿真参数可用于任意输入文件;由此产生的仿真实验可在运行前编辑。
  • 可通过复制已有项目的部分内容,快速构建新项目。
  • 提供大量可复制并按需修改的示例项目。
  • 可执行试验设计(DoE)、优化与统计分析。
  • 集成在用户界面的调度器可调度并监控仿真项目运行。
  • 可方便接入后端调度系统,在工作站网络或计算集群上并行运行大规模仿真。

1.2 Sentaurus Workbench 项目

一个项目由一组场景(scenario)组成。每个场景包含多个实验(experiment),其中某些输入变量取不同值。
参数可以在仿真流程中的任意位置引入,从工艺阶段一直到器件仿真阶段。

项目在文件系统中表现为一个目录。
如果某目录包含 .project 文件,Sentaurus Workbench 会把该目录识别为项目目录。

参数化项目在项目视图的 Family Tree 中表示为树结构。
该树由仿真流程与所有参数值组合共同派生。
Family Tree 的每一层对应一个仿真阶段(由仿真流程定义)。

在 Family Tree 中,每个节点都有唯一编号(node key,<nkey>)。
真实节点(real node)表示某个仿真阶段结束,并保存对应工具实例的输出。
SWB 通过在输出文件名前添加前缀 n<nkey>_ 的方式,把输出绑定到该节点。

需要区分真实仿真阶段和虚拟仿真阶段:

  • 真实仿真阶段对应工具实例的执行;
  • 虚拟仿真阶段由参数引入,不触发工具执行。

项目的一个主要属性是运行时编辑模式(runtime editing mode),它定义项目的编辑与运行策略。
可选模式有:

  • Locked mode
    自动化与一致性最高,但对运行中项目进行修改的能力受限。
  • Editable mode(默认)
    灵活性最高,但用户需要在一定程度上自行保证输入数据与仿真结果的一致性。

你可以在 Preferences 中随时修改运行时编辑模式。

1.2.1 与旧版本的兼容性

Sentaurus Workbench 可以加载、编辑并运行由旧版本创建的项目。
所需转换会由 SWB 自动完成。

注意:不保证可以用旧版本 SWB 编辑新版本创建的项目。


1.3 启动 Sentaurus Workbench

启动 SWB 前,必须先设置环境变量。

1.3.1 设置环境变量

启动前需要设置以下变量:

  • STROOT:Synopsys TCAD 软件安装位置
  • STRELEASE:Sentaurus Workbench 版本(不指定时默认当前版本)
  • STDB:所有用户项目所在目录

.cshrc 示例:

bash
setenv STROOT /home/user/ST
setenv STRELEASE W-2024.09
setenv STDB $HOME/DBtest

1.3.2 命令行启动 Sentaurus Workbench

命令行启动语法:

bash
swb [<options>] [<directory> | <file>]

其中 <options> 可为:

  • -a:启动 Advanced mode(包含 Optimization、Calibration 菜单)
  • -b:启动 Basic mode(不包含 Optimization、Calibration 菜单)
  • -default:将偏好设置重置为默认
  • -h:显示帮助信息
  • -nowait:关闭许可证排队
    • 不加该选项:无许可证时会排队等待许可证可用
    • 加该选项:无许可证时直接退出
  • -plugin null:关闭标准插件
  • -v:显示 SWB 版本
  • -verbose:显示所有消息

位置参数:

  • <directory>:指定一个 SWB 项目目录
  • <file>:指定一个压缩的 SWB 项目文件

注意:如果启动时不指定 -a-b,默认以 Basic mode 打开。

示例:

bash
swb &
swb -b &
swb /u/jbrown/sample_app/myproject &

1.4 TCAD Sentaurus 教程:仿真项目

TCAD Sentaurus Tutorial 提供多个项目,用于展示 SWB 的能力。

访问方式 1:

  1. 命令行输入 swb 打开 SWB
  2. 在菜单栏选择 Help > Training,或点击工具栏 Training 图标

访问方式 2:

  1. 进入 $STROOT/tcad/current/Sentaurus_Training 目录
  2. 在浏览器中打开 index.html

1.5 用户界面

SWB 主窗口由以下部分构成:

  • Projects Browser
  • Project Editor 标签页(Project tab)
  • Scheduler 标签页(Scheduler tab)

1.5.1 Projects Browser

你可以在 Projects Browser(Projects 面板)中管理项目。
项目按树形层级组织。该树显示由 STDB 环境变量指定的当前文件系统。

目录识别规则:

  • 若目录中存在 .project 文件,SWB 会把它识别为项目目录;
  • 项目目录会以项目图标方式显示(传统组织与层级组织图标不同);
  • 图标颜色反映项目状态。

Projects Browser 提供用户项目数据库的全局视图。
你可以在树中导航层级、展开/折叠文件夹、加载项目,并对项目或文件夹执行复制、移动等操作。
还可以把其他文件夹与项目层级挂接到 Projects Browser。

注意:

  • 项目目录下的文件夹不会显示;
  • 如果 STDB 之上的路径任意位置出现 .project 文件,SWB 将无法正常工作。

Figure 1: Projects Browser 与 Project Editor(横向流程)

查看目录

目录可展开或折叠,以查看子目录与项目目录。
可通过键盘和鼠标导航目录。
在 Projects 面板右键可打开上下文菜单。

附加根目录

除了用 STDB 指定项目根目录外,你还可以在 Projects Browser 中加入同级其他目录。
这类目录称为 root directory,通常包含一组文件夹和项目,也可以本身就是项目目录。

添加 root directory:

  1. 在 Projects 面板右键,选择 Folder > Attach Root
  2. 在 Open Directory 对话框中定位要添加的目录
  3. 点击 OK

注意:root directory 以上层级不应包含项目目录或 .project 文件,否则会被 SWB 误识别为项目目录。

更新目录状态

在 Projects Browser 中,目录结构、挂载根目录和项目状态会定期自动更新(时间间隔由 preferences 设置)。
你也可以随时手动更新项目目录或根目录状态。

手动更新方式:

  • 右键目录选择 Refresh
  • 或按 F5

1.5.2 Project Editor

Project Editor 在 Project 标签页中用于访问、组织和编辑仿真项目数据库。
仿真流程可设置为横向(horizontal)或纵向(vertical)显示。

Project 标签页把单个项目显示为“实验 + 仿真结果”的表格:

  • 横向流程时,行从左到右表示仿真流程及提取结果;
  • 纵向流程时,列从上到下表示仿真流程及提取结果;
  • 流程本质是工具执行顺序,并可被参数分裂;
  • 横向模式下列(或纵向模式下行)表示不同实验及其参数/变量值。

你可以增加、删除、修改实验,并控制实验运行。

Figure 2: Project Editor(纵向流程)

1.5.3 Scheduler

你可以用 Scheduler 提交、终止、监控项目仿真作业。
还可以定义调度队列与作业映射限制。
Scheduler 可提供当前运行作业及其在局域网中的分布概览。

打开 Scheduler:

  • 选择 Scheduler > Show Scheduler
  • 或点击 Scheduler 标签

Scheduler 标签页显示运行作业表格(例如运行时间、运行主机)。
仅显示属于当前选中项目或文件夹的作业。
默认显示当前打开项目的运行作业。

Figure 3: Scheduler 标签页


1.6 工具集

本节说明 SWB 提供的常用 utilities。

gcleanup

用于清理项目,执行完整清理操作,并包含树重编号。

genopt

Optimization Framework 是 SWB Advanced mode 下的现代批处理工具。
它用于高效提取 TCAD 仿真中的通用信息,并提供优化、筛选、敏感性分析工具集。
详细内容参见《Sentaurus™ Workbench Optimization Framework User Guide》。

gjob

用于管理单个作业执行,控制作业前置/后置处理(prologue / epilogue)以及对应仿真工具的运行。

gpythonsh

这是一个通用 Python shell,可在命令行直接使用,也可作为仿真流程中的 Python 工具。
它与 TCAD Python 平台二进制兼容。
TCAD Python 提供的全部 Python 模块在 gpythonsh 中可访问,其中包含 swbpy2(用于 SWB Python API,如树操作)。
其他模块还能提供 TCAD 求解器能力,可导入到 gpythonsh 使用。

此外,gpythonsh 也是 TCAD-to-SPICE 工具(Mystic、Garand VE、RandomSpice)的可执行入口。

gpythonsh 可运行在 IPython 模式。IPython 是功能更强的交互式 Python shell,可提升交互式优化效率。
TCAD Python 已包含 IPython 模块。

启动命令:

bash
gpythonsh -m IPython

gsub

用于向 Scheduler 提交作业。
它也是 SWB 与内部/外部批处理系统之间的接口。

gtclsh

这是一个 Tcl shell,并扩展了 SWB 的内部命令(例如树操作)。

spp

这是 SWB 预处理器,用于在执行前准备项目,主要包括:

  • 从仿真树计算最优执行图,在满足“启动—完成依赖”约束前提下使用并行计算;
  • 从用户模板生成实际工具输入文件,以区分不同实验。

swbdiag

用于定位客户环境中的问题,这些问题可能影响 SWB 的行为。

swblm

这是守护进程,用于在 swbgjobgsubspp 之间分发进程间通信。
SWB 在需要时会自动启动该进程。
通常无需手动终止现有守护进程,也无需手动新启动守护进程。

基于 Sentaurus TCAD 官方文档构建

代码块