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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6632|回复: 10

[求助] uvm 队列打印问题

[复制链接]
发表于 2021-7-1 15:11:47 | 显示全部楼层 |阅读模式

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

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

x

my_transaction     tr_queue[$];
my_transaction     new_trans;
请问,想要打印tr_queue[$]查看这样一个队列的内容,除了pop_front()到一个新的new_trans,然后再打印new_trans外,还有没有其他方式?
发表于 2021-7-1 15:35:12 | 显示全部楼层
你试一下是否可以用foreach方式
foreach(tr_queue[ii]) begin
    display(tr_queue[ii].xxxx);
end

我印象中应该是可以的。
发表于 2021-7-1 15:59:28 | 显示全部楼层
本帖最后由 anpengfei 于 2021-7-1 16:06 编辑

哦是打印transaction数组……改成tr_queue.print呢
 楼主| 发表于 2021-7-1 16:01:17 | 显示全部楼层


ppeezz 发表于 2021-7-1 15:35
你试一下是否可以用foreach方式
foreach(tr_queue) begin
    display(tr_queue.xxxx);


对,我用的for(i=0; i<=tr_queue.size();i++)

    display(tr_queue)
这样的方式,感觉应该是与foreach类似。是有数据打出,但是感觉数据是无意义的数。
因为数组定义的为my_transaction tr_queue[$],而非bit[x:x] tr_queue[$]这种。所以不太明白transaction类型的数组的打印方式是否只有那一种。
发表于 2021-7-1 16:09:44 | 显示全部楼层
display trans应该不行,可以像二楼那样display trans中具体数据、变量
 楼主| 发表于 2021-7-1 16:17:26 | 显示全部楼层


anpengfei 发表于 2021-7-1 15:59
如果你用的field automation提供的print函数
1.可以在transacton中重写print;
2.uvm库中uvm_printer.svh中 ...


谢谢回复,有在尝试用$display,但是有个疑问。对于定义为my_transaction   tr_queue[$],这样的数组。如果tr_queue.size() = 1,那么tr_queue[0]的内容是什么?
我个人的固有思维还是认为会按照my_transaction一样对里面每一个rand bit有赋不同的值(根据具体包数据)。但是tr_queue[$]  display出来的是一个数和new_tr.print()出来的内容确实不相同(至少格式已经不同了),这个该如何理解啊?

 楼主| 发表于 2021-7-1 16:21:41 | 显示全部楼层


ppeezz 发表于 2021-7-1 15:35
你试一下是否可以用foreach方式
foreach(tr_queue) begin
    display(tr_queue.xxxx);


哦,刚没看清。
   display(tr_queue.xxxx);
这个xxxx指的是my_transaction里,定义的变量吗?

 楼主| 发表于 2021-7-1 16:46:34 | 显示全部楼层
本帖最后由 eextw6 于 2021-7-1 16:48 编辑


anpengfei 发表于 2021-7-1 15:59
哦是打印transaction数组……改成tr_queue.print呢


数组好像不能直接print,刚刚直接报错了。改用了二楼的方法,display是可以了。
之前不知道的是,需要   ‘tr_queue.变量名’    一直是打印 tr_queue。。。
发表于 2021-7-1 17:31:05 | 显示全部楼层


eextw6 发表于 2021-7-1 16:46
数组好像不能直接print,刚刚直接报错了。改用了二楼的方法,display是可以了。
之前不知道的是,需要    ...


昂写错了,我意思是tr_queue.print;如果整个trans都打印的话这样省事儿点,如果只打印trans中某个变量就display吧

发表于 2021-7-1 21:04:05 | 显示全部楼层
用uvm_field_queue_object注册的话,可以直接用tr_queue.print
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-22 19:12 , Processed in 0.021787 second(s), 8 queries , Gzip On, Redis On.

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