Can we set a config db in sequence body() method and get it in scoreboard?

In reply to dave_59:

Could you please give an example? I have tried in this way,

class mem_sequence extends uvm_sequence#(mem_seq_item);
   
  `uvm_object_utils(mem_sequence)
    
  //Constructor
  function new(string name = "mem_sequence");
    super.new(name);
  endfunction
   
  virtual task body();
 
 req = mem_seq_item::type_id::create("req"); //create the req (seq item)
 uvm_config_db#(mem_seq_item)::set(null,"uvm_test_top.*","user_config",this.req);  //set method                                                   
    wait_for_grant();                            //wait for grant
    assert(req.randomize());                     //randomize the req                   
    send_request(req);                           //send req to driver
    wait_for_item_done();                        //wait for item done from driver
    get_response(rsp);                           //get response from driver
 
  endtask
endclass

And in scoreboard tried to get like this:


task run_phase(uvm_phase phase);
if(!(uvm_config_db#(mem_seq_item)::get(this,"","user_config",req1) )
 `uvm_fatal(get_full_name(),{"Did not get the user Config"})
endtask

After you mentioned about uvm_event_pool I have looked into it did not understand how to incorporate that concept in my code. As per my understanding of uvm_event_pool we will create and event as soon as the sequence generates and in scoreboard we will for that event. As soon as we get that event our scoreboard run_phase will continue. Is this understanding correct? Correct me if I am wrong.