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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[原创] 随机类内部随机类成员不能randomize的问题

[复制链接]
发表于 2015-1-25 23:53:07 | 显示全部楼层 |阅读模式

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

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

x
legacy 的code, 遇到问题,不知道该如何解决,恳请各位大牛看看,谢谢!

class B extends uvm_object;
      rand int ...
      rand bit ...
endclass

class C extends uvm_object;
     rand int ...
     rand bit ...
endclass

class A extends uvm_object;
      rand B m_b;
      rand C m_c;
      rand int ....
      .....

endclass

testcase

rand A m_a;

现在的问题是,当我在testcase里面assert m_a.randomize() with {} 的时候,m_b不能被randomize,而m_c可以。但是在m_a.post_randomize()里面却可以单独assert m_b.randomze()....这是为什么呢?VCS没有报告任何constratin()的冲突。就是m_b.xxx都是0.没有随机值。
发表于 2015-1-26 13:29:55 | 显示全部楼层
自己做实验不就知道了。。
发表于 2015-1-26 16:53:18 | 显示全部楼层
这样的代码恐怕别人很难重现你的现象
发表于 2015-1-26 22:56:54 | 显示全部楼层
代码信息量太小,至少看不错为什么m_b不能而m_c能随机。。。
 楼主| 发表于 2015-1-27 10:18:47 | 显示全部楼层
难发现原因,就是因为code太多,无法贴出来,要好几屏。也很难debug。有什么方法可以追踪内嵌randomize函数里面的行为?
发表于 2015-1-27 21:15:07 | 显示全部楼层
这种用法在做cfg的类很常见。想确认一下有没有在new函数或者pre_randomize函数中对m_b和m_c进行create或new。
 楼主| 发表于 2015-1-28 08:59:52 | 显示全部楼层



在 A 的 new()里面,create的m_b和m_c。
发表于 2015-1-28 18:08:46 | 显示全部楼层
你自己说过constraint里可以加$display的吧
发表于 2015-1-28 19:52:02 | 显示全部楼层
回复 7# tbb2009


   那就有点奇怪了,可以试试gui的方式进行debug,直接加入watch列表试试,看来是不是都是可以随机的。
 楼主| 发表于 2015-1-29 08:02:09 | 显示全部楼层


回复  tbb2009


   那就有点奇怪了,可以试试gui的方式进行debug,直接加入watch列表试试,看来是不是 ...
dtyuzhou 发表于 2015-1-28 19:52



谢谢回复。主要 非in line randomize,无法设置断点啊。一闪而过。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-14 14:28 , Processed in 0.024900 second(s), 8 queries , Gzip On, Redis On.

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