我想反转并在系统Verilog中的函数中返回数组,我尝试了以下代码,但出现以下错误

时间:2019-03-06 22:44:01

标签: system-verilog

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个元素,每个元素都是整数,我在这里做错什么了?

1 个答案:

答案 0 :(得分:0)

您不能在程序块的中间定义函数。将其移至模块的顶层。您还有许多其他问题。请注意,有一个内置的反向数组方法。