语义检查软件:
Spyglass
语义检查范围:
(1)常见设计错误
(2)影响覆盖率收敛问题
(3)可能会产生X值以及受其影响的设计部分
进一步细化这些检查项,它们会具体检查以下设计方面:
(1)验证收敛性检查
- 无法达到的逻辑部分
- 无法跳转到的状态机状态
- 无法完成的状态机跳转逻辑
(2)硅效用检查
- 寄存器被固定赋值
- 寄存器未初始化
- X值的传播
(3)功能问题检查
- 状态机检查
- 总线检查
- case语句检查
- 数学逻辑检查
这些静态检查最大的便捷性在于,可以在早期发现一些功能实现以外的设计问题,而且也有助于完善设计代码,提高有效覆盖率以及RTL与网表的逻辑一致性(例如寄存器未初始化或固定赋值)。语义检查最显著的两个优势在于:
(1)不需要验证环境。设计人员可以在发布设计版本前用语义工具检查修改设计中的问题,这对在仿真之前扫清基本障碍、保证设计质量很有帮助。
(2)不需要写断言。这与接下来的形式验证有关;语义检查无关乎从功能描述到实现的翻译准确度,所以不需要断言参与进来。