Я хочу обратить и вернуть массив в функцию в системном Verilog, я попробовал код ниже и получаю следующую ошибку - PullRequest
0 голосов
/ 07 марта 2019
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: токен является "функцией" обратный массив функций (int array_in [10]);

Я хочу вернуть массив с именем reverse (то же имя, что и у функции), который имеет 10 элементов, каждый из которых является целым числом, что я здесь не так делаю?

1 Ответ

0 голосов
/ 07 марта 2019

Вы не можете определить функцию в середине процедурного блока.Переместите его на верхний уровень модуля.У вас много других проблем.Обратите внимание, что есть встроенный метод обратного массива.

...