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

    文章

    4514

    浏览量

    227598
  • 打印机
    +关注

    关注

    10

    文章

    827

    浏览量

    48410
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    打印机出口要做哪些认证

    打印机出口要做哪些认证?——按出口地区全面解析(含欧盟、美国、东南亚)一、欧盟市场(如德国、法国)CE认证(强制)适用指令:LVD指令:电气安全(EN62368-1标准)EMC指令:电磁兼容
    的头像 发表于 07-25 17:43 936次阅读
    <b class='flag-5'>打印机</b>出口要做哪些认证

    哪些场景要使用到RFID标签打印机?RFID标签打印机一般多少钱?

    RFID标签打印机是一种将射频识别技术与打印技术相结合的设备,可实现对RFID标签的信息录入与表面信息打印,广泛应用于多个领域。以下是一些常见的应用场景:1、物流管理:在货物的仓储、运输和分销
    的头像 发表于 07-15 15:44 678次阅读
    哪些场景要使用到RFID标签<b class='flag-5'>打印机</b>?RFID标签<b class='flag-5'>打印机</b>一般多少钱?

    基于树莓派的工业级 3D 打印机

    基于计算模4的3D打印机功能强大、可靠且易于使用!Formlabs采用树莓派计算模块4为其最新款3D打印机Form4提供动力,提升了其旗舰系列打印机的速度、质量和成功率,为工业和商业客户提供了一个
    的头像 发表于 06-29 08:22 784次阅读
    基于树莓派的工业级 3D <b class='flag-5'>打印机</b>!

    KiCad 中的自定义规则(KiCon 演讲)

    设计规则 展开,重点探讨了 那些复杂却强大的特性。 由于这些规则本质上是基于文本表达的,需要用户细致入微的理解。演讲的 核心目标 是引导用户有效实施这些规则,从而 规避布线问题、提升制造良率,并优化设计流程 。 讨论 始于对自定义设计规则的
    的头像 发表于 06-16 11:17 1460次阅读
    KiCad 中的<b class='flag-5'>自定义</b>规则(KiCon 演讲)

    霍尔芯片在打印机中的应用

    在数字化时代,打印机似乎逐渐淡出了许多人的日常生活。然而,对于学生、职场人士、家庭用户以及自由职业者来说,打印机仍然是一个不可或缺的工具。那么霍尔芯片在打印机当中起到什么作用呢?
    的头像 发表于 06-09 17:26 733次阅读

    HarmonyOS应用自定义键盘解决方案

    自定义键盘是一种替换系统默认键盘的解决方案,可实现键盘个性化交互。允许用户结合业务需求与操作习惯,对按键布局进行可视化重构、设置多功能组合键位,使输入更加便捷和舒适。在安全防护层面,自定义键盘可以
    的头像 发表于 06-05 14:19 1570次阅读

    得力推出龙芯系列打印机新品

    近日,2025年得力龙芯系列打印机新品发布会暨签约会在京举行,正式发布基于龙芯2P0500开发的31系列自主安全打印机及善印系列打印机,包括黑白激光打印机、黑白激光多功能一体机等多个机
    的头像 发表于 05-22 11:14 1116次阅读

    如何添加自定义单板

    在开发过程中,用户有时需要创建自定义板配置。本节将通过一个实例讲解用户如何创建属于自己的machine,下面以g2l-test.conf为例进行说明。
    的头像 发表于 03-12 14:43 1082次阅读

    Altium Designer 15.0自定义元件设计

    电子发烧友网站提供《Altium Designer 15.0自定义元件设计.pdf》资料免费下载
    发表于 01-21 15:04 0次下载
    Altium Designer 15.0<b class='flag-5'>自定义</b>元件设计

    Chart FX——打印

    打印出他们想要的结果。 设置页面布局 准备为图表添加打印功能时,您需要考虑一些问题: 是使用打印机默认页边距还是指定自定义页边距?
    的头像 发表于 01-14 10:36 719次阅读
    Chart FX——<b class='flag-5'>打印</b>

    think-cell:自定义think-cell(四)

    C.5 设置默认议程幻灯片布局 think-cell 议程可以在演示文稿中使用特定的自定义布局来定义议程、位置和议程幻灯片上的其他形状,例如标题或图片。通过将此自定义布局添加到模板,您可以为整个组织
    的头像 发表于 01-13 10:37 880次阅读
    think-cell:<b class='flag-5'>自定义</b>think-cell(四)

    云电脑打印机设置策略:端口自动设置为VM端口怎么办

    的端口。 如果端口自动设成了VM开头的端口,将导致打印机无法使用,因为USB直连打印机需要使用USB开头的端口。     如果是以上原因导致打印机无法使用,马上告诉你如何解决! 1 解
    的头像 发表于 01-03 11:02 1269次阅读
    云电脑<b class='flag-5'>打印机</b>设置策略:端口自动设置为VM端口怎么办

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

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

    佳能IP110打印机手册

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