我试着用fpga板通过vga在屏幕上显示图形对象。在下面的代码中,“标志”只有1位。我想要实现的是,当“标志”是1,我使某一区域一种颜色;当“标志”是0,它显示另一种颜色。Verilog ISE一直告诉我,在下面代码中的“error”语句(中间的"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.
发布于 2017-04-23 13:31:57
问题在于
else if (hc >= (hbp+p1nbr*playerMove-playerMove*p1nbl) && hc < (hbp+playerSize+p1nbr*playerMove-playerMove*p1nbl))
没有理由成为else if
。相反,它应该是一个简单的if
,因为没有其他匹配的。
https://stackoverflow.com/questions/43567542
复制相似问题