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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 992|回复: 8

[求助] uvm的二维队列如何注册 ?

[复制链接]
发表于 2024-2-1 14:36:13 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 wang9n 于 2024-2-1 14:50 编辑

UVM中貌似没有注册二维队列的宏,只有支持一维队列的`uvm_field_queue_enum的注册方式,请教大佬二维队列如何注册 ? 非常感谢解答!
发表于 2024-2-1 17:50:13 | 显示全部楼层
注册了干嘛,field有什么独特的功能吗
发表于 2024-2-1 17:50:21 | 显示全部楼层
这样就行:
foreach(m[i,j]) begin
  `uvm_field_int(m[i][j], UVM_ALL_ON)
end
发表于 2024-2-3 14:22:31 | 显示全部楼层
楼上正解
发表于 2024-2-5 10:04:01 | 显示全部楼层
4#的方式是可以的,但是当数组的size过大时,效率会有影响,所以可以考虑自定义do_print, do_copy, do_compare等函数设定二维数组的各个function,也可以考虑自定义一个类似的field automation的macro
 楼主| 发表于 2024-2-6 15:35:30 | 显示全部楼层


bai252003 发表于 2024-2-1 17:50
这样就行:
foreach(m) begin
  `uvm_field_int(m[j], UVM_ALL_ON)


这样注册的方式,打印不出来索引号,而且也无法clone,如图


                               
登录/注册后可看大图

 楼主| 发表于 2024-2-6 15:36:21 | 显示全部楼层


shaoqingtju 发表于 2024-2-5 10:04
4#的方式是可以的,但是当数组的size过大时,效率会有影响,所以可以考虑自定义do_print, do_copy, do_comp ...


这样没法打印队列的索引号,也没法clone。

请问怎么自定义do_print呢 ?
 楼主| 发表于 2024-2-6 15:37:33 | 显示全部楼层


紫薯布丁 发表于 2024-2-1 17:50
注册了干嘛,field有什么独特的功能吗


uvm的一种机制,可以看看[UVM]一文讀懂UVM field_automatio機制_sv 队列 ·uvm_field-CSDN博客
发表于 2024-2-7 11:57:36 | 显示全部楼层


wang9n 发表于 2024-2-6 15:36
这样没法打印队列的索引号,也没法clone。

请问怎么自定义do_print呢 ?


1. 队列索引号如果想打印,你需要修改do_print,使用uvm_printer的自带函数进行打印,比如print_generic这个函数,详细你可以看看uvm_printer的内容
2. 另外猜想你想打印索引号的用意是想进行比较两个多维数组?如果这种需求,更推荐修改do_compare函数,比较时只打印fail的数组元素index
3. clone印象中最终调用的就是do_copy这个函数(这个不确定了,建议去看下uvm source code),因此只要定义了do_copy就能够完成clone的操作


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-11-16 05:54 , Processed in 0.025888 second(s), 6 queries , Gzip On, Redis On.

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