断言(Assertion)是一种嵌入在 RTL 或验证环境中的声明式语句,用于实时检查设计行为是否满足预期的时序或逻辑条件。它本质上是一段“自动运行的监视器”——当断言条件在仿真或形式验证中被违反时,工具立即报告违规时间、位置与波形上下文。以 SVA(SystemVerilog Assertion)为代表的断言机制是 SystemVerilog 的核心特性之一,也是覆盖率驱动验证(CDV)的重要组成部分。
断言分为两种类型:立即断言(Immediate Assertion)写在过程块(always / initial / task / function)中,在仿真执行到该语句时立即求值,用于检查执行到该处的即时条件(如组合逻辑输出、握手信号);并发断言(Concurrent Assertion)使用 assert property 关键字描述跨时钟周期的时序关系(如“请求后三个周期内应答必须到达”),在时钟沿(沿前采样信号值)求值,并在整个仿真期间持续监视。断言还可配合 cover property 收集特定序列是否被触发,形成功能覆盖率指标。在形式验证(FPV)中,断言作为“待证明的属性(property)”输入数学引擎;引擎在用户给定的假设(assume)与约束下,穷举所有可达状态与合法输入序列,证明该属性是否恒成立,且无需编写任何测试激励。
思尔芯 PegaSim 芯神驰全面兼容 IEEE 1800-2017 SystemVerilog,原生支持 SVA 断言——在软件仿真中实时检查断言,违规时自动记录波形与日志,并配合 Claryti 芯神觉调试环境对断言命中进行可视化呈现。在 FPGA 原型验证侧,芯神瞳 Prodigy 通过 ProtoBridge 协同仿真软件与 MDM Pro 深度调试套件提供更高效的调试能力。
断言(SVA)自 IEEE 1800-2005 起即为 SystemVerilog 标准的正式组成部分,并在 2012、2017、2023 各版中持续增强;最新版为 IEEE 1800-2023(2023 年 12 月批准,2024 年 2 月出版)。SVA 已被 Synopsys、Cadence、Siemens EDA 及思尔芯等主流 EDA 工具全面支持。据 Wilson Research Group 2022 调研,SVA 是 IC/ASIC 领域使用最广泛的断言语言,占比约 72%(其次为 OVL 约 15%、PSL 约 9%)。断言密度(断言数/千行 RTL)已成为衡量验证成熟度的常用指标之一。
最后更新:2026-09-04
A:if-else 检查是过程性的,需要手动编写触发条件与检查逻辑,且仅在执行到该代码路径时才生效;断言是声明式的,一旦声明便在整个仿真期间自动监视,不依赖特定激励路径。断言还能用于形式验证,if-else 不能。