1.parameter常量(符号常量)
用parameter来定义一个标示符,代表一个常量,称为符号常量
- 格式:
- parameter 参数名1 = 表达式, 参数名2 = 表达式;
- parameter 参数型数据的确认符,后边的为赋值语句表
每个赋值语句的右边必须为常数表达式,且只能包含数字或先前定义过的符号常量:
parameter addrwidth =16; //合法
parameter addrwidth = addrwidth * 2 //非法
常用参数来定义延时时间和变量宽度
可用字符串表示的任何地方,都可用定义的参数来代替;
参数是本地的,其定义只在本模块有效;
在模块或实例例化时,可通过参数传递改变在被引用模块或实例中已定义的参数。
2. localparam 符号常量:
- 格式:
- localparam 参数名1 = 表达式, 参数名2 = 表达式;
- localparam 参数型数据的确认符,后边的为赋值语句表
parameter可作为在顶层模块中例化底层模块时传递参数的接口;
localparam的作用域仅仅限于当前module,不能作为参数传递的接口;
实例:
module mod (out, ina, inb);
...
parameter cycle = 8, real_cinstant = 2.039;
...
endmodule module test;
...
mod #(6,3.19) mk(out,ain,bin); //对mod模块的实例引用及参数的传递
...
endmodule
为了区分括号内是参数还是端口信号,所以再参数的前面加了一个#号来进行标记