In reply to srbeeram:
Assuming we are talking about not virtual interfaces. Yes interfaces are synthesizable and you can use alwasy/ff/comb and initial begin syntax along with continuous assignments as well. Tasks and functions can be declared.
The main different between modules and interfaces is:
an interface can be inst into a module (as ports) a module cannot be inst into an interface:
For instance…
“Instantiation of module ‘p’ is illegal.
Interface “myif” has a module instantiation which is not allowed.”
A module doesn’t know the concept of modports for instance. There are many advantages (reusability and encapsulation) of using interfaces but limitations as well even if they are considered “like a module” they cannot fully used like a module.
Regards