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

掌握 VHDL For 循环:实用指南

上一教程探讨了如何用 loop 语句创建无限循环并用 exit 退出。若需循环固定次数怎么办?For 循环是最直接的解决方案。

For 循环遍历固定整数范围或枚举项。当前迭代值通过隐式声明的常量自动在循环内可用。

本文属于基础 VHDL 教程系列。

语法

for <constant> in <range> loop
-- loop body
end loop;

<constant> 是用户定义的循环计数器名,<range> 可以是整数范围(升序或降序)或枚举值集合。

整数范围

示例代码

 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 循环恰好执行十次迭代,在仿真时间 0 打印计数器值。因循环内无 wait,整个循环瞬间完成。最后的 wait; 让进程无限暂停,这是测试平台常见模式。

我们还演示了两个基本字符串操作:

关键要点

进入下一教程学习更深入的 VHDL 概念。

VHDL

  1. 刀具磨床实战技法指南:从入门到精通
  2. 钼如何塑造现代工业:用途、优势与供应动态
  3. VHDL 字符串列表创建:最佳实践与示例
  4. 优雅结束 VHDL 测试平台仿真
  5. VHDL 实现 PWM 控制器:设计、仿真与 FPGA 演示
  6. VHDL 生成随机数:从均匀分布到 OSVVM
  7. 利用进程内过程简化VHDL状态机设计
  8. 使用VHDL不纯函数提升FSM可读性与可维护性
  9. 掌握VHDL函数:高效设计实战指南
  10. 用VHDL设计有限状态机:红绿灯实战范例
  11. 在VHDL中使用过程:用可复用代码简化设计
  12. 构建可靠VHDL计时器:从时钟周期计数到小时