亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> VHDL

如何在 VHDL 中使用 For 循环

在上一个教程中,我们学习了使用 loop 创建无限循环 陈述。我们还学习了如何使用 exit 跳出循环 陈述。但是,如果我们希望循环迭代一定次数怎么办? For-Loop 是完成此任务的最简单方法。

For-Loop 允许您迭代固定范围的整数或枚举项。属于当前迭代的项目将通过隐式声明的常量在循环内可用。

这篇博文是基本 VHDL 教程系列的一部分。

For-Loop的语法是:

for <c> in <r> loop
end loop;

<c> 是在循环内可用的常量的任意名称。 <r> 是循环将迭代的整数范围或枚举值。整数范围可以递增也可以递减。

递增范围的 VHDL 代码,包括从 0 到 9 的所有 10 个数字:

0 to 9

递减范围的 VHDL 代码,包括从 9 到 0 的所有 10 个数字:

9 downto 0

仅包含数字 0 的范围的 VHDL 代码:

0 to 0

完全没有任何数字的空范围的 VHDL 代码:

0 to -1

运动

我们在本教程中创建的最终代码:

entity T04_ForLoopTb is
end entity;

architecture sim of T04_ForLoopTb is
begin

    process is
    begin

        for i in 1 to 10 loop
            report "i=" & integer'image(i);
        end loop;
        wait;
        
    end process;

end architecture;

当我们在 ModelSim 中按下运行按钮时,模拟器控制台的输出:

VSIM 2> run
# ** Note: i=1
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=2
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=3
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=4
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=5
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=6
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=7
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=8
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=9
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb
# ** Note: i=10
#    Time: 0 ns  Iteration: 0  Instance: /t04_forlooptb

分析

并非完全出乎意料,我们的 For-Loop 在终止之前迭代了十次。 i 的值 在仿真时间 0 时将 10 次打印到模拟器控制台。循环内部没有等待语句,因此循环完成所需的时间为零。最后,程序在 wait; 处无限暂停 .

我们学习了如何使用 integer'image() 将整数转换为字符串 ,我们使用了 & 将两个字符串连接在一起的字符。

外卖

转到下一个教程 »


VHDL

  1. 我们如何使用钼?
  2. 如何在 VHDL 中创建字符串列表
  3. 如何在 VHDL 测试平台中停止仿真
  4. 如何在 VHDL 中创建 PWM 控制器
  5. 如何在 VHDL 中生成随机数
  6. 如何在 VHDL 中的进程中使用过程
  7. 如何在 VHDL 中使用不纯函数
  8. 如何在 VHDL 中使用函数
  9. 如何在 VHDL 中创建有限状态机
  10. 如何在 VHDL 中使用过程
  11. 如何在 VHDL 中创建计时器
  12. 如何使用刀具磨床