2. Sentaurus Process命令行与脚本基础
Sentaurus Process(简称 SProcess)是 TCAD 工艺仿真链路的起点,它把氧化、扩散、注入、刻蚀、淀积等工艺步骤翻译成网格上的杂质分布与结构形貌。要稳定地跑通一个工艺仿真,第一步不是写复杂的物理模型,而是把“怎么启动、脚本怎么写、日志怎么看、参数怎么复用”这四件事弄清楚。本节围绕这四个基础问题展开,目标是让你能独立写出一个可重复执行的 SProcess 命令文件,并能从日志和输出文件中判断仿真是否正常。
一、工具启动方式:交互、批处理与图形界面
SProcess 的启动方式决定了你如何调试和如何交付。常见有三种:
- 交互式启动:在终端输入
sprocess,进入交互命令行,逐条输入命令并立即看到反馈。适合调试单条工艺命令、试探参数范围。 - 批处理启动:
sprocess -b 命令文件.cmd,一次性执行整个脚本,适合正式仿真和批量提交。 - 图形界面启动:
sprocess -g或通过 Sentaurus Workbench(SWB)调用,适合观察结构剖面和掺杂分布。
实际工程中推荐“先交互调试、再批处理固化”的流程。交互模式下可以用 help 查看命令语法,用 echo 打印变量值,确认无误后再写入命令文件。批处理模式的关键是退出码:正常结束返回 0,出错返回非 0,脚本中应据此判断是否继续。
二、命令文件结构:从初始化到保存
一个规范的 SProcess 命令文件通常按“初始化—工艺步骤—输出”三段组织。下面是一个可参考的最小示例(参数为教学示例,非实测数据):
# 初始化:定义网格与衬底
line x loc=0.0 spacing=0.01 tag=left
line x loc=0.5 spacing=0.01 tag=right
line y loc=0.0 spacing=0.005 tag=top
line y loc=1.0 spacing=0.05 tag=bottom
region silicon xlo=left xhi=right ylo=top yhi=bottom
# 工艺步骤:氧化 + 注入 + 退火
pdbSet Double Silicon Oxidize Rate 0.02
diffuse time=30 temp=1000
implant Boron dose=1e14 energy=30
diffuse time=60 temp=1050
# 输出:保存结构与掺杂分布
select z=log10(Boron)
struct outfile=step_final.tdr
结构上要注意三点:第一,line 与 region 必须在任何工艺命令之前,网格质量直接决定后续扩散求解的精度;第二,工艺命令按时间顺序排列,SProcess 是“顺序执行”的,后一条命令在前一条结果上继续;第三,struct 保存的是当前状态,建议在每个关键步骤后都保存一次,便于回溯。
三、日志与输出文件管理
SProcess 运行时会生成多类文件,理解它们的用途是排障的基础:
| 文件类型 | 典型名称 | 用途 |
|---|---|---|
| 日志文件 | sprocess.log | 记录命令执行、警告、错误和耗时 |
| 结构文件 | *.tdr | 保存网格、掺杂、材料结构,供后续工具读取 |
| 曲线文件 | *.plt | 一维掺杂剖面、结深等数据 |
| 输出报告 | *.out | 关键参数汇总,如结深、方块电阻 |
日志管理的关键是“分级查看”:先看末尾的 Error 和 Warning,再看中间步骤的耗时是否异常。常见错误包括网格过密导致内存不足、温度或时间参数超出物理范围、材料名称拼写错误。建议在命令文件开头用 logfile 指定日志路径,避免默认文件被覆盖。
echo 打印关键变量,并在每个 diffuse 后保存一个 .tdr,这样出错时能快速定位到具体步骤。四、参数化变量与循环控制
SProcess 支持用 set 定义变量,用 $ 引用,配合 foreach 实现参数扫描。这是工艺仿真的核心能力——用一套脚本跑多个条件。
set temps {950 1000 1050}
set times {30 60 90}
foreach T $temps {
foreach t $times {
set tag "T${T}_t${t}"
diffuse time=$t temp=$T
struct outfile=result_${tag}.tdr
}
}
这段脚本会生成 3×3=9 个结构文件,文件名中嵌入温度和时间的标签,便于后续批量分析。使用时注意:变量名区分大小写;${} 用于明确变量边界,避免与后续字符混淆;循环体内不要重复初始化网格,否则会覆盖前一次结果。
参数化带来的直接收益是“可追溯”。每个输出文件名都对应一组工艺条件,配合日志中的时间戳,就能建立“输入参数—输出结构”的映射关系。对于需要做工艺窗口分析的场景,这种映射比手工改参数再跑一遍要可靠得多。
把上面四部分串起来看:启动方式决定调试效率,命令文件结构决定可读性,日志与输出管理决定可排障性,参数化与循环决定可复用性。四者缺一不可。建议你在自己的工程目录下先跑通一个“氧化+注入+退火”的最小示例,确认 .tdr 能正常生成、日志无 Error,再逐步加入变量和循环。这样即使后续引入复杂的刻蚀模型或应力模型,基础框架也是稳的。
pdbSet 的参数名和 diffuse 的默认模型。正式使用前请以本地安装版本的 help 输出和手册为准,不要直接照搬其他版本的示例。