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

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

3天内不再提示

自定义交易打印机助于提高调试效率增强生产力

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

众所周知的事实是,验证消耗了大约 70% 的产品周期时间,根据 2018 年进行的一项调查,验证工程师花费大约 44% 的时间进行调试。 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) 的相同函数。此处显示了有关如何开发组件的基本思想的图示。

如何使用这台打印机?

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

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

poYBAGKYaLKAfSz0AAGaQjTtthE661.png

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

选择性打印机机制 - 用户只能通过在 sprint 中的交易项目的 convert2string 中传递打印机来为仅选定的块配置此打印机,如下面的图 3 所示。

poYBAGKYaLqAGJHeAAC1x8NlMAg139.png

图 3:为选定块使用 xaction_custom_printer 的方法

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

pYYBAGKYaMmAELv9AAB-irt80Ao957.png

图 4:使用 convert2string 打印交易项目的方法

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

插图

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

poYBAGKYaNOANR-NAAJYdjFYjNk580.png

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

1.1 使用行式打印机输出

poYBAGKYaNyAVddCAAD2D8KE_WI291.png

1.2 使用树形打印机输出

pYYBAGKYaOSAUIw2AADgzNgMx34707.png

5.3 使用台式打印机输出

pYYBAGKYaPGADNirAAF61mZ5L8U769.png

5.4 使用自定义打印机输出

定制打印机的优势

显示调试最需要的信息

减少日志大小

提高可读性

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

简洁的外观

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

审核编辑:郭婷

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

    关注

    38

    文章

    4122

    浏览量

    217952
  • 打印机
    +关注

    关注

    10

    文章

    762

    浏览量

    45583
收藏 人收藏

    评论

    相关推荐

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

    方式。其工作原理大致为:激光束在感光鼓上扫描形成静电潜像,随后碳粉被吸附到静电潜像上,再通过加热定影器将碳粉固定在纸张上,形成最终的打印输出。 1. 打印速度与效率 激光打印机以其高速
    的头像 发表于 10-14 13:48 581次阅读

    佳能打印机安装指引

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

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

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

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

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

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

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

    如何选用RFID标签打印机

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

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

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

    canon打印机怎么用

    以下是一些关于Canon打印机使用的基本步骤和技巧: 安装打印机驱动程序: 访问Canon官方网站,根据您的打印机型号下载相应的驱动程序。 运行下载的安装程序并按照提示完成安装。 连接打印机
    的头像 发表于 06-14 18:05 1996次阅读

    RFID标签打印机,你了解多少呢?

    随着科技的不断发展,一种采用射频识别技术的先进打印设备——RFID标签打印机,正在逐渐替代传统的条码打印机,为企业带来更高的识别精度和更快的读取速度,有效提高
    的头像 发表于 05-29 13:46 489次阅读
    RFID标签<b class='flag-5'>打印机</b>,你了解多少呢?

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

    多样化打印:条形码打印机可以进行少量多样化打印,不会造成浪费,即使只用一张也可以打印。(2)提高效率:条形码
    的头像 发表于 05-08 10:56 628次阅读
    条形码标签和条码<b class='flag-5'>打印机</b>哪个好?

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

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

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

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

    新质生产力的新和质

    新质生产力,是2023年9月首次提到的新的词汇,新质生产力生产力现代化的具体体现,即新的高水平现代化生产力(新类型、新结构、高技术水平、高质量、高
    的头像 发表于 02-28 16:01 2190次阅读

    新质生产力哪些行业发展最好 如何提升新质生产力

    成果。 新质生产力生产力现代化的具体体现,即新的高水平现代化生产力(新类型、新结构、高技术水平、高质量、高效率、可持续的生产力),相比于传
    的头像 发表于 02-22 17:57 4433次阅读

    热敏打印机需求增长,主控选择至关重要

    有激光打印、热敏打印和喷墨打印,得益于技术突破和生产成本下降,热敏打印机已经成为增长最快的打印机
    的头像 发表于 01-18 01:10 1811次阅读