在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2376|回复: 9

[求助] agent类型不被识别

[复制链接]
发表于 2016-12-14 08:40:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我是UVM小白  目前在搭环境,自己跑一些程序。
vlog时遇到一个问题, 说是 agent类型没有被申明。 大家看看如何解决。

大体代码如下

class env extends uvm_env;
  `uvm_compnent_utils(...)

  agent ag1;
  agent ag2;
  
  function void build();
     ag1 = agent::type_id::create(...);
     ag2 = agent::type_id::create(...);
  endfunction

endclass
发表于 2016-12-14 09:03:12 | 显示全部楼层
最好是把仿真工具报的错误也一起贴出来。不过你这里的build function是你自己在这个uvm_env的派生类中添加的?uvm中一般是build_phase function。
 楼主| 发表于 2016-12-14 10:03:13 | 显示全部楼层
回复 2# lx2116

我的环境在家里,错误信息没法贴出来。  这些code来自一份教程,估计没贴全,所以很多类型得自己定义。。。

至于你说的phase函数, 我觉得build和build_phase是一样的,只是后者带phase而已。 如不对,请指教。
发表于 2016-12-14 11:25:45 | 显示全部楼层
代码中是否已经定义过agent这个类,如果没有肯定会报错,可以使用typedef先声明这个agent类,这样就不会报错了。自己写的build和build_phase是有很大区别的,UVM整个平台在运行时phase是自动执行的,而自己写的则不是,另外在build_phase中一般会调用父类的build_phase,其中也是做了很多事情的。以上个人愚见,若有错误也请指正。
 楼主| 发表于 2016-12-14 12:30:35 | 显示全部楼层
回复 4# lx2116

谢谢你的解释。

问题已经比较清楚了, 怎么关贴啊?
发表于 2016-12-14 13:02:29 | 显示全部楼层
回复 5# ltshan


   好像没有关贴这个说法,放着就可以了。
发表于 2016-12-14 21:26:38 | 显示全部楼层
有1个地方需要注意
1) build_phase是一个virtual类型,是否子类中也需要继承下;
 楼主| 发表于 2016-12-15 08:10:38 | 显示全部楼层
回复 4# lx2116
既然关不了贴,就继续讨论

你说 "UVM整个平台在运行时phase是自动执行的,而自己写的则不是"。 这句话本身没错。 但build也是phase函数啊,经我实验也是自动执行的。
发表于 2016-12-15 12:15:23 | 显示全部楼层
回复 8# ltshan

build(),connect()等是OVM的用法,uvm延续了这一用法,无特殊使用时可以认为等价于相应的phase
 楼主| 发表于 2016-12-15 12:48:52 | 显示全部楼层
回复 9# shaoqingtju


    多谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-2 07:30 , Processed in 0.027955 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表