practice_templates/deep_02/debug_system_integration/README.md

深度实践 Debug 2-5: 系统集成 Bug 猎人 🐛

📚 背景

一个简化的 SOC 子系统(CPU + AHB 总线 + 2 个 APB 外设)在系统集成时出现了问题。
本练习模拟了真实项目中的系统集成调试场景,包含 6 个 Bug

🎯 任务目标

rtl/soc_subsystem_buggy.sv 包含 6 个系统级 Bug

Bug 编号 难度 类型 提示
Bug #1 ⭐⭐ 地址映射错误 外设基地址分配冲突
Bug #2 ⭐⭐ 时钟连接 APB 外设连到了错误的时钟
Bug #3 ⭐⭐ 复位连接 某个模块复位极性连反
Bug #4 ⭐⭐⭐ 信号位宽截断 AHB→APB 桥数据位宽不匹配
Bug #5 ⭐⭐⭐ 中断连接 中断信号连到了错误的外设
Bug #6 ⭐⭐⭐ 总线仲裁 默认 slave 缺失导致 hang

📁 文件结构

├── rtl/
│   ├── soc_subsystem_buggy.sv    ← ⭐ 包含 6 个系统级 Bug
│   ├── soc_subsystem_golden.sv   ← 参考正确实现
│   ├── simple_cpu.sv             ← CPU 模型 (完整)
│   ├── ahb2apb_bridge.sv         ← AHB-APB 桥 (完整)
│   ├── apb_uart.sv               ← UART 外设 (完整)
│   └── apb_timer.sv              ← Timer 外设 (完整)
├── tb/
│   └── tb_soc_subsystem.sv       ← 系统级测试平台
├── Makefile
└── README.md

💡 调试策略

系统级 Bug 的调试需要不同的方法:
1. 地址映射: 检查每个外设的基地址和大小是否冲突
2. 连接检查: 逐个检查时钟、复位、数据、中断的连接
3. 波形分析: 在总线上追踪事务,确认数据路径
4. 分而治之: 先验证单个外设,再验证系统集成

📝 考核方式

考核项 分值 说明
找到 Bug 1-3 30 分 连接类 Bug
找到 Bug 4-6 40 分 系统级 Bug
调试过程文档 30 分 含波形分析 + 调试策略
合计 100 分

通过标准:≥ 60 分