sock

Verilog中参数传递用法

0
阅读(5659)

以前发的博客中说要补参数传递的用法,现在用到了才想到补,哎....话不多说,补上。

直接上例子说明吧。

底层模块中:

module A #(    
  parameter a          = 32'd0,
            b          = 32'd0
  )
  (
            input      clk,
            output     cnt
  )
     ......
     ......
endmodule

其中a,b为定义的底层模块的参数,默认值为32'd0.

在顶层模块中调用:


A #(
  .a                       (32'd1),
  .b                       (32'd1)
  )
A_inst1(
  .clk                     (XX),//接顶层模块信号
  .cnt                     (XX)
  );
A #(            

  .a                      (32'd2),
  .b                      (32'd2)
  )

A_inst2(
  .clk                    (XX),//接顶层模块信号
  .cnt                    (XX)
  );



在A_inst1中向底层模块传递的参数值为1,在A_inst2中向底层模块传递的参数值为2.

当然参数传递还有其他的格式,我个人认为这种方式更加清晰明了,所以暂时就用这种了,以后遇到其他情况另说,对于其他的方法我就不做说明了。我觉得这种方法以这种例子的形式来介绍应该很容易理解,希望能帮到需要的同学们吧。