Skip to content

第 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: 对象结构示例(PDF p.15)

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 的 lnfin)。可为空表示使用默认值。

nodes 列表中的条目需与模型端口和 bias 字典同名,如 drainsourcesubstrate;若某个电极(例如 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)

步骤说明:

  1. 通过 dbi.create_dataset 在数据库创建存储位置(dbi 为数据库接口,详细说明可见 TCAD to SPICE Python API 文档)。
  2. 构造元数据字典。PLT 中已包含静态/动态偏置,因此无需显式提供 bias
  3. 调用 Data.from_plt 读取文件并上传。内置解析器会把 Sentaurus 默认列名转换为 Mystic 格式,例如:
    • "contact OuterVoltage"vcontact
    • "contact TotalCurrent"icontact
  4. 自变量/响应通常自动识别,如需可手动指定 ivardvar

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
)

图 3:Id–Vg CSV 文件示例(PDF p.18)

要点:

  • CSV 不含偏置信息,因此在 metadata 中显式提供 bias,以补足漏掉的 drain/source/substrate 静态偏置。
  • 使用 column_map 把自定义列头映射为 Mystic 识别的名称,并通过 column_map 参数交给 Data.from_csv
  • 上传后,数据库内的数据格式与 PLT 完全一致,可直接供 Mystic 后续提取使用;必要时仍可传入 ivardvar 进一步指定主从变量,或按需扩展到多组偏置与扫描。

基于 Sentaurus TCAD 官方文档构建

代码块