首页 > 解决方案 > 参数可以可变吗

问题描述

我知道我们可以使用参数来制作通用模块,并提高代码的可读性。我的问题是我们是否可以将这些参数本身作为变量。像这样的东西:

module parameterModule #(parameter p1, ...)(<ports>);
  ...
  ...
endmodule

module changingParameterModule (output [p1_width-1:0] p1);
  ...
  ...
endmodule

在这里,我希望p1将changeingParameterModule 的端口视为parameterModulep1的参数。这可能吗?

我使用 icarus-verilog 和 Quartus Prime Lite。

标签: veriloghdlquartusiverilogicarus

解决方案


不,这是不可能的;参数是编译时常量。模块端口输出有可能随时更改,并且在编译结束之前甚至不会计算它们的值。


推荐阅读