CAD FLOW / MULTI TECHNOLOGY SIMULATION
MTS · 多工艺网表生成
从指定项目的 schematic 生成 Spectre 或 hspiceD 网表,整理模型与工艺参数作用域,并按需发布到当前工程的目标库。
先配置项目来源
export MTS_NETLISTOR_MODULEFILES="/path/to/project/modulefiles"
export PROJ_ADE_DB_DIR="/path/to/my/project/simulation"
# modulecmd 不在标准路径时再设置。
# export MTS_NETLISTOR_MODULECMD="/path/to/modules/bin/modulecmd"
command -v modulecmd ocean dbAccess cdsTextTo5x cdsLibDebug
mts-netlistor gui项目 modulefiles 目录必须显式提供。mts-netlistor gui --module-root DIR 可覆盖环境设置;两者均未提供、为空或目录不存在时,GUI 提示后结束启动。宿主 MODULEPATH 不作为项目列表,仅供所选 module 的依赖解析。
PROJ_ADE_DB_DIR 当前仍有效,必须是可写绝对路径,用于 MTS 结果保存。它不属于已经去掉 PROJ_ 前缀的 DRC / LVS / RCE 变量。项目 modulefile 应提供什么
每个源项目 module 必须自行定义 PROJ_USER_HOME,该目录下的 cds.lib 是源项目默认库定义。还需加载该项目适用的 Cadence、PDK、许可证和模型环境。MTS 在独立环境中加载所选 module,不修改宿主 Virtuoso 的项目环境。
#%Module1.0
# 将路径换为这个源项目的个人工作目录。
setenv PROJ_USER_HOME /path/to/source/project/user
# 在这里加载本站点批准的 Cadence、PDK 与许可证模块。
# PROJ_USER_HOME/cds.lib 必须已存在并能正确解析源库。这段只说明必要目录字段,完整站点工具配置由 CAD 提供。仅创建空 modulefile 不足以完成源项目准备。
在 GUI 中配置与生成
- 在当前目标工程的 Virtuoso 选择 SiCo → MTS Netlistor…,或使用独立命令启动。每个 Process 页面选择一个源项目。
- 等待源库列表加载,选择 library / cell / schematic view。需要读取新增 cell 时点击 Refresh。
- 选择 spectre 或 hspiceD。查看从源工艺读取的模型和默认项,核对 model file、section、启用状态及顺序。
- 按方言支持调整温度、scale、gmin 和 simulator options;Spectre 还可配置 tnom、scalem、reltol。当前 hspiceD 不接受后三项。保留单位和数据类型,不凭文件名猜模型 corner。
- 点击 Run Current 运行当前设置,或 Run All 顺序处理已配置项目。检查日志与结果后,通过 Open Result 查看输出。
- 用 Save Config… 保存整个工作台配置,之后用 Load Config… 恢复。
每个 Process 页复用自己的后台 OCEAN,切换 cell 通常无需重启源进程。更换项目、配置变化或任务失败可能重新创建该进程。首次加载 PDK 会比后续切换慢,留意日志中的初始化进度。
配置目标发布
生成结果检查完成后,可设置目标 library / cell,选择生成 symbol view、netlist view,再使用 Publish Views。目标库需在目标工程的 cds.lib 中可解析且可写。独立 GUI 若没有目标 session,需要先提供正确的目标会话信息;从 Virtuoso 菜单启动会带入当前目标工程。
source 与 target 使用独立的 Cadence 环境。不要把源项目 cds.lib 加载到当前目标 Virtuoso 来“切换工艺”;在 MTS 的 Process 页面选择源项目即可。默认拒绝覆盖已有目标,确实需要更新时明确选择相应 symbol / netlist view 覆盖选项。
命令行 request 示例
CLI 的 request 文件与 GUI 保存的 workspace 配置格式不同。下面示例只生成一个源 cell 的 Spectre 网表;填写实际源库、模型和路径后先校验。
format = "sico-mts-netlistor-request"
schema_version = 1
[source]
cds_lib = "/path/to/source/project/cds.lib"
library = "source_design"
cell = "amplifier"
view = "schematic"
[simulator]
dialect = "spectre"
[[models]]
enabled = true
file = "/path/to/pdk/models/process.scs"
section = "tt"
[process_options]
temp = 25.0mts-netlistor validate mts-request.toml --json
mts-netlistor generate mts-request.toml --json
mts-netlistor inspect /path/to/completed/run --json结果保存到 $PROJ_ADE_DB_DIR/<lib>.<cell>.<view>/.mts-netlistor/runs/<运行标识>/,包括源网表、作用域处理结果、日志与发布记录。普通 Spectre 输出后缀为 .spe,hspiceD 为 .sp;Spectre corner library 模式生成 _corners.scs。
常见问题
| 现象 | 检查 |
|---|---|
| 没有项目候选 | MTS_NETLISTOR_MODULEFILES 是否存在且包含可用 modulefile;不要仅设置 MODULEPATH。 |
| 项目加载失败 | modulecmd 是否可执行;module 是否自己定义 PROJ_USER_HOME;该目录的 cds.lib 是否可访问。 |
| 生成时提示输出根无效 | PROJ_ADE_DB_DIR 是否为绝对路径且可写。 |
| 新 cell 没显示 | 点击 Refresh 强制重新读取源库;成功的源目录快照在 GUI 内缓存约 300 秒。 |
| 模型或默认设置不对 | 核对所选源项目、方言及模型 section;需要的 startup_file / simrc 必须显式提供。 |