Driving the same data to two interfaces

I was working on the UVC setup. There is a requirement to send the same data to two interfaces.

DUT has the two interfaces.
Already done with the driver and sending data to one interface.

Question is how to send the same data format to the other interface.

Do i need to have two instances of the same agent to drive to two interfaces?
could you share any small code snippet which shows the way to do it.

Note: the two virtual interfaces instances are the instance of the one interface.

In reply to Rakesh_VLSI:

module top;

some_interface in0(clk);
some_interface in1(clk);

initial begin
uvm_config_db#(virtual some_interface)::set(null,"*","vif0",in0);
uvm_config_db#(virtual some_interface)::set(null,"*","vif1",in1);
run_test();
...
endmodule

class agent_top extends uvm_env;

some_agent agt[2];

function void build_phase(uvm_phase phase);

foreach(agt[i])
agt[i]= some_agent::type_id::create($sformatf("agt[%0d]",i),this);
endfunction

endclass

class sequence extends uvm_sequence#(some_xtn);

task body();
req= some_xtn::type_id::create("req");
start_item(req);
assert(req.randomize);
finish_item(req);

endtask

endclass

class test extends uvm_test;
...

task run_phase(uvm_phase phase);

sequence se1, seq2;
seq1 = sequence::type_id::create("seq1");
seq2 = sequence::type_id::create("seq2");

phase.raise_objection(this);

//if u need to drive data on both interfaces at same time start both the sequences within fork-join else you can start the sequences within begin end
fork
seq1.start(env.agt[1].seqr);
seq2.start(env.agt[2].seqr);
join

endtask
endclass

yes you have to create two agents & set interface twice in the top module as shown. The virtual interface in agt[0] driver should be connected to in0, & The virtual interface in agt[2] driver should be connected to in1. when the same type sequence is started on both the agents sequencers same data format can be driven on both the interfaces

In reply to shanthi:

Thanks Shanthi. I had worked out the solution.
Great code. Thats helps to understand. I did drive the two interfaces using the same approach.

Just that instead of agent, I have created two instances of driver and sequencer as I need to create agents instances for multiple slaves.