如何在verilog中调用模块内的函数,函数有参数,并为其定义参数?
对于一个简单的例子:
function automatic void inv();
parameter W = 1;
input logic [W:0] in;
output logic [W:0] out;
out = ~in;
endfunction
我如何调用它并在通话中定义W?
答案 0 :(得分:1)
调用parameter
时,您无法覆盖function
值。 IEEE Std(1800-2009)中没有指定的语法。
答案 1 :(得分:1)
如上所述,参数是恒定的,在设计阐述后无法更改。维度是数据类型的一部分,因此在设计细化期间它们也必须保持不变。如果所有函数调用都在程序上下文之外,那么可能能够通过传递常量作为参数来逃避。我不建议这样做。