practice_templates/deep_01/03_testcases/README.md

深度实践: 测试用例调试与编写

🎯 任务目标

本练习包含两个部分:

Part 1: 调试 (Bug Hunting)

文件 tests/debug_case.sv 中包含 5 个 Bug,包括:
- 编译错误 (语法/拼写)
- 逻辑错误 (功能问题)
- UVM 方法学错误

任务: 找到并修复所有 5 个 Bug

验证方法:

make compile                     # 先确认编译通过
make sim TEST=debug_case         # 运行调试测试用例

Part 2: 编写新测试用例

tests/write_new_test.sv 中编写一个新的测试用例,要求:
- 包含边界值测试 (0x00, 0xFF)
- 包含特殊模式测试 (0xAA, 0x55)
- 包含 Walking-1 测试
- 包含随机测试 (≥20 个)

验证方法:

make sim TEST=new_test

📚 知识点

知识点 说明
UVM 编译调试 常见编译错误的定位和修复
config_db 路径 正确的层次路径设置
时间单位 ns vs ms vs us 的正确使用
UVM 宏拼写 `uvm_component_utils 等宏的正确写法
phase 名称 run_phase vs main_phase 的区别
定向测试 `uvm_do_with 约束语法

📁 文件结构

├── tests/
│   ├── debug_case.sv       ← ⭐ Part 1: 找到并修复 5 个 Bug
│   ├── write_new_test.sv   ← ⭐ Part 2: 编写新测试用例
│   ├── my_case0.sv         ← 正确的参考测试用例
│   └── base_test.sv        ← 测试基类 (完整)
├── env/                    ← 完整的验证环境 (无需修改)
├── rtl/                    ← DUT (完整)
├── top_tb.sv
└── Makefile

✅ 验收标准

  • make sim TEST=debug_case 输出 "TEST PASSED"
  • make sim TEST=new_test 输出 "TEST PASSED"
  • 无 UVM_ERROR 或 UVM_FATAL