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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2409|回复: 11

[求助] 参数化的类在用type_id_create创建时应该怎么传参呢?

[复制链接]
发表于 2023-4-29 20:04:30 | 显示全部楼层 |阅读模式

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

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

x

我尝试用下图所示的方式进行传参:
K`B~N{CQX)5TZIEZD}6YN@M.png
运行后会报如下错误:
Error-[SV-ICA] Illegal class assignment
testbench.sv, 25
"this.p = uvm_component_registry#($unit::packet,"packet")::create("p1", null, /* contxt = "\000" */);"
  Expression 'uvm_component_registry#($unit::packet,"packet")::create("p1",
  null, )' on rhs is not a class or a compatible class and hence cannot be
  assigned to a class handle on lhs.
  Source type: class $unit::packet#(4,32)
  Target type: class $unit::packet#(2,2)
  Please make sure that the lhs and rhs expressions are compatible


如果把23行换成24行能够正常传参,但是这样的话就用不了工厂机制了。

 楼主| 发表于 2023-4-29 20:07:43 | 显示全部楼层
如果将23行改成
p = packet#(.A_WIDTH(2), .D_WIDTH(2))::type_id::create("p1", null);
打印的结果是4,参数没能传进去,还是默认值
发表于 2023-4-30 08:49:37 | 显示全部楼层
uvm_component_utils要用带parameter那个宏
发表于 2023-4-30 08:51:54 | 显示全部楼层
uvm_component_param_utils
 楼主| 发表于 2023-4-30 09:22:29 | 显示全部楼层
本帖最后由 薛定谔的青蛙 于 2023-4-30 10:00 编辑


zfling 发表于 2023-4-30 08:49
uvm_component_utils要用带parameter那个宏


好的谢谢,这样做确实可以
 楼主| 发表于 2023-4-30 13:34:14 来自手机 | 显示全部楼层


zfling 发表于 2023-4-30 08:51
uvm_component_param_utils


还是有点问题,这样create时可以传参了,但是会报和之前一样的错
Source type: class $unit::packet#(4,32)
  Target type: class $unit::packet#(2,2)
发表于 2023-4-30 20:43:42 | 显示全部楼层
UVM新人一枚 帮顶一下
发表于 2023-4-30 21:01:50 | 显示全部楼层
test是不是也要用uvm_component_param_utils?
发表于 2023-4-30 21:16:53 | 显示全部楼层
 楼主| 发表于 2023-4-30 23:01:01 | 显示全部楼层


simpleplan 发表于 2023-4-30 21:01
test是不是也要用uvm_component_param_utils?


test是不带参数的,为什么用param注册
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-22 01:51 , Processed in 0.021871 second(s), 8 queries , Gzip On, Redis On.

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