interface 是一个静态的,只能用于module里面,会在仿真的编译阶段建好。
class是一个动态的,在simulation阶段就建好了。
想在class里面调用interface就需要在class里面定义一个virtual interface。(相当于用了一个动态指针指向一个静态的interface)
virtual intarface_name virtual_interface_name; interface my_interface(input logic clk, input logic rst_n) logic signal; endinterface class my_class; virtual my_interface my_virtual_interface; //... endclass
所以说virtual interface是连接虚拟模型(class)和实际的RTL时间的。