System Verilog Process
How to disable particular process of fork...join,executing multiple processes in parallel.
class a;
int v;
task t1();
for(int i=0;i<10;i++) begin
#1 v=i;
$display("I value=%0d",v);
end
endtask:t1
task t2();
for(int i=10;i<20;i++)begin
#1 v=i;
$display("I value=%0d",v);
end
endtask :t2
task t3();
process job_id[2]; //Process Identifier
fork
begin:t1p
job_id[0] = process::self();
t1();
end
begin:t2p
job_id[1] = process::self();
t2();
end
begin:t3p
int j;
forever begin
@(v)begin
$display($time,"forever",j);
j++;
if(v==14)begin
job_id[0].kill(); //Kill process executing task t1();
$display("Entered");
//disable t1p;
break;
end
end
end
end
join
endtask :t3
endclass:a
module test();
a a1;
initial
begin
a1=new();
a1.t3();
end
endmodule
Note:-Why can't simple disable ...fork statement can be used....?????
How to disable particular process of fork...join,executing multiple processes in parallel.
class a;
int v;
task t1();
for(int i=0;i<10;i++) begin
#1 v=i;
$display("I value=%0d",v);
end
endtask:t1
task t2();
for(int i=10;i<20;i++)begin
#1 v=i;
$display("I value=%0d",v);
end
endtask :t2
task t3();
process job_id[2]; //Process Identifier
fork
begin:t1p
job_id[0] = process::self();
t1();
end
begin:t2p
job_id[1] = process::self();
t2();
end
begin:t3p
int j;
forever begin
@(v)begin
$display($time,"forever",j);
j++;
if(v==14)begin
job_id[0].kill(); //Kill process executing task t1();
$display("Entered");
//disable t1p;
break;
end
end
end
end
join
endtask :t3
endclass:a
module test();
a a1;
initial
begin
a1=new();
a1.t3();
end
endmodule
Note:-Why can't simple disable ...fork statement can be used....?????