集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1721|回复: 1

求助各位。。出现错误10170,不知是何原因

[复制链接]
youyou1953 发表于 2012-5-10 16:38:44 | 显示全部楼层 |阅读模式
写了一个累加求和的程序,每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 [DATA_WIDTH-1:0] rx_data_32B;
output [DATA_WIDTH-1:0] tx_data_32B;
wire [DATA_WIDTH+BIT_EXTEND-1:0] addr_37;
reg [DATA_WIDTH+BIT_EXTEND-1:0] D_ff;
reg cnt;

assign  addr_37 = {{5{rx_data_32B[DATA_WIDTH-1]}},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[DATA_WIDTH+BIT_EXTEND-1:BIT_EXTEND];
             end
          else
          D_ff <= D_ff+addr_37;
      end
end
  endmodule
 楼主| youyou1953 发表于 2012-5-10 20:47:31 | 显示全部楼层
找到原因了,原来是第一个if判断之后执行了两个命令却没用begin-end。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 03:29 , Processed in 0.059641 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表