2. Sentaurus工具链与数据接口
Sentaurus 不是单一软件,而是一套围绕“工艺—器件—可视化—数据管理”组织起来的工具链。做模型校准与实验数据拟合时,最容易出问题的往往不是物理模型本身,而是数据在工具之间传递时格式不匹配、坐标不一致或提取口径不同。因此,理解每个模块的职责边界和它们之间的数据接口,是后续校准工作的前提。
工具链的模块分工
整条链路的组织关系可以用下面的结构图表示。它强调的不是操作顺序,而是各模块的输入输出对象与数据流向。
SWB 是顶层入口,负责把参数化实验组织成可批量执行的任务树。它本身不做物理计算,而是把节点参数、命令文件和结果目录统一管理起来。Structure Editor 与 Device Editor 是图形化前端,前者生成器件几何、网格和掺杂分布,后者定义电极、物理模型和求解条件。SPROCESS 面向工艺仿真,用命令流描述氧化、扩散、注入、刻蚀等步骤,输出的是工艺完成后的结构。SPDE 与 SDEVICE 承担器件物理仿真,前者偏重求解器配置与方程组装,后者是实际执行电学特性计算的引擎。SVISUAL 负责把结果可视化,同时提供曲线和场数据的提取能力。
实验数据的导入格式
校准工作的第一步是把实验数据变成工具能读的格式。Sentaurus 本身不直接读取任意格式的测试文件,通常需要先整理成纯文本表格。最常见的做法是两列或三列结构:第一列自变量,第二列因变量,第三列可选为误差或权重。
# Vg(V) Id(A) Ig(A)
-1.0 1.02e-12 3.1e-13
-0.5 2.45e-11 4.7e-13
0.0 8.90e-10 6.2e-13
0.5 3.71e-08 9.8e-13
1.0 1.24e-06 1.5e-12
1.5 2.88e-05 2.4e-12
导入时要注意三点。第一,注释行用 # 开头,工具会跳过;第二,列之间用空格或制表符分隔,不要混用逗号,除非明确使用 CSV 解析;第三,单位必须与仿真输出一致,例如电流统一用 A、电压用 V、电容用 F/cm² 或 F,避免在比对时出现量级错位。如果实验数据是 PLX 格式,可以用 SVISUAL 的曲线导入功能直接读取,再导出为文本表格供脚本使用。
# device=NMOS L=1um W=10um T=300K,这样在批量校准时可以自动匹配对应的仿真条件,减少人工核对。仿真输出的提取方法
仿真完成后,结果通常分布在 .plt 曲线文件、.tdr 场分布文件和日志文件中。提取方式主要有两类:交互式提取和脚本化提取。
交互式提取通过 SVISUAL 完成。打开 .plt 文件后,可以在曲线窗口中选取 Id-Vg、Id-Vd、C-V 等特性曲线,用剖面工具沿指定方向切出场分布,再通过导出功能保存为文本。这种方式适合快速查看和单点核对,但不适合大批量参数扫描。
脚本化提取更适合校准场景。Sentaurus 提供 TCL 和 Python 接口,可以遍历 SWB 的结果目录,自动读取每个节点的曲线文件并抽取关键指标。下面是一个提取阈值电压和亚阈摆幅的示例逻辑:
# 伪代码示意:遍历 SWB 结果并提取指标
for node in swb_nodes:
plt = load_curve(node + "/IdVg.plt")
vg, id = plt.get("gate", "drain")
vth = extract_vth(vg, id, method="constant_current", level=1e-7)
ss = extract_subthreshold_swing(vg, id, vth)
write_row(node, vth, ss, ion, ioff)
提取时最关键的是口径一致。例如阈值电压可以用恒定电流法、最大跨导法或线性外推法,不同方法得到的数值可能相差几十毫伏。校准前必须明确实验数据和仿真数据使用同一种提取方法,否则拟合出来的参数没有意义。亚阈摆幅通常取 Vth 以下一个数量级范围内的最大斜率,离子电流取 Vg=Vd=Vdd 时的漏电流,关态电流取 Vg=0、Vd=Vdd 时的漏电流。
数据接口中的常见问题
实际工作中,数据接口问题往往表现为“曲线形状对但数值差一个量级”或“拟合始终不收敛”。常见原因包括:实验数据单位是 mA 而仿真输出是 A;横轴电压扫描方向相反导致曲线镜像;网格文件与掺杂文件版本不一致导致结构错位;SVISUAL 导出时选择了错误的剖面方向。排查时建议先单独画一条实验曲线和一条仿真曲线,确认坐标轴范围和单位一致,再检查提取脚本中的列索引是否正确。
把工具链的分工、数据格式和提取口径这三件事理清之后,后续的模型参数校准才有稳定的数据基础。下一阶段的工作将围绕具体物理模型的选择和参数敏感性展开。