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