【问题标题】:Instantiation of a module in verilog在verilog中实例化一个模块
【发布时间】:2013-01-25 13:06:53
【问题描述】:

在 verilog 文件中实例化模块时出现错误。我是这样实例化的:

module lab3(input clk,set,reset,plus,minus,start,button,output reg [3:0]led,output reg [6:0]y);

wire [3:0] indicesgu[3:0];
reg [1:0] going;
reg alsogoing,yes;


if (going==1 && alsogoing)
begin
 up_counter up_0 
 indicesgu  ,
 indices    ,
 alsogoing
 );
end

我的 up_counter 模块开始为:

module up_counter(input [3:0] indices_in [3:0],output [3:0]indices[3:0],output alsogoing);

reg [3:0]indices[3:0];
reg [2:0]current,setting;

当我尝试在 Xilinx 中编译时,它显示出意外的令牌 up_counter。 提前致谢。

【问题讨论】:

    标签: module instantiation verilog


    【解决方案1】:

    您的lab3 模块存在几个问题。

    1. 最后你需要一个endmodule
    2. 您不应在if 内实例化up_counter。 Verilog 不支持这样的条件实例。
    3. 您需要在实例名称up_0 后面加上一个左括号。

    【讨论】:

      【解决方案2】:

      您的代码中有(多个)语法错误。 其中之一是您需要在组件端口列表周围使用方括号 ()

      up_counter up_0 (indicesgu  ,
                       indices    ,
                       alsogoing
                       );
      

      查看Verilog syntax 了解更多信息。

      这至少可以修复“unexpected token up_counter”错误。

      【讨论】:

      • 谢谢。但它仍然说意外的令牌 up_counter。实际上,这两个模块都在两个不同的文件中。我已将它们都添加为源,但由于某种原因,赛灵思无法识别其中一个正在用于另一个。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多