Assumed I have created many classes for test cases under UVM environment and want to run them parallelly.
For example:
initial begin
fork
run_test(“test_a”);
run_test(“test_b”);
join
end
Is it possible?
According to my tracing codes in run_test from uvm_root.svh, it seems to be not feasible because UVM check
if(m_children.exists(“uvm_test_top”)) begin
uvm_report_fatal(“TTINST”,
“An uvm_test_top already exists via a previous call to run_test”, UVM_NONE);
#0; // forces shutdown because $finish is forked
end
But, UVM should allow to run them sequentially
For example
initial uvm_top.finish_on_completion=0;
initial begin
run_test(“test_a”);
run_test(“test_b”);
end
Is my understanding correct? If so, what is the way to do test cases by multiple threads parallelly?
Thanks for your reply in advance.