本文转自:http://www.eetop.cn/blog/html/28/1561828-564191.html

UVM已经成为验证方法学的主流,代表了验证方法学的发展方向。但是从创新性和价值来看,UVM缘何成为ASIC和FPGA验证中,最先进的验证方法呢?所以我想,如果花上一点点时间回顾一下UVM的关键概念,可能会对我们都有帮助。即使对于一些已经使用UVM多年的人,可能也会意识到,UVM真的很酷。

UVM鼓励工程师创建模块化、可复用、随机的自检测试平台。当然这些特性都是相互关联的,例如,模块化是验证平台复用的关键。UVM通过TLM(transation-level modeling)接口提升其模块化的性能。在“调用”端和“执行”端通过接口来实现一些抽象相连。UVM的每个组件对与其相连的组件的内部细节都完全不用在意。这种抽象连接关系在squence和driver之间常用。如下图,是squence和driver之间的连接关系图。

UVM:灵活性的价值

很多UVM机制的细节,也被sequencer的执行隐藏起来,所以用户看到的相互作用关系是非常简单的。下图Sequence-Driver API示意。

UVM:灵活性的价值

Driver里的“drive_item2bus(req)”调用很好用。很多情况下,这个调用可能是driver内的一个task,这个task操控virtual interface里的信号。下面是这种调用的简单示例。

UVM:灵活性的价值

只需要在driver里调用了get_next_item()和item_done(),环境中很多其他部分的一些操作就被隐藏起来。

当考虑仿真的时候,这种设置的价值就凸显出来了。在这种情况下,task可以存在于interface内部,而接口可以存在于任何地方。对于仿真,接口在协议模块内部被实例化,协议模块包含了一些其它的特定协议信息。下图是这种情况的一个示例。

UVM:灵活性的价值

仔细看UVM Cookbook的话,你能找到很多诸如此类的,关于如何建立自的的环境的使用方法。

基于Squence和driver之间的TLM接口极高的灵活性,UVM用户复用tests和sequences时也非常灵活。所有这一切,只需要一种机制,允许在一个单一的环境中实例具有相同接口的不同组件,而无需更改代码。这就是UVM提供的factory机制了。

UVM方法非常灵活,对验证方法的实现也很巧妙,大概这就是UVM推出后一直保持其活力,广受欢迎的原因吧。

相关文章:

  • 2021-08-22
  • 2021-06-20
  • 2021-08-08
  • 2021-07-26
  • 2021-11-30
  • 2021-10-25
  • 2022-12-23
  • 2021-09-17
猜你喜欢
  • 2022-01-11
  • 2021-06-19
  • 2021-08-17
  • 2022-12-23
  • 2021-09-02
  • 2021-08-27
  • 2022-01-10
相关资源
相似解决方案