如何在 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