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 中:

  1. 打开 Netlist and Run Options
  2. 进入 Save and Restart Options
  3. 选择 Enable process-based save restart (PBSR)
  4. 设置快照保存方式。
  5. 运行 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 interval
  • Start time
  • Stop time

例如从某个时间开始,每隔固定时间保存一次,直到指定的停止时间。

方法三:周期性快照

选择 Periodic snapshot,设置:

  • Snapshot base name
  • Strobe time
  • 最大快照数量,或者保存全部
  • 快照名称采用的时间单位

这种方式适合长时间 AMS 仿真:即使不知道故障会在哪个时间出现,也可以周期性保留可恢复点。

3. 从 ADE Explorer 快照重启

重启步骤是:

  1. 重新打开 Netlist and Run Options
  2. 选择 Enable Restart
  3. 从已有快照中选择一个 snapshot。
  4. 运行仿真。

假设原仿真在 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 $save system 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 中使用

保存快照

  1. 打开 Netlist and Run Options
  2. 进入 Save and Restart Options
  3. 选择 Enable process based save restart
  4. 选择 Enable save
  5. 填写保存时间、快照名称等选项。
  6. 运行测试。

IC25.1 Assembler 用户指南描述的这一保存流程针对 single-point run,并明确说明快照只能为单点运行保存。

从快照重启

  1. 选择 Enable process based save restart
  2. 选择 Enable restart
  3. 启用 Use saved history for restart
  4. Reference Histories 中加入保存快照的历史记录。
  5. 选择 point number。
  6. 选择 snapshot name。
  7. 如果需要,填写 restart arguments,例如文档给出的 -covoverwrite
  8. 点击 Add,将该重启项加入 Snapshot Sweep Information 表。
  9. 启用该项并运行。

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_paramset_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. 使用时最重要的限制

  1. PBSR 不是可任意迁移的纯逻辑状态文件。Cadence 混合信号指南要求在完全相同的硬件上恢复。

  2. 不要修改设计拓扑、模型文件或求解器。

  3. 不要在 ADE 已配置保存和重启的基础上,额外手工指定其他保存命令或不同 restart point。Cadence 明确指出,这可能导致不受支持的 PBSR database 状态。

  4. 快照包含整个进程状态,因此可能很大,需要预留足够的磁盘空间和写入时间。

  5. Assembler 的 single-point、multi-point 能力具有版本差异,应按照当前安装版本对应的用户指南或 RAK 操作。