差别
这里会显示出您选择的修订版和当前版本之间的差别。
|
parameter [2018/09/14 16:25] group001 创建 |
parameter [2018/09/14 16:27] (当前版本) group001 |
||
|---|---|---|---|
| 行 2: | 行 2: | ||
| parameter par_name1=expression1,…….,par_namen=expression; | parameter par_name1=expression1,…….,par_namen=expression; | ||
| 其中:\\ | 其中:\\ | ||
| - | par_name1,....par_namen为参数的名字;expression1,....,expression为表达式。 | + | par_name1,....par_namen为参数的名字;expression1,....,expression为表达式。\\ |
| + | 例子:参数的声明及使用1\\ | ||
| + | <code verilog> | ||
| + | parameter BUS_WIDTH=8; | ||
| + | reg [BUS_WIDTH-1:0] my_reg; | ||
| + | </code> | ||
| + | 可一次定义多个参数,用逗号隔开。参数的定义是局部的,只在当前模块中有效。参数定义可使用以前定义的整数和实数参数。\\ | ||
| + | 参数值也可以在编译时被改变。改变参数值可以使用参数定义语句或通过在模块初始化语句中定义参数值。\\ | ||
| + | 例子:参数的声明及使用2\\ | ||
| + | <code verilog> | ||
| + | module lpm_reg (out, in, en, reset, clk); | ||
| + | parameter SIZE=1; | ||
| + | input in, en, reset, clk; | ||
| + | output out; | ||
| + | wire [SIZE-1:0] in; | ||
| + | reg [SIZE-1:0] out; | ||
| + | always @(posedge clk or negedge reset) | ||
| + | begin | ||
| + | if (!reset) out<=1’b0; | ||
| + | else | ||
| + | if(en) out<=in; | ||
| + | else out <= out; | ||
| + | end | ||
| + | endmodule | ||
| + | </code> | ||