verilog:如何添加参数

verilog:如何添加参数,verilog,xilinx,Verilog,Xilinx,我想要一个参数化的模块。其定义如下: module example (...); parameter A = 2; parameter B = 2; parameter C = A + B; endmodule 然而,当我打印出参数值时,我得到A=2、B=2和C=1。。。知道为什么吗?找到了一个解决方案-使用localparam module example (...); parameter A = 2; parameter B = 2; localpar

我想要一个参数化的模块。其定义如下:

module example (...);
    parameter A = 2;
    parameter B = 2;
    parameter C = A + B;

endmodule

然而,当我打印出参数值时,我得到A=2、B=2和C=1。。。知道为什么吗?

找到了一个解决方案-使用localparam

module example (...);
  parameter A = 2;
  parameter B = 2;
  localparam C = A + B;

endmodule

事实上,在你原来的问题中,C应该等于4。但是,由于C是一个参数,所以重写它是危险的,并且很可能被重写。使用localparam是定义不能被defparam或实例参数值分配覆盖的参数的正确方法。使用verilog-2001样式的端口声明,localparam不能用于端口列表。