Appearance
命令行接口
NOTE
原文来源:Sentaurus Data Explorer User Guide, Version W-2024.09, Synopsys, Inc. PDF 源页码:第 2 章,对应 PDF 第 14–29 页
命令行接口概述
TDX 命令行接口提供所有支持的格式转换功能,并允许运行 Tcl 脚本修改 TDR 文件及进行格式转换。此外,它还可用于打印 TDR 文件的一般信息。
TDX 命令行的典型使用场景包括:
- 格式批量转换:自动化脚本中将旧版 DF–ISE 文件批量转为 TDR
- 文件信息查询:快速查看 TDR 文件的几何结构、状态和数据集
- 坐标系切换:在 SProcess 坐标系和 DF–ISE 传统坐标系之间转换
- 几何镜像:利用对称性从半结构生成全结构
基本语法
bash
tdx -short_command [options] [arguments]或使用长格式:
bash
tdx --long_command [options] [arguments]每个命令或选项都有短格式和长格式,短格式以单破折号 - 开头,长格式以双破折号 -- 开头。
TIP
短格式适合直接在命令行快速输入;长格式适合在脚本和批处理文件中使用,可读性更强,便于维护。
格式转换关系总览
图:TDX 支持的格式转换路径。TDR 是中心枢纽格式,所有工具链中的文件均以 TDR 互联。
命令速查表
转换命令
| 短格式 | 长格式 | 源格式 | 目标格式 | 说明 |
|---|---|---|---|---|
-d | --dfise2tdr | DF–ISE (.grd/.dat/.bnd/.plt) | TDR | 将 DF–ISE 网格、边界或绘图文件转换为 TDR |
-dd | --tdr2dfise | TDR | DF–ISE | 将 TDR 文件转换为 DF–ISE 网格和数据文件 |
-df | --dfise2tif | DF–ISE | TIF | 将 DF–ISE 网格和数据文件转换为 TIF |
-f | --tif2tdr | TIF | TDR | 将 TIF 文件转换为 TDR 混合单元文件 |
-fd | --tif2dfise | TIF | DF–ISE | 将 TIF 文件转换为 DF–ISE 网格和数据文件 |
-i | --ivl2tdr | IVL | TDR (xy) | 将 IVL 曲线文件转换为 TDR xy 文件 |
-mdd | --mirr-dfise | DF–ISE | DF–ISE | 镜像 DF–ISE 几何并保存为新的 DF–ISE 文件 |
-mtt | --mirr-tdr | TDR | TDR | 镜像 TDR 几何并保存为新的 TDR 文件 |
-p | --plx2tdr | PLX | TDR (xy) | 将 PLX 文件转换为 TDR xy 绘图文件 |
-t | --tdf2tdr | TDF | TDR | 将 TDF 文本格式转换为 TDR 混合单元文件 |
-td | --tdf2dfise | TDF | DF–ISE | 将 TDF 文件转换为 DF–ISE 网格和数据文件 |
-tf | --tdr2tif | TDR | TIF | 将 TDR 混合单元文件转换为 TIF 格式 |
-ts | --tdr-change-cs | TDR | TDR | 在 DF–ISE 坐标系和 SProcess 坐标系之间切换 |
-tt | --tdr2tdr | TDR | TDR | 将 TDR 文件转换为不同版本(v16/v17) |
通用选项参数
| 短格式 | 长格式 | 类型 | 默认值 | 适用命令 | 说明 |
|---|---|---|---|---|---|
-a | --ignore-ambient-regions | Boolean | false | -d, -f, -t | 不转换材料为 ambient 的区域 |
-c | --ignore-conductor-regions | Boolean | false | -d, -f, -t | 不转换材料或父材料为导体的区域 |
-m | --geometry-name | String | "" | -dd, -tf, -ts | 按名称指定 TDR 几何体 |
-M | --geometry-index | Integer | -1 | -dd, -tf, -ts | 按索引指定 TDR 几何体(从 0 开始) |
-q | --ignore-nondatex-quantities | Boolean | false | -d, -f, -t | 不转换没有 DATEX 量名称的场 |
-r | --split-rectangles | Boolean | false | -d, -f, -t | 对 2D 几何,将矩形拆分为三角形 |
-ren | --rename | String | "" | -mdd, -mtt | 重命名一个或多个区域,格式: old=new |
-s | --state-name | String | "" | -dd, -ts | 按名称指定 TDR 状态 |
-S | --state-index | Integer | -1 | -dd, -ts | 按索引指定 TDR 状态(从 0 开始) |
-sp | --sprocess | Boolean | false | -ts | 转换为 Sentaurus Process 坐标系 |
-tr | --traditional | Boolean | false | -ts | 转换为传统(DF–ISE)坐标系 |
-v16 | --version-16 | Boolean | false | -tt | 输出为 TDR v16 格式 |
-v17 | --version-17 | Boolean | false | -tt | 输出为 TDR v17 格式 |
-w | --do-not-swap-3d-coord | Boolean | false | -t, -td | 不交换 3D 坐标轴方向 |
-x | --xmin | Boolean | false | -mdd, -mtt | 在 xmin 处做镜像 |
-X | --xmax | Boolean | false | -mdd, -mtt | 在 xmax 处做镜像 |
-xy | --xy-name | String | "" | -dd | 指定 TDR xy 绘图名称 |
-XY | --xy-index | Integer | -1 | -dd | 指定 TDR xy 绘图索引 |
-y | --ymin | Boolean | false | -mdd, -mtt | 在 ymin 处做镜像 |
-Y | --ymax | Boolean | false | -mdd, -mtt | 在 ymax 处做镜像 |
-z | --zmin | Boolean | false | -mtt | 在 zmin 处做镜像(仅 TDR) |
-Z | --zmax | Boolean | false | -mtt | 在 zmax 处做镜像(仅 TDR) |
命令行帮助
查看全部命令帮助
使用 -h 或 --help 选项显示所有命令、选项和参数的摘要:
bash
tdx -h
# 或
tdx --help帮助信息格式说明
帮助输出中的符号约定:
| 符号 | 含义 |
|---|---|
* | 可以使用输入文件的基名自动推导输出文件名 |
[] | 方括号内的参数为可选参数 |
<name> | 尖括号内表示需要用实际值替换的占位符 |
(a|b) | 圆括号加竖线表示互斥选项,只能选其一 |
Source | 输入文件格式 |
Target | 输出文件格式 |
-info:查看 TDR 文件信息
-info 选项用于打印 TDR 文件的结构摘要,无需进行格式转换:
bash
tdx -info tdr_file.tdr输出内容示例
File: device_n1_des.tdr
Number of geometries: 1
Geometry 0: "geometry_0"
Type: mixed-element
Dimension: 2
Transform: [1, 0, 0, 0, 1, 0, 0, 0, 1]
Shift: [0, 0, 0]
Number of regions: 5
Number of states: 3
Region 0: "silicon"
Material: Silicon
# of triangles: 12480
# of edges: 18940
# of vertices: 6461
Region 1: "oxide"
Material: SiO2
# of triangles: 2340
...
State 0: "global"
# of datasets: 12
Dataset 0: "ElectrostaticPotential" (PerVertex)
Dataset 1: "ElectronConcentration" (PerVertex)
...-info 使用场景
bash
# 快速确认文件的几何数量和维度
tdx -info mydevice.tdr | grep "geometry\|Dimension"
# 批量查看多个 TDR 文件信息
for f in *.tdr; do
echo "=== $f ==="; tdx -info "$f" | head -10
doneTIP
在使用 -dd 或 -tf 前,先运行 -info 确认几何索引和状态索引,避免因索引错误导致转换失败。
文件格式转换详解
语法约定
在以下命令语法描述中:
<file>— 必须替换为实际的文件路径(不带扩展名,扩展名由 TDX 自动追加)[options]— 可选项,按需加入*标记的命令可省略输出文件名,TDX 会自动使用输入文件基名
TIF → TDR
将薄膜几何格式 TIF 转换为 TDR 混合单元格式:
bash
# 指定输入和输出
tdx -f tif_file.tif tdr_output
# 输出: tdr_output.tdr
# 省略输出(自动使用基名)
tdx --tif2tdr tif_file
# 输入: tif_file.tif → 输出: tif_file.tdr可用选项:
| 选项 | 说明 | 典型场景 |
|---|---|---|
-a | 忽略 ambient 材料区域 | 只关心有源区域 |
-c | 忽略导体区域 | 半导体仿真不需要金属层 |
-q | 忽略非 DATEX 标准量名 | 清理不兼容的场量 |
-r | 将矩形分割为三角形 | 下游工具要求三角形网格 |
bash
# 实际示例:转换 SProcess 输出并忽略导体和 ambient 区域
tdx -f -a -c process_result.tif device_n1
# 输出: device_n1.tdr(仅包含半导体和绝缘层)TIF → DF–ISE
bash
tdx -fd tif_file.tif dfise_output
# 输入: tif_file.tif
# 输出: dfise_output.grd, dfise_output.datNOTE
TIF → DF–ISE 转换产生两个文件:网格文件 .grd 和数据文件 .dat。
TDF → TDR
TDF(TDR 数据格式文本版)转换为二进制 TDR:
bash
tdx -t tdf_file.tdf tdr_output
# 输出: tdr_output.tdr
# 3D 结构不交换坐标轴
tdx -t -w tdf_3d.tdf tdr_3dNOTE
-w 选项(不交换 3D 坐标)专为特殊的 3D TDF 文件设计。通常不需要使用此选项。
TDF → DF–ISE
bash
tdx -td tdf_file.tdf dfise_output
# 输入: tdf_file.tdf
# 输出: dfise_output.grd, dfise_output.datTDR → TIF
WARNING
此转换必须指定几何索引(-M)或几何名称(-m),否则命令报错。
bash
# 使用几何索引(推荐:先用 -info 确认索引)
tdx -tf -M 0 tdr_file.tdr tif_output
# 输入: tdr_file.tdr(几何 0)
# 输出: tif_output.tif
# 使用几何名称
tdx --tdr2tif -m geometry_0 tdr_file.tdr tif_output工作流示例:
bash
# Step 1:确认几何索引
tdx -info mydevice.tdr
# Step 2:转换指定几何
tdx -tf -M 0 mydevice.tdr mydevice_tifTDR → DF–ISE
WARNING
此转换必须指定几何索引和状态索引,否则无法确定要导出哪一份数据。
bash
# 使用索引指定几何和状态
tdx -dd -M 0 -S 0 tdr_file.tdr dfise_output
# 输出: dfise_output.grd, dfise_output.dat
# 使用名称指定
tdx --tdr2dfise -m geometry_0 -s state_0 tdr_file.tdr dfise_output
# 导出 XY 绘图数据
tdx -dd -XY 0 tdr_plot.tdr plot_output
# 输出: plot_output.plt批量导出多个状态:
bash
# 将所有状态导出为单独的 DF–ISE 文件
tdx -info mydevice.tdr | grep "State" | while read line; do
idx=$(echo $line | grep -o '[0-9]*')
tdx -dd -M 0 -S $idx mydevice.tdr state_$idx
doneDF–ISE → TDR
支持三种 DF–ISE 输入类型:网格文件(.grd)、边界文件(.bnd)和绘图文件(.plt)。
bash
# 转换边界文件
tdx -d dfise_file.bnd tdr_output
# 输出: tdr_output.tdr
# 仅转换网格文件(不包含数据)
tdx -d dfise_file.grd tdr_output
# 网格 + 1 个数据文件
tdx --dfise2tdr dfise_file.grd dfise_file.dat tdr_output
# 网格 + 多个数据文件(合并多个时间步)
tdx --dfise2tdr dfise_file.grd dfise_dat_1.dat dfise_dat_2.dat tdr_output
# 转换绘图文件(IV 曲线等)
tdx -d dfise_file.plt tdr_outputTIP
多个 .dat 文件合并时,TDX 将每个 .dat 文件作为一个独立的状态(State)写入同一个 TDR 文件,便于后续在 SVisual 中比较不同偏置点的结果。
DF–ISE → TIF
bash
tdx -df dfise_file.grd dfise_file.dat tif_output
# 输入: dfise_file.grd + dfise_file.dat
# 输出: tif_output.tifIVL → TDR
将 IV 曲线文件(.ivl)转换为 TDR xy 格式,可在 SVisual 中查看:
bash
# 指定输入和输出
tdx -i ivl_file tdr_output
# 输入: ivl_file.ivl → 输出: tdr_output.tdr
# 省略输出(自动使用基名)
tdx --ivl2tdr ivl_file
# 输出: ivl_file.tdr应用场景:
bash
# 将历史 DF–ISE 格式的 IV 曲线转为 TDR,在 SVisual 中统一查看
tdx -i old_iv_result device_iv
# 然后在 SVisual 中打开 device_iv.tdr 即可绘制 I-V 特性曲线PLX → TDR
将 PLX 格式仿真输出转换为 TDR xy 绘图文件:
bash
tdx -p plx_file tdr_output
# 输入: plx_file.plx → 输出: tdr_output.tdrTDR 版本转换
TDX 支持在 TDR v16 和 v17 格式之间转换,用于解决不同工具版本之间的兼容性问题:
bash
# 转换为 TDR v16(用于旧版工具)
tdx -tt -v16 input.tdr output_v16.tdr
# 转换为 TDR v17(推荐用于新版工具)
tdx -tt -v17 input.tdr output_v17.tdrNOTE
如果不指定版本(-v16/-v17),-tt 命令会对 TDR 文件进行"清理"操作,删除多余的数据并重新打包,有时可修复轻微的文件损坏。
坐标系转换
在 Sentaurus Process 坐标系(z 轴朝下)和传统 DF–ISE 坐标系(y 轴朝上)之间切换:
bash
# 转换为 Sentaurus Process 坐标系
tdx -ts -sp -M 0 tdr_file.tdr tdr_sprocess.tdr
# 转换为传统 DF–ISE 坐标系
tdx -ts -tr -M 0 tdr_file.tdr tdr_traditional.tdrWARNING
坐标系转换改变的是轴方向,而非旋转几何体。在 SProcess 和 SDevice 工具链混用时,坐标系不匹配是常见错误来源。使用此命令前请确认当前文件的坐标系约定。
镜像命令
镜像命令通过关于某个坐标平面反射输入几何体,创建对称结构。这在以下场景中非常有用:
- 利用器件左右对称性,仿真半个结构,再镜像得到完整器件
- 从 SProcess 仿真的半截面镜像出完整的 FinFET 截面
- 批量生成不同镜像方向的测试结构
镜像平面说明
| 选项 | 镜像平面位置 | 垂直轴方向 | 适用维度 |
|---|---|---|---|
-x | xmin 处 | ⊥ x 轴 | 1D, 2D, 3D |
-X | xmax 处 | ⊥ x 轴 | 1D, 2D, 3D |
-y | ymin 处 | ⊥ y 轴 | 2D, 3D |
-Y | ymax 处 | ⊥ y 轴 | 2D, 3D |
-z | zmin 处 | ⊥ z 轴 | 3D 仅 TDR |
-Z | zmax 处 | ⊥ z 轴 | 3D 仅 TDR |
NOTE
镜像操作会在原始几何体的基础上增加镜像部分,生成的文件包含原始 + 镜像两部分合并的结构。原始几何不会被移除。
DF–ISE 镜像
bash
# 在 ymin 处镜像(典型用途:将上半截面扩展为完整截面)
tdx -mdd -y dfise_file dfise_mirr
# 输入: dfise_file.grd, dfise_file.dat
# 输出: dfise_mirr.grd, dfise_mirr.dat
# 在 xmax 处镜像(水平对称)
tdx -mdd -X dfise_file dfise_mirr_x
# 带区域重命名
tdx --mirr-dfise -y -ren silicon=silicon_mirror dfise_file dfise_mirr
# 镜像后的 silicon 区域将被命名为 silicon_mirror(而非默认的 silicon_mirrored)TDR 镜像
bash
# 在 ymin 处镜像 TDR 文件
tdx -mtt -y tdr_file.tdr tdr_mirr.tdr
# 在 Y 方向镜像(从 ymax 位置)
tdx -mtt -Y tdr_file.tdr tdr_full.tdr
# 3D 结构:在 z 方向镜像
tdx -mtt -z tdr_3d.tdr tdr_3d_full.tdr
# 多区域重命名(区域名包含空格时用引号)
tdx -mtt -y -ren "region_5=mirr region 5/region_1=mirr region 1" test.tdr test_mirr.tdr重命名格式说明:
bash
# 单区域重命名
-ren old_name=new_name
# 多区域重命名(用 / 分隔)
-ren "old1=new1/old2=new2/old3=new3"
# 区域名中包含空格时,整个 -ren 参数用引号括起
-ren "old name 1=new name 1/old name 2=new name 2"实际工作流示例
场景一:SProcess → SDevice 工具链转换
bash
# SProcess 产出 TIF 文件,转换为 TDR 供 SMesh 使用
tdx -f -a -c sprocess_n1_fps.tif sprocess_n1_bnd
# 检查生成的 TDR 文件结构
tdx -info sprocess_n1_bnd.tdr场景二:旧 DF–ISE 项目迁移到 TDR
bash
# Step 1:转换网格和数据
tdx --dfise2tdr old_device.grd old_device.dat new_device
# Step 2:验证转换结果
tdx -info new_device.tdr
# Step 3:若工具要求 v17 格式
tdx -tt -v17 new_device.tdr new_device_v17场景三:利用对称性从半结构生成全结构
bash
# 假设 SProcess 仿真了左半截面
# Step 1:查看半截面信息
tdx -info half_structure.tdr
# Step 2:在 xmax 处镜像,生成完整结构
tdx -mtt -X \
-ren "silicon=silicon_r/poly=poly_r" \
half_structure.tdr full_structure.tdr
# Step 3:验证完整结构
tdx -info full_structure.tdr场景四:提取并转换 IV 曲线数据
bash
# 将 SDevice 产出的 IV 曲线(TDR xy 格式)转换并查看
tdx -info idvg_sim.tdr
# 若需要以 DF–ISE 绘图格式交付
tdx -dd -XY 0 idvg_sim.tdr idvg_output
# 生成: idvg_output.plt(可在 Inspect 或旧版工具中查看)常见错误与排障
错误:必须指定几何索引
Error: Geometry index or name must be specified.原因:-dd(TDR → DF–ISE)或 -tf(TDR → TIF)未指定几何索引。
解决:
bash
tdx -info your_file.tdr # 先查看几何索引
tdx -dd -M 0 -S 0 your_file.tdr output # 再指定索引错误:文件扩展名不匹配
Error: Cannot open file 'device.tdr': no such file原因:TDX 某些命令要求输入文件带扩展名(如 .tif),而某些命令要求不带扩展名(自动追加)。
规则:
| 格式 | 参数写法 |
|---|---|
| TIF 输入 | 需要带 .tif 扩展名 |
| TDR 输入 | 通常需要带 .tdr 扩展名 |
| DF–ISE 输入 | 网格文件带 .grd,数据文件带 .dat |
| 输出文件 | 不带扩展名,TDX 自动追加 |
错误:坐标轴方向异常
仿真结果在 SVisual 中显示方向颠倒或轴方向不对。
原因:SProcess 默认 z 轴朝下,DF–ISE 工具链默认 y 轴朝下,两者坐标系不同。
解决:
bash
# 确认当前坐标系,再决定是否需要转换
tdx -info my_file.tdr | grep -i "transform\|shift"
# 如果需要,切换坐标系
tdx -ts -tr -M 0 my_file.tdr my_file_dfise_cs镜像后区域名重复
原因:镜像后,TDX 会自动为镜像区域名称加 _mirrored 后缀,但如果区域名本身已经很长,可能产生歧义。
解决:使用 -ren 显式指定镜像区域的新名称:
bash
tdx -mtt -y -ren "silicon=silicon_m/oxide=oxide_m" device.tdr device_full.tdr本章小结
| 功能类别 | 主要命令 | 关键注意点 |
|---|---|---|
| 格式查询 | -info | 转换前先查索引 |
| TIF 转换 | -f, -fd | 支持过滤 ambient/conductor |
| TDF 转换 | -t, -td | 3D 坐标轴注意 -w 选项 |
| TDR 导出 | -dd, -tf | 必须指定几何和状态索引 |
| DF–ISE 导入 | -d | 支持 .grd/.dat/.bnd/.plt |
| 曲线文件 | -i, -p | IVL/PLX 转为 TDR xy |
| 版本转换 | -tt -v16/v17 | 解决新旧工具兼容问题 |
| 坐标系转换 | -ts -sp/-tr | SProcess ↔ DF–ISE 坐标系 |
| 镜像操作 | -mdd, -mtt | 用 -ren 避免区域名冲突 |