RUNBOOK — vco5 瞬态标定工具(pll_cal_20261003)¶
面向:要重跑或换点标定的人(换 corner / 温度 / VCTRL / 时长 / 精度档)。 变更档案与坑的来由见同目录
SOP.md;环境事实见docs/BASELINE.md。
1. 概览¶
| 项 | 内容 |
|---|---|
| 用途 | 在 .28 上用 Spectre 跑 pll45/vco5 的扁平镜像网表瞬态,量取频率/成本 |
| 构成 | vco5_cal.sp(网表)、cal_run.sh(跑 + 计时)、parse_cal.py(波形解析)、probe_params.il(只读参数探针) |
| 依赖 | .28 的 module load cadence && module load virtuoso/IC06.17.700;模型卡适配副本 proj1/verif/models/spectre_nom.include |
| 失败影响 | 无:纯离线仿真,不改变任何库/cell,不影响用户 GUI |
| 重要性 | 中(阶段 2 的时长与派发策略依赖其数字) |
2. 接入与凭据¶
ssh root@192.168.31.28 # 本机 root 免密已通
runuser -u rain01 -- bash <脚本> # 涉及 virtuoso/库的必须降权到 rain01
凭据来源:docs/BASELINE.md §3(本机 root 到 18 台免密;rain 用户免密未配)。
3. 日常速查表¶
| 想干什么 | 命令 |
|---|---|
| 重跑 1µs 标定 | ssh root@192.168.31.28 'runuser -u rain01 -- bash /projects/design/rain01/proj1/verif/cal_0/cal_run.sh' |
| 看频率/摆幅 | ssh root@192.168.31.28 'cd /projects/design/rain01/proj1/verif/cal_0 && python3 parse_cal.py psf R0 900e-9' |
| 看耗时 | 同上 cal_run.sh 输出里的 WALL= / USER= / SYS= |
| 看 spectre 结果 | .../cal_0/vco5_cal.log 的 completes with 行 |
| 核对 cell 参数 | ssh root@192.168.31.28 "runuser -u rain01 -- bash <G>/run_skill.sh <G>/probe_params.il /tmp/r_params.log"(G=/projects/design/rain01/proj1/verif/gen) |
| 换 corner | 改 vco5_cal.sp 里 include 行 → spectre_{ss,ff}.include |
| 换时长/精度 | 改 vco5_cal.sp 里 tran1 tran stop=.. errpreset=.. maxstep=.. |
| 换控制电压 | 改 vco5_cal.sp 里 parameters vctlq=.. |
4. 日常操作¶
- 运行前确认
.28空闲:ssh root@192.168.31.28 'uptime; nproc'(1µs 占 1 核 ≈145 s;60µs 占 1 核 ≈2.4 h)。 - 产物:
cal_0/psf/tran1.tran.tran(psfascii,65 MB/µs,跑长瞬态前先量磁盘)、cal_0/vco5_cal.log、cal_0/time.txt。 - 幂等:
cal_run.sh每次先rm -rf psf再重算,重跑即重算,无状态残留。
5. 配置管理¶
全部配置集中在 vco5_cal.sp 顶部与末尾:parameters vddv/vctlq、器件 l/w(必须与 gen_vco5.il 契约一致,改动前先读该文件头注释)、ic 初值、save 节点、tran1 语句。改完直接重跑,无需重传 GUI 侧。
6. 备份与恢复¶
本工具无状态变更(只新增仿真产物),不需要备份;恢复=删除 cal_0/ 与 probe_params.il 后按 SOP 步骤 1 重传。
7. 监控与告警¶
无服务、无告警。判读靠 spectre 退出码与日志:SPECTRE_EXIT=0 + 0 errors 才算成功。
8. 故障处置¶
场景 A:SPECTRE_EXIT=127
症状:日志里连 vco5_cal.log 都没生成。诊断:command -v spectre(未 load module 时为空)。处置:确认脚本内 module load 两行未被删;此处 127 主要是调用了 .28 上不存在的 GNU /usr/bin/time。
场景 B:SFE-23 ... undefined model or subcircuit
症状:read-in 阶段 4 条错误、0.5 s 即退出。诊断:看报错指向的行号。处置:不要把 HSPICE 风格的 measure 语句写进 spectre 语言网表;测量一律走 parse_cal.py。
场景 C:PARSE_FAIL no samples parsed
症状:parse_cal.py 识别不出波形。处置:看它 dump 的文件头 30 行,确认 psfascii 的字段顺序("time" <t> / "<node>" <v>)后再改解析口径;期间频率可先用 vco5_cal.log 与手工查看波形代替。
场景 D:不起振(VERDICT NO_OSCILLATION)
症状:窗口内摆幅接近 0。诊断:环形振荡器可能停在对称 DC 解。处置:确认 ic 行的非对称初值未被删(R0=0 R1=vddv R2=0 ...),或改用短脉冲 kick。
9. 安全与权限¶
流程只读 /pdk、/tools;所有落盘文件属主 rain01 design。不得用 root 直跑(会让库文件属主错乱)。
10. 容量与性能¶
基线(2026-10-03,nom/27 °C/conservative/maxstep=10ps):1µs → 144.3 s 墙钟、141.8 s CPU(单核)、峰值内存 67 MB、波形 65 MB。60µs 单点 ≈2.4 h、≈3.9 GB;200 点 MC 串行 ≈480 核时、≈780 GB——批跑前必须先定输出裁剪策略。
11. 附录¶
- 术语:psfascii = Spectre 的 ASCII 原始数据格式;conservative =
errpreset最严精度档。 - 相关文档:
pll_cal_20261003/SOP.md(变更档案与坑)、pll_sch_20261003/SOP.md(生成器与器件层契约)、smoke_20261003/SOP.md(模型卡适配)。 - 修订记录:2026-10-03 首版(首轮 1µs 标定)。
来源:
/home/rain/Documents/eda_tools_ins/design/pll_cal_20261003/RUNBOOK.md| 最后更新:2026-10-03 21:08(由build/sync.py同步,请勿在站点侧修改)