parameter localparam define的区别


`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 让每一个文件都包含声明文件。

 

原文连接:http://www.cnblogs.com/aslmer/p/6022152.html

相关文章
相关标签/搜索