Interface vs module

A module is used to specify the functionality of the logic. For example if you are building a counter you would use a module to define the functionality (up behavior/down behavior/reset behavior) of the counter.

An interface as the name suggests is used to specify the interface behaviour. If your counter can be configured using an AHB interface, then you would specify the AHB behavior in the interface construct. An interface can be used as I/O for the module.

An interface is used to model the interactions of the testbench to the module.

Hope this hrlps