0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

sanyue7758 来源:芯片验证日记 2023-12-20 10:14 次阅读

1.问题的引入

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

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

0c2d5256-9eda-11ee-8b88-92fbcf53809c.png

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

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

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

0c37f30a-9eda-11ee-8b88-92fbcf53809c.png

3.打印所有数量和格式

3.1具体实现的方法

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

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

0c521fbe-9eda-11ee-8b88-92fbcf53809c.png

3.2打印的数量和样式

0c67d854-9eda-11ee-8b88-92fbcf53809c.png

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

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

4.1 具体实现的方法

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

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

0c6c5352-9eda-11ee-8b88-92fbcf53809c.png

4.2 打印的数量和样式

0c74fb06-9eda-11ee-8b88-92fbcf53809c.png

5.uvm_default_printer

0c8b85ce-9eda-11ee-8b88-92fbcf53809c.png

0c91b7d2-9eda-11ee-8b88-92fbcf53809c.png

6.uvm_table_printer

0c99ac58-9eda-11ee-8b88-92fbcf53809c.png

7.uvm_printer

0ca3fd3e-9eda-11ee-8b88-92fbcf53809c.png

0cbd5c8e-9eda-11ee-8b88-92fbcf53809c.png

审核编辑:汤梓红

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

    关注

    3

    文章

    3881

    浏览量

    61310
  • UVM
    UVM
    +关注

    关注

    0

    文章

    181

    浏览量

    18965
  • 队列
    +关注

    关注

    1

    文章

    46

    浏览量

    10849
  • 数组
    +关注

    关注

    1

    文章

    409

    浏览量

    25595

原文标题:在UVM环境中,如何灵活地控制打印数组或队列元素的数据量

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    删除替换数组元素

    本帖最后由 samuergao 于 2014-11-21 14:01 编辑 曾经遇到想删除数组某个元素的问题,比如要删除或者替换一个数组中所有为10的
    发表于 07-01 16:24

    相同数组元素个数统计

    效率较低,当数据量非常大时,耗时较多。 2、利用一维数组排序函数,把相同的数组元素分组,然后再比较相邻元素是否相同。 3、连接一维
    发表于 04-08 12:58

    求助各位好,请问索引数组通过元素队列输出和索引数组直接输出有什么区别?

    各位好,请问索引数组通过元素队列输出和索引数组直接输出有什么区别?
    发表于 06-03 21:19

    《Visual C# 2008程序设计经典案例设计与实现》---利用Windows组件打印数据数据

    《Visual C# 2008程序设计经典案例设计与实现》---利用Windows组件打印数据数据
    发表于 05-22 21:02

    队列元素丢失问题

    求教:以字符串数组形式循环向队列插入元素队列输出时,元素丢失边少了,如向队列输入1、2、3、4
    发表于 05-22 20:32

    串口打印数据疑问如何解决

    帮助会员:guyuemao 发问,请大家帮帮他,谢谢串口打印数据疑问? 如图:这句话之前 串口无打印 运行后串口有显示,但是 printf函数是怎么与串口发送联系到一起的?
    发表于 06-02 05:48

    STM32如何通过UART使用printf打印数据

    STM32如何通过UART使用printf打印数据
    发表于 12-01 06:57

    STM32串口调试助手无法打印数据怎么解决?

    STM32串口调试助手无法打印数据怎么解决?
    发表于 12-13 07:49

    为什么sprintf打印数据只能兼容8位的数据

    这个是因为sprintf打印数据只能兼容8位的数据 只能使用u8 uint8来写不能用来兼容其他数据所以将uint16_t ADC_Char[20]={0};改成u8 ADC_Ch
    发表于 12-15 08:27

    使用STM32H743单片机如何判断何时可以向打印机发送打印数据

    /* 如果数据量较大,可以定期调用get_port_status()检查打印机状态 */s=get_port_status();if(???)delay_ms(100);我使用STM32H743
    发表于 07-08 08:00

    LabVIEW队列使用详解

    为True时元素输出为队列元素组成的数组。返回元素为False时只输出信息,不获取
    发表于 09-05 00:07

    谈谈UVMuvm_info打印

    uvm_info的三个参数。  ID是作为message的标记(tag)。  MSG就是真正要打印的message文本。  VERBOSITY用于传递uvm\_verbosity枚举类型的数字。当
    发表于 03-17 16:41

    UART打印数据很慢是为什么?

    我把波特率设置为4800,然后把一个外设和我们的UART连接起来。外设向UART发送握手包,频率为10HZ,数据长度为10个字节。但是我发现一个混乱的现象是数据没有打印出来on time,40秒后
    发表于 04-17 06:11

    同样是获取数组元素个数会存在size()和$size两种方式呢?

    在使用SystemVerilog或者UVM进行编码的过程中,经常会用到数组(包括队列等),经常需要对这些数组进行遍历
    的头像 发表于 03-25 10:24 868次阅读

    labview怎么查数组中相同元素的个数

    要查找LabVIEW中数组中相同元素的个数,可以使用以下步骤: 创建一个包含要查找的数值的数组。这可以通过手动输入数组元素或从文件/其他
    的头像 发表于 12-28 16:42 1027次阅读