微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > verilog句法错误,求大神指点

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-else都要有begin-end配对实现顺序块,你最后的if-else没有用begin-end。

  1. else if (data_cnt == 4'd8)

  2. begin

  3.    if (get_data[2] & get_data[1])
  4.    begin
  5.      irda_data[7:2] <= get_data[8:3];
  6.      irda_data[1] <= 1'b0;

  7.       irda_data[0] = ~irda_data[0];
  8.    end

  9.    else

  10.      irda_data <= get_data[8:1];

  11. end

复制代码

  1. else if (data_cnt == 4'd8)

  2. begin

  3.    if (get_data[2] & get_data[1])
  4.    begin
  5.      irda_data[7:2] <= get_data[8:3];
  6.      irda_data[1] <= 1'b0;

  7.       irda_data[0] = ~irda_data[0];
  8.    end

  9.    else

  10.      irda_data <= get_data[8:1];end

  11. end

复制代码



   多谢指导



   谢谢指导



   谢谢指导

Syntax error 看书都能找到

2条或者2条以上的赋值语句,需要用begin end 这种块语句装起来。 就像C语言的大括号一样

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top