news 2026/6/15 7:14:03

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/14 22:36:29

downkyi终极使用指南:从零开始掌握B站视频下载技巧

downkyi终极使用指南:从零开始掌握B站视频下载技巧 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&#xff…

作者头像 李华
网站建设 2026/6/15 10:13:40

DALL·E 3核心技术解密:19页论文揭示AI绘画如何精准响应文本指令

备受瞩目的AI图像生成模型DALLE 3近日再掀行业热潮。OpenAI不仅宣布该模型正式向ChatGPT Plus订阅用户及企业版客户开放,同步披露的技术论文更首次揭开了其"精准遵循提示词"背后的核心机制。这篇仅19页的研究成果,不仅解答了AI绘画领域长期存在…

作者头像 李华
网站建设 2026/6/15 10:11:53

Qwen3-VL-235B-A22B模型深度解析:MoE架构引领多模态智能新突破

在当前大语言模型(LLM)技术飞速发展的浪潮中,Qwen3系列模型凭借其创新性的架构设计和卓越的多模态处理能力,持续吸引着行业目光。其中,Qwen3-VL-235B-A22B作为该系列的重要成员,不仅在基础架构上采用了灵活…

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

51、Windows服务器实用工具与服务配置指南

Windows服务器实用工具与服务配置指南 在Windows服务器的使用过程中,有许多实用的工具和服务可以帮助我们更好地管理和维护系统。本文将介绍RunAs命令、Internet Information Services (IIS)以及Exchange Server 2010的相关使用和配置方法。 RunAs命令 RunAs命令允许我们在…

作者头像 李华
网站建设 2026/6/15 10:25:07

59、搭建 Apache 与 Sendmail 服务器:全面指南

搭建 Apache 与 Sendmail 服务器:全面指南 1. 安装 Apache 1.1 检查 Apache 是否安装 你可以在 shell 提示符下输入以下命令,快速查看系统中是否安装了 Apache: rpm -q httpd如果 Apache 已安装,将显示软件包版本;若未安装,则显示“package httpd is not installed”…

作者头像 李华
网站建设 2026/6/15 10:23:34

42、Unix 服务器监控与数据库补丁升级全解析

Unix 服务器监控与数据库补丁升级全解析 1. 查找 Oracle 会话的 Unix PID 在监控 Oracle 会话时,我们可以通过特定方法找到对应的 Unix PID。例如,在相关示例中,有人以 SYS 身份登录,其 SID 为 12,SERIAL# 为 47394,Unix PID 为 15624。这个 PID 能让我们识别出该用户对…

作者头像 李华