Verilog错误:无法详细说明用户层次结构“counter:counter”

时间:2012-10-23 17:26:42

标签: verilog synthesis

我想在Quartus Board上用LED写蛇。它有点像KITT-Leds,但当我尝试运行我的程序时,我收到错误。

module ukol3(KEY,LEDR);
input[1:0]KEY;
output[14:0] LEDR;

counter counter(KEY[0], KEY[1], LEDR[14:0]);

endmodule

module counter(C,CLR,Q);
input C, CLR;
output [14:0] Q;
reg [14:0] tmp;
integer i;

always @(posedge C or posedge CLR)      
    begin

        if (CLR)
            tmp = 15'b000000000000000;

        if (tmp == 15'b111111111111111)
            i = 0;

        if (tmp == 15'b000000000000000)
            i = 1;

        if (i == 1)
            tmp = tmp + 1'b1;

        if (i == 0)
            tmp = tmp - 1'b1;
        end 
    assign Q = tmp;


endmodule

这给了我一个错误:

  

错误:无法详细说明用户层次结构“counter:counter”

我真的不知道发生了什么。

1 个答案:

答案 0 :(得分:0)

这个问题是关于Verilog,而不是vhdl。我想问几个问题:你的代码是否可以合成?你在合成模块计数器后得到了什么?

对于您的问题,我认为您应首先编译counter,然后编译ukol3。如果您没有先执行此操作,EDA工具将找不到计数器。您应该将其拆分为两个可分离的文件并首先执行计数器。

P.S。:你应该使用更好的映射端口方法,例如counter counter (.C(KEY[0]),.CLR (KEY[1]),.Q (LEDR[14:0]));来获得更清晰的代码。