验证计划¶
1. 验证目标¶
确保芯片设计满足规格要求,功能正确,性能达标。
2. 验证策略¶
2.1 验证阶段¶
| 阶段 | 方法 | 目标 |
|---|---|---|
| 模块验证 | UVM | 验证单个模块功能 |
| 子系统验证 | UVM + 系统级 | 验证子系统交互 |
| 芯片级验证 | 系统级测试 | 验证完整芯片功能 |
| 回归测试 | 自动化 | 确保代码修改不引入新 Bug |
2.2 验证方法¶
- 约束随机验证 (CRV): 使用约束随机激励覆盖各种场景
- 功能覆盖率: 跟踪验证进度
- 代码覆盖率: 确保 RTL 代码充分测试
- 断言验证 (SVA): 捕获协议错误
- 形式验证: 验证关键逻辑属性
3. 验证环境¶
3.1 UVM 组件¶
| 组件 | 描述 |
|---|---|
| Sequence | 激励生成 |
| Driver | 驱动 DUT 接口 |
| Monitor | 监控接口活动 |
| Scoreboard | 比较预期结果 |
| Coverage | 收集覆盖率 |
3.2 验证环境架构¶
4. 测试用例列表¶
4.1 CPU 核心测试¶
| ID | 名称 | 描述 | 状态 |
|---|---|---|---|
| TC_CPU_001 | 复位测试 | 验证复位行为 | 📝 待实现 |
| TC_CPU_002 | 指令集测试 | 验证所有指令 | 📝 待实现 |
| TC_CPU_003 | 异常测试 | 验证异常处理 | 📝 待实现 |
| TC_CPU_004 | 中断测试 | 验证中断处理 | 📝 待实现 |
4.2 Cache 测试¶
| ID | 名称 | 描述 | 状态 |
|---|---|---|---|
| TC_CACHE_001 | 命中测试 | 验证缓存命中 | 📝 待实现 |
| TC_CACHE_002 | 未命中测试 | 验证缓存未命中 | 📝 待实现 |
| TC_CACHE_003 | 替换测试 | 验证 LRU 替换 | 📝 待实现 |
| TC_CACHE_004 | 写回测试 | 验证写回策略 | 📝 待实现 |
4.3 AXI 接口测试¶
| ID | 名称 | 描述 | 状态 |
|---|---|---|---|
| TC_AXI_001 | 写传输测试 | 验证写操作 | ✅ 通过 |
| TC_AXI_002 | 读传输测试 | 验证读操作 | ✅ 通过 |
| TC_AXI_003 | 突发传输测试 | 验证突发操作 | ✅ 通过 |
| TC_AXI_004 | 错误处理测试 | 验证错误响应 | 📝 待实现 |
4.4 外设测试¶
| ID | 名称 | 描述 | 状态 |
|---|---|---|---|
| TC_PERI_001 | UART 测试 | 验证串口通信 | ✅ 通过 |
| TC_PERI_002 | GPIO 测试 | 验证 GPIO 控制 | 📝 待实现 |
| TC_PERI_003 | Timer 测试 | 验证定时器功能 | 📝 待实现 |
5. 覆盖率目标¶
| 类型 | 目标 | 当前 |
|---|---|---|
| 代码覆盖率 | 95% | 85% |
| 功能覆盖率 | 100% | 75% |
| 断言覆盖率 | 100% | 90% |
6. 验证进度¶
| 模块 | 进度 | 状态 |
|---|---|---|
| CPU 核心 | 60% | 🔄 进行中 |
| Cache | 50% | 🔄 进行中 |
| AXI 接口 | 80% | 🔄 进行中 |
| APB 接口 | 70% | 🔄 进行中 |
| UART | 100% | ✅ 完成 |
| GPIO | 30% | 🔄 进行中 |
| Timer | 40% | 🔄 进行中 |
7. 验证工具¶
- 仿真器: VCS 2022
- 验证方法学: UVM 1.2
- 波形查看: DVE / Verdi
- 覆盖率分析: VCS Coverage
- 回归测试: EDA Playground / 内部服务器