在UVM环境中如何控制打印数组或队列元素的数据量

电子说

1.3w人已加入

描述

1.问题的引入

在UVM验证环境的项目中,经常需要使用内置的print()函数或sprint()函数打印

uvm_sequence_item类或者uvm_transaction类,这些transaction或sequence_item的class中通常会包含多个列表()数组(array)和/或队列(queue),这些数组和队列通常又包含很多个元素变量。默认情况下,系统只会打印数组和队列开始的5个元素和最后的5个元素,原因如下图所示(begin_elements= 5; end_elements = 5)。

队列

如果我们想要打印数组和队列的所有元素内容或者如何灵活控制,有什么办法吗?答案是肯定的,请看后面的内容。

2.默认打印的数量和样式

默认情况下,系统只会打印数组和队列开始的5个元素和最后的5个元素,如下图所示:

队列

3.打印所有数量和格式

3.1具体实现的方法

在test的build_phase中,添加如下code:

 

uvm_default_printer.knobs.begin_elements = -1;//print all elements of arrays and queues
如下图所示:

 

队列

3.2打印的数量和样式

队列

4.如何灵活控制打印的数量和格式

下文的例子是,打印数组和队列开始的2个元素和最后的3个元素。

4.1 具体实现的方法

在test的build_phase中,添加如下code:

 

uvm_default_printer.knobs.begin_elements = 2;
uvm_default_printer.knobs.end_elements = 3;
如下图所示:

 

队列

4.2 打印的数量和样式

队列

5.uvm_default_printer

队列

队列

6.uvm_table_printer

队列

7.uvm_printer

队列

队列

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分