Using same Agent with different I/F

In reply to guy.levi:

I guess its better to declare 2 interfaces , and having one config class in agent which will tell which variant to use .
Your config class will look something like this

bit variant ; 
interface_0 vif_0;
interface_1 vif_1;

In top component , say env you have 2 agent instantiation
—In agent instance 1 pass config ( variant =0 , interface_0)
—In agent instance 2 pass config ( variant=1 , interface_1)
env code :

cfg0.variant=0;
cfg0.interface_0 = this.vif0;
cfg1.variant=1;
cfg1.interface_1 = this.vif1;
agent0.cfg = cfg0;
agent1.cfg = cfg1

This is all about connectivity and in your driver and monitor use variant bit to differentiate the code on requirement basis like below

wait(vif.req) 
if(variant==0) rdata = vif_0.data;
else rdata = vif_1.data;