0
我正想在Quartus開發板上從LED寫入蛇。這有點像KITT-Leds,但是當我嘗試運行我的程序時,出現錯誤。Verilog錯誤:無法詳細說明用戶層次結構「counter:counter」
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
這給了我一個錯誤:
Error: Can't elaborate user hierarchy "counter:counter"
我真的不知道發生了什麼事情。
我認爲錯誤信息告訴你總是阻塞是不可綜合的。考慮使用非阻塞賦值來推斷寄存器。 – 2012-10-23 21:04:47
爲實例指定與模塊不同的名稱。你的代碼是pastebin上數據的好副本,但蛇應該做什麼?它實際上是一個移位寄存器,應該填充然後清空?整數i只會在時鐘的上升沿改變狀態,以捕捉計數器的最大值或最小值。否則,它會鎖定最近的設置。那是你要的嗎? – mkstlwtz