Appearance
第 2 章:将目标数据上传至数据库
来源:
mystic_ug.pdf(W‑2024.09),Chapter 2 Uploading Target Data to Database。
本章说明如何把测量或 TCAD 目标数据上传到 TCAD→SPICE 流程数据库,供 Mystic 读取。重点包括数据对象结构、支持的文件格式,以及必需的元数据字段。
2.1 上传流程概览
在标准 TCAD→SPICE 流程里,Mystic 通常运行在 Sentaurus Workbench (SWB) 中,且共享一个本地数据库。常见做法是:在 Mystic 工具之前放置一个 “TCAD to SPICE Python” 工具实例,负责预处理目标数据并上传到数据库。好处:
- 预先整理数据结构、单位与命名
- 绑定温度、实例参数等元数据,Mystic 可直接复用
- 统一保存到 SWB 项目数据库,后续各阶段都能访问
本章按文件类型(PLT、CSV 等)说明上传方法,并介绍 Mystic 使用元数据的方式。
2.2 Data 类
Data 是 TCAD→SPICE Python 环境在运行时注入的自定义类,具备:
- 读写 PLT、CSV 文件
- 连接数据库,上传/下载数据集
- 对目标与仿真数据执行过滤、重采样、变换、误差计算
在 Mystic 环境中,Data 对象统一表示所有目标与仿真曲线,其结构直接用于生成后台 PrimeSim HSPICE 网表,以便在提取过程中复现实验或仿真条件。因此必须通过 metadata 字典补足温度、实例参数等信息,确保 PrimeSim HSPICE 的激励与目标一致。图 2 展示了一份标准的 Id‑Vg Data 对象示例。

2.2.1 结构与元数据
Data 对象包含:
metadata字典:固定偏置 (bias)、仿真温度 (temperature)、实例参数 (instances)、端点顺序 (nodes),以及任意自定义字段(区分不同 DoE 条件时很有用)。- 数据表格:通常为单一自变量扫描(如
vgate)与响应(如idrain)。额外列可表示激励(stimulus)或偏置(bias),列名决定 Mystic 要生成的 PrimeSim HSPICE 仿真类型。
必填元数据:
| 字段 | 说明 |
|---|---|
bias | 静态偏置,可从文件自动解析,也可显式提供(详见 2.3)。 |
temperature | 单位开尔文,Mystic 会在内部转换为摄氏度。 |
nodes | 必须与模型端点、偏置键名一致(如 drain/gate/source/substrate)。 |
instances | 对应模型实例参数(示例:BSIM‑CMG 的 l、nfin)。可为空表示使用默认值。 |
nodes 列表中的条目需与模型端口和 bias 字典同名,如 drain、source、substrate;若某个电极(例如 gate)是扫描自变量,可以不在 bias 中出现。仿真温度必须以开尔文输入。instances 键值对需与 SPICE 模型的实例参数完全一致,若要沿用默认值可留空。Data 表格主体通常只有一个自变量扫描(如 vgate)和一个响应(如 idrain),但也能加入作为激励的动态列,主要用于瞬态仿真提取(参见 “Transient Simulation Extraction”,第 58 页)。
在读取文件时,Mystic 会自动添加两个占位列:一个用于 PrimeSim HSPICE 仿真数据,另一个用于逐点误差,提取过程中会填充。更多关于 Data 类 API 的细节,可参考 Mystic API 文档。
2.2.2 列名约定
列头需符合 Mystic 期望的记号,常见示例如下:
| 记号 | 解释 |
|---|---|
vgate, idrain | 自变量(ivar)与响应(dvar)。 |
vcontact, icontact | 通过 .data 语句施加/测量的电压或电流。 |
c(contact0,contact1) | 小信号电容,激励输入端 contact0,在 contact1 测量。 |
time | 瞬态仿真时间列。 |
若列名不符合规范,可在上传时提供 column_map 进行映射(见 2.4)。
2.3 上传 PLT 文件
Sentaurus Device 的 PLT 文件是最常见的目标格式。典型流程:
python
ds = dbi.create_dataset(node_prj, "iv-data", clean=True)
metadata = {
"temperature": 300,
"instances": {"l": 27e-9, "nfin": 1},
"nodes": ["drain", "gate", "source", "substrate"]
}
Data.from_plt("idvgld.plt", metadata=metadata, upload_ds=ds)步骤说明:
- 通过
dbi.create_dataset在数据库创建存储位置(dbi为数据库接口,详细说明可见 TCAD to SPICE Python API 文档)。 - 构造元数据字典。PLT 中已包含静态/动态偏置,因此无需显式提供
bias。 - 调用
Data.from_plt读取文件并上传。内置解析器会把 Sentaurus 默认列名转换为 Mystic 格式,例如:"contact OuterVoltage"→vcontact"contact TotalCurrent"→icontact
- 自变量/响应通常自动识别,如需可手动指定
ivar、dvar。
2.4 上传 CSV 文件
CSV 更灵活,也支持更多来源数据,但需要额外信息来完成列名映射与偏置设置。图 3 所示的 Id‑Vg CSV 文件可作为示例:
python
ds = dbi.create_dataset(node_prj, "iv-data", clean=True)
metadata = {
"temperature": 300,
"instances": {"l": 27e-9, "nfin": 1},
"nodes": ["drain", "gate", "source", "substrate"],
"bias": {"drain": -0.05, "source": 0.0, "substrate": 0.0}
}
column_map = {
"IdVg(-0.05) X": "vgate",
"IdVg(-0.05) Y": "idrain"
}
Data.from_csv(
"n1366_IdVg_-0.05.csv",
metadata=metadata,
column_map=column_map,
upload_ds=ds
)
要点:
- CSV 不含偏置信息,因此在
metadata中显式提供bias,以补足漏掉的drain/source/substrate静态偏置。 - 使用
column_map把自定义列头映射为 Mystic 识别的名称,并通过column_map参数交给Data.from_csv。 - 上传后,数据库内的数据格式与 PLT 完全一致,可直接供 Mystic 后续提取使用;必要时仍可传入
ivar、dvar进一步指定主从变量,或按需扩展到多组偏置与扫描。