我有以下功能:
ViewController
我通过以下方式调用该函数:
ViewController
data_bit可以是: 位[1:0] /位[2:0] /位[3:0] /位[4:0] /位[5:0]等...
当我尝试编译时,我收到以下错误: “[”附近:语法错误,意外[,期待IDENTIFIER或TYPE_IDENTIFIER或NETTYPE_IDENTIFIER。
答案 0 :(得分:1)
[*]
不是动态数组的正确语法,请使用[]
。
您的数组只能在解压缩维度中动态显示。因此,您不能拥有bit [] mem_array
,但必须拥有bit mem_array[]
。
最后,使用按引用传递的函数不能具有静态生存期。也就是说,它必须声明为自动。
function automatic void foo_arr_bit (int seed, ref bit mem[], string mem_name);
for (int i=0; i< mem.size(); i++)
mem[i] = my_randomize_int(seed, mem[i], mem_name);
endfunction: foo_arr_bit
编辑:但即使有了这些变化,您也面临着更大的问题。通过引用传递要求非常严格的打字。没有允许转换,所以我希望类型转换存在问题。
此外,在您的情况下,通过引用传递并不是必需的。请改用inout
。
function automatic void foo_arr_bit (input int seed, string mem_name, inout bit mem[]);
for (int i=0; i< mem.size(); i++)
mem[i] = my_randomize_int(seed, mem[i], mem_name);
endfunction: foo_arr_bit