跳转至

验证计划

1. 验证目标

确保芯片设计满足规格要求,功能正确,性能达标。

2. 验证策略

2.1 验证阶段

阶段 方法 目标
模块验证 UVM 验证单个模块功能
子系统验证 UVM + 系统级 验证子系统交互
芯片级验证 系统级测试 验证完整芯片功能
回归测试 自动化 确保代码修改不引入新 Bug

2.2 验证方法

  • 约束随机验证 (CRV): 使用约束随机激励覆盖各种场景
  • 功能覆盖率: 跟踪验证进度
  • 代码覆盖率: 确保 RTL 代码充分测试
  • 断言验证 (SVA): 捕获协议错误
  • 形式验证: 验证关键逻辑属性

3. 验证环境

3.1 UVM 组件

组件 描述
Sequence 激励生成
Driver 驱动 DUT 接口
Monitor 监控接口活动
Scoreboard 比较预期结果
Coverage 收集覆盖率

3.2 验证环境架构

┌─────────────────────────────────────────┐
│             UVM Test                    │
│  ┌─────────────────────────────────┐    │
│  │           Environment           │    │
│  │  ┌─────────┐  ┌─────────┐      │    │
│  │  │ Agent   │  │ Agent   │      │    │
│  │  │ (AXI)   │  │ (APB)   │      │    │
│  │  └─────────┘  └─────────┘      │    │
│  │  ┌───────────────────────┐     │    │
│  │  │    Scoreboard         │     │    │
│  │  └───────────────────────┘     │    │
│  │  ┌───────────────────────┐     │    │
│  │  │    Coverage Collector │     │    │
│  │  └───────────────────────┘     │    │
│  └─────────────────────────────────┘    │
└─────────────────────────────────────────┘

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 / 内部服务器