路科验证的个人空间 https://blog.eetop.cn/1561828 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

SV及UVM接口应用篇之三:SystemC与UVM的TLM通信(续)

已有 2102 次阅读| 2018-6-12 20:54 |个人分类:验证系统思想|系统分类:芯片设计

  

UVM指令API

UVMC除了可以实现SV与SC的TLM通信以外,还为SystemC/C/C++提供了控制UVM特性的API接口。这些API可以分为:

  • 等待UVM到一个特定的仿真阶段(phase)

  • 挂起或者放下objection以此来控制UVM test进程。

  • 通过UVM config_db来设置或者得到配置对象。

  • 通过config_db来覆盖(override)类或者实例的类型。

  • 打印UVM环境组件的拓扑结构(topology)。


为了使能SC一侧的UVMC API,用户需要在SV一侧调用UVM test前调用uvmc_cmd_init()。这个函数便会在后台监听从SystemC传来的UVM command请求并且做出响应。



在SC一侧可以利用UVMC来使用UVM的报告机制,通过传入的参数可以设置报告的等级、文本和冗余度。这些信息在SV一侧也支持过滤等功能,如同UVM的宏一样,UVMC也可以利用宏来发送报告。



UVMC也支持set/get config,而对象不只限于整形、字符串,还可以是对象。这里建议使用通过对象来配置,这种方式可以一次容纳多个变量(整形、字符串等)并且完成配置。在传递配置对象前,用户需要定义一个相应的配置类,并且将其在SC一侧完成转化,转化的方式如下:



而从下面的例码中可以看出,使用单一类型传递(整形、字符串)的出错概率要比使用配置对象传递的概率高,而且后者更容易调试。



UVMC也可以用来等待UVM phase的状态,同时通过objection机制来控制UVM test的进程。



UVM facotry的override机制通过UVMC也可以使用,而且UVMC还提供了调试的方法用来检查工厂中类覆盖的状况。



在使用UVMC来打印UVM的环境结构之前,你需要等待UVM的build phase结束,再调用相应的打印函数。



关于UVMC更多的内容和培训资料,路粉们可以在下面的链接中得到。

https://verificationacademy.com/topics/verification-methodology/uvm-connect


谢谢你对路科验证的关注,也欢迎你分享和转发真正的技术价值,你的支持是我们保持前行的动力。




点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-28 21:55 , Processed in 0.015352 second(s), 12 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部