在之前的教程中,我们学习了如何使用 wait for
来延迟时间 陈述。我们还了解了流程循环。我们现在知道,如果我们放任不管,进程“线程”将永远在进程内循环。
但是,如果我们只想在流程开始时做某事怎么办?然后在最后循环一些其他代码?可以使用 loop
创建 VHDL 中最简单的一种循环 声明。
这篇博文是基本 VHDL 教程系列的一部分。
简单循环的语法是:
loopend loop;
这样的循环将无限期地持续下去,或者直到 exit;
遇到了。 出口
语句可用于跳出任何循环。
锻炼
这个视频教程教你如何创建一个简单的循环,以及如何打破它:
我们在本教程中创建的最终代码:
entity T03_LoopTb isend entity;T03_LoopTb isbegin process isbegin process is begin report "Hello!";循环报告“躲猫猫!”;出口;结束循环;报告“再见!”;等待;结束流程;结束架构;
当我们在 ModelSim 中按下运行按钮时,输出到模拟器控制台:
VSIM 2> run# ** Note:Hello!# Time:0 ns Iteration:0 Instance:/t03_looptb# ** Note:Peekaboo!# Time:0 ns Iteration:0 Instance:/t03_looptb# ** Note:再见!# 时间:0 ns 迭代:0 实例:/t03_looptb
分析
在模拟器中运行最终代码时,我们看到第一个“Hello!”被打印到 ModelSim 控制台。然后,“躲猫猫!” loop;
之间 和 end loop;
被打印。在下一行,程序点击了 exit;
语句,导致程序跳出循环。最后,“再见!”被打印。在此之后没有更多的事情发生,因为程序在 wait;
上永远暂停 声明。
我们可以从打印输出的时间戳中看到,一切都发生在 0 ns 模拟时间。正如我们从上一个教程中学到的,除了 wait
语句消耗零时间。
外卖
循环
语句实现无限循环出口
语句将突破any 循环
转到下一个教程»
VHDL