如何在 VHDL 中使用循环和退出
在上一个教程中,我们学习了如何使用 wait for 来延迟时间 陈述。我们还了解了流程循环。我们现在知道,如果我们让它,进程“线程”将永远在进程中循环。
但是,如果我们只想在流程开始时做一次事情怎么办?然后在最后循环一些其他代码? VHDL 中最简单的循环可以使用 loop 创建 声明。
这篇博文是基本 VHDL 教程系列的一部分。
简单循环的语法是:
loop
end loop;
这样的循环将无限期地继续,或者直到 exit; 遇到。 exit 语句可用于跳出任何循环。
运动
这个视频教程教你如何创建一个简单的循环,以及如何打破它:
我们在本教程中创建的最终代码:
entity T03_LoopTb is
end entity;
architecture sim of T03_LoopTb is
begin
process is
begin
report "Hello!";
loop
report "Peekaboo!";
exit;
end loop;
report "Goodbye!";
wait;
end process;
end architecture;
当我们在 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: Goodbye! # Time: 0 ns Iteration: 0 Instance: /t03_looptb
分析
在模拟器中运行最终代码时,我们看到第一个“Hello!”打印到 ModelSim 控制台。然后,“躲猫猫!” loop; 之间 和 end loop; 被打印出来了。在下一行,程序点击了 exit; 语句,导致程序跳出循环。最后,“再见!”被打印出来了。在此之后没有任何事情发生,因为程序在 wait; 上永远暂停 声明。
我们可以从打印输出的时间戳中看到,一切都发生在 0 ns 模拟时间。正如我们从上一个教程中了解到的,除了 wait 之外的所有内容 语句消耗零时间。
外卖
loop语句实现了一个无限循环exit声明将脱离任何 循环
转到下一个教程 »
VHDL