`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 讓每一個文件都包含聲明文件。