目录
● 功能覆盖率:表示验证计划覆盖设计功能的百分比
设计spec中描述了设计应具备的功能feature,验证计划就应针对列举的所有功能规划。例如D触发器就包括数据寄存和复位两种功能。
除了功能覆盖率还有其他一些覆盖率可以衡量验证进展情况:
● 代码覆盖率:简单易行,例如行覆盖率(多少行代码被运行过)、翻转覆盖率(1bit变量的值为0或1)、状态机覆盖率(哪些状态被访问过)
代码覆盖率可以衡量整个设计的实现情况,但是无法衡量是否有代码遗漏或者某些bug。
● 漏洞率:即bug率,在项目实施期间,保持追踪bug出现的速率,例如每周出现的bug数,做一个统计。
● 断言覆盖率:即SV代码中断言被触发的速率or频繁程度。
前面提过,断言可用于衡量多个设计信号之间关系是否满足要求,一旦检测到问题就可以立即停止仿真,详见SystemVerilog HVL:断言(System Verilog Assertion, SVA)
本文主要讲功能覆盖率。
本文深入探讨SystemVerilog中的功能覆盖率,包括覆盖策略、数据采样、覆盖组、覆盖点、采样触发方式、覆盖选项、仓和覆盖率计算。介绍了如何根据设计规范制定验证计划,使用覆盖组和覆盖点进行数据采样,以及如何通过事件触发和回调函数进行采样。同时,详细讲解了仓的概念和不同类型的仓(如条件仓、翻转仓、非法仓等),以及如何计算覆盖率。
订阅专栏 解锁全文

281

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



