news 2026/6/22 20:15:55

10-1 phase:basic UVM测试平台层次结构与Phase执行顺序解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
10-1 phase:basic UVM测试平台层次结构与Phase执行顺序解析

文章目录

  • 原始代码及log
  • UVM测试平台层次结构与Phase执行顺序解析
    • 🧩 仿真结果图示
  • UVM测试平台层次结构与Phase执行顺序深度解析
    • 🧩 仿真结果图示
    • 🔍 UVM Phase执行顺序核心原理
      • ✅ UVM Phase执行顺序规则
    • 🧪 UVM组件层次结构分析
    • 📊 Phase执行时间线分析
      • 1. build_phase (0ns)
      • 2. end_of_elaboration_phase (0ns)
      • 3. start_of_simulation_phase (0ns)
      • 4. run_phase (关键阶段)
    • ✅ UVM Phase执行顺序核心原则
      • 1. 构建阶段(build_phase):自底向上
      • 2. 运行阶段(run_phase):自顶向下
      • 3. 结束阶段(extract/check/report_phase):自底向上
    • 🔥 本例的关键发现
    • 💡 为什么其他组件的run_phase在500ns前结束?
    • ✅ UVM最佳实践总结
      • ✅ 正确使用UVM Phase
      • ✅ 测试结束协调
      • ✅ 组件层次设计
    • 💬 与UVM官方文档一致
    • ✅ 重要结论
  • 追更
  • build_phase执行顺序与打印顺序
    • ✅ UVM官方文档确认
    • ✅ 仿真结果验证
    • 仿真日志的打印顺序示例
    • UVM测试平台设计规范
    • 💬 为什么UVM设计为build_phase自底向上?

原始代码及log

module top;import uvm_pkg::*;//Create a topology// top// | |// u1(A) u2(A)// | | | |// b1(B) d1(D) b1(B) d1(D)//No run phaseclassDextends uvm_component;functionnew(string name,uvm_component parent);super.new(name,parent);endfunction functionvoidbuild_phase(uvm_phase phase);$display("%0t: %0s: build",$time,get_full_name());endfunction functionvoidend_of_elaboration_phase(uvm_phase phase);$display("%0t: %0s: end_of_elaboration",$time,get_full_name());endfunction functionvoidstart_of_simulation_phase(uvm_phase phase);$display("%0t: %0s: start_of_simulation",$time,get_full_name());endfunction functionvoidextract_phase(uvm_phase phase);$display("%0t: %0s: extract",$time,get_full_name());endfunction functionvoidcheck_phase(uvm_phase phase);$display("%0t: %0s: check",$time,get_full_name());endfunction functionvoidreport_phase(uvm_phase phase);$display("%0t: %0s: report",$time,get_full_name());endfunction endclass//Has run phaseclassBextends uvm_component;rand logic[7:0]delay;functionnew(string name,uvm_component parent);super.new(name,parent);endfunction functionvoidbuild_phase(uvm_phase phase);$display("%0t: %0s: build",$time,get_full_name());endfunction functionvoidend_of_elaboration_phase(uvm_phase phase);$display("%0t: %0s: end_of_elaboration",$time,get_full_name());endfunction functionvoidstart_of_simulation_phase(uvm_phase phase);$display("%0t: %0s: start_of_simulation",$time,get_full_name());endfunction functionvoidextract_phase(uvm_phase phase);$display("%0t: %0s: extract",$time,get_full_name());endfunction functionvoidcheck_phase(uvm_phase phase);$display("%0t: %0s: check",$time,get_full_name());endfunction functionvoidreport_phase(uvm_phase phase);$display("%0t: %0s: report",$time,get_full_name());endfunction taskrun_phase(uvm_phase phase);$display("%0t: %0s: start run phase",$time,get_full_name());#delay;$display("%0t: %0s: end run phase",$time,get_full_name(
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 17:39:39

2025年12月最值得信赖的GEO代运营机构实力榜单

2025年12月最值得信赖的GEO代运营机构实力榜单朋友们,我是罗永浩。今天我们不聊手机,也不聊AR,我们来聊聊一个正在深刻改变所有企业营销命脉的新战场——GEO代运营。你可能听说过SEO,但GEO是啥?简单说,就是…

作者头像 李华
网站建设 2026/6/12 17:28:29

GSW-Gemma3-270M-20251206-1636-GGUF:轻量级对话模型部署与应用指南

GSW-Gemma3-270M-20251206-1636-GGUF:轻量级对话模型部署与应用指南 【免费下载链接】gemma-3-270m-it-unsloth-bnb-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/gemma-3-270m-it-unsloth-bnb-4bit 在人工智能模型轻量化部署成为行业趋势的背…

作者头像 李华
网站建设 2026/6/23 9:01:20

Qt ---- Qt6.5.3 连接MySQL数据库

目录1,配置mysql数据库驱动2,编译qsqlmysql驱动3,连接MySQL数据库1,配置mysql数据库驱动 Qt连接数据库需要两个驱动程序,也就是两种 .dll .lib文件,首先需要配置mysql数据库本身的驱动程序。 首先我们需要…

作者头像 李华
网站建设 2026/6/23 7:09:35

63、网络资源与术语全解析

网络资源与术语全解析 1. 实用网站导航 在网络学习和研究过程中,有许多实用的网站能为我们提供丰富的信息。下面为大家详细介绍不同领域的实用网站: - 认证信息类 - 微软认证 : www.microsoft.com/learning/mcp 是微软认证的总部,提供微软相关认证的详细信息。 …

作者头像 李华
网站建设 2026/6/22 18:54:52

49、Oracle数据库中Java与WebDB/Oracle Portal的配置与使用

Oracle数据库中Java与WebDB/Oracle Portal的配置与使用 Java在数据库中的配置与应用 在不使用SSL(Secure Sockets Layer)时,使用TCP协议的MTS_DISPATCHERS。接着配置 listener.ora 文件以实现GIOP展示和RAW会话,这里使用端口2481。在默认监听器部分添加以下代码: LI…

作者头像 李华