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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3023|回复: 9

[求助] UVM sequence产生的数据包总会出现重复的,为什么?

[复制链接]
发表于 2014-7-24 18:51:27 | 显示全部楼层 |阅读模式

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

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

x
各位大牛:
   我的tranction是这样定义的:

randc  bit  [7:0]  addr;

constrain   va_addr{
  addr  inside  {[0:7]};

}

sequence的length是800次。
driver 中先向sequencer请求数据包,然后进行驱动,最后调用item_done函数。
env的run_phase每跑完800次就跳掉uvm_reset_phase 中,重新运行。

问题是:在复位后,每次产生的前八个数据中都有重复的。randc不是在一个循环内产生的数据都是唯一的吗?
搞了一下午也不知道问题在那里。我把sequence产生的数据包进行了打印,也是一样的结果 。。
求高手解答。。。。
 楼主| 发表于 2014-7-25 15:47:48 | 显示全部楼层
没人回答,自己先顶一下 。。。
发表于 2014-7-28 11:43:16 | 显示全部楼层
8bit addr 就最多256 怎么随机800次?
 楼主| 发表于 2014-7-28 14:38:41 | 显示全部楼层
我对addr进行了约束,让其在0到7内随机。每八次是一个循环,800次是100个randc的循环。从第一个开始,每八个中的数据应该都是0到7中的,且各不相同。 但是我仿真出来的八个数据中就有相同的。不知道我说清楚了没有??
发表于 2014-7-28 15:08:17 | 显示全部楼层
为什么不是rand bit [7:0] addr呢?
 楼主| 发表于 2014-7-28 15:21:46 | 显示全部楼层
randc  bit  [7:0]  addr;
我是想对每个寄存器分别配置一次。所以用randc
发表于 2014-7-29 13:15:19 | 显示全部楼层
回复 4# allencherry


   改成randc [2:0] addr 试试?
这就不用加约束了啊。

而且上来8个数肯定是不重复的吧 我理解。
 楼主| 发表于 2014-7-29 22:31:20 | 显示全部楼层
这个我试过了,不行的。如果将for循环放在item   finish之前,是可以的,但这不是我想要的结果。放在start之前,产生的数据有重复的。
发表于 2014-8-4 22:08:52 | 显示全部楼层
回复 1# allencherry
randc 只对同一个变量起作用。如果每次重新产生一个新的变量,然后再randomize,就观察不到randc变量周期性循环的现象了。
`uvm_do似乎就是这样工作的。
你可以检查一下这是否是可能的原因。
 楼主| 发表于 2014-8-9 11:21:40 | 显示全部楼层
`uvm_do只是在create,start,finish之间加了 randomize呀, 你的意思是不是说用randc的时候,应该只create一次,然后多次randomize,貌似你说的是对的 ,,,,我去验证一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-20 19:03 , Processed in 0.023697 second(s), 9 queries , Gzip On, Redis On.

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