第六章Combo Loop Viewer

概述

Combo Loop Viewer 是集中查看和调试组合环(combinational loop)的工具。组合环是指没有寄存器打断的反馈环路,会导致仿真和形式验证中的不确定行为。

GUI 标签页

调试组合环

  1. elaborate 后打开 Combo Loop Viewer
  2. 查看检测到的组合环列表
  3. 在 Schematic 中追踪环路径
  4. 确定环的根因(通常是设计 bug 或缺少复位)
  5. 修复 RTL 或添加 cutpoint 约束

组合环处理决策

什么是组合环、为什么怕它

组合环是没有寄存器打断的反馈路径:信号 A → 组合逻辑 → 信号 B → 组合逻辑 → 信号 A。在仿真中,组合环会导致 X 值传播(仿真器无法确定稳态);在形式验证中,组合环会导致状态空间不确定,引擎可能无法收敛或给出不可靠结果。

判断和处理流程

1识别:elaborate 后自动检测

JasperGold 在 elaborate 时自动检测组合环并弹出 Combo Loop Viewer 警告。在 Loop Exploration Tab 查看所有检测到的环。

2分类:判断环的类型

点击一个环,在 Schematic 中查看路径。判断它属于哪类:

  • 真 Bug:设计中确实存在错误反馈 → 修 RTL
  • 虚假路径:实际工作中不会形成反馈(如 arbitration 逻辑的互斥路径)→ 加 cutpoint
  • 工具误报:跨层次连接看起来像环但实际不是 → waive
3处理

修 RTL(真 Bug):插入寄存器打断环,或修改逻辑消除反馈。
Cutpoint(虚假路径):cutpoint signal_name 命令将信号设为自由变量,断开环路。
Waive(误报):添加 waiver 标记为已知安全。

注意:不要过度使用 cutpoint!每个 cutpoint 都会减少形式模型的精度,可能导致假 proven。只在你能确认该路径确实不会被触发时才 cutpoint,并且 cutpoint 后要用 cover 确认关键场景仍然可达。

来源文档

  • jaspergold_apps_userguide.pdf Ch.5