Может ли функция в Verilog вызывать другую функцию? - PullRequest
0 голосов
/ 09 октября 2019

Рассмотрим следующий пример verilog, разрешено ли это и можно ли его синтезировать?

function [7:0] func1;
   input [7:0] a;
   input [7:0] b;
   begin
      func1 = func2(a) + b;
   end
endfunction

function [7:0] func2;
   input [7:0] a;
   begin
      func2 = a + a;
   end
endfunction

1 Ответ

0 голосов
/ 09 октября 2019

Да и да.

Функция - это просто способ добавления иерархии в выражение. Итак, ваш пример - это просто еще один способ написания

some_variable = a + a + b;

, который можно синтезировать, как и ваши функции.

...