【问题标题】:Error: Unexpected module instantiations outside module boundaries错误:模块边界之外的意外模块实例化
【发布时间】:2017-11-03 00:10:10
【问题描述】:

我正在尝试创建一个 32 位计数器,它将 32 个输入分成 4 组,每组 8 个,然后将这 4 组输入一个多路复用器。 这就是我所拥有的:

modules Bit32 ( clk, reset, load, D, Q);
input clk, reset, load, D, Q;
input [7:0] D;
input [15:8] D;
input [23:16] D;
input [31:24] D;
output [7:0] Q;
output [15:8] Q;
output [23:16] Q;
output [31:24] Q;
reg [7:0] Q;
reg [15:8] Q;
reg [23:16] Q;
reg [31:24] Q;
always @(posedge clk)
    if(reset) Q <=32'b0; else 
    if (load) Q <=D;
    else Q <=Q + 32'b1
endmodule

我收到以下错误:

错误:HDL编译器:944 - “C:/Users/Skyla/Documents/csulb/Fall17/201/assign5/Bit32.v”第 1 行: 模块边界之外的意外模块实例化。

警告:HDL编译器:1591 - “C:/Users/Skyla/Documents/csulb/Fall17/201/assign5/Bit32.v”第 1 行: verilog 95/2K 模式下不允许根范围声明

错误:HDL编译器:806 - “C:/Users/Skyla/Documents/csulb/Fall17/201/assign5/Bit32.v”第 2 行: “输入”附近的语法错误。

我的多路复用器:

module CounterMux(select, D, Q);
input[1:0] select;
input[3:0] D:
output Q;

wire Q;
wire [1:0] select;
wire [3:0] D;

assign Q=D[select];

endmodule

【问题讨论】:

  • Bit32 中,您声明了DQ 5 次(1 次为单个位,4 次为8 位)。在CounterMux 中有一个明显的错字。我建议您学习并实现 ANSI 标头样式。它的代码行数更少,更易于阅读,并且不易出错。如果用于向后可比性支持,则为非 ANSI 样式。
  • @Greg 我正在使用verilog hdl,我不确定什么是ANSI?我只是一个初学者
  • stackoverflow.com/search?q=%5Bverilog%5D+ANSI 大多数答案都有来自 IEEE1364 (Verilog) 和 IEEE1800 (SystemVerilog) 的直接引用和链接

标签: verilog hdl


【解决方案1】:

Bit32.v 文件的错误和警告是由于拼写错误:关键字是 module,而不是 modules(注意“s”)。变化:

modules Bit32 ( clk, reset, load, D, Q);

到:

module Bit32 ( clk, reset, load, D, Q);

编译器认为您放置了一个名为 modules 的模块的实例。进行该更改会删除您显示的消息。


Bit32.v 文件中还有其他错误。您不应声明具有相同名称的多个端口。您声明了 DQ 各 5 次,但它们只能声明一次。例如:

module Bit32 ( clk, reset, load, D, Q);
input clk, reset, load;
input [31:0] D;
output [31:0] Q;
reg [31:0] Q;
always @(posedge clk)
    if (reset) Q <= 32'b0;
    else if (load) Q <= D;
    else Q <= Q + 32'b1;
endmodule

我也遇到了编译错误,因为else Q &lt;=Q + 32'b1 后面缺少分号。我相信 IEEE Std 在每条语句后都需要一个分号。虽然有些编译器显然不需要它,但最好有它以实现可移植性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-15
    • 2018-04-01
    • 2017-09-08
    • 1970-01-01
    • 2019-08-09
    • 2017-06-10
    • 1970-01-01
    • 2015-12-02
    相关资源
    最近更新 更多