Hi,
While going through a UVM testbench containing multiple sequences, I found that in the build_phase of the test,
uvm_config_db is used to select and run the default sequence.
For example
If i have two independent sequence classes say
class seq_a extends uvm_sequence
…
…
endclass
class seq_b extends uvm_sequence
…
…
endclass
In the test class
class test extends uvm_test
function build_phase(uvm_phase phase)
uvm_config_db #(uvm_object_wrapper)::set( null, “uvm_test_top.my_sequencer.main_phase”, “default_sequence”, seq_b::type_id::get());
endfunction
endclass
So, if does the statement “uvm_config_db #(uvm_object_wrapper)::set( null, “uvm_test_top.my_sequencer.main_phase”, “default_sequence”, seq_b::type_id::get());” also runs the body function of seq_b ?
I know that in normal UVM testbench we basically use seq.start(sequencer_name) to start the sequence.
Please also tell how the statement “uvm_config_db #(uvm_object_wrapper)::set( null, “uvm_test_top.my_sequencer.main_phase”, “default_sequence”, seq_b::type_id::get())” starts the sequence and how it is executed ?
Thanks
Shankar