接口的含义就是一组信号,可以理解为一个类,interface里面的信号就是类的成员,其本质和类并无区别
全部使用时可以直接用来替换端口,
例如:
module a(input i_0, ouput_o_1);
endmodule
可以替换为如下:
interface intf();
logic i_0;
logic o_0;
endinterface
module a(intf my_if);
endmodule
假如interface中的信号没有被全部使用的话,并不能体现出其优势
例如
module b(ouput i_0);
endmodule
此时使用interface并无优势,但是也可以使用 b(intf my_if_b) 此时就相当于在端口上多申明的几个端口。
假如端口方向是在信号列表中的括号中定义的,那么使用interface将会丢失port的方向信息
所以引入了modport