第六章Visualize 波形调试环境

概述

Visualize 是 JasperGold 的集成调试环境,提供波形查看、源码浏览、信号追踪、根因分析等功能,是调试反例和理解设计行为的核心工具。

Visualize 窗口导览

Classic View(经典视图)

Simplified View(简化视图)

精简界面,聚焦于波形调试和反例分析。

窗口停靠(Docking)

所有面板都可以拖拽停靠、浮动或关闭,自定义布局。

Visualize 波形调试环境(Classic View)
Visualize 波形调试环境(Classic View)

Visualize 工作流

Property Visualization

双击属性自动加载其波形,显示断言在每个周期的评估结果(pass/fail)。

RTL Exploration with Waveforms

在 Source Pane 中点击信号可以添加到波形中,实时探索 RTL 行为。

Design-Space Tunneling

从高层次信号自动追踪到底层驱动信号,快速定位问题根源。

State-Space Tunneling

在反例波形中,快速跳转到关键状态转换点。

波形配置

# 在 GUI 中:
# 1. 右键信号 → Add to Waveform
# 2. 使用 Waveform Configuration 保存/加载波形配置
# 3. Freeze 功能:添加信号时冻结当前波形视图

Building Your Waveform

逐步添加信号构建波形视图。使用 Waveform Configuration 保存常用信号集。

QuietTrace 和多 Trace 窗口

管理多个反例波形窗口,比较不同反例。

Local Task Context

在波形中设置局部任务上下文,聚焦特定时间段的行为。

WaveEdit Mode

WaveEdit 模式允许手动编辑波形值,用于"what-if"分析:

高级调试功能

Indexed Behaviors Pane

列出所有被触发的行为(命中的 cover、失败的 assertion、违反的 assumption)。

Relevant Logic(相关逻辑高亮)

自动高亮与当前信号/属性相关的逻辑锥,帮助理解因果关系。

Relevant Differences

对比两个波形之间的差异,识别导致不同结果的关键信号。

Why / Driver / Load

Source Debugging

Source Pane 中:

高级时序调试

Liveness Properties 调试

Comparing Signals

对比多个信号的时序关系,自动对齐关键边沿。

Appendix: Keyboard Shortcuts

Visualize 提供丰富的键盘快捷键加速调试操作,包括:波形缩放/平移、信号导航、时间光标移动等。

Visualize 波形调试

波形调试方法论

Visualize 不是"看看波形"的工具,它是你定位和理解反例的核心武器。证明失败只是告诉你"属性被违反了",但波形告诉你"怎么违反的、为什么违反"。

反例阅读思路

  1. 从末尾倒推:找到断言失败的时钟周期(红色标记 Current 位置),先看那个周期的信号值,再向前追溯
  2. 先看输入再看内部:确认输入信号是否合法(如果输入本身就不合法,说明约束不够)
  3. 关注异常值:波形中红色高亮的信号参与了失败路径,重点关注这些信号
  4. 用时间游标定位:将游标移到关键变化沿,逐周期分析信号关系

Why 分析:自动找根因

右键信号 → Why 是最高效的调试功能之一。它自动追踪该信号在当前周期值的驱动原因(哪些信号导致它为这个值),递归展开直到找到根因。相当于自动帮你做了"倒推"的工作。

Relevant Logic:聚焦相关逻辑

大设计中波形可能有上百个信号,Relevant Logic 自动筛选出与当前关注信号/属性相关的信号子集,隐藏无关信号,让反例更清晰。

Tunneling:跨层次追踪

Tunneling 功能允许追踪信号穿过模块层次边界,比如追踪一个顶层信号一直到它最终驱动的底层 flop,中间自动展开层次。

WaveEdit:What-if 分析

WaveEdit 允许手动修改波形中的信号值(将某个信号从 0 改为 1),然后观察波形如何变化。这可以用来验证"如果信号 A 是正确的,后面的行为是否正确"——帮助区分设计 bug 和属性错误。

高效调试流程:打开反例波形 → Why 分析失败信号 → Relevant Logic 缩小范围 → 在 WaveEdit 中修正值验证假设 → 回到源码定位 bug 行。

来源文档

  • jaspergold_visualize_gui.pdf
  • jaspergold_apps_userguide.pdf Ch.7