当前位置: 首页 > news >正文

[UT]记录uvm_config_db的错误:get中的第二个参数设置为this

在这里插入图片描述
这种写法有两个严重的错误:
错误1:“this” 是无效的路径字符串

uvm_config_db#(virtual dut_if)::get(null, "this", "vif", vif);
//                        错误的路径 ↑

问题:“this” 是一个字符串字变量,不是有效的 UVM 路径。UVM 期望的是一个组件层次路径(如 “uvm_test_top.env.agent”),而不是关键字。
错误2:null 上下文与 “this” 路径矛盾

uvm_config_db#(virtual dut_if)::get(null, "this", "vif", vif);
//   上下文为 null ↑       但路径是 "this"

问题:当第一个参数(context)是 null 时,表示从全局配置中查找,但路径 “this” 没有意义。
正确的写法
正确写法1:使用 this 作为上下文(推荐)

// 在 UVM 组件(如 driver、agent、env)内部使用:
uvm_config_db#(virtual dut_if)::get(this, "", "vif", vif);
//        使用 this 作为上下文 ↑  空字符串表示当前组件范围 ↑

正确写法2:指定具体路径

// 如果你知道具体路径:
uvm_config_db#(virtual dut_if)::get(this, "uvm_test_top.env.agent", "vif", vif);
//                        具体路径 ↑

正确写法3:使用通配符

// 在顶层模块或非 UVM 组件中使用:
uvm_config_db#(virtual dut_if)::get(null, "*", "vif", vif);
//   上下文为 null ↑     通配符所有路径 ↑

各种正确用法的对比
在这里插入图片描述
错误的根源
在这里插入图片描述
完整示例

class my_driver extends uvm_driver;virtual dut_if vif;function void build_phase(uvm_phase phase);super.build_phase(phase);// ✅ 正确:在当前组件范围内获取 vifif (!uvm_config_db#(virtual dut_if)::get(this, "", "vif", vif)) begin`uvm_fatal("NO_VIF", "Virtual interface not found!")end// ❌ 错误:使用字符串 "this"// if (!uvm_config_db#(virtual dut_if)::get(null, "this", "vif", vif)) beginendfunction
endclass

总结
在这里插入图片描述

http://www.dtcms.com/a/364431.html

相关文章:

  • 第6章:垃圾回收分析与调优
  • 【NVIDIA B200】1.alltoall_perf 单机性能深度分析:基于 alltoall_perf 测试数据
  • 从卡顿到丝滑:3 个实战场景教你搞定代码性能优化
  • DeepSeek、GPT-5都在卷的“快慢脑”,腾讯中科院给出了更优解:还是多模态的!
  • 什么是科技成果鉴定测试?成果鉴定测试报告带给企业什么好处?
  • c语言链表:从入门到精通
  • 深度学习篇---SGD+Momentum优化器
  • wpf之Border
  • 嵌入式 - 硬件:51单片机(2)
  • 08、Linux 安全组开放端口
  • sed——Stream Editor流编辑器
  • 软件测试中的Bug知识总结
  • 81-dify案例分享-零代码用 Dify 使用梦 AI 3.0 多模态模型,免费生成影视级视频
  • 光伏设计方案怎么对比?360°展示规避空间问题
  • Bug 排查日记:从入门到精通
  • 微服务多级缓存:从问题到实战(小白也能看懂的亿级流量方案)
  • MP4视频太大如何压缩?分享6种简单便捷的压缩小技巧
  • 微服务的编程测评系统20-虚拟机-nginx-部署
  • dockerfile文件的用途
  • Day20_【机器学习—逻辑回归 (2)—分类评估方法】
  • 机器学习与深度学习的 Python 基础之 NumPy(2)
  • 构建安全的自动驾驶:软件测试中的编码规范与AI验证
  • 数据结构_循环队列_牺牲一个存储空间_不牺牲额外的存储空间 Circular Queue(C语言实现_超详细)
  • 机器学习-逻辑回归
  • 数据结构:图的表示 (Representation of Graphs)
  • 下一代自动驾驶汽车系统XIL验证方法
  • 基于机器学习的Backtrader波动性预测与管理
  • MySQL--CRUD
  • Qt使用Maintenance添加、卸载组件(未完)
  • MySQL 中的窗口函数详解:从入门到实战