描述: 我想编写一个vhdl while循环,它将找到20个整数的数组[A]中的最大整数。
问题:
我的算法应该是什么样的,输入顺序语句的位置?
我的vhdl代码:
highnum: WHILE i LOOP
if
(arr[i]>arr[HighestSoFar]){HighestSoFar=i;}20
i<= i + 1;
end if;
exit;
END LOOP highnum;
这不需要是可综合的,但我不知道如何形成这个for循环,实际上我不确定语法是什么样的。一个详细的例子,解释了如何被欣赏。
答案 0 :(得分:3)
TLDR:不要。
While
循环对循环的迭代次数没有固定限制。任何合成它们的尝试都必须生成运行时变量的硬件:希望你能够看到这是荒谬的,直到我们学会制作动态增长的FPGA。
因为它不必是可合成的,所以你可以使用While
循环,如果你使用其他编程语言,它会像你期望的那样工作,但它没有为此提供的优点{/ 1}}循环上的任务。
所以改为使用For
循环。
答案 1 :(得分:0)
您正在请求示例。 Wikibooks有plenty of examples:
for循环结构:
[label:] [WHILE <condition> | FOR <condition>] LOOP
[statements]
[exit;]
[next;]
END LOOP [label];