目录
对于测试验证而言,需要判断验证计划是否覆盖了所有的设计特征,这种覆盖的百分比就称为功能覆盖率。
除了功能覆盖率还有其他一些覆盖率可以衡量验证进展情况:
● 代码覆盖率:简单易行,例如行覆盖率(多少行代码被运行过)、翻转覆盖率(1bit变量的值为0或1)、状态机覆盖率(哪些状态被访问过)
代码覆盖率可以衡量整个设计的实现情况,但是无法衡量是否有代码遗漏或者某些bug。
● 漏洞率:即bug率,在项目实施期间,保持追踪bug出现的速率,例如每周出现的bug数,做一个统计。
● 断言覆盖率:即SV代码中断言被触发的速率or频繁程度。
前面提过,断言可用于衡量多个设计信号之间关系是否满足要求,一旦检测到问题就可以立即停止仿真,详见SystemVerilog HVL:断言(System Verilog Assertion, SVA)
本文主要讲功能覆盖率。