Verilog HDL中的参数(parameter)既不属于变量类型也不属于网络类型范畴。参数不是变量,而是常量。用参数声明一个可变常量,常用于定义延时及宽度等参数。参数定义的格式:

parameter par_name1=expression1,…….,par_namen=expression;

其中:
parname1,….parnamen为参数的名字;expression1,….,expression为表达式。
例子:参数的声明及使用1

parameter BUS_WIDTH=8;
reg [BUS_WIDTH-1:0] my_reg;

可一次定义多个参数,用逗号隔开。参数的定义是局部的,只在当前模块中有效。参数定义可使用以前定义的整数和实数参数。
参数值也可以在编译时被改变。改变参数值可以使用参数定义语句或通过在模块初始化语句中定义参数值。
例子:参数的声明及使用2

module lpm_reg (out, in, en, reset, clk);
parameter SIZE=1;
input in, en, reset, clk;
output out;
wire [SIZE-1:0] in;
reg [SIZE-1:0] out;
always @(posedge clk or negedge reset)
begin
if (!reset) out<=1’b0;
else
if(en) out<=in;
else out <= out;
end
endmodule