【问题标题】:Unknown Module Error in Verilog, but module exists alreadyVerilog中的未知模块错误,但模块已经存在
【发布时间】:2021-02-16 17:58:06
【问题描述】:

我正在为我参加的数字逻辑课程做一个预实验。我们必须设计一个 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。我不知道这是否会改变一些事情。

【问题讨论】:

    标签: verilog hdl vivado


    【解决方案1】:

    当我编译您的 2 个模块时,实例名称出现编译错误。变化:

    nBitCounter #(.N(2)) 2count(
    

    到:

    nBitCounter #(.N(2)) count2 (
    

    与 Verilog 中的所有标识符一样,实例名称不得以数字 (2count) 开头。

    我还收到关于out 位宽的警告。改成:

    wire [1:0] out;
    

    通常将文件命名为与模块相同的名称。例如,nBitCounter 模块应位于名为 nBitCounter.v 的文件中。

    如果您在编译这 2 个模块时仍然遇到问题,只需将它们都添加到同一个文件中,直到您的讲师就 Vivado 工具的使用获得帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 2016-01-12
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多