微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > agent类型不被识别

agent类型不被识别

时间:10-02 整理:3721RD 点击:
我是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

最好是把仿真工具报的错误也一起贴出来。不过你这里的build function是你自己在这个uvm_env的派生类中添加的?uvm中一般是build_phase function。

我的环境在家里,错误信息没法贴出来。这些code来自一份教程,估计没贴全,所以很多类型得自己定义。
至于你说的phase函数, 我觉得build和build_phase是一样的,只是后者带phase而已。 如不对,请指教。

代码中是否已经定义过agent这个类,如果没有肯定会报错,可以使用typedef先声明这个agent类,这样就不会报错了。自己写的build和build_phase是有很大区别的,UVM整个平台在运行时phase是自动执行的,而自己写的则不是,另外在build_phase中一般会调用父类的build_phase,其中也是做了很多事情的。以上个人愚见,若有错误也请指正。

谢谢你的解释。
问题已经比较清楚了, 怎么关贴啊?

好像没有关贴这个说法,放着就可以了。

有1个地方需要注意
1) build_phase是一个virtual类型,是否子类中也需要继承下;

既然关不了贴,就继续讨论
你说 "UVM整个平台在运行时phase是自动执行的,而自己写的则不是"。 这句话本身没错。 但build也是phase函数啊,经我实验也是自动执行的。

build(),connect()等是OVM的用法,uvm延续了这一用法,无特殊使用时可以认为等价于相应的phase

多谢。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top