wilent 发表于 2011-7-17 22:26:18

求助:VERILOG语言中的参数传递看不懂啊

类似VHDL的Generic语句,Verilog也可以在例化时传递参数

传递的参数是子模块中定义的parameter。

传递的方法:

1、module_name #( parameter1, parameter2) inst_name( port_map);

2、module_name #( .parameter_name(para_value), .parameter_name(para_value)) inst_name (port map);

用#方法和port map的写法差不多

module multiplier (a, b, product);
          parameter a_width = 8, b_width = 8;
          localparam product_width = a_width+b_width;
          input a;
          input b;
          outputproduct;
             generate
               if((a_width < 8) || (b_width < 8))
                     CLA_multiplier #(a_width, b_width) u1 (a, b, product);
               else
                      WALLACE_multiplier #(a_width, b_width)u1 (a, b, product);
             endgenerate
endmodule

我想请教一下   CLA_multiplier #(a_width, b_width) u1 (a, b, product);这个语句中,#(a_width, b_width) 这个作用是什么,是将a_width, b_width 的值传递到 CLA_multiplier 这个程序中么,如果是,那这个参数传递和函数有什么关系,不能直接用函数么
页: [1]
查看完整版本: 求助:VERILOG语言中的参数传递看不懂啊