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

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

3天内不再提示

为什么我们需要自定义交易打印机

星星科技指导员 来源:嵌入式计算设计 作者:Uzma Haque 2022-11-24 15:46 次阅读

SoC 复杂性的增加会导致验证环境中使用的组件数量增加,这会导致日志文件庞大,因为从这些组件打印了多个信息。必须优化这些日志,因为它们是最常用的调试方法之一。这就需要开发一种定制打印机,以有效地打印有用的信息以进行调试。自定义事务打印机(称为 xaction_custom_printer)是一种自定义打印机,可帮助提高调试效率、减小日志大小、提高可读性,从而提高整体生产力。

随着片上系统(SoC)设计的面积和复杂性不断增加,验证责任和工作量巨大,成为整个SoC设计流程的瓶颈。由于验证就是检查设计的正确性,因此任何验证环境中最关键的部分之一是预期的输出计算。在此类SoC的每个模块上都有许多验证组件,每个设计验证组件通常由一个监视器组成。这些预期和实际输出由监视器观察,监视器直接或间接地在日志中打印此信息。

设计验证工程师花费大量时间进行调试,以确定实际输出与预期输出之间是否存在任何差异。尽管有详细机制,但验证工程师需要最少的消息进行调试,因为通常有特别长的日志具有详尽的事务数据包。为了解决这个问题,制定了xaction_custom_printer。

第 2 节解释了定制过渡打印机如何解决验证工程师面临的问题,从而满足对该组件的需求。第 3 节展示了组件开发的基本思想。第 4 节介绍了使用此自定义事务打印机以及一些代码段以更好地理解的两种方式。第 5 节重点介绍自定义事务打印机相对于使用通用事务数据包的行式、树形和表格式打印机的优势。

为什么我们需要自定义交易打印机?

在验证过程中,特别是在初始阶段,当RTL设计不成熟时,测试过程中可能会出现许多故障。工程师可以通过日志文件确定故障原因。通常情况下,工程师需要查看事务数据包,以查看特定时间戳处某些变量的状态。理想情况下,日志文件中会打印数百个此类数据包以进行测试。

以任何协议的数据包为例,它包含大量信息,如地址、读取地址、写入数据、读取数据、操作(读/写)和模式(单/突发)。数据包中至少有一个变量可以具有数组。对于阵列大小从几十到几百不等的情况,日志文件会变得非常庞大,因为这些数据包打印了几次。除此之外,调试过程还涉及花费大量时间浏览这些日志。在这些日志中,来自组件的转换数据包会非常频繁地打印,并在从组件调用它们时以不同的时间戳显示存储在其中的数据。为了进行调试,当日志在使用uvm_default_table_printer时具有较大的数组大小时,用户需要在日志中来回切换。

SystemVerilog UVM包含一个 uvm_printer 类,它提供了一个用于打印各种格式uvm_objects的接口。uvm_printer子类型实现不同的打印格式或策略。这些亚型包括uvm_printer、uvm_line_printer、uvm_tree_printer uvm_table_printer。我们开发了一种用户定义的打印机,它将致力于消除uvm_table_printer的缺点。

xaction_custom_printer是从uvm_printer扩展而来的,打印机的输出格式看起来像是uvm_table_printer和uvm_line_printer的混合体,因此结合了两者的优点。xaction_custom_printer简明扼要地显示数据包,以分区良好的方式(如表格打印机)显示变量的名称和值,并在一定程度上类似于行式打印机的多行。

该打印机的输出在单行中可用,直到某些预定义字符,之后它会在不同的行中继续。这种输出样式在存在具有巨大大小的数组的地方变得易于阅读。如果以uvm_table_printer打印相同的阵列,工程师将需要多次上下滚动日志。由于它在一条线上,因此不需要多次上下移动。打印机的格式允许清楚地看到变量的名称和值,这是调试所需的全部内容。

这台打印机是如何开发的?

为了开发自定义打印机,所需的打印格式在 emit() 函数中编程,该函数覆盖父类 (uvm_printer) 的相同函数。此处显示了组件开发方式的基本思想的图形表示。

pYYBAGN_IViAAcLkAAAqyXX2maQ466.png

图1.自定义事务打印机如何开发的顶级概念

如何使用这台打印机?

用户只需将文件包含在包或文件列表中即可包含在编译流中,并且需要将其作为函数调用。使用此打印机有两种方法。

默认打印机机制 - 用户可以将此打印机设置为uvm_default_printer,如下面的图 2 所示,因此项目/SoC 中的所有打印都将以这种格式打印。

pYYBAGN_IVqAS8pzAABl0BrhvUY734.png

图2.将自定义事务打印机设置为uvm_default_printer

选择性打印机机制 - 用户只能通过在冲刺 (sprint) 中事务项的 convert2string 中传递打印机来配置此打印机,如下图 3 所示。

poYBAGN_IVyAKwmpAAAxaSOY0jY426.png

图 3:所选块的xaction_custom_printer使用方法

为了使用此打印机打印数据包,可以通过调用此函数来完成,如下图 4 所示。

pYYBAGN_IV2AThRAAAAnkiyZC4w844.png

图 4:使用 convert2string 打印事务项的方法

用户还可以使用自定义事务打印机打印事务数据包,以便将数组打印在单独的行中,并将标量变量保留在同一行中。这种类型的事务数据包打印机制将帮助用户一次性读取数组内容。此事务数据包的外观示例显示在第 5.5 节中

插图

以下示例展示了xaction_custom_printer优于其他三个uvm_printer。在示例中,我们采用了一个通用数据包。使用以下变量来解释此自定义打印机相对于默认打印机的优势。

poYBAGN_IV-ASGo6AABraipZMnc236.png

图5:uvm_sequence_item中的通用数据包(事务项)

1.1 使用行式打印机输出

pYYBAGN_IWCAEs1pAAB1opEPRmA906.png

1.2 使用树形打印机输出

poYBAGN_IWKAcAmfAABN3yh5msA474.png

5.3 使用表格打印机输出

pYYBAGN_IWSAAQvSAAB_REsY9K0873.png

5.4使用自定义打印机输出

pYYBAGN_IWWAMx-KAACZiPj8wFg047.png

5.5 使用具有在单独行中打印阵列功能的自定义打印机输出。

pYYBAGN_IWiACXqUAAEQEx9sEmc983.png

定制打印机的优势

显示调试最需要的信息

减小日志大小

提高可读性

通过提高调试效率节省时间

简洁的外观

定制交易打印机是我们在eInfochips开发的组件,为验证工程师面临的问题之一提供解决方案。此自定义打印机相对于内置 uvm 打印机的优势使用通用数据包示例显示。

审核编辑:郭婷

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

    关注

    38

    文章

    4165

    浏览量

    218243
  • 打印机
    +关注

    关注

    10

    文章

    771

    浏览量

    45681
收藏 人收藏

    评论

    相关推荐

    浅谈点阵打印机的功能特点

    点阵打印机(Dot Matrix Printer)是一种使用一系列细小的针来打印字符和图形的打印机。这些针排列在一个或多个垂直列中,通过撞击色带并在纸上留下墨水点形成文本或图像。因为它们是通过创建由
    的头像 发表于 12-27 17:17 186次阅读
    浅谈点阵<b class='flag-5'>打印机</b>的功能特点

    佳能IP110打印机手册

    佳能IP110打印机手册,总共512页,包含软件安装,网络调试,打印机调试,打印,清洗,故障码查询等
    发表于 12-07 15:26 0次下载

    激光打印机好还是喷墨式打印机

    激光打印机与喷墨式打印机作为目前市场上主流的两种打印设备,各自具有独特的特点和适用场景。 一、激光打印机的特点与优势 激光打印机,顾名思义,
    的头像 发表于 10-14 13:48 866次阅读

    佳能打印机安装指引

    这个是普通佳能打印机使用的,很好用。不限大型机。
    发表于 09-18 09:40 0次下载

    打印机和喷墨打印机的区别

    打印机,在常见的表述中,更常被称为激光打印机,它与喷墨打印机在多个方面存在显著的区别。以下是对两者区别的详细分析:
    的头像 发表于 09-16 15:45 534次阅读

    光墨打印机是什么_光墨打印机为何不能普及

    光墨打印机是联想公司于2011年推出的一种创新打印设备,它融合了喷墨和激光打印机的优势技术,为打印市场带来了全新的解决方案。以下是关于光墨打印机
    的头像 发表于 09-16 15:42 339次阅读

    桌面运维工具之打印机驱动安装

    window系统中 人工安装需要经过三个步骤,操作繁琐,效率较低。基于此,我们想开发一个自动化安装打印机驱动的程序,让用户可以自行安装打印机驱动,以此减少
    的头像 发表于 09-12 15:29 1759次阅读
    桌面运维工具之<b class='flag-5'>打印机</b>驱动安装

    如何选用RFID标签打印机

    一、RFID打印机基本原理 RFID打印机利用RFID天线与RFID标签进行无线通信,实现对标签识别和内存数据的读出或写入操作,同时将数据内容可视化打印在标签表面的打印设备。它通过在条
    的头像 发表于 09-09 16:26 276次阅读
    如何选用RFID标签<b class='flag-5'>打印机</b>

    Klipper固件的打印机可以插卡打印吗?

    的3D打印机固件,它允许用户通过编写脚本来自定义和优化他们的3D打印机。Klipper固件的主要特点包括: 支持多种类型的打印机和硬件配置,如RepRap、Prusa i3、Creal
    的头像 发表于 08-30 14:34 606次阅读

    canon打印机打印出来是空白的怎么回事?

    。 确保墨盒没有干涸或堵塞。如果墨盒已干涸,尝试用湿布擦拭墨盒的喷嘴,然后重新安装。 检查打印头: 打印头可能堵塞或损坏。尝试使用打印机打印头清洁功能来清除堵塞。 如果
    的头像 发表于 06-16 09:10 1.4w次阅读

    canon打印机怎么用

    打印机连接到计算机或网络。确保打印机已开启并处于就绪状态。 打印文档: 打开您想要打印的文档。 点击“文件”菜单,然后选择“打印”。 在
    的头像 发表于 06-14 18:05 2172次阅读

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一种机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以在
    的头像 发表于 05-11 08:21 673次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    条形码标签和条码打印机哪个好?

    对于您的问题,“条形码标签”和“条码打印机”哪个好,实际上取决于您的具体需求。1.条码打印机的优点条形码打印机是一种以热为基础的打印机,主要包括热敏
    的头像 发表于 05-08 10:56 694次阅读
    条形码标签和条码<b class='flag-5'>打印机</b>哪个好?

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 1002次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。
    的头像 发表于 04-08 10:17 642次阅读