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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] 求教讲解 虚拟接口

[复制链接]
发表于 2012-7-19 15:34:17 | 显示全部楼层 |阅读模式

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

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

x
各位大侠,小弟有以下问题请教:
     1 虚拟接口的用处是什么?
     2 给小弟讲讲下面程序的, 这两个类之间是什么关系,虚拟接口在这两个类中有什么联系?
      class mem_txgen;
                  
                   mem_driver  mem_driver;  //驱动类,
  
                  integer num_cmds;
                 function new(virtual mem_ports ports);//这个new函数中,用虚拟接口当中函数的参数是什么作用???????
                       begin
                        num_cmds = 3;
                        mem_driver = new(ports);//调用驱动类中的初始化函数。
                      end
               endfunction
        endclass

class mem_driver;
  virtual mem_ports ports; //
function new(virtual mem_ports ports);  //这个好像是接口的初始化。
  begin
    this.ports = ports;
    ports.address    = 0;
    ports.chip_en    = 0;
    ports.read_write = 0;
    ports.data_in    = 0;
  end
endfunction
发表于 2012-7-23 17:24:51 | 显示全部楼层
同问!!!!
发表于 2012-7-24 14:39:01 | 显示全部楼层
说下我的理解,可能有误,请高手补充
1、在testbench中,真正能和DUT交互的是在 top module 中实例化的interface。在Driver等class中需要驱动这个interface,但在class内部不能有interface的成员,所有就有了virtual interface。在class的建立过程中,把top module中真实的interface赋给class中的virtual interface,就实现了目的。
2、mem_txgen是比mem_driver抽象层次更高的class,即transactor
发表于 2012-7-26 09:33:50 | 显示全部楼层
说下我的理解吧:
1.虚拟接口主要用于连接驱动器(总线功能模型)与DUT、监视器与DUT,因为一般将驱动器和监视器封装在一个class中,为了使class能够与DUT同性,就采用了虚拟接口。
2. function new(virtual mem_ports ports);在构造函数中含有虚拟接口,目的是为了在更高层次的类中例化这个类时,连接这个虚拟接口与其他类的虚拟接口。
3.如果不对,请大家指正。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-9-21 16:27 , Processed in 0.021605 second(s), 9 queries , Gzip On, Redis On.

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