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

相關文章
相關標籤/搜索