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

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

日志

SV及UVM高级话题篇之五(终):OVM与UVM的混合仿真(续)

已有 1727 次阅读| 2018-6-29 19:08 |个人分类:验证系统思想|系统分类:芯片设计

XVM

对于上面的两种方法,都有一些不足,例如UMV-ML尽管照顾了多种语言和方法学的交互,然而确为此不得不将C作为中间的数据中转站,这也使得语言之间的资源开销较大;而对于OVM兼容层的思想,由于需要OVM原生的方法行为与UVM对应的方法并不是严格一致的,这就增加了后期在OVM兼容层上调试OVM代码的难度,同时在OVM兼容层的照顾下,仍然需要修改一部分已经废止掉的OVM代码使其与UVM代码习惯保持一致。


在这个背景下,同样来自于Intel公司的Mohamed Elmalaki提出了XVM的理念,并且成功在项目中应用。该思想也借鉴了UVM-ML,并且由于照顾的只是OVM与UVM的兼容,因此并不需要额外依靠C来做数据转换适配,而是通过开发一个小型的数据适配包XVM来实现OVM与UVM真正地在仿真环境中并存,进行真•混合仿真。虽然XVM的包暂时没有被开源出来,但路桑希望通过分享这一思想,使得读者有实践经验可以参考,并考虑将这一思想运用到自己所处的OVM、UVM混合仿真中去。




首先来看一看,OVM与UVM的组件如何实现共存呢?下面是一个例子,该环境的顶层是OVM,而例化了一个UVM的组件在其中。XVM的核心思想是,“尘归尘,土归土”,OVM与UVM的组件在例化中,应该属于不同的层次结构。下面的ovm scoreboard的顶层是soc_env(OVM),而uvm monitor尽管也在soc_env中例化,但它无法挂靠在一个OVM组件上,因此它选择了全局的静态变量xvm_pkg::xvm_uvm_parent。






这种方式使得OVM与UVM的组件看似共存在一个顶层下面(OVM顶层或者UVM顶层),但实际上它们无法保持混合的结构方式,即OVM组件无法将UVM环境作为自己的parent,UVM组件也无法将OVM环境作为自己的parent。因此上面例码中的xvm_pkg::xvm_uvm_parent的定义如下:




在解决了组件层次的问题之后再来考虑如何开始仿真的问题。XVM提供的开始仿真的方式可以完成下面要素:

  • 启动UVM的phase调度器(scheduler)。

  • 启动OVM的phase调度器。

  • 同步OVM与UVM之间的phase。





我们在之前的《UVM世界观篇》中就介绍了UVM的各个phase,而这些phase与OVM的phase通过XVM实现了同步。XVM实现的同步时两种方法学调度器之间的同步。



在保证了OVM与UVM之间的phase同步,使得它们都在同一起跑线出发之后,还需要考虑OVM与UVM组件之间的通信问题。读者已经知道OVM与UVM的组件不能直接相见,隔窗而望的同时还要保持克制,以免发生意外。因此,XVM也提供了中间的TLM缓冲通道,该缓冲通道可以实现从OVM到XVM到UVM,或者从UVM到XVM到OVM的数据传输。




下面的例码即是利用XVM的缓冲桥,实现不同方法学组件之间的通信:



因此从上述对XVM的主要实现来看,它通过数据中转同步的方式(基于SV),实现了OVM与UVM的混合仿真:

  • 通过OVM与UVM的独立顶层,实现了双方的组件互补依赖,各自保持独立的层次关系。

  • 保证OVM与UVM环境在各个phase阶段的同步。

  • 通过中间数据缓存区,实现了OVM与UVM组件的数据同步。


到此,我们已将SV和UVM相关的高级话题介绍完毕,尽管还有不少的遗珠可以考虑为路粉们做介绍,然而顾及到二八原则,我们在本书的第一版中主要以满足UVM的新手和日常实际问题为主。本书的十八掌经历了一年三个月,也就可以打完收工告一段落了。手机阅读不便于记笔记、做练习,路粉们也可以期待本书的早日出版,尽早结束每周的追新。而对于本书的内容,路桑仍不免对其不完美的地方惴惴不安,因此也在编校第一版的同时下了决心,伴随着功能验证技术的日新月异,我们本书的内容也会做出后续的更新,比如说第二版。至于十八掌后还有没有十九章,想有还是会有的,路桑也会精心策划我们后续的章节,并作为本书第二版的内容基础。


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





点赞

评论 (0 个评论)

facelist

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

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

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 253

    粉丝
  • 25

    好友
  • 33

    获赞
  • 45

    评论
  • 访问数
关闭

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

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

GMT+8, 2024-3-29 15:13 , Processed in 0.021268 second(s), 12 queries , Gzip On, Redis On.

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