verilog句法错误,求大神指点
时间:10-02
整理:3721RD
点击:
always @ (posedge clk)
if (rst)
begin
irda_data <= 8'd0;
end
else if (data_cnt == 4'd8)
begin
if (get_data[2] & get_data[1])
irda_data[7:2] <= get_data[8:3];
irda_data[1] <= 1'b0;
irda_data[0] = ~irda_data[0];
else
irda_data <= get_data[8:1];
end
ISE给出的错误信息是ERROR:HDLCompiler:806 Line 253: Syntax error near "else".
求大神帮看 谢谢了!
if (rst)
begin
irda_data <= 8'd0;
end
else if (data_cnt == 4'd8)
begin
if (get_data[2] & get_data[1])
irda_data[7:2] <= get_data[8:3];
irda_data[1] <= 1'b0;
irda_data[0] = ~irda_data[0];
else
irda_data <= get_data[8:1];
end
ISE给出的错误信息是ERROR:HDLCompiler:806 Line 253: Syntax error near "else".
求大神帮看 谢谢了!
回去好好看看书本,每个if-else都要有begin-end配对实现顺序块,你最后的if-else没有用begin-end。
- else if (data_cnt == 4'd8)
- begin
- if (get_data[2] & get_data[1])
- begin
- irda_data[7:2] <= get_data[8:3];
- irda_data[1] <= 1'b0;
- irda_data[0] = ~irda_data[0];
- end
-
- else
- irda_data <= get_data[8:1];
- end
- else if (data_cnt == 4'd8)
- begin
- if (get_data[2] & get_data[1])
- begin
- irda_data[7:2] <= get_data[8:3];
- irda_data[1] <= 1'b0;
- irda_data[0] = ~irda_data[0];
- end
- else
- irda_data <= get_data[8:1];end
- end
多谢指导
谢谢指导
谢谢指导
Syntax error 看书都能找到
2条或者2条以上的赋值语句,需要用begin end 这种块语句装起来。 就像C语言的大括号一样
