2017-04-23 62 views
0

vga経由で画面にグラフィックオブジェクトを表示するには、FPGAボードを使用するのがいいです。下のコードでは、 "フラグ"は1ビットのみです。達成したいのは、「フラグ」が1のとき、特定の地域を1つの色にすることです。 「フラグ」が0の場合、別の色を表示します。 Verilog ISEは、以下のコード( "else"の真ん中)の "else"文の近くにエラーがあることを教えてくれます。なぜ誰に教えてもらえますか?Verilog:エラー:HDLCompiler:806 - 行117: "else"の近くに構文エラーがあります

 if (vc >= (groundTop) && vc < (groundBottom)) 
      begin 
       red = 3'b111; 
       green = 3'b111; 
       blue = 2'b11; 
      end 
     // player level 
     else if (vc >= (groundTop-playerSize) && vc < groundTop) 
      begin 

       if (flag==1) 
        begin 
         if (hc >= (hbp+p1nbr*playerMove-playerMove*p1nbl) && hc < (hbp+playerSize+p1nbr*playerMove-playerMove*p1nbl)) 
          begin 
           red = 0; 
           green = 0; 
           blue = 0; 
          end 
         else 
          begin 
           red = 3'b000; 
           green = 3'b111; 
           blue = 2'b11; 
          end 
        end 

       else 
        begin 
         else if (hc >= (hbp+p1nbr*playerMove-playerMove*p1nbl) && hc < (hbp+playerSize+p1nbr*playerMove-playerMove*p1nbl)) 
          begin 
           red = 3'b111; 
           green = 3'b111; 
           blue = 2'b00; 
          end 
         else 
          begin 
           red = 3'b000; 
           green = 3'b111; 
           blue = 2'b11; 
          end 
        end 
      end 
     //sky 
     else 
      begin 
       red = 3'b000; 
       green = 3'b111; 
       blue = 2'b11; 
      end 

エラーの外観は次のとおりです。

ERROR:HDLCompiler:806 - "U:/public/work/ECEG_240/NERP_demo/vga640x480.v" Line 117: Syntax error near "else". 
ERROR:ProjectMgmt - 1 error(s) found while parsing design hierarchy. 
+0

ようこそスタックオーバーフロー。 'else'はエラーの原因ですか?多くのものがあります(「中」でも)。 [MCVE](https://stackoverflow.com/help/mcve)を投稿してください。 –

答えて

0

問題はそれがelse ifすることがない理由はありません

else if (hc >= (hbp+p1nbr*playerMove-playerMove*p1nbl) && hc < (hbp+playerSize+p1nbr*playerMove-playerMove*p1nbl)) です。その代わりにelseをマッチさせるべきではないので、単純なifでなければなりません。

+0

ありがとうございます!これはまさに問題がどこにあるのかです! – PrGxw

関連する問題