- 覆盖率是衡量测试验证完备性的一个通用词语。
- 覆盖率工具会在仿真过程中收集信息,然后进行后续处理并且得到覆盖率报告。
- 通过这个报告找出覆盖之外的盲区,然后修改现有测试或者创建新的测试来填补这些盲区。
覆盖率类型
- 行覆盖率
- 路径覆盖率
- 翻转覆盖率
- 状态机覆盖率
覆盖组
- 覆盖组(covergroup)和类相似,一次定义后可以便多次实例化
- 一个covergroup可以包含一个或者多个coverpoint,且全部在同一时间采集
- covergroup可以定义在类中,也可以定义在interface或者module中
- covergroup可以采样任何可见的变量(程序变量、设计端口、接口信号)
- 一个类里可以包含多个covergroup
- 当拥有多个独立的covergroup时,需要自行使能或禁止
- 每个covergroup可以定义单独的触发采样事件,允许从多个源头手机数据
- covergroup必须被例化才可以用来收集数据
1. covergroup CovPort; //定义
coverpoint tr.port;
endgroup2. CovPort cg1 = new(); //例化
3. cg1.sample(); //采样
covergroup的采样触发
- 直接通过sample()函数完成
- 在covergroup中用阻塞表达式或者使用wait或@实现在信号或事件上的阻塞
covergro