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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[讨论] UVM 验证中Ethernet 包的随机化问题

[复制链接]
发表于 2015-2-10 10:16:50 | 显示全部楼层 |阅读模式

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

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

x
转验证,又要学很多东西了,

现在做一个Ethernet包的激励,

数据数组

    rand bit [7:0] data[];

    constraint payload_size_c { data.size inside { [46 : 1500]};}
。。。
        foreach(data[i])
          packer.pack_field_int(data[i],8);


但data数组内涵的loop variable i 只能与data 的位宽相同,

即 8位,

不能完整的表示整个随机化的Ethernet包,

请问这个问题如何解决?

谢谢~
 楼主| 发表于 2015-2-10 13:40:52 | 显示全部楼层
up...
发表于 2015-2-11 10:57:42 | 显示全部楼层
没看懂,为什么i要和data的位宽相同?不是i的位宽能表示完data的深度就可以了么?42亿个数还不够啊?
 楼主| 发表于 2015-2-11 15:15:51 | 显示全部楼层
回复 3# seabeam


    Systemverilog 的IEEE 规范里这么表述的,

测试中确实 data 数组只有 8位宽,就是 256 的深度。。。
发表于 2015-2-11 23:02:16 | 显示全部楼层
回复 4# macrohard

兄弟,位宽和深度是两个概念。。。
 楼主| 发表于 2015-2-12 10:16:48 | 显示全部楼层




    这个做过FIFO 的都晓得啊,

问题是 Systemverilog 的规范:

The number of loop variables must match the number of dimensions of the array variable
 楼主| 发表于 2015-2-12 10:17:33 | 显示全部楼层
有没有实际做过的啊?
发表于 2015-2-12 12:53:22 | 显示全部楼层
本帖最后由 seabeam 于 2015-2-12 13:03 编辑

回复 7# macrohard

复制一下LRM(2012)在12.7.3的原话吧:The number of loop variables shall not be greater than the number of dimensions of the array variable.
关键点我红色高亮了。number of loop variables指循环变量的个数,例如:
foreach (a),这里只有i一个loop variable,所以个数是1.再看另一个例子:
foreach (b[i, j]),这里有两个loop variable,所以个数是2.

举个例子,在使用foreach语句时,访问一维数组不能使用两个循环变量,LRM这句话只是想说:
对于一个数组bit a[5],不能以
foreach (a [i, j])
的形式访问
 楼主| 发表于 2015-2-12 16:15:55 | 显示全部楼层
回复 8# seabeam


    谢谢回复,

不过好像这样的理解规范没必要单独指出吧,

搞验证的应该都不会明明 2维数组非要搞3个loop variable。




实际这样定义过,

data【】 的前256个元素可正确随机化,后面的通过loop variable加的约束都没有起效, 全部为0 。
发表于 2015-2-12 17:33:35 | 显示全部楼层
本帖最后由 seabeam 于 2015-2-12 17:35 编辑

回复 9# macrohard

你那么描述问题就好办多了。你可以把你的transaction实例化个inst,然后调用randomize()方法,之后马上foreach (inst.data) $display("%0d: %0h", i, inst.data);
里面是有数的。也许是你别的程序语句影响了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-22 21:33 , Processed in 0.021367 second(s), 7 queries , Gzip On, Redis On.

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