亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> VHDL
如何在 VHDL 中延迟时间:等待

在之前的教程中,我们了解到可以将进程视为程序线程。我们还了解到wait; 语句导致程序无限期暂停。但是有没有办法让程序等待任何其他时间值而不是永远?

如果我们去掉 wait; 一起尝试编译程序,编译器会抱怨无限循环。编译器所指的循环是进程循环 . VHDL 中的进程线程永远不会终止,它会在 begin 之间不断循环 和结束进程; 声明。必须有一个等待 流程循环内某处的语句。

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

wait; 会导致程序永远暂停,wait for 语句可用于将程序延迟任意时间。

wait for 的语法 语句是:
wait for ;
其中 是数字和 是以下时间单位之一:

fs 飞秒
ps 皮秒
ns 纳秒
我们 微秒
毫秒 毫秒
分钟 分钟
小时 小时

锻炼

本教程视频将向您展示如何使用 wait for 语句在给定的时间内暂停进程。

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

entity T02_WaitForTb isend entity;T02_WaitForTb的架构sim isbegin process is begin -- 这是进程“线程”报告“Peekaboo!”的开始;等待 10 ns; -- 流程将从这里循环回到起点 end process;end architecture;

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

VSIM 2> run# ** Note:Peekaboo!# Time:0 ns Iteration:0 Instance:/t02_waitfortb# ** Note:Peekaboo!# Time:10 ns Iteration:0 Instance:/t02_waitfortb# ** Note:Peekaboo!# 时间:20 ns 迭代:0 实例:/t02_waitfortb...

分析

在这个例子中,我们使用了 10 ns ,表示 10 纳秒。当使用以 MHz 时钟频率运行的数字逻辑时,您通常会使用纳秒增量。

当我们在模拟器中运行代码时,它打印出“Peekaboo!”每 10 ns 到控制台。因为这是一个模拟,report 语句花费零时间,循环也是如此。

外卖

转到下一个教程»


VHDL

  1. 如何在 VHDL 中使用 Signed 和 Unsigned
  2. 如何创建您的第一个 VHDL 程序:Hello World!
  3. 教程 - 编写组合和顺序代码
  4. 使用 TEXTIO 读取的 BMP 文件位图图像
  5. 基本 VHDL 测验 – 第 2 部分
  6. 如何使用 TEXTIO 从文件初始化 RAM