在芯片设计验证中,SpyGlass(Synopsys)和VC Formal(Synopsys的Formal验证工具,VC Formal AEP可能指其高级应用包)是两种不同验证方法学的工具,它们在目标、技术原理和应用场景上有显著区别。笔者对比区分以下两者的核心差异
1. 验证方法学
| 分类 | SpyGlass | VC Formal (AEP) |
|---|---|---|
| 验证类型 | 静态验证(Static Verification) | 形式验证(Formal Verification) |
| 技术原理 | 基于规则和启发式算法,静态分析RTL代码 | 基于数学逻辑的形式化证明(如模型检查、定理证明) |
| 核心目标 | 检查设计规范性、潜在漏洞和低效代码 | 证明设计是否符合功能规范(无仿真向量依赖) |
2. 主要功能对比
| 功能 | SpyGlass | VC Formal (AEP) |
|---|---|---|
| 设计规则检查 | ✔️ 检查CDC(跨时钟域)、功耗、可测性等规则 | ❌ 不直接检查设计规则,专注于功能正确性 |
| 功能正确性验证 | ❌ 不验证功能逻辑 | ✔️ 通过断言(Assertion)证明设计符合规范 |
| 等价性检查 | ❌ 不支持 | ✔️ 验证RTL与门级网表的功能一致性 |
| 功耗分析 | ✔️ 提供低功耗设计(UPF)规则检查 | ❌ 不涉及功耗分析 |
| 安全漏洞检测 | ✔️ 识别硬件安全威胁(如硬件木马) | ✔️ 可通过形式化方法验证安全属性 |
3. 应用阶段与场景
| 场景 | SpyGlass | VC Formal (AEP) |
|---|---|---|
| 适用阶段 | RTL设计早期(Pre-Synthesis) | RTL设计后期或综合后(Post-Synthesis) |
| 典型用例 | - CDC验证 - 低功耗规则检查 - RTL代码规范审查 | - 功能属性验证(如状态机、协议合规性) - 等价性检查(RTL vs Netlist) - 硬件安全属性证明 |
| 输入依赖 | 仅需RTL代码和规则配置 | 需RTL代码+形式化断言(Assertions/SVA) |
| 问题发现能力 | 发现代码风格、结构问题 | 发现深层次功能缺陷(如死锁、边界条件) |
在实际项目中,二者通常互补而非替代:
- 早期阶段:用SpyGlass快速检查RTL代码质量(如CDC、功耗规则),修复低级错误。
- 功能验证阶段:用VC Formal对关键模块(如仲裁器、FIFO、加密模块)进行形式化验证,确保核心逻辑无缺陷。
- 综合后:用VC Formal进行网表与RTL的等价性检查(LEC)

440

被折叠的 条评论
为什么被折叠?



