函数参数:两种不同的风格?

时间:2012-04-02 16:00:27

标签: verilog

阅读一些Verilog代码,似乎有两种方法在函数声明中定义参数:

方法1:

function factorial;
    input [3:0] operand;
    // More code
endfunction

方法2:

function factorial(input [3:0] operand);
    // More code
endfunction

这两者有什么区别吗?两种方法都同样可移植吗?

2 个答案:

答案 0 :(得分:1)

从Verilog 2001标准开始,这两个是等价的。 一些旧工具不支持Verilog 2001或默认不支持。 因此,使用方法1可以更加兼容。

但是,一般而言,您无需担心它,因为您现在使用的几乎所有工具都默认支持Verilog 2001.

答案 1 :(得分:0)

我相信它们是等价的。

从手册中定义一个函数:

function [automatic] [signed] [RangeOrType] functionName [(FunctionPorts)];
 Declarations ...
 begin
  ...code...
 end
endfunction

FunctioPort
 input [reg]  [signed] [Range] names
 input [Type] names

Declaration
 input [reg]  [signed] [Range] names
 input [Type] names
 Variable
 Parameter
 Event