覆盖率类型
覆盖率:衡量设计验证的完备性
代码覆盖率
检测对设计代码运行程度的衡量,达到100%并不代表验证的工作已经完成(可能某些功能并未设计)
line coverage
paths coverage
toggle coverage//所有变量都有过0,1翻转
FSM coverage//状态机中所有状态都已运行到
condition coverage
branch coverage
功能覆盖率
确保设计在实际环境中的行为正确
断言覆盖率
- 用于一次性地或在一段时间内核对两个设计信号之间关系的声明性代码
- 测量某断言被触发的频率程度
- cover property测量关心的信号的值或状态是否发生
漏洞率
在一个项目实施期间,应保持追踪每周有多少个漏洞被发现
实现方法
Makefile文件中:
覆盖策略覆盖组
- 收集信息而非数据
- 只测量需要的内容
- 验证的完备性
covergroup
- 与类相似,一次定义后可多次实例化
- 可包含一个或多个coverpoint,且都在同一时间采集
- 可定义在类中,也可以定义在interface或者module中
- 可采样任何可见的变量,如程序变量、接口信号或者设计端口,接口中cb的output信号不可采样
covergroup的采样触发
- 直接使用sample()
- 使用事件触发