求助各位。。出现错误10170,不知是何原因
写了一个累加求和的程序,每32个数取一次,但是编译的时候老是出现报错:(Error (10170): Verilog HDL syntax error at accavg.v(23) near text "else";expecting ";", or "@", or "end", or an identifier ("else" is a reserved keyword ), or a system task, or "{", or a sequential statement
Altera官网上给出的解释是:在循环中定义了多个变量。但是我这根本就没循环啊。下面附上代码,望众位能帮忙看看,小弟是初学者。。。犯了初级错误还望大家不要见笑。谢谢各位了
module accavg(
rx_clk_100m,
rx_rst_n,
rx_data_32B,
tx_data_32B
);
parameter DATA_WIDTH=32;
parameter BIT_EXTEND=5;
input rx_clk_100m;
input rx_rst_n;
input rx_data_32B;
output tx_data_32B;
wire addr_37;
reg D_ff;
reg cnt;
assignaddr_37 = {{5{rx_data_32B}},rx_data_32B};
always @(posedge rx_clk_100m or negedge rx_rst_n)
begin
if (!rx_rst_n)
cnt <=0;
tx_data_32B <= 0;
else
begin
cnt <=0;
cnt<= cnt+1;
if(cnt===32)
begin
cnt <=0;
tx_data_32B <=D_ff;
end
else
D_ff <= D_ff+addr_37;
end
end
endmodule 找到原因了,原来是第一个if判断之后执行了两个命令却没用begin-end。
页:
[1]