In reply to ABD_91:
//----------driver----------------//
class driver extends uvm_driver #(seq_item);
`uvm_component_utils(driver)
function new(string name = "",uvm_component parent);
super.new(name,parent);
endfunction
virtual example h_vintf;
task run_phase(uvm_phase phase);
super.run_phase(phase);
forever begin
@(h_vintf.cb_driver) begin
seq_item_port.get_next_item(req);
h_vintf.cb_driver.rst <= req.rst;
h_vintf.cb_driver.b<= req.b;
h_vintf.cb_driver.c <= req.c;
seq_item_port.item_done();
end
end
endtask
function void connect_phase(uvm_phase phase);
super.connect_phase(phase);
if(!uvm_config_db#(virtual example)::get(this,"*","key",h_vintf)) `uvm_fatal("MSG","CONFIG_DB");
endfunction
endclass
//-----------sequencer--------------//
class sequencer extends uvm_sequencer;
`uvm_component_utils(sequencer)
function new(string name = "" ,uvm_component parent);
super.new(name,parent);
endfunction
endclass