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 列只管画图,不占盘 |
步骤:
- 在 ADE-XL 打开目标 test,切到 Outputs Setup 表。
- 右键 →
Add Signal,从列表里选顶层 net(带前导/,如/VCTL、/REF、/VCOCK、/FB)。 - 勾上该行的
Save列。 - 右键 →
Save/Spec Option...打开 Save Options 对话框,Select signals to output (save)选selected。 - 退出 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(不占盘的标量)¶
用途:把"波形"变成一个"数字",可以给门限、可批量比较,不产生波形文件。
步骤:
- Outputs Setup 表右键 →
Add Expression。 - 填 Output Name(如
dVCTL_lock)与 Expression。 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同步,请勿在站点侧修改)