打印
[verilog]

看看下面的程序哪里的语法错误

[复制链接]
2174|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
魔人布欧|  楼主 | 2016-4-20 21:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
module divison(clk,rst_n,start);        
        
   input clk,rst_n,start;
   input [7:0] dividend; //被除数
        input [7:0] divisor;   //除数     
        output done;
        output [7:0] qutient;
   output [7:0] reminder;   
        output [15:0] sq_diff;
        output [15:0] sq_temp;
        
        
        reg [3:0] i;
        reg [8:0] s;
        reg [15:0] temp;
        reg [15:0] diff;
        reg isneg;
        reg isdone;
        
        always @(posedge clk or negedge rst_n)  
        begin
         if (!rst_n)     
            begin
                      i <= 4'd0;
                      s <= 9'd0;
                      temp <= 16'd0;
                      diff <= 16'd0;
                      isneg <= 1'b0;
                      isdone <=1'b0;
                 end
                 
          else if(start)
             case(i)
                    0:
                            begin
                                    isneg <= dividend[7]^divisor[7];
                                         s <= divisor[7] ? {1'b1, divisor}:{1'b1,~divisor+1b'1};
                                         temp <= dividend[7] ? {8'd0,~dividend+1'b1}:{8'd0,dividend};
                                         diff <= 16'd0;      
                               i <= i + 1'b1;
                            end
                          1,2,3,4,5,6,7,8:
                            begin
                                   diff = temp + {s,7'd0};
                 if(diff[15])            
                    temp <= {temp[14:0],1'b0};
                                          else
                                            begin      
                                             temp <={diff[14:0],1'b1};
                              i <= i +1'b1;
                             end
                       end
                         9:      
                           begin
              isdone <= 1'b1;
              i <= i +1'b1;   
                           end      
                         10:      
                           begin  
              isdone <=1'b0;
              i <= 2'b0;
            end     
        endcase
                 
        assign done = isdone;
        assign qutient = isneg ? (~temp[7:0]+1'b1):temp[7:0];   //商
   assign reminder = temp[15:8]; //余数
   assign sq_diff = diff;
   assign sq_temp = temp;   
end
endmodule                                 
                                
编译之后出现这样的错误:
Error (10170): Verilog HDL syntax error at divison.v(9) near text Â
Error (10170): Verilog HDL syntax error at divison.v(9) near text "Â";  expecting "endmodule"
Error (10170): Verilog HDL syntax error at divison.v(10) near text Â
Error (10170): Verilog HDL syntax error at divison.v(11) near text Â
Error (10170): Verilog HDL syntax error at divison.v(21) near text Â
Error (10170): Verilog HDL syntax error at divison.v(21) near text "Â";  expecting "@", or an identifier
Error (10170): Verilog HDL syntax error at divison.v(22) near text Â
Error (10170): Verilog HDL syntax error at divison.v(23) near text Â
Error (10170): Verilog HDL syntax error at divison.v(24) near text Â
Error (10170): Verilog HDL syntax error at divison.v(25) near text Â
Error (10170): Verilog HDL syntax error at divison.v(26) near text Â
Error (10170): Verilog HDL syntax error at divison.v(27) near text Â
Error (10170): Verilog HDL syntax error at divison.v(28) near text Â
Error (10170): Verilog HDL syntax error at divison.v(29) near text Â
Error (10170): Verilog HDL syntax error at divison.v(38) near text Â
Error (10170): Verilog HDL syntax error at divison.v(39) near text Â
Error (10170): Verilog HDL syntax error at divison.v(40) near text Â
Error (10170): Verilog HDL syntax error at divison.v(41) near text Â
Error (10170): Verilog HDL syntax error at divison.v(42) near text Â
Info (12021): Found 0 design units, including 0 entities, in source file divison.v

不知道怎么办。谢谢

相关帖子

沙发
xuander| | 2016-4-21 09:47 | 只看该作者

最后部分,assign语句后面的end。

遇到这情况,就想办法简化,
比如把case中某一项删除,甚至只留一项做代表,
简化一次,编译一次,很容易找到问题。

LZ似乎进步很大。


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

43

帖子

1

粉丝