类似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_width-1:0] a; 
          input [b_width-1:0] b; 
          output[product_width-1:0]product; 
             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 这个程序中么,如果是,那这个参数传递和函数有什么关系,不能直接用函数么 |