Verilog 中的未知模块错误,但模块已存在
Unknown Module Error in Verilog, but module exists already
我正在做数字逻辑的预实验 class 我在。我们必须设计一个 n 位计数器和一个半加器,然后是另一个使用 nbitcounter 和半加器在一起。
我在新模块中实例化计数器时遇到问题。它说 nbitcounter
不存在,但我在我的设计文件列表中查看它并且我已经 运行 对其进行了测试,所以我知道它有效。谁能帮我弄个水落石出?
module nBitCounter
#(parameter N=4)
(input wire clr ,
input wire clk ,
output reg [N-1:0] q
);
always @(posedge clk or posedge clr)
begin
if (clr == 1)
q <= 0;
else
q <= q + 1;
end
endmodule
module counter2adder(clk, clr, s, c_out);
//Port and wire declarations:
input wire clk, clr;
output wire s, c_out;
wire [2:0] out;
//Logic:
nBitCounter #(.N(2)) 2count(
.clk(clk),
.clr(clr),
.q(out)
);
endmodule
如您所见,counter2adder
尚未完成,但我停止了,因为我看到了这个错误。另一件事。计数器的文件名为 n-bitCounter.v
。我不知道这是否会改变一切。
当我编译你的 2 个模块时,在实例名称上出现编译错误。变化:
nBitCounter #(.N(2)) 2count(
至:
nBitCounter #(.N(2)) count2 (
与 Verilog 中的所有标识符一样,实例名称不得以数字开头 (2count
)。
我还收到有关 out
位宽的警告。将其更改为:
wire [1:0] out;
通常的做法是将文件命名为与模块相同的名称。例如,nBitCounter
模块应位于名为 nBitCounter.v
的文件中。
如果您在编译这 2 个模块时仍然遇到问题,只需将它们添加到同一个文件中,直到您可以从讲师那里获得有关 Vivado 工具使用的帮助。
我正在做数字逻辑的预实验 class 我在。我们必须设计一个 n 位计数器和一个半加器,然后是另一个使用 nbitcounter 和半加器在一起。
我在新模块中实例化计数器时遇到问题。它说 nbitcounter
不存在,但我在我的设计文件列表中查看它并且我已经 运行 对其进行了测试,所以我知道它有效。谁能帮我弄个水落石出?
module nBitCounter
#(parameter N=4)
(input wire clr ,
input wire clk ,
output reg [N-1:0] q
);
always @(posedge clk or posedge clr)
begin
if (clr == 1)
q <= 0;
else
q <= q + 1;
end
endmodule
module counter2adder(clk, clr, s, c_out);
//Port and wire declarations:
input wire clk, clr;
output wire s, c_out;
wire [2:0] out;
//Logic:
nBitCounter #(.N(2)) 2count(
.clk(clk),
.clr(clr),
.q(out)
);
endmodule
如您所见,counter2adder
尚未完成,但我停止了,因为我看到了这个错误。另一件事。计数器的文件名为 n-bitCounter.v
。我不知道这是否会改变一切。
当我编译你的 2 个模块时,在实例名称上出现编译错误。变化:
nBitCounter #(.N(2)) 2count(
至:
nBitCounter #(.N(2)) count2 (
与 Verilog 中的所有标识符一样,实例名称不得以数字开头 (2count
)。
我还收到有关 out
位宽的警告。将其更改为:
wire [1:0] out;
通常的做法是将文件命名为与模块相同的名称。例如,nBitCounter
模块应位于名为 nBitCounter.v
的文件中。
如果您在编译这 2 个模块时仍然遇到问题,只需将它们添加到同一个文件中,直到您可以从讲师那里获得有关 Vivado 工具使用的帮助。