创建UVM Driver

电子说

1.2w人已加入

描述

Driver的作用是从sequencer中获得数据项,按照接口协议将数据项驱动到总线上。UVM类库提供了uvm_driver基类,所有的Driver类都应该直接或间接地从该类中扩展出来。Driver有一个TLM port,通过它与sequencer进行通信。

要创建一个Driver:

  • 派生自uvm_driver基类。
  • 注册到factory机制。
  • 从sequencer中获取下一个数据项,将数据项驱动到总线上。
  • 在Driver中声明一个virtual interface,配置到连接DUT实际interface的virtual interface上。

下面例子中的simple_driver定义了一个Driver类。这个例子从uvm driver派 生 出 simple_driver(参数化为simple_item事务类型),并使用seq_item_port中的方法与sequencer进行通信。simple_driver包括一个构造函数,以及使用**`uvm_component_utils宏**在factory中注册simple_driver类型。

TLM

TLM

  • 第1行 扩展出driver。
  • 第5行 添加UVM宏,注册simple_driver类型。
  • 第13行 获取virtual interface配置
  • 第22行 调用get_next_item(),从sequencer中获取下一个激励的数据项。
  • 第25行 向sequencer发出信号,表示当前数据项的驱动已经完成。
  • 第30行 在这里驱动virtual interface来完成数据项激励。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分