0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

创建UVM Driver

jf_78858299 来源:芯片验证工程师 作者:验证哥布林 2023-05-30 16:17 次阅读

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类型。

图片

图片

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

    关注

    0

    文章

    526

    浏览量

    66572
  • UVM
    UVM
    +关注

    关注

    0

    文章

    181

    浏览量

    19139
  • TLM
    TLM
    +关注

    关注

    1

    文章

    32

    浏览量

    24734
收藏 人收藏

    评论

    相关推荐

    IC验证"一个简单的UVM验证平台"是如何搭建的(六)

    连载....小编考虑到一个好的连续剧不能没有结尾,所以后期会持续更新ic验证的UVM相关内容.......今天更新一个最简单的验证平台,只有driver的验证平台.....driver是验证平台最基本
    发表于 12-04 15:48

    IC验证"UVM验证平台加入factory机制"(六)

      加入factory机制 上一节《IC验证"一个简单的UVM验证平台"是如何搭建的(五)》给出了一个只有driver、使用UVM搭建的验证平台。严格来说这根本就不算是UVM验证
    发表于 12-08 12:07

    IC验证“UVM验证平台加入objection机制和virtual interface机制“(七)

    /my_driver.sv 13 task my_driver::main_phase(uvm_phase phase); 14 phase.raise_objection(this); 15 `
    发表于 12-09 18:28

    数字IC验证之“构成uvm测试平台的主要组件”(4)连载中...

    。  图示是一个典型的uvm测试平台的结构图,构成测试平台的每一个元素称为组件,既component。  下面从底层到高层,就每一个组件来说明它们在测试平台中所起到了作用。  第一个组件是driver
    发表于 01-22 15:33

    UVM代码如何把testcase与driver分开

    UVM代码如何把testcase与driver分开
    发表于 03-11 07:58

    什么是uvmuvm的特点有哪些呢

    直观的印象,就是uvm验证平台,它是分层的结构。图中的每一个巨型框都代表着平台的一个构成元素。这些元素呢,我们称为平台组建,下面来简单的分析一下。从最底层上来看,agent 中包含了driver,monitor和sequencer,其中
    发表于 02-14 06:46

    请问一下在UVM中的UVMsequences是什么意思啊

    uvm_object基类扩展得到。UVM sequences不是在仿真的开始,而是在仿真的过程中生成并分配内存的,也没有类似uvm_component的层次结构。随着仿真的进行,将创建
    发表于 04-11 16:43

    谈谈UVM中的uvm_info打印

    , this);  endfunction  m_rh是uvm_report_handler class类型的。在1个基于uvm_report_object继承过来的class在new的时候,会自动创建出m_rh
    发表于 03-17 16:41

    Modelsim uvm库编译及执行

    第一句话是设置uvm环境变量,指定uvm的dpi位置。 第二句话是创建work工作目录。 第三句话是编译源文件,并且通过-L指定几个编译库。 第三句是执行仿真,调用uvm
    的头像 发表于 12-01 11:25 3830次阅读
    Modelsim <b class='flag-5'>uvm</b>库编译及执行

    UVM response_handler和get_response机制

    很多UVM用户平时更多的使用get_response()方式去获得uvm_driver的response,但get_response有些缺点
    的头像 发表于 05-23 16:56 1580次阅读
    <b class='flag-5'>UVM</b> response_handler和get_response机制

    UVM学习笔记(一)

    driver应该派生自uvm_driver,而uvm_driver派生自uvm_component。
    的头像 发表于 05-26 14:38 1336次阅读
    <b class='flag-5'>UVM</b>学习笔记(一)

    创建UVM Driver的步骤

    Driver的作用是从sequencer中获得数据项,按照接口协议将数据项驱动到总线上。
    的头像 发表于 05-30 09:22 982次阅读
    <b class='flag-5'>创建</b><b class='flag-5'>UVM</b> <b class='flag-5'>Driver</b>的步骤

    UVM driver和sequencer的通信

    sequencer生成激励数据,并将其传递给driver执行。UVM类库提供了uvm_sequencer基类,其参数为request和response数据类型。
    的头像 发表于 06-07 11:58 1607次阅读
    <b class='flag-5'>UVM</b> <b class='flag-5'>driver</b>和sequencer的通信

    UVM中的uvm_do宏简析

    uvm_do宏及其变体提供了创建、随机化和发送transaction items或者sequence的方法。
    的头像 发表于 06-09 09:36 4845次阅读
    <b class='flag-5'>UVM</b>中的<b class='flag-5'>uvm</b>_do宏简析

    创建UVM Testcase的步骤

    UVM中,Testcase是一个类,它封装了测试用例开发者编写的特定激励序列。
    的头像 发表于 06-15 09:41 1525次阅读
    <b class='flag-5'>创建</b><b class='flag-5'>UVM</b> Testcase的步骤