如何在Verilog中调用函数并为其指定参数?

时间:2012-08-30 01:26:07

标签: verilog system-verilog

如何在verilog中调用模块内的函数,函数有参数,并为其定义参数?

对于一个简单的例子:

function automatic void inv();
  parameter W = 1;
  input logic [W:0] in;
  output logic [W:0] out;

  out = ~in;

endfunction

我如何调用它并在通话中定义W?

2 个答案:

答案 0 :(得分:1)

调用parameter时,您无法覆盖function值。 IEEE Std(1800-2009)中没有指定的语法。

答案 1 :(得分:1)

如上所述,参数是恒定的,在设计阐述后无法更改。维度是数据类型的一部分,因此在设计细化期间它们也必须保持不变。如果所有函数调用都在程序上下文之外,那么可能能够通过传递常量作为参数来逃避。我不建议这样做。