phase
返回知识网络总入口 · 运行与激励
核心结论
phase 统一组织创建、连接、运行和检查。function phase 不耗时,task phase 可耗时,结束由阶段控制与 objection 决定。
关键机制
- 常见顺序:build → connect → end_of_elaboration → start_of_simulation → 运行 → extract → check → report → final。
- build 自顶向下,其他常见 function phase 自底向上,不依赖兄弟组件先后。
- run_phase 与 reset/configure/main/shutdown 等12个运行阶段组成的 schedule 并行,不是 run 完才 main。
- 同一 task phase 的组件任务并发,结束时未完成任务可能被终止。
- +UVM_PHASE_TRACE 与 timeout 用于定位阶段停滞。
小例子或流程
build:配置与建树
connect:端口连接
run与run-time schedule:驱动、观测、场景并发
extract/check/report:收集、检查遗漏、报告易错点
- forever 或延时不保证 phase 保持运行。
- 保留用户父类必要逻辑,不机械假定所有 super.phase 实现相同。
- 原文5.1.5标注“未理解,待复习,先跳过”,此卡保留待复习状态,不将内部细节视为已确认。
关联知识
- 组件树与实例路径:phase 按各自规则遍历组件树。
- test与启动流程:run_test 创建 test,phase 组织后续运行。
- report日志机制:phase trace 与 timeout 定位阶段停滞。
- objection:task phase 的持续时间与 objection 相关。
- domain与phase跳转:domain/jump 改变动态阶段流程。
- sequence与sequencer:sequence 要在合适阶段启动并存活到完成。