nterface
Verilog语言使用端口名字连接各个模块;
systemVerilog中使用“.*”可以自动匹配具有相同名字的线网和端口,自动连接的名字必须具有相同的端口位宽,连接的端口类型必须兼容;也可以使用“.name”进行连接,.name必须满足端口名字和位宽一直;
Verilog传统连接的缺点:通信协议接口在多个模块中使用,在多个模块中都要声明相应的端口,同时不匹配的声明会导致编译错误,设计文档修改端口名后需要修改所有的模块;
interface中集合了多个Verilog类型的信号,是一个独立的端口类型,可以简化端口连接。interface包含了连接,同步,甚至多个块之间的通信,只要在interface里面声明过的信号与端口,在其它模块中都可以使用。
interface的优势:
接口便于设计重用,当两个块之间有两个以上的信号连接,并且使用特定的协议通信的时候,应当考虑接口;如果接口组一次又一次的重复出现,应该考虑虚拟接口;
借口可以用来替换原来在模块或者程序中反复声明并且位于代码内部的一系列信号,减少了连接错误的可能性;
要增加一个信号时,只需要在借口中声明一次,不需要在更高层声明,这减少了连接错误的可能性;
modport允许一个模块很方便的将接口中一系列信号捆绑在一起,也可以为信号指明方以便工具自动检查。
interface的劣势:
必须同时使用接口名和信号名,可能会使模块变得更加冗长;
如果连接的两个