uvm_phases

UVM Phase机制详解

1. 概述

UVM Phase机制是验证环境执行流程的核心控制机制,通过预定义的执行阶段确保验证组件的有序初始化和运行。

2. 主要Phase及其作用

2.1 构建阶段 (Build Phases)

graph TD A[build_phase] --> B[connect_phase] B --> C[end_of_elaboration_phase] C --> D[start_of_simulation_phase]
Phase名称 执行顺序 主要作用 典型操作
build_phase 1 组件层次结构构建 创建子组件实例,配置对象分配
connect_phase 2 组件间连接建立 TLM端口连接,analysis端口绑定
end_of_elaboration_phase 3 环境最终调整 拓扑结构检查,最终配置参数设置
start_of_simulation_phase 4 仿真前准备 初始激励生成,参考模型初始化

2.2 运行阶段 (Run Phases)

graph LR PR[pre_reset] --> R[reset] R --> PoR[post_reset] PoR --> P[pre_configure] P --> C[configure] C --> PC[post_configure] PC --> M[main] M --> PSh[pre_shutdown] PSh --> Sh[shutdown]
子Phase名称 执行顺序 场景说明 典型操作
pre_reset 1 复位信号生效前准备 时钟信号启动,电源稳定模拟
reset 2 复位操作执行 复位信号驱动,寄存器复位值设置
post_reset 3 复位后稳定阶段 复位解除时序控制,状态机初始化
pre_configure 4 配置寄存器前准备 配置空间初始化,DUT模式设置
configure 5 寄存器配置阶段 写配置寄存器,模式寄存器设置
post_configure 6 配置后验证准备 配置回读校验,功能模式使能
main 7 主要测试场景执行 测试用例执行,功能覆盖率收集
pre_shutdown 8 结束测试前处理 最后事务完成检测,超时保护机制
shutdown 9 测试结束操作 关闭时钟信号,电源下电模拟

3. 后处理阶段 (Post-Run Phases)

graph TB E[extract_phase] --> C[check_phase] C --> R[report_phase] R --> F[final_phase]
Phase名称 执行顺序 关键作用 典型应用场景
extract_phase 1 数据收集与统计 覆盖率数据收集,错误计数统计
check_phase 2 结果验证与断言 最终状态检查,断言总结报告
report_phase 3 结果报告生成 生成验证报告,输出日志文件
final_phase 4 环境清理 内存释放,文件句柄关闭

4. 执行特性说明

  1. 自动拓扑执行:Phase按层次结构自顶向下(build)和自底向上(run)执行
  2. 同步控制机制:使用phase.raise_objection()/drop_objection()控制执行时间
  3. 超时保护:内置超时机制防止phase无限期挂起
  4. 并行执行支持:run_phase及其子phase支持并行执行模式

5. 最佳实践建议

  1. 在build_phase使用create_component创建子组件
  2. 避免在connect_phase进行耗时操作
  3. 在main phase使用fork-join控制并发激励
  4. 使用phase跳转机制实现异常处理:
phase.jump(uvm_reset_phase::get()); 
  1. 在report_phase使用uvm_report_server进行总结报告
posted @ 2025-03-05 15:32  LeslieQ  阅读(235)  评论(0)    收藏  举报