practice_templates/deep_01/04_coverage/README.md
深度实践: 覆盖率分析与补充
🎯 任务目标
补全 env/my_coverage.sv 中的功能覆盖率定义,并编写测试用例提高覆盖率。
📝 需要补全的内容
1. env/my_coverage.sv — 添加覆盖率组
| covergroup | 说明 | 要求 |
|---|---|---|
| data_value_cg | 数据值覆盖 | ✅ 已提供 (参考) |
| bit_pattern_cg | 位模式覆盖 | ⭐ TODO: 添加 bit7/bit0/alternating |
| transition_cg | 数据变化覆盖 | ⭐ TODO: 添加转换 bins |
2. 编写测试用例提高覆盖率
使用 make sim TEST=cov_test 运行覆盖率测试。
📚 知识点
| 知识点 | 说明 |
|---|---|
| covergroup | 定义覆盖率收集的容器 |
| coverpoint | 定义单个信号的覆盖目标 |
| bins | 定义覆盖点的值分区 |
| cross | 交叉覆盖,覆盖多个信号的组合 |
| transition bins | 覆盖信号值的变化序列 |
| uvm_subscriber | UVM 覆盖率收集器基类 |
🏃 操作步骤
- 阅读
env/my_coverage.sv中已有的data_value_cg作为参考 - 补全
bit_pattern_cg和transition_cg - 在
new()中初始化、在write()中采样 make compile编译make sim TEST=cov_test运行覆盖率测试- 查看覆盖率报告
✅ 验收标准
- 编译无错误
- 仿真输出 "TEST PASSED"
- 覆盖率报告正确打印各组覆盖率