Verilog:ERROR:HDLCompiler:806-第117行:语法错误靠近;否则";

Verilog:ERROR:HDLCompiler:806-第117行:语法错误靠近;否则";,verilog,Verilog,我尝试使用fpga板通过vga在屏幕上显示图形对象。在下面的代码中,“flag”仅为1位。我想要实现的是,当“flag”为1时,我将某个区域设置为一种颜色;当“标志”为0时,它显示另一种颜色。Verilog ISE一直告诉我下面代码中“else”语句附近有一个错误(中间的“else”)。谁能告诉我为什么 if (vc >= (groundTop) && vc < (groundBottom)) begin

我尝试使用fpga板通过vga在屏幕上显示图形对象。在下面的代码中,“flag”仅为1位。我想要实现的是,当“flag”为1时,我将某个区域设置为一种颜色;当“标志”为0时,它显示另一种颜色。Verilog ISE一直告诉我下面代码中“else”语句附近有一个错误(中间的“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

问题出在

else if(hc>=(hbp+p1nbr*playerMove-playerMove*p1nbl)和&hc<(hbp+playerSize+p1nbr*playerMove-playerMove*p1nbl))

如果,则没有理由将其设置为
else。相反,它应该是一个简单的if
,因为没有另一个if与else匹配。

欢迎使用堆栈溢出。哪个
导致错误?有很多(甚至“在中间”)。请发一封电子邮件。
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.