第三章SEC 时序等价检查

概述

时序等价检查验证两个设计(或同一设计的两个版本)在时序行为上是否等价。典型应用场景:

SEC Use Models

SEC 工作流程

  1. 加载两个设计(Golden 和 Revised)
  2. 使用 Setup Wizard 配置映射关系
  3. 检查接口一致性
  4. 精化映射(Mapping)
  5. 生成验证环境
  6. 运行等价证明
SEC App GUI 界面与 Setup Wizard
SEC App GUI 界面与 Setup Wizard

Setup Wizard

SEC 提供 Setup Wizard 引导用户完成配置:

接口检查(Interface Check)

# 检查 Golden 和 Revised 的接口是否匹配
check_interface

接口检查报告不一致的端口、宽度不匹配等问题。

映射精化

层级别名规则

# 创建层级别名(处理层级名称变化)
add_mapping_alias -golden "/old_name" -revised "/new_name"

# 高级映射选项
set_mapping_option -case_insensitive
set_mapping_option -prefix_match

Expert / Non-Expert View

SEC 提供两种视图模式:

证明优化

Proof Cache

# 启用证明缓存加速重跑
set_proof_cache -enable

Failure Extension

提供两种策略:

set_sec_strategy -basic
set_sec_strategy -bug_hunting

SEC 等价检查界面

SEC 验证方法论

SEC 适用场景

时序等价检查(SEC)在以下场景中不可或缺:

映射策略

SEC 的核心是建立 spec(原始)和 imp(修改后)之间的信号映射

不等价结果分析

当 SEC 报告不等价时,按以下顺序排查:

  1. 映射错误:检查自动映射是否正确配了信号(最常见原因)
  2. 接口不匹配:spec 和 imp 的端口列表是否一致?用 check_sec -interface
  3. 复位/X 值差异:未初始化寄存器处理不同?用 -auto_map_reset_x_values on
  4. 真的不等价:映射确认正确后,看反例波形找到差异点——这是真正的修改 bug
Proof Cache:SEC 在迭代调试时特别有用——每次修改后重跑,Proof Cache 缓存已证明等价的点对,只有修改影响的部分需要重新证明,大幅加速迭代。

来源文档

  • jaspergold_sec_userguide.pdf
  • example_jaspergold_apps/SEC/