TASK ARGUMENTS PASSING

Hi,

class subscriber;
parameter add_width=32;
parameter data_width=64;
task run(int i);
 
 if(i=1) begin
   logic [width-1:0] addr; //width and dwidth are declared as parameters in another file
   logic [dwidth-1:0] data;
   addr_width=width; data_width=dwidth;
   addr=vif.add1;
   data=vif.data1; end
 if(i=2) begin
   logic [width_1-1:0] addr;
   logic [dwidth_1-1:0] data;
   addr_width=width_1; data_width=dwidth_1;
   addr=vif.add1;
   data=vif.data1; end
 
  marchrun(addr,data); //task
endtask

task marchrun ( [addr_width-1:0] addr,[data_width-1:0] data);
  write0(addr,data);
  read0(addr,data);
endtask

task write0 ([addr_width-1:0] addr,[data_width-1:0] data);
endtask
task read0([addr_width-1:0] addr,[data_width-1:0] data);
endtask
endclass

for above type of code i am getting error like
inside write0 and read0 and marchrun i am unable to get variables(addr,data) which are passing like arguments to the tasks
please suggest me any solution for this, thanks in advance

In reply to kathula venkatesh:

Please use code tags making your code easier to read. I have added them for you.

It would really help to see the actual error messages you are getting. Also, you need to put directions like input or output on your task arguments depending on the flow of values you are expecting.