Простой код приводит к ошибке, хотя синтаксис кажется правильным (ISE VERILOG)

Я относительно новичок (всего несколько часов) в кодировании Verilog Xilinx ISE. Это мой код из моего проекта uni. И он показывает синтаксическую ошибку в строке count = 0. Я не вижу здесь ничего плохого при запуске синтаксиса проверки. Как я могу это исправить?

 module syncdown(clk,rst,count);
input clk,rst;
output reg [3:0] count = 1;
always @(posedge clk);
begin
if(rst)
count = 0; // wrong here 
else
count = count-1;
end
endmodule

Ошибка

ERROR:HDLCompiler:806 - "/home/bossman/mux/syncdown.v" Line 8: Syntax error near "=".

person Bossman Flag    schedule 04.04.2021    source источник


Ответы (1)


Удалите точку с запятой в конце строки always:

module syncdown(clk,rst,count);
input clk,rst;
output reg [3:0] count = 1;
always @(posedge clk)
begin
if(rst)
count = 0; // wrong here 
else
count = count-1;
end
endmodule
person mkayaalp    schedule 04.04.2021