verilog 中的函数可以调用另一个函数吗?

Can a function in verilog call another function?

考虑下面的 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

是的,是的。

函数只是一种向表达式添加层次结构的方法。所以,你的例子只是另一种写法

some_variable = a + a + b;

哪个是可综合的,你的函数也是。