AMS 中的 PBSR 如何做
在 AMS 场景中,PBSR(Process-Based Save and Restart)的核心是:
在混合信号瞬态仿真到达某个时间点时,保存整个仿真进程;后续从该时间点继续运行,而不必重新执行此前漫长的初始化过程。
这里保存的不只是 RTL 寄存器值或模拟节点电压,而是整个进程的状态,包括内存、栈与堆、文件位置,以及集成到仿真中的 C/C++、SystemC 和第三方程序状态。因此,PBSR 快照通常比传统逻辑仿真的 snapshot 更大、对运行环境的要求也更严格。Cadence:Mixed-Signal PBSR Flow
1. AMS PBSR 保存的是什么
在 Spectre AMS Designer 与 Xcelium 的混合信号仿真中,PBSR 保存的是整个联合仿真进程:
- Xcelium 数字仿真一侧的状态
- Spectre 模拟仿真一侧的状态
- 当前仿真时间
- 整个进程的内存内容
- 已分配的 stack 和 heap
- 打开文件的当前位置
- 集成的 C/C++、SystemC 和第三方应用状态
可以把它理解为:
1
2
3
4
5
6
7
8
0 ─────────────── Tsave ─────────────── Tend
初始化/启动 后续测试与观察
│
└── 保存整个 AMS 仿真进程
│
├── restart → 测试 A
├── restart → 测试 B
└── restart → Debug
PBSR 特别适用于 initial ramp-up 很长、而多个后续测试共享相同初始化过程的设计。Cadence 也提供了“将初始化快照交给不同用户,从快照运行不同模式”的应用说明。Cadence:Restart PBSR Simulation by Different User
2. 在 ADE Explorer 中配置 AMS PBSR
2.1 启用 PBSR
在 ADE Explorer 中:
- 打开
Netlist and Run Options。 - 进入
Save and Restart Options。 - 选择
Enable process-based save restart (PBSR)。 - 设置快照保存方式。
- 运行 Spectre AMS Designer 仿真。
Cadence 建议 PBSR 使用 batch simulation mode。Cadence:ADE Explorer PBSR Flow
2.2 指定保存时间点
ADE Explorer 提供三类保存策略。
方法一:指定离散时间点
选择 Time points,然后设置:
- Snapshot prefix
- Save time points
例如:
1
20n 50n 100n
时间值和单位之间不能有空格;多个时间点之间使用空格分隔。
如果需要给某个快照指定名字,可使用:
1
(50n my50nSnapshot)
表示在 50ns 保存名为 my50nSnapshot 的快照。
方法二:按时间区间保存
设置:
Time intervalStart timeStop time
例如从某个时间开始,每隔固定时间保存一次,直到指定的停止时间。
方法三:周期性快照
选择 Periodic snapshot,设置:
Snapshot base nameStrobe time- 最大快照数量,或者保存全部
- 快照名称采用的时间单位
这种方式适合长时间 AMS 仿真:即使不知道故障会在哪个时间出现,也可以周期性保留可恢复点。
3. 从 ADE Explorer 快照重启
重启步骤是:
- 重新打开
Netlist and Run Options。 - 选择
Enable Restart。 - 从已有快照中选择一个 snapshot。
- 运行仿真。
假设原仿真在 50ns 保存快照,新的停止时间是 200ns,实际计算从 50ns 继续。但 ADE Explorer 可以显示从时间 0 到最终停止时间的结果,而不只是重启后的区间。
4. Interactive 模式中的实际保存命令
在 interactive/debugger mode 下,ADE 会在 probe.tcl 中生成类似命令:
1
2
3
stop -create -time 40ns -absolute \
-execute "save snapshot_40n -overwrite" \
-continue
含义是:
- 在绝对时间
40ns建立停止点; - 到达该时间时执行
save; - 将快照命名为
snapshot_40n; - 如果同名快照存在则覆盖;
- 保存后继续仿真。
Cadence 文档指出,interactive mode 会在 SimVision MS 控制台暂停并执行相关命令;批处理模式仍是推荐方式。Cadence:ADE Explorer PBSR Flow
5. 使用 xrun 命令行执行 AMS PBSR
5.1 启用进程级保存
Xcelium 通过以下选项启用 PBSR:
1
xrun -64bit -process_save <其他参数>
Cadence 推荐配合 -64bit 使用。Cadence:Enabling Process-Based Save/Restart
5.2 在 Tcl 中保存
例如:
1
2
run 40ns
save snapshot_40n -overwrite
也可以使用前面的 stop -create 命令,让仿真器在指定时刻自动保存。
Xcelium PBSR 同时支持:
- Tcl
save命令 - HDL
$savesystem task
Cadence:Saving the Simulation Snapshot of Mixed-Signal Designs
5.3 Warm restart
Warm restart 不退出当前仿真器进程,在 Tcl 中执行:
1
restart snapshot_40n
它适合交互式调试:从相同快照重新运行,观察不同信号或修改允许动态调整的参数。
5.4 Cold restart
Cold restart 会重新启动仿真器进程:
1
xrun -r snapshot_40n
Cold restart 可用于批处理任务和回归环境。Cadence:Restarting the Simulation
对于 runams 流程,Cadence 另有专门说明,涵盖 PBSR 使用 -r 或 -R 重启。具体参数应按所安装版本的说明使用:Cadence:How to Restart Simulation Using PBSR in runams Flow。
6. 在 ADE Assembler 中使用
保存快照
- 打开
Netlist and Run Options。 - 进入
Save and Restart Options。 - 选择
Enable process based save restart。 - 选择
Enable save。 - 填写保存时间、快照名称等选项。
- 运行测试。
IC25.1 Assembler 用户指南描述的这一保存流程针对 single-point run,并明确说明快照只能为单点运行保存。
从快照重启
- 选择
Enable process based save restart。 - 选择
Enable restart。 - 启用
Use saved history for restart。 - 在
Reference Histories中加入保存快照的历史记录。 - 选择 point number。
- 选择 snapshot name。
- 如果需要,填写 restart arguments,例如文档给出的
-covoverwrite。 - 点击
Add,将该重启项加入Snapshot Sweep Information表。 - 启用该项并运行。
ADE Assembler 会为相应重启项生成 Tcl 文件,其路径显示在 tclFile 列中。Cadence:Assembler Single-Point PBSR
Cadence 还提供了独立的 Multi-Point PBSR RAK,其说明是可以选择一个或多个 point 进行重启;该能力与具体 IC、Xcelium、Spectre 版本有关。该 RAK 标注的测试版本为 IC23.1 ISR15、Xcelium 25.03-s003 和 Spectre 23.1 ISR17。Cadence:Multi-Points PBSR in ADE Assembler
7. 从快照恢复时,哪些内容可以改变
Cadence 为 ADE PBSR 给出的主要复用条件是:
| 项目 | 要求 |
|---|---|
| Design | 必须是同一个设计 |
| 拓扑 | 不得改变设计拓扑 |
| Model files | 模型文件不能改变 |
| Solver | 必须使用保存快照时相同的求解器 |
| 瞬态选项 | 只能修改不会影响拓扑的选项 |
| 运行环境 | 混合信号 PBSR 文档要求使用完全相同的硬件 |
文档列举的 topology-neutral transient options 包括:
1
2
3
4
5
reltol
abstol
errpreset
method
stop
这不表示任何仿真参数都能修改;应该以 ADE 参数修改界面提供的项目为准。
8. PBSR Parameter Change
在 ADE Assembler 中,可对 Snapshot Sweep Information 中的条目执行:
1
右键 → Open Parameters Change
随后在 PBSR Parameter Change 表单中修改:
- 仿真参数
- 温度
- 当前值和目标值
- Delay
- Steps
- 界面允许修改的 Spectre solver options
可修改的 solver 选项与 High-Performance Simulation Options 的设置有关。Cadence:PBSR Parameter Change Form
对于命令行 AMS 流程,Cadence 文档还提供 get_analog_param 和 set_analog_param,用于在重启后读取或修改支持动态修改的模拟参数。它不等价于修改网表、器件连接或模型文件。
9. AMS PBSR 的典型使用场景
长时间初始化之后运行多个测试
1
2
3
4
5
共同 initial ramp-up
↓
保存 snapshot
↓
分别执行不同模式、不同后续测试
每个测试不必重复初始化阶段。
从接近故障的位置调试
在故障之前周期性保存快照。出现问题后,从最接近故障的快照重启,而不必从时间 0 重跑。
计算节点或系统故障恢复
Cadence 将 system failure、power outage 等列为 PBSR 的应用场景。恢复后从已保存的良好状态继续,而不是重新执行完整仿真。
AMS UVM 与 Dynamic Test Reload
Cadence 提供了面向 AMS ADC 验证环境的 PBSR + Dynamic Test Reload RAK,说明 PBSR 可以与 UVM 混合信号验证流程结合。Cadence:PBSR with DTR for AMS
10. 使用时最重要的限制
-
PBSR 不是可任意迁移的纯逻辑状态文件。Cadence 混合信号指南要求在完全相同的硬件上恢复。
-
不要修改设计拓扑、模型文件或求解器。
-
不要在 ADE 已配置保存和重启的基础上,额外手工指定其他保存命令或不同 restart point。Cadence 明确指出,这可能导致不受支持的 PBSR database 状态。
-
快照包含整个进程状态,因此可能很大,需要预留足够的磁盘空间和写入时间。
-
Assembler 的 single-point、multi-point 能力具有版本差异,应按照当前安装版本对应的用户指南或 RAK 操作。