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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3468|回复: 12

[求助] 关于实例化的问题,求助各位大神

[复制链接]
发表于 2014-9-29 09:25:31 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 周嬷嬷 于 2014-9-29 09:27 编辑

我想问下,class,port和interface的实例化,什么时候是用new,什么时候是用type_id::create呢?还有就是new函数什么时候在function new中使用,什么时候在build_phase中使用呢?
 楼主| 发表于 2014-9-29 09:42:27 | 显示全部楼层
ps,比如说一个class已经在其定义中factory注册了,那么,在别的class调用这个class的时候,什么时候使用new来申明,什么时候使用的是type_id::create呢?感觉搞得比较模糊,我看张强的那本uvm1.1的书,在第一章的代码中,其env模块实例化了4个模块,按照其后面所讲,不是应该用type_id::create么?为什么他本身用的是new函数呢?
发表于 2014-9-29 10:12:22 | 显示全部楼层
1. 如果这个实例可能会override掉,那么就应该使用create的形式,否则就是new。理论上来说,所有的component,所有的sequence,sequence_item以及所有的cfg object都有这个可能,建议都用override。当然了,如果你不用factory的override功能,那么无所谓。
2. 原来写《UVM1.1应用指南及源代码解析》的时候,最开始只是想写后面的10章,前面9章只是随便写写而已,所以很多细节处理的不好。
 楼主| 发表于 2014-9-29 10:42:35 | 显示全部楼层
回复 3# doogo


    那意味着,只要factory注册了,我都用type_id::create来实例化就行了?
 楼主| 发表于 2014-9-29 10:48:28 | 显示全部楼层
回复 3# doogo
在问下,一般来说,实例化是在new函数中实例还是在build函数中实例呢?还是随意
发表于 2014-9-29 10:53:40 | 显示全部楼层
uvm推荐使用factory机制, uvm中的new是必须要的,貌似和节点有关系,初始化一般放在build_phase中,这个phase的执行顺序是自上而下的。
发表于 2014-9-29 11:09:03 | 显示全部楼层
6楼正解
发表于 2014-9-29 11:37:38 | 显示全部楼层



一般都要用create。一般都在build_phase中实例化。
 楼主| 发表于 2014-9-29 15:00:21 | 显示全部楼层
回复 8# doogo


    我的cfg在new函数里面实例化,跑代码的时候,也没有报错呢
 楼主| 发表于 2014-9-29 15:01:43 | 显示全部楼层
回复 6# allencherry


    是自上而下的,据我所知,new函数应该在build前面执行吧,那可以不可以在new里面进行实例化呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-9-21 13:32 , Processed in 0.020677 second(s), 7 queries , Gzip On, Redis On.

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