0
我已经阅读了这本书"Digital Design and Computers Architecture"作者:David Harris,本书中有一个关于SystemVerilog示例的问题。在“参数化结构”中引入了# (parameter ...)
之后,几乎在每个示例中都使用了该运算符。参数化模块(SystemVerilog)
例如,这本书中的“减法”模块:
module subtractor #(parameter N = 8)
(input logic [N - 1:0] a,b,
output logic [N - 1:0] y);
assign y = a - b;
endmodule
是什么在此代码中使用N
的原因是什么? 我们就不能写出下面?:
input logic [7:0] a,b,
output logic [7:0] y);
而且,这样的参数在几乎每一个例子进一步书中使用,但对我来说,没有理由使用它。 我们可以直接在方括号中设置位数,而无需使用额外的“参数”。
那么,这种形式的编码的原因是什么?
简而言之,参数用于模块的泛化。 – sharvil111
可重用性是参数化模块的主要目的。 –
@ sharvil111谢谢你的回复 –