Interfaces and Virtual Interfaces
The SystemVerilog interface provides a convenient means of organizing related signals into a container in order to simplify connections between modules.
An interface may be declared with or without ports. If it is declared with ports, then those ports need to be assigned to signals when the interface is instantiated.