微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 求教讲解 虚拟接口

求教讲解 虚拟接口

时间:10-02 整理:3721RD 点击:
各位大侠,小弟有以下问题请教:
1 虚拟接口的用处是什么?
2 给小弟讲讲下面程序的, 这两个类之间是什么关系,虚拟接口在这两个类中有什么联系?
class mem_txgen;

mem_drivermem_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

同问!

说下我的理解,可能有误,请高手补充
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

说下我的理解吧:
1.虚拟接口主要用于连接驱动器(总线功能模型)与DUT、监视器与DUT,因为一般将驱动器和监视器封装在一个class中,为了使class能够与DUT同性,就采用了虚拟接口。
2. function new(virtual mem_ports ports);在构造函数中含有虚拟接口,目的是为了在更高层次的类中例化这个类时,连接这个虚拟接口与其他类的虚拟接口。
3.如果不对,请大家指正。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top