在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1710|回复: 3

[求助] 提问一个关于uvm driver的问题

[复制链接]
发表于 2022-3-2 18:59:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

在driver中的部分代码:
task run_phase(uvm_phase phase)
***
***
***
      seq_item_port.get_next_item(*);
      ***
      seq_item_port.item_done();
endtask


我在查看uvm源码的时候发现,seq_item_port在uvm_driver里,get_next_item和item_done在uvm_sequencer里,为啥在搭建driver时候,可以直接用uvm_sequencer里的task啊,求解。。。。。
发表于 2022-3-2 21:23:55 | 显示全部楼层
class uvm_seq_item_pull_port #(type REQ=int, type RSP=REQ)
  extends uvm_port_base #(uvm_sqr_if_base #(REQ, RSP));
  `UVM_SEQ_PORT(`UVM_SEQ_ITEM_PULL_MASK, "uvm_seq_item_pull_port")
  `UVM_SEQ_ITEM_PULL_IMP(this.m_if, REQ, RSP, t, t)

  bit print_enabled;
   
endclass

上面是seq_item_port的定义,而uvm_port_base 的定义是

virtual class uvm_port_base #(type IF=uvm_void) extends IF;

也就是说uvm_seq_item_pull_port 是uvm_sqr_if_base 的子类,这个地方uvm_port_base的父类是参数化的,所以uvm_seq_item_pull_port最终是继承自uvm_sqr_if_base因此拥有uvm_sqr_if_base的get_next_item和item_done。至于连接你可以自己再看看源码

上面的信息可以在https://verificationacademy.com/ ... 1.2/html/index.html自己查一查
 楼主| 发表于 2022-3-3 10:12:46 | 显示全部楼层


空白MAX 发表于 2022-3-2 21:23
class uvm_seq_item_pull_port #(type REQ=int, type RSP=REQ)
  extends uvm_port_base #(uvm_sqr_if_base ...


受教了,谢谢!
发表于 2022-3-8 17:46:05 | 显示全部楼层
翻看一下TLM的源码就知道是怎么回事了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-15 13:39 , Processed in 0.015557 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表