跳转至

刚做的那次"配保存白名单"教会我

读者:想知道一次真实操作长什么样的人。 前置:读过 tutorial-first-sim.md。 读完能做什么:自己独立再配一次白名单,并算出批跑前该做哪些判断。 环境锚点:Virtuoso IC617 + ADE-XL,test pll45/pll_top/1,Slurm 集群;操作日期 2026-10-12。

三十秒版

我给已有的 PLL test 配了 4 路保存白名单(/VCTL、/REF、/VCOCK、/FB), 重跑 1 µs 后单点体积从 8.5 MB 降到 0.27 MB(约 31×); 据此把 200 点批跑的容量外推为约 5.3 GB,存储风险解除。

全景图与产出物

  1. 准备:确认 test 能跑、知道结果会落哪 → 产出:一个可复跑的 test。
  2. 配置:Save Options 选 selected + Outputs Setup 勾 4 路 → 产出:落盘的 outputs 文件与网表 save 行。
  3. 执行:退出 Virtuoso 落盘 → 重跑 1 µs → 产出:新的 Interactive.<N> 目录。
  4. 判读:读体积、与无白名单对照 → 产出:单点/目录两个体积数字。
  5. 记录:把口径写进档案 → 产出:本文与 howto-adexl.md。

动作分类表

阶段 动作 类别 为什么干
准备 确认结果落点 准备 不知道东西写哪,后面没法判读
准备 列出顶层 net 名 定义 白名单只能选顶层 net
配置 Save Options 选 selected 配置 定"只存点名的",是全存的开关
配置 Outputs Setup 勾 4 路 Save 配置 填"名单",决定存哪几路
配置 退出 Virtuoso 并保存 ADE XL 记录 不退出,改动不落盘
执行 重跑 1 µs 执行 拿一组可比对的体积
判读 读单点体积并外推 判读 决定 200 点批跑安不安全
记录 写入口径 记录 下次不必重推

逐动作五问

选 4 路白名单

  • 干什么:只保存 /VCTL、/REF、/VCOCK、/FB 四路。
  • 为什么要干:不选就全存,200 点批跑会撑满共享盘。
  • 属于哪类:配置(决定算/存什么,没动电路)。
  • 在哪做:ADE-XL 的 Outputs Setup 表,右键 Add Signal,勾 Save 列。
  • 看到什么算对:test_states/.../outputs 里出现 4 组 tmpN->signal + save = 't。
  • 牵扯哪个知识点:保存白名单、Plot 与 Save 的区别(见 glossary.md)。

在 Save Options 里选 selected

  • 干什么:把"存哪些"的规矩设为"只存名单里的"。
  • 为什么要干:规矩若是 all,名单勾了也白勾;名单若是空,selected 会退化成全存。
  • 属于哪类:配置。
  • 在哪做:Outputs Setup 表右键 → Save/Spec Option...。
  • 看到什么算对:网表出现 saveOptions options save=selected。
  • 牵扯哪个知识点:两层分工(规矩 in 对话框、名单 in 表格),见 concept.md。

退出 Virtuoso 才落盘

  • 干什么:让 setup 改动真正写进 data.sdb。
  • 为什么要干:进程开着时 data.sdb 被锁,改动只在内存里。
  • 属于哪类:记录(留痕)。
  • 在哪做:正常退出 Virtuoso;弹窗里"原理图"选不保存、"ADE XL"选保存。
  • 看到什么算对:data.sdb 的 mtime/体积变化,outputs 内容更新。
  • 牵扯哪个知识点:data.sdb 与 cdslck(见 incident.md)。

读体积并外推

  • 干什么:把"这次多大"换算成"200 点批跑多大"。
  • 为什么要干:直接批跑可能撑满盘,返工代价高。
  • 属于哪类:判读。
  • 在哪做:du -sh <Interactive.N>,与上一轮无白名单的数字对照。
  • 看到什么算对:单点降到百 KB 级(对照无白名单的 8.5 MB)。
  • 牵扯哪个知识点:体积三因子(见 concept.md)。

知识点雷达

  • HPC:Slurm 派发(一点一作业)、squeue 看 NODELIST 是否铺开、Lustre 容量预算。
  • EDA:ADE-XL 的保存两层分工、Plot vs Save、顶层 net 与层次化命名、落盘锁。 厚解释见 concept.md 与 glossary.md。

坑位复盘

卡在哪 为什么 下次
div8 在信号列表里是灰的,选不了 想存的是子层次内部节点,而工具只让你选顶层 net 找 div8 在顶层的连接网名:XDIV (VCOCK GND FB VDD) div8 → 用 FB
差点点了 Save All 它看着像"保存",其实是全局入口,会把所有信号都存上 白名单只走 Add Signal + 勾 Save
改了设置重跑却没生效 没退出 Virtuoso,改动没落盘 改完一律退出,且退出时选保存 ADE XL
一度把"还在跑"当成"已完成" 体积只有在运行结束后才稳定 先等进程结束、体积连续两次不变,再读数字

塌缩路径(下次独立做)

  1. 确认 test 能跑,列出要保存的顶层 net(带前导 /)。
  2. Outputs Setup:Add Signal 逐路加 + 勾 Save;Save/Spec Option... 里选 selected。
  3. 退出 Virtuoso(原理图不保存、ADE XL 保存)。
  4. 重跑一个短点,du -sh 读单点体积,×点数×时长比外推总量。
  5. 总量 ≤ 目标余量的 50% 才允许批跑。

自测

  1. 下一步做什么:配完白名单、退出 Virtuoso 后,你要先核对哪个文件确认生效?
  2. 为什么这么做:为什么名单为空时 selected 反而会撑爆盘?
  3. 判断正常与否:单点 1 µs 结果是 8.5 MB,正常吗?接下来你该查什么?

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