虚接口(Virtual
Interface)主要完成接口的动态分配,例如一个具有N通道的DUT,如果使用interface那么必须定义一个interface的数组,然后一个数组的值对应一个DUT的通道,在一一例化,比较繁琐,而使用Virtual
interface,它会定义一个handle指向实际的interface,在使用时直接定义就好,build
in run-time。在例程中可以看书一个很明显的好处是,只需要在top层定义Virtual
interface,其他层中不需要改变,直接通过interface传递参数即可。
interface SBus;
logic req, grant;
logic [ 7:0 ] addr, data;
endinterface
class SBusTransctor;
virtual
SBus bus;
function new ( virtual
SBus s );
bus = s;
endfunction
task request();
.... endtask
endclass
module devA (
Sbus s )
.... endmodule
module devB
( Sbus s )
.... endmodule
module top;
SBus s[1:4]
();
devA a1 ( s[1] );
devB b1 ( s[2] );
....
endmodule
加载中,请稍候......