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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1661|回复: 6

[讨论] 小白请教uvm中的new函数

[复制链接]
发表于 2022-4-14 11:03:36 | 显示全部楼层 |阅读模式

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

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

x
请问uvm中调用的new函数是sv的new函数,还是uvm 的class定义的new函数?
发表于 2022-4-14 12:45:34 | 显示全部楼层
本帖最后由 易素心 于 2022-4-14 12:49 编辑

我没太看懂你的问题,我就按照我的理解先回答了。sv中的new函数作用是创建一片内存空间,class中的new函数是类的构造函数,在一个class在被实例化的时候,会自动执行class中的new函数,所以class中的new函数完成的是一些初始化相关的设置。
比如
class A;  
    int i;
    function new();
        i = 15;
    endfunction
endclass

A a_inst;
a_inst = new();
在a_inst实例化的时候,最一行这个new()函数创建一片空间给它,在这个过程中自动调用class内部的的new函数将i赋值为15。此时的a_inst.i 值为15。
如果内部的new函数需要传参,可以在调用new()的时候带上参数。。
发表于 2022-4-14 21:19:05 | 显示全部楼层
UVM就是SV写的
发表于 2022-4-15 19:44:39 | 显示全部楼层
就近原则。假如你在class里面调用new,则当前类的new函数(若当前类有new函数声明和定义);若你在使用new函数的地方,既没有类的实例化,也没有调用任何类的句柄,甚至不是在类里面(如testbench的initial块里面)调用new函数,则是纯sv的new函数。
 楼主| 发表于 2022-5-14 09:49:14 | 显示全部楼层


所以UVM的class中调用的new函数就是sv定义的new函数是吗?
 楼主| 发表于 2022-5-14 09:50:25 | 显示全部楼层


qsh123_123 发表于 2022-4-15 19:44
就近原则。假如你在class里面调用new,则当前类的new函数(若当前类有new函数声明和定义);若你在使用new ...


那类中的new函数也是基于sv里面定义的new函数写的是吧?
发表于 2022-5-14 14:53:58 | 显示全部楼层


gavina_zhao 发表于 2022-5-14 09:49
所以UVM的class中调用的new函数就是sv定义的new函数是吗?


是的,uvm使用的还是sv这个语言,你不能把它们分别开来,你可以理解,uvm本质就是将sv里面的各种task,function封装成class在用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-27 23:23 , Processed in 0.022181 second(s), 6 queries , Gzip On, Redis On.

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