1.Verilog常数声明:
parameter xx = yy;
`define XX YY
parameter 作用于声明的那个文件;`define 从编译器读到这条指令开始到编译结束都有效,或者遇到`undef命令使之失效。如果想让parameter或`define作用于整个项目,可以将如下声明写于单独文件,并用`include让每个文件都包含声明文件:
`ifndef xx
`define xx yy // or parameter xx = yy;
`endif
状态机的定义可以用parameter 定义,但是不推荐使用`define 宏定义的方
式,因为'define 宏定义在编译时自动替换整个设计中所定义的宏,而
parameter 仅仅定义模块内部的参数,定义的参数不会与模块外的其他状态机
混淆。
2.parameter 和 localparam
parameter可用作在顶层模块中例化底层模块时传递参数的接口,localparam的作用域仅仅限于当前module,不能作为参数传递的接口。
3. define,是宏定义,全局有效。则在整个工程都是有效
parameter,参数,可以由调用者修改参数值。
localparam,本地参数,调用者不可修改。