我正在使用SystemVerilog。我的代码是:
function write_pixel_data(datastr ds);
/* some stuff here... but no return */
endfunction
然后我调用我的函数:
write_pixel_data(someval);
我得到了vcs警告:
Warning-[SV-NFIVC] Non-void function used in void context.
但是我没有返回任何东西,我知道我可以将函数调用转换为void来摆脱警告。但是为什么它会给出这个警告?? !!
感谢。
答案 0 :(得分:4)
如果您尚未将该函数声明为void
并且在没有将返回值赋给任何内容的情况下调用它,您将看到此错误。简单修复:
function void write_pixel_data(datastr ds);
/* some stuff here... but no return */
endfunction
但是要小心,你不能做任何“需要时间”的功能。你需要task
。
答案 1 :(得分:2)
使用隐式类型声明的函数返回logic
。如果这是你的意图,你必须明确地声明返回类型是无效的。