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 覆盖率收集器基类

🏃 操作步骤

  1. 阅读 env/my_coverage.sv 中已有的 data_value_cg 作为参考
  2. 补全 bit_pattern_cgtransition_cg
  3. new() 中初始化、在 write() 中采样
  4. make compile 编译
  5. make sim TEST=cov_test 运行覆盖率测试
  6. 查看覆盖率报告

✅ 验收标准

  • 编译无错误
  • 仿真输出 "TEST PASSED"
  • 覆盖率报告正确打印各组覆盖率