31_config机制

1. 概述

在这里插入图片描述

  • UVM中配置必须在底层组件创建之前就完毕
    在这里插入图片描述
  • set在顶层环境,get在底层环境
  • T是参数类型
  • 参数分别为:component句柄,实例名称,变量名称,拿出值

2. 接口传递

在这里插入图片描述

  • sv中组件
    在这里插入图片描述
  • 首先定义interface
  • 之后在comp1中添加virtual,类中interface指针必须用virtual
  • build_phase通过get interface指针传递拿到interface,四个参数分别代表当前组件comp1,this做代表的路径为root.test.c1.vif;第二个参数为空代表当前想要拿到的变量就是vif指针,传递给virtual interface
    在这里插入图片描述
  • set在顶层,先出现,配置好uvm_config_db的查找表,依据路径查找;之后底层再get出来interface。
  • 组件还没创建,就可以先对变量做配置。这是因为uvm_config_db做了中间存放,底层组件例化时,就可以通过get看对应的路径是否有配置信息,有就返回1,没有返回0.
  • set的参数分别表示:1传递root句柄,2传递实例(root.test.c1),3变量名称(root.test.c1.vif),4set进来的变量是interface指针。
  • run_test帮助我们实现组件结构。

3. 变量设置

在这里插入图片描述

  • #(参数类型),get前三个参数构成传递内容的层次关系,最后一个参数是作用到哪个变量
    在这里插入图片描述

4. object传递

在这里插入图片描述
在这里插入图片描述

  • 本例子中,传递是父类句柄,set、get类型应该严格一致。
    在这里插入图片描述
  • 先set后create
  • 当前的例子中,顶层是将子类句柄按照父类句柄去set,那么底层拿到的也是父类句柄,因此必须进行句柄类型转换转为子类句柄,这样才能访问子类中的val1/str1。
  • 若传递的是句柄,set、get句柄类型必须严格一致,是父类都是父类,是子类都是子类。本例中也可都是子类,那就不用$cast()了
    在这里插入图片描述
  • set、get成对出现,先set后get
  • set、get的类型必须严格一致
  • set、get的作用路径,统一通过参数构建起来路径关系
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值