0

我想在 Quartus 板上用 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

这给了我一个错误:

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

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

4

1 回答 1

0

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

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

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

于 2012-10-23T18:10:20.447 回答