vhdl代码(while循环)

时间:2014-02-25 02:40:50

标签: while-loop vhdl

描述: 我想编写一个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循环,实际上我不确定语法是什么样的。一个详细的例子,解释了如何被欣赏。

2 个答案:

答案 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];