我正在为我所处的数字逻辑类做一个预实验。我们必须设计一个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
。
如果仍然在编译这两个模块时遇到问题,只需将它们都添加到同一文件中,直到您可以从教员那里获得有关Vivado工具用法的帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句