跳转至

ADE-XL 三个常用操作

读者:会打开 Virtuoso、但没配过白名单/measurement 的人。 前置:已能启动 Virtuoso 并打开一个 ADE-XL test(见 tutorial-first-sim.md)。 读完能做什么:自己配出保存白名单、加一个 measurement、无头重建原理图。 环境锚点:Virtuoso IC617 + ADE-XL,工作区 /projects/design/rain01/proj1;核实日期 2026-10-13。

三十秒版

白名单 = 在 Outputs Setup 表勾 Save + 在 Save Options 里选 selected,改完必须退出 Virtuoso 才落盘; measurement = 右键 Add Expression 填公式;无头重建 = runuser -u rain01 -- bash run_skill.sh <绝对路径.il>。

危险分级

  • 会白跑半天的:白名单配错(表为空 → 全存 → 体积暴涨)后直接批跑。
  • 会毁数据的:Save All(全局入口,会把所有信号都存上,别拿它当白名单)。
  • 一般提醒:改完不退出 Virtuoso,改动不落盘。

操作 1:配保存白名单(体积的唯一闸门)

两个地方分工,缺一不可:

地方 角色 你要做的
Save Options 对话框 规矩 Select signals to output (save) 选 selected
Outputs Setup 表 名单 每行勾 Save 列(占盘);Plot 列只管画图,不占盘

步骤:

  1. 在 ADE-XL 打开目标 test,切到 Outputs Setup 表。
  2. 右键 → Add Signal,从列表里选顶层 net(带前导 /,如 /VCTL、/REF、/VCOCK、/FB)。
  3. 勾上该行的 Save 列。
  4. 右键 → Save/Spec Option... 打开 Save Options 对话框,Select signals to output (save) 选 selected。
  5. 退出 Virtuoso:弹出"原理图"选不保存、"ADE XL"选保存。

预期输出 / 判据(退出后核对文件):

grep -E "signal|save" design/pll45/pll_top/adexl/test_states/pll45/pll_top/spectre/pll45:pll_top:1_active/outputs

看到形如下面的内容即成功(每路一行 signal + 一行 save = 't):

tmp1->signal = "/VCTL"   tmp1->save = 't
tmp1->signal = "/REF"    tmp1->save = 't

再核对网表里出现 save 那行:

save VCTL REF VCOCK FB
saveOptions options save=selected

失败的样子:名单为空时 selected 退化成"全存所有节点",单点从 0.27 MB 涨到 8.5 MB。

说明:白名单无法用脚本持久化(asiSetKeepList 会回显但读回是空),只能 GUI 配。 子层次内部节点在顶层选不了(列表里显灰),要认顶层连接的网名,见 concept.md。

操作 2:加一个 measurement(不占盘的标量)

用途:把"波形"变成一个"数字",可以给门限、可批量比较,不产生波形文件。

步骤:

  1. Outputs Setup 表右键 → Add Expression。
  2. 填 Output Name(如 dVCTL_lock)与 Expression。
  3. Save 列不用勾(它不产生波形)。

例(判断 VCTL 是否稳定,取 9~10 µs 窗口的峰峰值):

ymax(clip(VT("/VCTL") 9e-06 1e-05)) - ymin(clip(VT("/VCTL") 9e-06 1e-05))

预期输出:Run 完后在 Results 里出现 dVCTL_lock 一行数值。 怎么读:值越小说明 VCTL 在这段时间内越稳定;用它决定仿真时长该定多少。

实测判读(pll45:pll_top:1,10 µs,6 角,2026-10-13)——判据是"9~10 µs 窗口内 VCTL 的峰峰值":

角 dVCTL_lock 角 dVCTL_lock
nom_27 147.6 µV ss_85 267.5 µV
nom_85 5.44 mV ff_27 4.328 mV
ss_27 106.1 µV ff_85 120.7 µV

最差 5.44 mV ≈ VCTRL(0.55 V) 的 1% ⇒ 判定已进入稳态,test_lock 时长定 10 µs。 这批值不在波形目录里,而在 <adexl>/results/data/Interactive.<N>.log;用 grep -n "" 该文件 直接读。

操作 3:无头重建原理图(脚本画图)

用途:不用鼠标,用 SKILL 脚本生成/检查 cell。

命令:

runuser -u rain01 -- bash /projects/design/rain01/proj1/verif/gen/run_skill.sh /绝对路径/xxx.il /绝对路径/log.txt

(来源:项目 pll_sch_20261003/SOP.md,核实 2026-10-13)

预期输出 / 判据:用文件时间戳核对,不看脚本自报:

stat -c '%y %U:%G' /projects/design/rain01/proj1/design/pll45/<cell>/schematic/sch.oa

时间戳晚于你刚跑的时刻、属主 rain01:design = 成功。

失败的样子与对策:

现象 原因 对策
SKILLRC=255 且没有新 log GUI 正开着这个 cell 的编辑窗口(目录里有 sch.oa.cdslck.<host>.<pid>) 请用户关掉该 cell 编辑窗口;GUI 主程序可留
属主变成 root:design、755 不是 rain01 身份跑的 必须用 runuser -u rain01
找不到新 log、旧 log 看着像成功 .il 传了相对路径(相对名会被静默跳过) 传绝对路径
端口全叫 unused dbCreatePin 没设方向 补跑 fix_pin_dirs.il,用只读探针验收

完成后检查

  • 白名单:outputs 文件里有你点名的每一路 signal + save = 't。
  • measurement:Results 里有该名字的一行数值。
  • 无头重建:sch.oa 的 mtime 与属主都对。

来源:/home/rain/Documents/eda_tools_ins/design/docs/kb/howto-adexl.md | 最后更新:2026-10-13 01:10(由 build/sync.py 同步,请勿在站点侧修改)