码迷,mamicode.com
首页 > 其他好文 > 详细

Verilog实例化时的参数传递

时间:2014-12-16 18:53:53      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:des   ar   sp   on   div   art   log   bs   ad   

在调用DesignWare时候,通常会有dw01_add #(a_width,bwidth)这一类语法出现,当时很疑惑这是为什么,现在才查到它的出处。怀疑是不是自己基本功不够扎实。查到的用法如下
 
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
 
这个用法着实实用。如果有一个模块经常被调用,那么这种方法能让verilog的层次精简很多。
 

Verilog实例化时的参数传递

标签:des   ar   sp   on   div   art   log   bs   ad   

原文地址:http://www.cnblogs.com/blogernice/p/4167434.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!