`definehtml
语法格式spa
`define A 12 //注意不加;不能忘记" ` "
做用区域 code
在整个工程中均有效,由于它是能够跨模块的定义htm
parameter 和 localparamblog
语法格式get
parameter A = 16'd2600 ; //不定义位宽的时候默认是32位 localparam A = 16'd2600; //同上
做用区域 input
parameter 、localparam 只在定义的本模块内有效。class
二者的区别是 parameter 能够进行参数例化,而 localparam 则不能够。module
参数传递我将举下面这个例子进行说明语法
首先定义了一个模块 led_driver ,而且定义了一个参数 DATA ,表明了 led 灯的个数,此处表明有 7 个 led 灯
module led_driver ( clk , rst_n, led ); parameter DATA = 7; //定义一个参数 input clk,rst_n; //输入 output [ DATA-1 : 0] led; //输出 ............ endmodule
当要在顶层模块例化 led_driver 这个模块时,假设因为工程须要,要将 led 个数改成 4 个,
第一个方法 led_driver 内的 parameter 参数直接改成 3 。
另外一种方法 在例化 led_driver 时,将参数 DATA 也进行例化,方法以下面这个代码
led_driver //被调用的模块 #(.DATA(4)) // 参数例化 u_led_driver( //例化模块 .clk (clk), .rst_n(rst_n), .led (led) );
在实际应用中,若是想让 parameter 或 `define 做用于整个工程中,能够单独声明一个文件,而且用 `include 让每一个文件都包含声明文件。