Verilog迭代错误

时间:2017-12-08 10:05:32

标签: verilog vivado

您好我正在尝试在Vivado 2017.2.1中执行这段代码并且我一直收到此错误

[Synth 8-3380]循环条件在2000次迭代后不收敛

while (side == 1)
  begin
  ball_x<=ball_x - 11'd10;
  end
while (side == 0)
  begin
  ball_x<=ball_x + 11'd10;
  end

if (ball_x <14)
begin
side=0;
end
else if (ball_x>1394)
begin
side=1;
end 

此代码是为了让球在达到10px宽边框时改变方向。我在网上搜索了它,显然Vivado不支持几个版本的while循环,但最近增加了支持,所以这应该工作?

1 个答案:

答案 0 :(得分:0)

您的代码似乎根本不是可编辑的,您需要了解FPGA的工作原理。

您的第一步应该是在设计中引入一个时钟,并了解硬件与软件有何不同。