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

如何在 VHDL 中延迟时间:等待

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

如果我们删除 wait; 完全并尝试编译程序,编译器会抱怨无限循环。编译器所指的循环是进程循环 . VHDL 中的进程线程永远不会终止,它会在 begin 之间不断循环 和 end process; 陈述。必须有一个 wait 在进程循环内的某处声明。

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

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

wait for 的语法 语句为:
wait for <time_value> <time_unit>;
其中<time_value> 是数字和 <time_unit> 是下列时间单位之一:

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

运动

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

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

entity T02_WaitForTb is
end entity;

architecture sim of T02_WaitForTb is
begin

    process is
    begin
        -- This is the start of the process "thread"
 
        report "Peekaboo!";
        
        wait for 10 ns;
        
        -- The process will loop back to the start from here
    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!
#    Time: 20 ns  Iteration: 0  Instance: /t02_waitfortb
...

分析

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

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

外卖

转到下一个教程 »


VHDL

  1. 解决未知时间
  2. 如何在 VHDL 中创建字符串列表
  3. 如何为 VHDL 代码锁定模块创建 Tcl 驱动的测试平台
  4. 如何在 VHDL 中的进程中使用过程
  5. 如何在 VHDL 中使用不纯函数
  6. 如何在 VHDL 中使用函数
  7. 如何免费安装 VHDL 模拟器和编辑器
  8. 工作计划有多少细节?
  9. 如何判断起重机制动器的维护时间
  10. 如何减少机器人焊接的培训时间
  11. 第一次买车险怎么办?
  12. 您的制造过程需要多少时间?