微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog调用子模块时parameter的传递问题

verilog调用子模块时parameter的传递问题

时间:10-02 整理:3721RD 点击:
大家好:
   请教一个verilog调用子模块时parameter的传递问题,如果顶层模块和子模块之间的parameter不一致,以那个为准?
   具体如下:
   比如在top文件中,调用一个子模块,使用parameter进行参数传递,如下:
Infrastructure-3 instantiation
       infrastructure #
       (
          .C_INCLK_PERIOD                 (1),
          .C_RST_ACT_LOW                  (2),
          .C_INPUT_CLK_TYPE               (3),
          .C_CLKOUT0_divIDE               (4),
          .C_CLKOUT1_divIDE               (5),
          .C_CLKOUT2_divIDE               (6),
   
       )
子模块中的开头是这么写的:
module infrastructure #
   (
    parameter C_INCLK_PERIOD    = 1,
    parameter C_RST_ACT_LOW      = 1,
    parameter C_INPUT_CLK_TYPE   = 1,
    parameter C_CLKOUT0_divIDE   = 1,
    parameter C_CLKOUT1_divIDE   = 1,
    parameter C_CLKOUT2_divIDE   = 1,
   
    )

可以看到顶层和被调用模块并不一致,那么以那个为准?

以顶层为准。

子模块的参数是可以被覆盖的

好的,多谢!
那么VHDL的情况也是一样的吧?
VHDL中使用的是generic,同样是顶层覆盖模块?

建议还是用defparameter从顶层定义

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

网站地图

Top