Virtual Interface

Whats the exact use of virtual interface? what you mean by virtual interface? Is there a document where I can find detail about virtual interface starting from basics?

Since we can’t refer or instantiate an actual interface in a class (Class is dynamic). We need a virtual interface to provide a connection point to allow classes to access the signals in the interface.

A virtual interface is nothing but a pointer to an actual interface.

You can refer to cookbooks. It’s free here you can download it (uvm-cookbook)

SystemVerilog for Verification by Chris Spear has nice explanation of Virtual Interface concept. Here, the word ‘virtual’ means you cannot have instance of the interface (similar to virtual class). Virtual interface inside the class can only have handle which points to actual interface instantiated in top module.
For that purpose only we pass Virtual Interface handle(which is pointing to actual interface instance) with help of configuration database. And components like Driver, Monitor receives this handle/pointer.