微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog 语法 请大家帮帮忙

verilog 语法 请大家帮帮忙

时间:10-02 整理:3721RD 点击:
verilog 语句中,在generate语句中,实例化时,module的名字和实例化名字中间加“#(parameter)” 是怎么回事?  谢谢了!例如:
dff #(parameter) unit(.clk(clk),.en(en)....);

是不是修改参数,通常是这么用的,就是在module里定义的参数。在其他的文件里实例这个module是可以通过#(parameters)修改已经定义的参数。

Verilog中generate用法
generate可以用for,case,if。其中,generate实例化多个器件很简洁。
generate
  genvar j ;
  for(j=0;j<=INST_NUM;j=j+1)
    begin : inst
      dff #(PARAMETER) unit(.clk(clk),
                                               .ena(ena),
                                                .in(in),
                                                 .out(out)
                                                ) ;
end
endgenerate
1,genvar后面的for,变量必须是genvar变量;generate+if,不如`ifdef `else `endif
2,for里必须有begin,哪怕只有一句
3,begin必须有名称,原因见4
4,这里例化的模块名称是inst[j].unit
5,generate语句可以看作是标准化为块的综合指令

哦 谢谢了

例化中的参数传递。

同上。最简单的例子就是1个dff拼成n-bit register或者两个半加练成一个全加

GOOD!

修改参数,通常是这么用的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top