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

[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.xdnf.cn/news/20074.html

相关文章:

  • 小企业环境-火山方舟和扣子
  • 【FPGA】DDS信号发生器
  • 【C++】Vector核心实现:类设计到迭代器陷阱
  • < 自用文 主机 USC 记录:> 发现正在被攻击 后的自救
  • 天然苏打水生产的原水抽取与三重除菌的3D模拟开发实战
  • AI大模型对决:谁是最强智能?
  • MySQL 清空表实战:TRUNCATE 与 DELETE 的核心差异与正确用法
  • 小白成长之路-develops -jenkins部署lnmp平台
  • 淘宝京东拼多多爬虫实战:反爬对抗、避坑技巧与数据安全要点
  • EDVAC:现代计算机体系的奠基之作
  • JMeter下载安装及使用入门
  • MySQL 行转列 (Pivot) 的 N 种实现方式:静态、动态与 GROUP_CONCAT 详解
  • linux0.12 head.s代码解析
  • Langchain4j 整合MongoDB 实现会话持久化存储详解
  • Day34 UDP套接字编程 可靠文件传输与实时双向聊天系统
  • HTML5圣诞网站源码
  • Python基础(①①Ctypes)
  • Web安全——JWT
  • 厦门创客匠人靠谱嘛?从内容交付能力看其核心优势
  • el-tree 点击父节点无效,只能选中子节点
  • [BUUCTF-OGeek2019]babyrop详解(包含思考过程)
  • C++:类和对象(上)
  • 微软rStar2-Agent:新的GRPO-RoC算法让14B模型在复杂推理时超越了前沿大模型
  • 卷积操作原来分3种
  • 2025年工科生转型必考的十大高含金量证书!
  • 腾讯云建站多少钱?2025年最新价格曝光,0基础也能做出专业网站?实测真假
  • flutter专栏--深入剖析你的第一个flutter应用
  • 从一次Crash分析Chromium/360浏览器的悬空指针检测机制:raw_ref与BackupRefPtr揭秘
  • 留学第一天,语言不通怎么办?同声传译工具推荐来了
  • 常用假设检验方法及 Python 实现