第六章Clock Viewer

概述

Clock Viewer 是一个集中查看时钟环境信息的 GUI 工具,帮助用户高效探索时钟配置、调试和解决时钟相关问题。

功能

典型用法

  1. elaborate 后打开 Clock Viewer
  2. 检查自动检测到的时钟是否正确
  3. 对于遗漏的时钟手动声明
  4. 检查时钟域交叉是否被 CDC App 识别

时钟建模检查清单

为什么时钟是第一优先级?时钟声明错误是形式验证中最隐蔽的问题之一。漏声明一个时钟,那个时钟域的 flop 就不会被正确建模,可能导致假 proven(bug 被遗漏)或假反例。elaborate 后第一件事就是检查时钟。

elaborate 后的时钟检查流程

  1. 打开 Clock Viewer(Tools → Clock Viewer)
  2. 检查时钟域列表:数量是否符合预期?每个时钟域的 flop 数合理吗?
  3. 检查 Unassigned Clocks(未分配时钟)区域:有没有信号被工具检测为时钟但未声明?
  4. 检查生成时钟关系:分频/倍频时钟是否正确识别?
  5. 对多时钟设计,用 clock -rate 确认信号与时钟域的关联正确

常见时钟问题

问题症状解决
漏声明时钟该时钟域的 flop 不出现在形式模型中,CDC 漏检手动声明 clock clk_name
门控时钟误判工具把门控使能信号当成独立时钟检查 Clock Viewer,使用 clock -ideal 或调整设置
分频时钟未声明分频逻辑被当作普通数据路径clock clk_div 2 1 声明分频关系

来源文档

  • jaspergold_apps_userguide.pdf Ch.4