In reply to dave_59:
Hi Dave,
I came across a similar question
module t;
initial
begin
$display("%0t main thread started",$time);
fork
print(20,"thread_0");
print(10,"thread_2");
print(15,"thread_1");
join_none
$display("%0t main thread finished",$time);
end
task print(int time_t,string t_name);
#(time_t)$display("[%0t] %s",$time,t_name);
endtask
endmodule
the output is
0 main thread started
0 main thread finished
[10] thread_1
[15] thread_1
[20] thread_1
but when code is modified to
module t;
initial
begin
$display("%0t main thread started",$time);
fork
print(20,"thread_0");
print(10,"thread_2");
print(15,"thread_1");
join_none
$display("%0t main thread finished",$time);
end
task print(int time_t,string t_name);
$display("[%0d] %s",time_t,t_name);
endtask
endmodule
i got output as
0 main thread started
0 main thread finished
[20] thread_0
[10] thread_2
[15] thread_1
In both examples, task is static. can you please help