program main();
int a;
initial
begin
#10 a = 10;
#10 a = 20;
#10 a = 30;
#10 $finish;
end
task pass_by_val(int i);
forever
@i $display("pass_by_val: I is %0d",i);
endtask
task pass_by_ref(ref int i);
forever
@i $display("pass_by_ref: I is %0d",i);
endtask
initial
pass_by_val(a);
initial
pass_by_ref(a);
我在网站上面引用并运行但是我有一些错误信息。
引用参数在静态任务函数声明中是非法的。
答案 0 :(得分:4)
一般来说,模块/程序中的任务/函数默认是静态的,按照第13.5.2节“IEEE 1800 - 2012
的参考文献”使用通过引用传递的参数是非法的 生命周期为静态的子程序。
要解决仅使用引用' ref
'自动任务/功能
task automatic pass_by_ref(ref int i);
forever
@i $display("pass_by_ref: I is %0d",i);
endtask