4. Sentaurus Workbench与仿真项目管理

辐照与可靠性仿真往往不是一次单点计算,而是一组“器件结构 × 辐照条件 × 偏置状态 × 时间尺度”的组合实验。例如研究总剂量效应时,需要同时扫描氧化层陷阱密度 Nt、辐照剂量率、栅偏压与温度;研究单粒子效应时,又要扫描入射位置、LET、入射角度与漏极电压。若每个组合都手工改文件、手工运行、手工记录,很快就会陷入版本混乱与数据丢失。Sentaurus Workbench(SWB)正是为解决这类问题而设计的仿真项目管理与实验调度平台,它把“参数—实验—结果—版本”串成一条可追溯的链路。

一、项目创建:从工程目录到可运行节点

SWB 项目以工程目录为根,典型结构包含 project/(工程文件与 *.swb 配置)、nodes/(各实验节点的工作目录)、results/(结果数据库)以及 tools/(工具配置)。创建流程通常为:新建工程 → 导入或编写 SDE/Sentaurus 结构文件 → 在 SWB 中定义工具流程(如 SDE → SDevice → SVisual)→ 设置变量与命令 → 生成实验节点。

关键点在于“变量化”。不要把掺杂浓度、氧化层厚度、辐照剂量等直接写死在命令文件里,而应写成 SWB 变量,例如 @Nt@、@Dose@、@Vg@。这样 SWB 才能在生成节点时把变量替换为具体数值,并自动建立“变量取值 → 节点目录 → 结果文件”的映射关系。一个可运行的最小工程应至少满足:结构文件可被 SDE 正确解析、SDevice 命令文件语法完整、变量在命令文件中被正确引用、工具执行顺序无循环依赖。

二、参数化扫描与实验设计

SWB 支持两类扫描方式:全因子扫描与实验设计(DOE)。全因子扫描适合变量少、范围窄的场景,例如只扫描 Nt 与 Vg 两个变量,各取 3 个水平,共 9 个节点。DOE 则适合变量多、计算成本高的场景,常用方法包括拉丁超立方、中心复合设计与正交表,可在较少节点下估计主效应与交互效应。

以总剂量效应为例,假设研究目标是“阈值电压漂移随陷阱密度与偏置的变化”。可定义变量:Nt = 1e11, 5e11, 1e12 cm^-2,Vg = 0, 1.5, 3.0 V,Dose = 10, 50, 100 krad。若采用全因子,共 27 个节点;若采用正交表 L9,则只需 9 个节点即可估计主效应。选择哪种方式,取决于是否需要交互项以及可用的计算资源。

SWB 参数化扫描与结果数据库链路 变量定义 Nt = 1e11 / 5e11 / 1e12 Vg = 0 / 1.5 / 3.0 V Dose = 10 / 50 / 100 krad T = 300 K(固定) 实验设计 全因子:3×3×3 = 27 节点 正交表 L9:9 节点 拉丁超立方:可扩展 中心复合:含中心点 节点生成 n1: Nt=1e11, Vg=0 n2: Nt=1e11, Vg=1.5 n3: Nt=5e11, Vg=0 … 共 27 个节点目录 工具流程(每个节点独立执行) SDE 结构生成 SDevice 器件仿真 SVisual 结果提取 数据入库 结果数据库(Results DB) • 每个节点:Vth、Ioff、Id-Vg 曲线 • 变量值自动关联,支持筛选与排序 • 可导出 CSV / 绘图 / 拟合 版本控制 • 工程文件纳入 Git / SVN • 每次扫描记录 commit 与变量集 • 结果目录按节点编号归档

三、结果数据库:让数据可查、可比、可复现

SWB 的结果数据库不是简单的文件夹堆叠,而是把每个节点的变量取值与输出指标关联起来。以阈值电压漂移为例,可在 SVisual 中提取 Vth,并写入数据库字段。之后在 SWB 的 Results 视图中,可以按 Nt 排序、按 Vg 筛选,快速观察“陷阱密度增大 → 阈值漂移增大”的趋势。若发现某个节点异常,可直接定位到对应节点目录,检查日志与结构文件,而不必重新跑全部实验。

建议在项目初期就约定结果字段命名,例如 Vth_shift、Ioff、SS、Gm_max,避免后期因命名不一致导致数据库无法合并。对于辐照仿真,还应记录剂量率、累积剂量、偏置条件等元数据,否则半年后很难解释某条曲线的来源。

四、版本控制:把“可复现”落到工程实践

SWB 工程本身是文本与目录的集合,非常适合纳入 Git。推荐做法是:只跟踪 *.swb、命令文件、SDE 脚本与 DOE 定义,不跟踪 nodes/ 下的大体积结果文件;结果通过数据库或压缩包单独归档。每次参数扫描前提交一次,提交信息写明“扫描变量与范围”,例如 DOE: Nt×Vg×Dose, L9, 2025-06-01。这样当需要复现某组结果时,可以检出对应 commit,重新生成节点并比对数据库。

实用建议:对于长期项目,可建立 project/ 与 results/ 分离的仓库结构。工程仓库记录“怎么算”,结果仓库记录“算出了什么”,两者通过节点编号与 commit hash 关联。这样既控制仓库体积,又保留完整追溯链。

五、一个可参考的扫描配置示例

下面给出一个简化的 SWB 变量与 DOE 配置片段,用于说明变量如何与命令文件绑定。示例参数为教学假设,实际使用时需根据器件与辐照条件调整。

# SWB 变量定义(示例)
Nt   = 1e11, 5e11, 1e12      # cm^-2
Vg   = 0.0, 1.5, 3.0         # V
Dose = 10, 50, 100           # krad

# SDevice 命令文件中引用变量
Physics {
  Recombination(SRH)
  Traps(
    (Acceptor Level EnergyMid=0.0 \
     Density=@Nt@ FromCondBand)
  )
}
Electrode {
  { Name="gate" Voltage=@Vg@ }
}

生成节点后,SWB 会把 @Nt@、@Vg@ 替换为具体数值,并在每个节点目录下生成独立的命令文件与结果。运行完成后,在 Results 视图中即可看到 27 行记录,每行对应一组变量与提取指标。若采用 L9 正交表,则只生成 9 行,但可通过方差分析估计主效应。

六、常见问题与排查思路

参数化扫描中最常见的问题有三类:一是变量未生效,通常是因为命令文件中变量名拼写不一致或未加 @ 界定符;二是节点运行失败,需查看该节点目录下的 *.log 与 *.err,确认是结构生成失败还是器件仿真不收敛;三是结果数据库为空,往往是 SVisual 提取脚本未正确输出字段,或提取命令未加入工具流程。排查时应先保证单个节点可独立运行,再扩展到全因子扫描,避免一次性生成大量失败节点。

版本控制方面,若多人协作,建议约定“谁扫描、谁提交、谁写提交信息”的规则,并避免直接修改他人节点目录。对于需要长期保留的结果,可定期导出数据库快照并打 tag,例如 v1.0-TID-scan,便于后续论文或报告引用。

注意:SWB 的节点目录会随扫描规模迅速膨胀。建议在 DOE 阶段先用小范围试跑,确认变量替换、工具流程与提取脚本均正确后,再放大扫描范围。否则一次 100 节点的失败扫描可能浪费数小时甚至数天机时。

总体而言,SWB 的价值不在于“能跑仿真”,而在于把仿真变成可管理、可追溯、可复现的实验体系。项目创建解决“从哪开始”,参数化扫描与 DOE 解决“怎么组合”,结果数据库解决“怎么看”,版本控制解决“怎么回去”。把这四件事做好,辐照与可靠性仿真才能从一次性尝试走向系统性研究。