Verilog代码可移植性设计

1.       参数定义

localparam,实例代码如下:

module tm1(

            clk,rst_n,

            pout

        );

input clk;

input rst_n;

output[M:0] pout;  

 

localparam N = 4;

localparam M = N-1;

 

reg[M:0] cnt;  

 

always @(posedge clk or negedge rst_n)

    if(!rst_n) cnt <= 0;

    else cnt <= cnt+1'b1;

   

assign pout = cnt;

 

endmodule

         其实所谓localparam即local parameter(本地参数定义)。简单的说,通常我们习惯用parameter在任何一个源代码文件中进行参数定义,如果不在例化当前代码模块的上层代码中更改这个参数值,那么这个parameter可以用localparam代替。而localparam定义的参数是可以如param