Thanks mperyer.
I have a follow-up question regarding using fork/join on UVM seqs. Assume I have a scenario like : I have two virtual sequences which are extended from uvm_sequence and each one calls two sub seqs like
virtual_seq_A;
…
task body
fork
seq1.start(…);
seq2.start(…);
join
endtask
end virtual_seq_A
virtual_seq_B;
…
task body
fork
seq3.start(…);
seq4.start(…);
join
endtask
end virtual_seq_B
in my test or env, I want to run two virtual seqs in parallel :
class test extends uvm_tests;
…
task run_phase(…);
fork
virtual_seq_A.start(…);
virtual_seq_B.start(…);
wait fork;
join
endtask
endclass
my questions are :
- Do I need a wait fork here ?
- if i wan to excute the main process after all threads ( vir_seqA, vir_seqB, seq1…4)complete. how can i achieve it?
thanks in advance