我已阅读David Harris的书 "Digital Design and Computers Architecture" ,我对本书中的SystemVerilog示例有疑问。在"参数化构造"(# (parameter ...)
)中引入之后,几乎在每个示例中都使用此运算符。
例如,"减法器"本书中的模块:
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);
此外,这些参数几乎用在书中的每个例子中,但就我而言,没有理由使用它。 我们可以直接在方括号中设置位数,而无需使用额外的"参数"。
那么,上述编码形式的原因是什么?
答案 0 :(得分:2)
参数的使用有很多用途。
DATA_WIDTH
代替N
将是一个更恰当的例子。这记录了价值的含义。