Skip to content

命令行接口

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 文件格式转换关系图

图:TDX 支持的格式转换路径。TDR 是中心枢纽格式,所有工具链中的文件均以 TDR 互联。


命令速查表

转换命令

短格式长格式源格式目标格式说明
-d--dfise2tdrDF–ISE (.grd/.dat/.bnd/.plt)TDR将 DF–ISE 网格、边界或绘图文件转换为 TDR
-dd--tdr2dfiseTDRDF–ISE将 TDR 文件转换为 DF–ISE 网格和数据文件
-df--dfise2tifDF–ISETIF将 DF–ISE 网格和数据文件转换为 TIF
-f--tif2tdrTIFTDR将 TIF 文件转换为 TDR 混合单元文件
-fd--tif2dfiseTIFDF–ISE将 TIF 文件转换为 DF–ISE 网格和数据文件
-i--ivl2tdrIVLTDR (xy)将 IVL 曲线文件转换为 TDR xy 文件
-mdd--mirr-dfiseDF–ISEDF–ISE镜像 DF–ISE 几何并保存为新的 DF–ISE 文件
-mtt--mirr-tdrTDRTDR镜像 TDR 几何并保存为新的 TDR 文件
-p--plx2tdrPLXTDR (xy)将 PLX 文件转换为 TDR xy 绘图文件
-t--tdf2tdrTDFTDR将 TDF 文本格式转换为 TDR 混合单元文件
-td--tdf2dfiseTDFDF–ISE将 TDF 文件转换为 DF–ISE 网格和数据文件
-tf--tdr2tifTDRTIF将 TDR 混合单元文件转换为 TIF 格式
-ts--tdr-change-csTDRTDR在 DF–ISE 坐标系和 SProcess 坐标系之间切换
-tt--tdr2tdrTDRTDR将 TDR 文件转换为不同版本(v16/v17)

通用选项参数

短格式长格式类型默认值适用命令说明
-a--ignore-ambient-regionsBooleanfalse-d, -f, -t不转换材料为 ambient 的区域
-c--ignore-conductor-regionsBooleanfalse-d, -f, -t不转换材料或父材料为导体的区域
-m--geometry-nameString""-dd, -tf, -ts按名称指定 TDR 几何体
-M--geometry-indexInteger-1-dd, -tf, -ts按索引指定 TDR 几何体(从 0 开始)
-q--ignore-nondatex-quantitiesBooleanfalse-d, -f, -t不转换没有 DATEX 量名称的场
-r--split-rectanglesBooleanfalse-d, -f, -t对 2D 几何,将矩形拆分为三角形
-ren--renameString""-mdd, -mtt重命名一个或多个区域,格式: old=new
-s--state-nameString""-dd, -ts按名称指定 TDR 状态
-S--state-indexInteger-1-dd, -ts按索引指定 TDR 状态(从 0 开始)
-sp--sprocessBooleanfalse-ts转换为 Sentaurus Process 坐标系
-tr--traditionalBooleanfalse-ts转换为传统(DF–ISE)坐标系
-v16--version-16Booleanfalse-tt输出为 TDR v16 格式
-v17--version-17Booleanfalse-tt输出为 TDR v17 格式
-w--do-not-swap-3d-coordBooleanfalse-t, -td不交换 3D 坐标轴方向
-x--xminBooleanfalse-mdd, -mtt在 xmin 处做镜像
-X--xmaxBooleanfalse-mdd, -mtt在 xmax 处做镜像
-xy--xy-nameString""-dd指定 TDR xy 绘图名称
-XY--xy-indexInteger-1-dd指定 TDR xy 绘图索引
-y--yminBooleanfalse-mdd, -mtt在 ymin 处做镜像
-Y--ymaxBooleanfalse-mdd, -mtt在 ymax 处做镜像
-z--zminBooleanfalse-mtt在 zmin 处做镜像(仅 TDR)
-Z--zmaxBooleanfalse-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
done

TIP

在使用 -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.dat

NOTE

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_3d

NOTE

-w 选项(不交换 3D 坐标)专为特殊的 3D TDF 文件设计。通常不需要使用此选项。


TDF → DF–ISE

bash
tdx -td tdf_file.tdf dfise_output
# 输入: tdf_file.tdf
# 输出: dfise_output.grd, dfise_output.dat

TDR → 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_tif

TDR → 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
done

DF–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_output

TIP

多个 .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.tif

IVL → 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.tdr

TDR 版本转换

TDX 支持在 TDR v16 和 v17 格式之间转换,用于解决不同工具版本之间的兼容性问题:

bash
# 转换为 TDR v16(用于旧版工具)
tdx -tt -v16 input.tdr output_v16.tdr

# 转换为 TDR v17(推荐用于新版工具)
tdx -tt -v17 input.tdr output_v17.tdr

NOTE

如果不指定版本(-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.tdr

WARNING

坐标系转换改变的是轴方向,而非旋转几何体。在 SProcess 和 SDevice 工具链混用时,坐标系不匹配是常见错误来源。使用此命令前请确认当前文件的坐标系约定。


镜像命令

镜像命令通过关于某个坐标平面反射输入几何体,创建对称结构。这在以下场景中非常有用:

  • 利用器件左右对称性,仿真半个结构,再镜像得到完整器件
  • 从 SProcess 仿真的半截面镜像出完整的 FinFET 截面
  • 批量生成不同镜像方向的测试结构

镜像平面说明

选项镜像平面位置垂直轴方向适用维度
-xxmin 处⊥ x 轴1D, 2D, 3D
-Xxmax 处⊥ x 轴1D, 2D, 3D
-yymin 处⊥ y 轴2D, 3D
-Yymax 处⊥ y 轴2D, 3D
-zzmin 处⊥ z 轴3D 仅 TDR
-Zzmax 处⊥ 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, -td3D 坐标轴注意 -w 选项
TDR 导出-dd, -tf必须指定几何和状态索引
DF–ISE 导入-d支持 .grd/.dat/.bnd/.plt
曲线文件-i, -pIVL/PLX 转为 TDR xy
版本转换-tt -v16/v17解决新旧工具兼容问题
坐标系转换-ts -sp/-trSProcess ↔ DF–ISE 坐标系
镜像操作-mdd, -mtt-ren 避免区域名冲突

基于 Sentaurus TCAD 官方文档构建

代码块