16 --> 32--> 48....到某个值 感谢任何立即帮助 最佳答案 一个可能的-6ren">
gpt4 book ai didi

for-loop - vhdl "for loop",步长不等于 1

转载 作者:行者123 更新时间:2023-12-02 19:38:54 26 4
gpt4 key购买 nike

我有一个简单的问题。是否可以编写步长不等于 1(例如 16)的 VHDL for 循环

循环应该像这样

0--> 16 --> 32--> 48....到某个值

感谢任何立即帮助

最佳答案

一个可能的解决方案是使用所需范围的 1/16 的范围,并展开其中的循环以生成所需的范围:

for i in 0 to 3 -- Actually 0 to 48
loop
x(16*i) <= ...
x((16*i)+1) <= ...
(...)
x((16*i)+15) <= ...
end loop;

另一个解决方案是使用一段时间。假设您的计数变量是整数:

while (i < 48)
loop
--Do something
i := count + 16;
end loop;

编辑:我还没有测试上面的代码,您可能无法更改循环内的变量计数,我不确定。也许第一个解决方案是最好的。

不可能有一个步骤与 1 不同的 for 循环。您甚至不允许在 for 内部更改它,如下所示:

--THIS WILL NOT WORK
for i in 0 to 48 loop
--Do Something
i := i + 15; -- This will NOT increment the loop index by 16
end loop;

最后,对于第 2 步或第 3 步,您可以使用嵌套的 for。

但是无论如何,你想实现什么目标? VHDL 是一种低级硬件描述语言,您应该能够实现您想要的任何目标,而无需花哨的 for 循环。

关于for-loop - vhdl "for loop",步长不等于 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20392669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com