module rev_array;
initial
begin
int array_in[10]={0,1,2,3,4,5,6,7,8,9};
typedef integer array[9:0];
function array reverse(int array_in[10]);
array reverse;
for(integer i=0;i<$size(array_in)-1;i++)
begin
for(int j=$size(array_in)-1;j>=0;j--)
begin
reverse[j]=array_in[i];
end
end
return reverse;
endfunction:reverse
reverse(array_in);
for(integer k=0;k<$size(array_in)-1;k++)
begin
$display("reverse[%0d]:%0d", k, reverse[k]);
end
end
endmodule
对于上面的代码,我遇到了错误 错误-[SE]语法错误 以下verilog源具有语法错误: “ testbench.sv”,7:令牌为“功能” 函数array reverse(int array_in [10]);
我想返回一个名为reverse(与函数同名)的数组,该数组包含10个元素,每个元素都是整数,我在这里做错什么了?
答案 0 :(得分:0)
您不能在程序块的中间定义函数。将其移至模块的顶层。您还有许多其他问题。请注意,有一个内置的反向数组方法。