In reply to uvm_va_1:
class base_seq_item extends uvm_seq_item;
// variable, registrations and all..
endclass
class base_seq extends uvm_sequence#(base_seq_item);
// pre_body, body, post_body, registration..
endclass
class base_test extends uvm_test;
// registration and other stuff.
base_seq m_seq;
task run_phase (uvm_phase phase);
// other stuff..
m_seq = base_seq::type_id::create("m_seq");
fork
begin
m_seq.start(m_sequencer); // assuming provided proper sequencer handle
end
begin
m_seq.wait_for_sequence_state(UVM_FINISHED);
m_sequencer.stop_sequences();
end
join_any
endtask
endclass
This is one way to do it. But i’m not encouraging to use the stop_sequences method as with the complex architecture, it will lead to issue in handling multiple threads.
Thanks & Regards,
Tejendra.