gpt4 book ai didi

system-verilog - 静态任务函数声明中的引用参数是非法的是什么意思?

转载 作者:行者123 更新时间:2023-12-04 02:49:15 25 4
gpt4 key购买 nike

Resource

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);

我指的是上面的网站并运行,但我有一些这样的错误消息。

Reference argument is illegal inside static task function declaration.

最佳答案

通常模块/程序内的任务/函数默认是静态的,根据第 13.5.2 节通过引用传递 IEEE 1800 - 2012

It shall be illegal to use argument passing by reference for subroutines with a lifetime of static.

要解决仅使用引用传递 'ref' 到自动任务/函数的问题

task automatic pass_by_ref(ref int i); 
forever
@i $display("pass_by_ref: I is %0d",i);
endtask

关于system-verilog - 静态任务函数声明中的引用参数是非法的是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31018888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com